Dense モデルを MoE のように訓練する LLM ファインチューニングツール
Dense → MoE 変換 + LoRA パイプライン。 HuggingFace モデルに LoRA を注入し、Dense モデルを Mixture-of-LoRAs・MoE Expert LoRA 構造へ変換して訓練できる、研究志向のファインチューニングフレームワークです。
小さな GPU 予算でも MoE 実験を再現可能に。 フェーズスケジューリングで router → LoRA → base FFN を段階的に unfreeze し、エキスパート特化・ルーティング・MoE 安定性をコンシューマ GPU 一枚でも扱えます。
コード変更なし、YAML プリセット一枚でフルパイプライン。 SFT → DPO/ORPO → RM → PPO までを一連のシーケンスで — 実験はコード変更ではなく YAML 設定で管理します。
大規模 Mixture-of-Experts モデルがなぜ性能が高いか — 必要な専門領域だけパラメータを活性化するから。EulerForge は手元の Dense モデルをその方向に訓練します。
EulerForge を MoE 研究に適した形にしている 4 本の柱
mixture_lora / moe_expert_lora インジェクションにより、任意の dense Qwen / Llama / Gemma を MoE スタイルの学習可能モデルへ変換します。モデルコードの書き換えは不要です。
router → LoRA → base FFN の順で段階的に unfreeze し、大規模モデルのファインチューニングを安定かつ再現可能にします。
SFT → DPO / ORPO → RM → PPO を 1 本のコマンド列で。段階間で base モデルと LoRA 設定を自動検出します。
GPU サイクルを 1 つも消費する前に、設定エラーや MoE ルーター崩壊のリスクを検出します。高価な学習失敗を未然に防ぎます。
同じ dense バックボーンから出発し、どのような MoE 実験を行うかを YAML 1 行で決定します。
dense_lora古典的な LoRA アダプター —— 最速のドメイン適応経路。MoE バリアントのベースライン対照として最適です。
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 最終段階 |
EulerForgeは、HuggingFace denseモデルをMoE学習対象に変えるために必要なすべての段階を自動化します。
時間に沿って「誰が学習可能か」を段階化——大規模モデルのファインチューニングが安定かつ再現可能になります。
学習初期はルーターのみを学習し、トークン→エキスパート分布を安定化させます。この段階がないとルーター/エキスパート崩壊が頻発します。
ルーターが安定した後はエキスパート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。
ステップバイステップのガイドと全CLIオプション
注:チュートリアルとCLIリファレンスは現在、韓国語と英語版のみ提供しています。以下のリンクは英語版に移動します。
5言語のログ出力——協働するチーム全員が各自の言語で同じツールを利用できます。