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.
Los tutoriales y la referencia del CLI están disponibles solo en coreano / inglés.
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) |
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 |
Una spec declarativa de unas diez líneas basta para describir la forma completa del modelo.
Extensiones de spec v0.1.5 (opcionales, default OFF) —— escalado μP, objetivos auxiliares de diferenciación y declaración de tejido (tissue):
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).
| Nivel | Preset | ~Parámetros | Resumen | Base de investigación |
|---|---|---|---|---|
| beginner | arch_beginner_gpt2 | ~1.1B | Classic Transformer (MHA + LayerNorm post + GeLU) | Vaswani 2017, GPT-2 |
| beginner | arch_beginner_llama | ~1.1B | Modern baseline (GQA + RMSNorm pre + SwiGLU) | Llama 2/3 |
| intermediate | arch_intermediate_mistral | ~1.3B | 1 global : 3 sliding attention | Mistral 7B |
| intermediate | arch_intermediate_gemma2 | ~1.3B | 1:1 alternating global/local | Gemma 2 |
| intermediate | arch_intermediate_qwen_longctx | ~1.3B | RoPE scaling factor 4, 32K ctx | Qwen 2/3 |
| advanced | arch_advanced_jamba | ~1.2B | Mamba + Attention híbrido 3:1 | Jamba-1.5 (AI21) |
| advanced | arch_advanced_samba | ~1.0B | Mamba + Sliding attention 1:1 | Samba (Microsoft) |
| advanced | arch_advanced_retnet | ~1.3B | Pure RetNet (attention-free) | Sun 2023 |
| advanced (v1 B2.1) | arch_advanced_mla | ~1.1B | MLA —— KV comprimida vía latent_dim | DeepSeek-V3 (2024) |
| advanced (v1 B3.1) | arch_advanced_mod | ~1.1B | Mixture-of-Depths (salto de capa a nivel de token) | Raposo ICML 2024 |
| expert | arch_expert_research | ~1.5B | 4 mixers + MoE 3-phase | Research-grade |
| expert | arch_expert_mixtral_moe | ~1.9B | Pure attn + every-layer MoE (8 × top-2) | Mixtral 8x7B |
| expert | arch_expert_striped_hyena | ~1.0B | Hyena + Attention 4:1, 128K | StripedHyena |
| expert | arch_expert_blackmamba_moe | ~1.5B | Mamba + MoE (MoE sobre mixer no-attn) | BlackMamba, MoE-Mamba |
| expert | arch_expert_deepseek_moe | ~2.0B | Fine-grained MoE (32 × top-3) | DeepSeek-V2/V3 |
| expert NEW | arch_expert_dsv4_v3fallback | ~2.0B | Esquema DeepSeek-V4 (ruta de fallback V3) | DeepSeek-V3/V4 |
| expert | arch_expert_retnet_moe | ~1.5B | RetNet + MoE (speculativo, sin paper) | Sun 2023 + extrapolación MoE |
| expert | arch_expert_frontier_full_moe | ~2.0B | Attention-free, multi-mixer + all-MoE (el más speculativo) | Predicción composicional |
| expert | arch_expert_progressive_stack | ~1.5B | En profundidad hyena→mamba→retnet→attn+MoE (sin paper) | Predicción jerárquica |
| expert (speculative) | arch_expert_dilated_longnet | ~2.0B | Pirámide temporal: mamba+sw(1K→4K→16K)+global+MoE (sin paper) | Extrapolación de Longnet + Jamba |
| expert (v1 B5) | arch_expert_reasoning_r1 | ~1.3B | Razonamiento en 2 fases (think / answer) | DeepSeek-R1 (2025), Quiet-STaR |
| expert (v1 B4.1) | arch_expert_titans_memory | ~1.2B | Memoria paramétrica + actualización en tiempo de test | Titans (Google 2024–2025) |
| expert (v1 B3.2) | arch_expert_dual_stream | ~1.4B | Paralelo monoidal (Mamba ∥ Attention) | Generalización Jamba × PaLM |
| expert (capstone) | arch_expert_kitchen_sink | — | Combina todas las primitivas en una sola spec para validación de superficie máxima | Validació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 | ~Active | Mirror of | Rol pedagógico |
|---|---|---|---|---|
arch_expert_progressive_stack_mini | ~86M | ~86M | arch_expert_progressive_stack | Primer experimento RECOMENDADO |
arch_expert_blackmamba_moe_mini | ~156M | ~90M | arch_expert_blackmamba_moe | MoE partial-sparse sobre SSM |
arch_expert_mixtral_moe_mini | ~175M | ~90M | arch_expert_mixtral_moe | Baseline MoE clásico en cada capa |
arch_expert_dilated_longnet_mini | ~83M | ~75M | arch_expert_dilated_longnet | Pirámide temporal para largo contexto |
arch_expert_deepseek_moe_mini | ~357M | ~60M | arch_expert_deepseek_moe | ⚠ Observar el fallo del MoE fine-grained |
arch_expert_frontier_full_moe_mini | ~106M | ~60M | arch_expert_frontier_full_moe | ⚠ El más experimental; se espera que falle |
arch_expert_dsv4_flash_mini NEW | ~180M | ~70M | DeepSeek-V4 | DSv4 + atención comprimida Flash/NSA |
arch_expert_dsv4_subset_mini NEW | ~180M | ~70M | DeepSeek-V4 | Subconjunto de funciones DSv4 |
arch_expert_mhc_moe_mini NEW | ~150M | ~70M | mHC + MoE | Residual 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.
| Escala | simple | mistral | jamba | moe | mla |
|---|---|---|---|---|---|
| 0.1B | llm_0p1b_simple | llm_0p1b_mistral | llm_0p1b_jamba | — | llm_0p1b_mla |
| 0.8B | llm_0p8b_simple | llm_0p8b_mistral | llm_0p8b_jamba | llm_0p8b_moe | llm_0p8b_mla |
| 2B | llm_2b_simple | llm_2b_mistral | llm_2b_jamba | llm_2b_moe | llm_2b_mla |
| 4B | llm_4b_simple | llm_4b_mistral | llm_4b_jamba | llm_4b_moe | llm_4b_mla |
| 16B | llm_16b_simple | llm_16b_mistral | llm_16b_jamba | llm_16b_moe | llm_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.
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:).
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 |
--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 |
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.
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.
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 |
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.
00_positioning | Leer primero —— dónde encaja EulerStack: un lenguaje de descripción de arquitectura (ADL) para LLMs |
|---|---|
01_validate_a_spec | Validar una spec YAML |
02_use_presets | Usar presets |
03_spec_reference | NEW — referencia de la spec |
04_compile_and_explain | Compile & explain |
05_prepare_data | Preparar datos de entrenamiento |
06_sanity_train | Loop de entrenamiento sanity |
07_arch_walkthrough | Recorrido arquitectónico por nivel de habilidad (17 presets arch_) |
08_expert_mini_walkthrough | Recorrido por los presets Expert Mini (ablation con una sola GPU) |
09_new_primitives_walkthrough | NEW —— nuevas primitivas v1 Phase B (MLA / Titans / MoD / Dual-Stream / Neural-ODE / TTT) |
10_paper_to_yaml | NEW —— casos paper → YAML (DeepSeek-V3 / Jamba / DeepSeek-R1 / Titans) |
mixers/, 5)00_overview | Visión general — qué es un mixer y por qué mezclarlos (attention / mamba / retnet / hyena) |
|---|---|
01_attention | Attention en detalle |
02_mamba | Mamba en detalle |
03_retnet | RetNet en detalle |
04_hyena | Hyena en detalle |
Los tutoriales están disponibles únicamente en coreano / inglés.
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