EulerStack

YAML로 LLM 아키텍처를 조립하는 모듈형 빌더

선언형 YAML 스펙 한 장으로 LLM 아키텍처를 설계하고, 5계층 파이프라인(DSL → Schema → IR → Compiler → CLI)으로 검증·정규화·컴파일까지 자동화합니다. 두 축(`llm_` 16 × `arch_` 15)으로 구성된 31개 프리셋을 기본 출발점으로 제공하며, `compile --output-dir`이 바로 HuggingFace 모델 디렉토리(config.json + model.safetensors)를 생성해 EulerForge 학습으로 넘길 수 있습니다. 프리셋은 시작점일 뿐이며 d_model/n_heads/레이어 수를 조정해 임의 스케일의 모델을 조립할 수 있고, 모든 CLI 메시지는 5개 언어(ko/en/zh/ja/es)로 번역됩니다.

핵심 기능

Layer Templates & Schedule

이름 있는 레이어 템플릿(mixer + FFN + norm + residual)을 정의하고, 스케줄로 배치 순서와 반복 횟수를 지정합니다.

믹서 타입 Attention, Mamba, RetNet, Hyena
FFN 타입 MLP, Gated MLP (SwiGLU), MoE (top-k 라우팅)
Norm RMSNorm, LayerNorm (pre/post 위치)
Residual Sequential, Parallel

검증 & 리얼리즘

스키마 구조 검증 → 교차 필드 호환성 → 휴리스틱 리얼리즘의 3단계로 설계 오류를 사전에 차단합니다. 모든 에러는 3줄 포맷(Category: what / Fix: / See:)으로 출력됩니다.

구조 검증 unknown key, 타입/enum, 필수 필드, 양수 제약
호환성 mixer↔state 불일치 (예: mamba + kv_cache 금지)
리얼리즘 head_dim 범위(32–256), target_params 오차(>30%), MoE 전문가 비율, seq_len/d_model 비율, family_hint 일관성, vocab/tokenizer 일관성, tie_weight 일관성, rope_scaling 범위
에러 카테고리 ValidationError, CompatibilityError, CompileError, NormalizationError

YAML 한 장으로 시작

10줄 남짓의 선언형 스펙으로 모델의 형태를 완전히 기술할 수 있습니다.

schema_version: 2 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 }

프리셋: 두 축의 31개

llm_(사이즈 × 변형 16개)와 arch_(스킬 레벨 워크스루 15개)의 두 축으로 구성됩니다. 프리셋은 출발점일 뿐이며, d_model/n_heads/레이어 수를 편집해 임의 스케일의 모델을 조립할 수 있습니다.

llm_ — 사이즈 × 아키텍처 변형 (16개)

4개 사이즈(0.8B / 2B / 4B / 16B) × 4개 변형(simple / mistral / jamba / moe).

스케일simplemistraljambamoe
0.8Bllm_0p8b_simple (~810M)llm_0p8b_mistral (~810M)llm_0p8b_jamba (~1.04B)llm_0p8b_moe (~770M)
2Bllm_2b_simple (~2.01B)llm_2b_mistral (~2.01B)llm_2b_jamba (~2.39B)llm_2b_moe (~2.05B)
4Bllm_4b_simple (~3.97B)llm_4b_mistral (~3.97B)llm_4b_jamba (~4.67B)llm_4b_moe (~4.03B)
16Bllm_16b_simple (~15.26B)llm_16b_mistral (~15.26B)llm_16b_jamba (~18.18B)llm_16b_moe (~15.71B)

변형 시맨틱: simple은 순수 Attention(Llama), mistral은 Attention + Sliding Window(4레이어당 1 global : 3 sliding), jamba는 Mamba+Attention 하이브리드(3:1), moe는 Attention + MoE FFN(4레이어당 1개, 8 experts, top-2).

arch_ — 스킬 레벨 워크스루 (15개, 모두 ~2B)

비교가 아키텍처 선택만을 분리해 보여주도록 스케일을 ~2B로 고정했습니다. Expert 레벨은 MoE × 믹서를 2D 설계 공간으로 교차하며, 2개 항목은 아직 논문으로 발표되지 않은 speculative 구성입니다.

레벨프리셋~파라미터한줄 설명연구 근거
beginnerarch_beginner_gpt22.07BClassic Transformer (MHA + LayerNorm post + GeLU)Vaswani 2017, GPT-2
beginnerarch_beginner_llama2.01BModern baseline (GQA + RMSNorm pre + SwiGLU)Llama 2/3
intermediatearch_intermediate_mistral2.01B1 global : 3 sliding attentionMistral 7B
intermediatearch_intermediate_gemma22.08B1:1 alternating global/localGemma 2
intermediatearch_intermediate_qwen_longctx2.01BRoPE scaling factor 4, 32K ctxQwen 2/3
advancedarch_advanced_jamba2.39BMamba + Attention 3:1 하이브리드Jamba-1.5 (AI21)
advancedarch_advanced_samba1.99BMamba + Sliding attention 1:1Samba (Microsoft)
advancedarch_advanced_retnet2.21BPure RetNet (attention-free)Sun 2023
expertarch_expert_research2.22B4 mixers + MoE 3-phaseResearch-grade
expertarch_expert_mixtral_moe1.89BPure attn + every-layer MoE (8 × top-2)Mixtral 8x7B
expertarch_expert_striped_hyena1.96BHyena + Attention 4:1, 128KStripedHyena
expertarch_expert_blackmamba_moe2.10BMamba + MoE (non-attn mixer에 MoE)BlackMamba, MoE-Mamba
expertarch_expert_deepseek_moe1.84BFine-grained MoE (32 × top-3)DeepSeek-V2/V3
expertarch_expert_retnet_moe1.98BRetNet + MoE (speculative, 논문 없음)Sun 2023 + MoE-Mamba 외삽
expertarch_expert_frontier_full_moe1.93BAttention-free, multi-mixer + all-MoE (가장 speculative)조합 예측

