EulerStack

Un lenguaje de descripción de arquitectura (ADL) para LLMs

EulerStack es un lenguaje de descripción de arquitectura (Architecture Description Language) para LLMs. Separa la "arquitectura" del archivo PyTorch donde habitualmente viven enredadas estructura, entrenamiento y serving, y la expresa en un lenguaje declarativo hecho a propósito —— la misma clase de salto de abstracción que la industria del semiconductor dio cuando Verilog y VHDL reemplazaron a schematics+C. Una sola spec YAML atraviesa un pipeline de 5 capas (DSL → Schema → IR → Compiler → CLI) que realiza validación y normalización, y compile --output-dir emite un directorio de modelo HuggingFace (config.json + model.safetensors) listo para entrenar con EulerForge. 57 presets (24 llm_ + 33 arch_, de los cuales 9 son arch_expert_*_mini) están organizados en una ruta de aprendizaje de 3 niveles (industrial validado → híbridos / MoE recientes → primitivas experimentales v1), y todos los mensajes del CLI están traducidos a 5 idiomas (ko / en / zh / ja / es). v0.1.5 añadió el escalado μP (training_hints.scaling), los objetivos auxiliares de diferenciación (training_hints.differentiation_objectives) y la declaración de tejido (tissue) como extensiones de spec compatibles hacia atrás —— todas con default OFF, y el YAML existente de v0.1.4 funciona sin cambios.

Tutorials (16 parts, EN) CLI Reference (EN)

Los tutoriales y la referencia del CLI están disponibles solo en coreano / inglés.

Capacidades principales

Layer Templates & Schedule

Defina plantillas de capa con nombre (mixer + FFN + norm + residual) y use el schedule para especificar el orden y la cantidad de repeticiones.

Tipos de mixer Attention, Mamba, RetNet, Hyena
Tipos de FFN MLP, Gated MLP (SwiGLU), MoE (ruteo top-k)
Norm RMSNorm, LayerNorm (posiciones pre/post)
Residual Sequential, Parallel, Hyper-Connection (mHC)
Head causal_lm, causal_lm_mtp (Multi-Token Prediction)

Validación & realismo

Tres etapas (validación estructural de esquema → compatibilidad cruzada → heurísticas de realismo) que atrapan errores de diseño antes de compilar. Todos los errores se emiten en formato de 3 líneas (Category: what / Fix: / See:).

Estructura claves desconocidas, tipos/enum, campos obligatorios, restricciones numéricas
Compatibilidad mismatches mixer ↔ state (p. ej. mamba + kv_cache no permitido)
Realismo rango de head_dim (32–256), desviación de target_params (>30%), proporción de expertos MoE, ratio seq_len/d_model, consistencia de family_hint, vocab/tokenizer, tie_weight, rango de rope_scaling
Categorías de error ValidationError, CompatibilityError, CompileError, NormalizationError

Empieza con una sola página YAML

Una spec declarativa de unas diez líneas basta para describir la forma completa del modelo.

schema_version: 1 model: { name: "my-llm", d_model: 2048, vocab_size: 32000, max_seq_len: 4096, n_heads: 16 } tokenizer_contract: { type: hf, pretrained: gpt2 } embedding: { type: learned, positional: rope } layer_templates: decoder: mixer: { type: attention, attention: {} } ffn: { type: gated_mlp, activation: swiglu } layer_schedule: - { template: decoder, repeat: 24 } head: { type: causal_lm }

Extensiones de spec v0.1.5 (opcionales, default OFF) —— escalado μP, objetivos auxiliares de diferenciación y declaración de tejido (tissue):

# Añade lo siguiente a la spec anterior (el YAML existente funciona sin cambios) training_hints: scaling: { parametrization: mup, base_width: 256 } # μP (W-AS-1) differentiation_objectives: { usage_probe_coef: 0.01 } # objetivos de diferenciación (W-AS-2) tissue: # declaración de tejido/columna (W-AS-3) columns: - { name: global_integration, templates: [decoder], role: global_binding } connectivity: ring

Presets: 57 sobre una ruta de aprendizaje de 3 niveles

