Dense モデルを MoE 風に訓練できる LLM ファインチューニングツール
HuggingFace モデルに LoRA を注入し、Dense モデルを Mixture-of-LoRAs または MoE Expert LoRA 構造として訓練できる、研究志向のファインチューニングフレームワークです。よく知られた Dense SFT のワークフローに、Dense → MoE 変換とフェーズスケジューリングを重ねる形で設計しました。エキスパート特化・ルーティング・MoE 安定性を、限られた GPU 予算でも再現可能な形で研究できます。モデルコードを書き換えることなく、1 枚の YAML プリセットで SFT → DPO/ORPO → RM → PPO をつなげます。
汎用的な SFT フレームワークを目指すよりも、MoE の研究フローを標準化された設定として表現することに重心を置いて設計しました。
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言語のログ出力——協働するチーム全員が各自の言語で同じツールを利用できます。