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)로 번역됩니다.
이름 있는 레이어 템플릿(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 |
10줄 남짓의 선언형 스펙으로 모델의 형태를 완전히 기술할 수 있습니다.
llm_(사이즈 × 변형 16개)와 arch_(스킬 레벨 워크스루 15개)의 두 축으로 구성됩니다. 프리셋은 출발점일 뿐이며, d_model/n_heads/레이어 수를 편집해 임의 스케일의 모델을 조립할 수 있습니다.
llm_ — 사이즈 × 아키텍처 변형 (16개)4개 사이즈(0.8B / 2B / 4B / 16B) × 4개 변형(simple / mistral / jamba / moe).
| 스케일 | simple | mistral | jamba | moe |
|---|---|---|---|---|
| 0.8B | llm_0p8b_simple (~810M) | llm_0p8b_mistral (~810M) | llm_0p8b_jamba (~1.04B) | llm_0p8b_moe (~770M) |
| 2B | llm_2b_simple (~2.01B) | llm_2b_mistral (~2.01B) | llm_2b_jamba (~2.39B) | llm_2b_moe (~2.05B) |
| 4B | llm_4b_simple (~3.97B) | llm_4b_mistral (~3.97B) | llm_4b_jamba (~4.67B) | llm_4b_moe (~4.03B) |
| 16B | llm_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 구성입니다.
| 레벨 | 프리셋 | ~파라미터 | 한줄 설명 | 연구 근거 |
|---|---|---|---|---|
| beginner | arch_beginner_gpt2 | 2.07B | Classic Transformer (MHA + LayerNorm post + GeLU) | Vaswani 2017, GPT-2 |
| beginner | arch_beginner_llama | 2.01B | Modern baseline (GQA + RMSNorm pre + SwiGLU) | Llama 2/3 |
| intermediate | arch_intermediate_mistral | 2.01B | 1 global : 3 sliding attention | Mistral 7B |
| intermediate | arch_intermediate_gemma2 | 2.08B | 1:1 alternating global/local | Gemma 2 |
| intermediate | arch_intermediate_qwen_longctx | 2.01B | RoPE scaling factor 4, 32K ctx | Qwen 2/3 |
| advanced | arch_advanced_jamba | 2.39B | Mamba + Attention 3:1 하이브리드 | Jamba-1.5 (AI21) |
| advanced | arch_advanced_samba | 1.99B | Mamba + Sliding attention 1:1 | Samba (Microsoft) |
| advanced | arch_advanced_retnet | 2.21B | Pure RetNet (attention-free) | Sun 2023 |
| expert | arch_expert_research | 2.22B | 4 mixers + MoE 3-phase | Research-grade |
| expert | arch_expert_mixtral_moe | 1.89B | Pure attn + every-layer MoE (8 × top-2) | Mixtral 8x7B |
| expert | arch_expert_striped_hyena | 1.96B | Hyena + Attention 4:1, 128K | StripedHyena |
| expert | arch_expert_blackmamba_moe | 2.10B | Mamba + MoE (non-attn mixer에 MoE) | BlackMamba, MoE-Mamba |
| expert | arch_expert_deepseek_moe | 1.84B | Fine-grained MoE (32 × top-3) | DeepSeek-V2/V3 |
| expert | arch_expert_retnet_moe | 1.98B | RetNet + MoE (speculative, 논문 없음) | Sun 2023 + MoE-Mamba 외삽 |
| expert | arch_expert_frontier_full_moe | 1.93B | Attention-free, multi-mixer + all-MoE (가장 speculative) | 조합 예측 |
상한 없음 — 프리셋은 출발점일 뿐입니다. EulerStack은 d_model, n_heads, 레이어 수를 편집해 임의 스케일의 모델을 조립할 수 있습니다.
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 출력 |
모든 CLI help/로그/경고/오류 메시지는 ko / en / zh / ja / es 5개 언어로 번역됩니다. 기본 언어는 한국어(ko)이며, --lang 루트 옵션 또는 환경변수 EULERSTACK_LANG으로 전환할 수 있습니다. 명령/옵션 이름과 3줄 에러 포맷의 Fix: / See: 레이블은 번역하지 않아 스크립트 호환성이 유지됩니다.
compile --output-dir는 config.json과 model.safetensors를 생성해 HuggingFace 호환 모델 디렉토리를 만듭니다. 이것이 EulerForge 학습 파이프라인으로 넘기는 주요 경로입니다.
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.md | YAML 스펙 검증하기 |
02_use_presets.md | 프리셋 사용하기 |
03_compile_and_explain.md | Compile & explain |
04_prepare_data.md | 학습 데이터 준비 |
05_sanity_train.md | Sanity 훈련 루프 |
06_arch_walkthrough.md | NEW — 15개 arch_ 프리셋 단계별 투어 (스킬 레벨 워크스루) |
mixers/)00_overview.md | 믹서 개념 개요 — attention / mamba / retnet / hyena를 왜 섞는가 |
|---|---|
01_attention.md | Attention 상세 |
02_mamba.md | Mamba 상세 |
03_retnet.md | RetNet 상세 |
04_hyena.md | Hyena 상세 |
모든 튜토리얼은 상위 저장소에서 확인할 수 있습니다.
YAML 한 장으로 Attention, Mamba, RetNet, Hyena, MoE를 조합한 하이브리드 모델을 조립하고 HuggingFace 모델 디렉토리로 바로 넘기세요.
GitHub에서 시작하기