Organizados según el "industrial ordering principle" de v1: industrial validado → híbridos / MoE recientes → primitivas experimentales v1. Total 24 llm_ + 33 arch_ = 57 (33 arch_ = beginner 2 · intermediate 3 · advanced 5 · expert 23, de los cuales 9 son *_mini). Los presets son solo puntos de partida — editar d_model, n_heads y el número de capas permite ensamblar modelos de cualquier escala.

arch_ — recorrido por nivel de habilidad (1B–2B)

Presets entre 1B y 2B (beginner 2 · intermediate 3 · advanced 5 · expert), ajustados para que los experimentos quepan en una GPU de 24 GB (d_model reducido respecto al paper original). Para reproducir a la escala del paper, aumente d_model. El nivel experto se ha extendido a un espacio de diseño 3D de MoE × mixer × profundidad / campo receptivo, incluyendo 4 composiciones especulativas aún no publicadas en la literatura (retnet_moe, frontier_full_moe, progressive_stack, dilated_longnet).

NivelPreset~ParámetrosResumenBase de investigación
beginnerarch_beginner_gpt2~1.1BClassic Transformer (MHA + LayerNorm post + GeLU)Vaswani 2017, GPT-2
beginnerarch_beginner_llama~1.1BModern baseline (GQA + RMSNorm pre + SwiGLU)Llama 2/3
intermediatearch_intermediate_mistral~1.3B1 global : 3 sliding attentionMistral 7B
intermediatearch_intermediate_gemma2~1.3B1:1 alternating global/localGemma 2
intermediatearch_intermediate_qwen_longctx~1.3BRoPE scaling factor 4, 32K ctxQwen 2/3
advancedarch_advanced_jamba~1.2BMamba + Attention híbrido 3:1Jamba-1.5 (AI21)
advancedarch_advanced_samba~1.0BMamba + Sliding attention 1:1Samba (Microsoft)
advancedarch_advanced_retnet~1.3BPure RetNet (attention-free)Sun 2023
advanced (v1 B2.1)arch_advanced_mla~1.1BMLA —— KV comprimida vía latent_dimDeepSeek-V3 (2024)
advanced (v1 B3.1)arch_advanced_mod~1.1BMixture-of-Depths (salto de capa a nivel de token)Raposo ICML 2024
expertarch_expert_research~1.5B4 mixers + MoE 3-phaseResearch-grade
expertarch_expert_mixtral_moe~1.9BPure attn + every-layer MoE (8 × top-2)Mixtral 8x7B
expertarch_expert_striped_hyena~1.0BHyena + Attention 4:1, 128KStripedHyena
expertarch_expert_blackmamba_moe~1.5BMamba + MoE (MoE sobre mixer no-attn)BlackMamba, MoE-Mamba
expertarch_expert_deepseek_moe~2.0BFine-grained MoE (32 × top-3)DeepSeek-V2/V3
expert NEWarch_expert_dsv4_v3fallback~2.0BEsquema DeepSeek-V4 (ruta de fallback V3)DeepSeek-V3/V4
expertarch_expert_retnet_moe~1.5BRetNet + MoE (speculativo, sin paper)Sun 2023 + extrapolación MoE
expertarch_expert_frontier_full_moe~2.0BAttention-free, multi-mixer + all-MoE (el más speculativo)Predicción composicional
expertarch_expert_progressive_stack~1.5BEn profundidad hyena→mamba→retnet→attn+MoE (sin paper)Predicción jerárquica
expert (speculative)arch_expert_dilated_longnet~2.0BPirámide temporal: mamba+sw(1K→4K→16K)+global+MoE (sin paper)Extrapolación de Longnet + Jamba
expert (v1 B5)arch_expert_reasoning_r1~1.3BRazonamiento en 2 fases (think / answer)DeepSeek-R1 (2025), Quiet-STaR
expert (v1 B4.1)arch_expert_titans_memory~1.2BMemoria paramétrica + actualización en tiempo de testTitans (Google 2024–2025)
expert (v1 B3.2)arch_expert_dual_stream~1.4BParalelo monoidal (Mamba ∥ Attention)Generalización Jamba × PaLM
expert (capstone)arch_expert_kitchen_sinkCombina todas las primitivas en una sola spec para validación de superficie máximaValidación agregada