상한 없음 — 프리셋은 출발점일 뿐입니다. EulerStack은 d_model, n_heads, 레이어 수를 편집해 임의 스케일의 모델을 조립할 수 있습니다.

CLI 레퍼런스

eulerwa 제품군 공통 CLI 컨벤션을 따릅니다. 모든 오류는 3줄 포맷(Category: what / Fix: / See:)으로 출력됩니다.

최상위 명령

validate YAML 스펙 검증 (--report로 리얼리즘 보고서 포함)
explain 모델 구조 요약 (레이어, 파라미터 추정)
compile IR → JSON 런타임 설정(--output) 또는 HF 모델 디렉토리(--output-dir) 출력
schema YAML 스키마 구조 출력
presets list / show 프리셋 목록 및 상세 정보 조회

공통 옵션

--lang 출력 언어(ko/en/zh/ja/es). 루트 옵션이며 기본값은 ko
--preset YAML 스펙 파일 경로
--validate-only 검증만 수행하고 종료
--output / -o JSON 런타임 설정 출력 경로
--output-dir HF 모델 디렉토리 출력 (config.json + model.safetensors)
--print-config / --dry-run 설정만 stdout 출력

5개 언어 i18n CLI

모든 CLI help/로그/경고/오류 메시지는 ko / en / zh / ja / es 5개 언어로 번역됩니다. 기본 언어는 한국어(ko)이며, --lang 루트 옵션 또는 환경변수 EULERSTACK_LANG으로 전환할 수 있습니다. 명령/옵션 이름과 3줄 에러 포맷의 Fix: / See: 레이블은 번역하지 않아 스크립트 호환성이 유지됩니다.

eulerstack validate --preset my_model.yml
# 한국어 (기본)

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

EULERSTACK_LANG=ja eulerstack validate --preset my_model.yml
# 環境変数でも可能

HF 모델 디렉토리 → EulerForge 학습

compile --output-dirconfig.jsonmodel.safetensors를 생성해 HuggingFace 호환 모델 디렉토리를 만듭니다. 이것이 EulerForge 학습 파이프라인으로 넘기는 주요 경로입니다.

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

# Python에서 로드
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("./my_model", trust_remote_code=True)

5계층 아키텍처

YAML 스펙에서 학습 가능한 모델까지, 5개 계층이 각 단계의 책임을 엄격히 분리합니다.

Layer 1: DSL 사용자가 작성하는 YAML v2 스펙 (선언형 모델 정의)
Layer 2: Schema 구조 검증 — unknown key, 타입/enum, 필수 필드, 교차 필드 호환성
Layer 3: IR 정규화된 Canonical 구조 표현 (기본값 채움, 템플릿 확장)
Layer 4: Compiler IR → JSON 런타임 설정 또는 HF 모델 디렉토리(config.json + model.safetensors) — AutoModelForCausalLM.from_pretrained()로 로드해 EulerForge 학습으로 연결
Layer 5: CLI validate / explain / compile / schema / presets — 모두 5개 언어 i18n 적용

튜토리얼

튜토리얼은 한국어(ko)와 영어(en)를 병행해 상위 저장소 docs/tutorials/{ko,en}/에 제공됩니다. 홈페이지에는 목차만 안내하며, 상세 문서는 저장소에서 읽을 수 있습니다.

코어 튜토리얼

quickstart.md언어 중립 CLI 랜딩 (--lang 사용)
01_validate_a_spec.mdYAML 스펙 검증하기
02_use_presets.md프리셋 사용하기
03_compile_and_explain.mdCompile & explain
04_prepare_data.md학습 데이터 준비
05_sanity_train.mdSanity 훈련 루프
06_arch_walkthrough.mdNEW — 15개 arch_ 프리셋 단계별 투어 (스킬 레벨 워크스루)

믹서 심화 (mixers/)

00_overview.md믹서 개념 개요 — attention / mamba / retnet / hyena를 왜 섞는가
01_attention.mdAttention 상세
02_mamba.mdMamba 상세
03_retnet.mdRetNet 상세
04_hyena.mdHyena 상세

모든 튜토리얼은 상위 저장소에서 확인할 수 있습니다.

설치 및 시작

설치

pip install -e .

# 또는 개발 의존성 포함
pip install -e ".[dev]"

빠른 시작

# 프리셋 탐색 (한국어 기본)
eulerstack presets list

# 스펙 검증 + 리얼리즘 보고서
eulerstack validate --preset my_model.yml --report

# HF 모델 디렉토리 생성 → EulerForge 학습으로 인계
eulerstack compile --preset my_model.yml --output-dir ./my_model

# 영어로 메시지 전환 예시
eulerstack --lang en validate --preset my_model.yml

EulerStack으로 LLM 아키텍처를 설계하세요

YAML 한 장으로 Attention, Mamba, RetNet, Hyena, MoE를 조합한 하이브리드 모델을 조립하고 HuggingFace 모델 디렉토리로 바로 넘기세요.

GitHub에서 시작하기