Dense 모델을 MoE처럼 훈련하는 LLM 파인튜닝 툴
HuggingFace 모델에 LoRA를 주입하고, Dense 모델을 Mixture-of-LoRAs 또는 MoE Expert LoRA 구조로 전환해 훈련할 수 있는 연구 지향 파인튜닝 프레임워크입니다. Dense SFT 중심의 일반적인 흐름에 Dense → MoE 변환과 Phase 스케줄링을 더해, 전문가 특화·라우팅·MoE 안정성을 작은 GPU 예산에서도 재현 가능하게 다룰 수 있도록 설계했습니다. 모델 코드를 수정하지 않고, YAML 프리셋 한 장으로 SFT → DPO/ORPO → RM → PPO를 이어갑니다.
범용 SFT 프레임워크의 자리 대신, MoE 연구 흐름을 표준화된 설정으로 다루는 쪽에 무게를 두고 설계했습니다.
EulerForge를 MoE 연구에 맞는 도구로 만들어주는 네 가지 축
mixture_lora / moe_expert_lora 인젝션을 통해 임의의 dense Qwen / Llama / Gemma를 MoE 스타일의 학습 가능 모델로 변환합니다. 모델 코드를 다시 작성할 필요가 없습니다.
router → LoRA → base FFN 순으로 학습 대상을 단계적으로 unfreeze하여 대형 모델 파인튜닝을 안정적이고 재현 가능하게 만듭니다.
SFT → DPO/ORPO → RM → PPO를 한 번의 명령 시퀀스로. 단계 사이의 base 모델과 LoRA 설정이 자동 감지됩니다.
GPU 한 사이클이 소모되기 전에 설정 오류와 MoE 라우터 붕괴 위험을 잡습니다. 비싼 학습 실패를 사전에 방지합니다.
같은 dense 백본에서 시작해, 어떤 종류의 MoE 실험을 할지 YAML 한 줄로 결정합니다.
dense_lora전통적인 LoRA 어댑터 — 가장 빠른 도메인 적응. 베이스라인 대조군으로 활용하기 좋습니다.
mixture_lora라우터 + 다수의 LoRA 전문가. dense 모델을 토큰 레벨에서 멀티태스크 라우팅이 가능한 구조로 만듭니다.
moe_expert_loraFFN을 MoE 블록으로 교체하고 각 전문가에 LoRA를 주입 (DeepSeek 스타일). dense 백본을 풀 MoE 학습 대상으로 변환합니다.
native_moe_expert_loraMixtral, Gemma 4 MoE 등 이미 MoE 구조인 모델의 각 전문가에 LoRA를 주입하여 효율적으로 미세조정합니다.
SFT → DPO / ORPO → RM → PPO. 각 단계의 체크포인트가 다음 단계로 자동 연결됩니다.
| 훈련 타입 | 설명 |
|---|---|
| SFT | Supervised Fine-Tuning — 기본 정렬 단계 |
| DPO | Direct Preference Optimization — 레퍼런스 모델 불필요, 메모리 효율적 |
| ORPO | Odds Ratio Preference Optimization — 단일 forward pass 정렬 |
| RM | Reward Model (Bradley-Terry) |
| PPO | Proximal Policy Optimization — RLHF 마지막 단계 |
HuggingFace dense 모델을 MoE 학습 대상으로 만드는 데 필요한 단계를 EulerForge가 자동화합니다.
학습 중 누가 학습 가능한지를 시간에 따라 단계화 — 대형 모델 파인튜닝을 안정적이고 재현 가능하게.
학습 초기에는 라우터만 학습시켜 토큰 → 전문가 분포를 안정화합니다. 이 단계 없이는 라우터 붕괴(expert collapse)가 자주 발생합니다.
라우터가 안정화된 후 전문가 LoRA만 학습. base FFN은 동결 상태로 유지됩니다.
LoRA 가중치를 점진적으로 줄이면서 base FFN으로 지식을 이전합니다. 추론 시 MoE 구조를 유지하면서 LoRA 의존도를 낮춥니다.
같은 인젝션 / 학습 코드가 모든 백본 계열에서 동작합니다.
| 백본 | 지원 모델 |
|---|---|
| Qwen | Qwen2 / Qwen3 / Qwen3.5 (dense) |
| Llama | Llama 2 / Llama 3 / Llama 3.2, TinyLlama, Mistral |
| Gemma 3 | Gemma 3 1B / 4B (dense) |
| Gemma 4 | Gemma 4 dense (e2b/e4b) + native MoE (26b a4b) |
| Mixtral | Mixtral 8x7B / 8x22B (native MoE) |
| 양자화 학습 | nf4 / int4 / int8 (bitsandbytes 기반) |
바로 실행 가능한 YAML 프리셋이 configs/presets/에 제공됩니다.
| 프리셋 | 전략 | 훈련 |
|---|---|---|
qwen3.5_0.8b_dense_lora_sft.yml | Dense LoRA | SFT |
qwen3.5_0.8b_mixture_lora_sft.yml | Mixture-of-LoRAs | SFT |
qwen3.5_0.8b_moe_expert_lora_sft.yml | MoE Expert LoRA | SFT |
qwen3.5_0.8b_moe_expert_lora_dpo.yml | MoE Expert LoRA | DPO |
llama3_1b_moe_expert_lora_sft_handoff.yml | MoE Expert LoRA + Handoff | SFT |
gemma3_4b_moe_expert_lora_orpo_handoff.yml | MoE Expert LoRA + Handoff | ORPO |
gemma4_26b_a4b_native_expert_lora_sft.yml | Native MoE Expert LoRA | SFT |
mixtral_native_expert_lora_sft.yml | Native MoE Expert LoRA | SFT |
v0.1.0 — 요구 사항: Python ≥ 3.9, PyTorch ≥ 2.1, Transformers ≥ 5.5.
5개 언어 로그 출력 — 협업 시 팀 전원이 같은 도구를 자국어로 사용할 수 있습니다.