arch_expert_*_mini — experimentos speculativos a pequeña escala (9, ~80M–360M)

Variantes mini de las arquitecturas expertas especulativas. Mantienen las mismas ideas de diseño, pero mucho más pequeñas (d_model 384–512, ~12 capas) para que un ablation de entrenamiento completo quepa en una sola GPU de consumo. Pensadas para iterar rápidamente sobre hipótesis arquitectónicas antes de comprometer un entrenamiento de 2B. arch_expert_progressive_stack_mini es el punto de partida recomendado.

Preset~Total~ActiveMirror ofRol pedagógico
arch_expert_progressive_stack_mini~86M~86March_expert_progressive_stackPrimer experimento RECOMENDADO
arch_expert_blackmamba_moe_mini~156M~90March_expert_blackmamba_moeMoE partial-sparse sobre SSM
arch_expert_mixtral_moe_mini~175M~90March_expert_mixtral_moeBaseline MoE clásico en cada capa
arch_expert_dilated_longnet_mini~83M~75March_expert_dilated_longnetPirámide temporal para largo contexto
arch_expert_deepseek_moe_mini~357M~60March_expert_deepseek_moe⚠ Observar el fallo del MoE fine-grained
arch_expert_frontier_full_moe_mini~106M~60March_expert_frontier_full_moe⚠ El más experimental; se espera que falle
arch_expert_dsv4_flash_mini NEW~180M~70MDeepSeek-V4DSv4 + atención comprimida Flash/NSA
arch_expert_dsv4_subset_mini NEW~180M~70MDeepSeek-V4Subconjunto de funciones DSv4
arch_expert_mhc_moe_mini NEW~150M~70MmHC + MoEResidual multi-Hyper-Connection + MoE

llm_ — tamaño × variante arquitectónica (24 presets)

5 tamaños (0.1B / 0.8B / 2B / 4B / 16B) × 5 variantes (simple / mistral / jamba / moe / mla). A 0.1B se omite moe.

Escalasimplemistraljambamoemla
0.1Bllm_0p1b_simplellm_0p1b_mistralllm_0p1b_jamballm_0p1b_mla
0.8Bllm_0p8b_simplellm_0p8b_mistralllm_0p8b_jamballm_0p8b_moellm_0p8b_mla
2Bllm_2b_simplellm_2b_mistralllm_2b_jamballm_2b_moellm_2b_mla
4Bllm_4b_simplellm_4b_mistralllm_4b_jamballm_4b_moellm_4b_mla
16Bllm_16b_simplellm_16b_mistralllm_16b_jamballm_16b_moellm_16b_mla

Semántica de las variantes: simple = atención pura (Llama) · mistral = atención + sliding window (1 global : 3 sliding por cada 4 capas) · jamba = híbrido Mamba + Attention (3:1) · moe = atención + MoE FFN (1 de cada 4 capas, 8 expertos, top-2) · mla = Multi-head Latent Attention (compresión KV estilo DeepSeek-V3).

Sin límite superior — los presets son solo puntos de partida. EulerStack puede ensamblar modelos de cualquier tamaño editando d_model, n_heads y el número de capas.

Referencia del CLI

Sigue las convenciones comunes del CLI de la familia eulerwa. Todos los errores se emiten en el formato de 3 líneas (Category: what / Fix: / See:).

Comandos principales

validate Validación de la spec YAML (--report incluye reporte de realismo)
explain Resumen de la estructura del modelo (capas, estimación de parámetros)
compile IR → configuración JSON (--output) o directorio HF (--output-dir)
schema Impresión del esquema YAML
presets list / show Lista de presets y sus detalles

Opciones comunes

--lang Idioma de salida (ko/en/zh/ja/es). Opción raíz, por defecto ko
--preset Ruta al archivo YAML de spec
--validate-only Solo validar y terminar
--output / -o Ruta de salida del JSON de runtime
--output-dir Directorio de modelo HF (config.json + model.safetensors)
--print-config / --dry-run Imprime la configuración en stdout

CLI i18n en 5 idiomas

Todos los mensajes de help / logs / warnings / errores del CLI están traducidos a ko / en / zh / ja / es. El idioma por defecto es coreano (ko), y puede cambiarse con la opción raíz --lang o la variable de entorno EULERSTACK_LANG. Los nombres de comandos y opciones y las etiquetas Fix: / See: del formato de 3 líneas no se traducen, de modo que se preserva la compatibilidad de scripts.

eulerstack validate --preset my_model.yml
# Coreano (por defecto)

eulerstack --lang en validate --preset my_model.yml
# English

EULERSTACK_LANG=es eulerstack validate --preset my_model.yml
# También vía variable de entorno

Directorio de modelo HF → entrenamiento con EulerForge

compile --output-dir genera config.json y model.safetensors, creando un directorio de modelo compatible con HuggingFace. Es la ruta principal para encadenar con el pipeline de entrenamiento de EulerForge.

eulerstack compile --preset my_model.yml --output-dir ./my_model

# Cargar desde Python
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("./my_model", trust_remote_code=True)

Arquitectura de 5 capas

De la spec YAML a un modelo entrenable, cinco capas separan estrictamente las responsabilidades de cada etapa.

Layer 1: DSL Spec YAML que el usuario escribe (schema_version 1, definición declarativa del modelo)
Layer 2: Schema Validación estructural — claves desconocidas, tipos/enum, campos obligatorios, compatibilidad cruzada
Layer 3: IR Representación canónica normalizada (defaults, expansión de plantillas)
Layer 4: Compiler IR → configuración JSON o directorio de modelo HF (config.json + model.safetensors) — cargable con AutoModelForCausalLM.from_pretrained() para enlazar con el entrenamiento de EulerForge
Layer 5: CLI validate / explain / compile / schema / presets — todos con i18n en 5 idiomas

Tutoriales

Los tutoriales se mantienen en coreano (ko) e inglés (en) (ruta en el repositorio fuente: docs/tutorials/{ko,en}/). Los enlaces siguientes apuntan a la versión en inglés disponible en este sitio; actualmente no hay versión en español.

Tutoriales principales (11)

00_positioningLeer primero —— dónde encaja EulerStack: un lenguaje de descripción de arquitectura (ADL) para LLMs
01_validate_a_specValidar una spec YAML
02_use_presetsUsar presets
03_spec_referenceNEW — referencia de la spec
04_compile_and_explainCompile & explain
05_prepare_dataPreparar datos de entrenamiento
06_sanity_trainLoop de entrenamiento sanity
07_arch_walkthroughRecorrido arquitectónico por nivel de habilidad (17 presets arch_)
08_expert_mini_walkthroughRecorrido por los presets Expert Mini (ablation con una sola GPU)
09_new_primitives_walkthroughNEW —— nuevas primitivas v1 Phase B (MLA / Titans / MoD / Dual-Stream / Neural-ODE / TTT)
10_paper_to_yamlNEW —— casos paper → YAML (DeepSeek-V3 / Jamba / DeepSeek-R1 / Titans)

Profundización en mixers (mixers/, 5)

00_overviewVisión general — qué es un mixer y por qué mezclarlos (attention / mamba / retnet / hyena)
01_attentionAttention en detalle
02_mambaMamba en detalle
03_retnetRetNet en detalle
04_hyenaHyena en detalle

Los tutoriales están disponibles únicamente en coreano / inglés.

Instalación y quickstart

Instalación

pip install -e .

# o incluyendo dependencias de desarrollo
pip install -e ".[dev]"

Quickstart

# Explorar presets (coreano por defecto)
eulerstack presets list

# Validar la spec + reporte de realismo
eulerstack validate --preset my_model.yml --report

# Generar directorio HF → entrenar con EulerForge
eulerstack compile --preset my_model.yml --output-dir ./my_model

# Ejemplo cambiando a mensajes en inglés
eulerstack --lang en validate --preset my_model.yml

Diseña arquitecturas LLM con EulerStack

Ensambla modelos híbridos combinando Attention, Mamba, RetNet, Hyena y MoE desde una sola página YAML, y obtén directamente un directorio de modelo HuggingFace listo para entrenar.

Empezar en GitHub