让 Dense 模型以 MoE 风格训练的 LLM 微调工具
面向研究的 LLM 微调框架,可向 HuggingFace 模型注入 LoRA,并把 Dense 模型作为 Mixture-of-LoRAs 或 MoE Expert LoRA 结构来训练。在常见的 Dense SFT 流程之上,EulerForge 叠加了 Dense → MoE 转换与阶段调度,使专家特化、路由与 MoE 稳定性能在有限的 GPU 预算下以可复现的方式进行研究——无需改写模型代码。一份 YAML 预设就可贯通 SFT → DPO/ORPO → RM → PPO 全流程。
相较于做一款通用的 SFT 框架,我们把重心放在:以标准化的配置来表达 MoE 研究流程。
让 EulerForge 适合 MoE 研究的四个支柱
通过mixture_lora与moe_expert_lora注入,把任意稠密Qwen / Llama / Gemma转换为MoE风格的可训练模型,无需改写模型代码。
按阶段解冻(router → LoRA → base FFN),让大模型微调稳定且可复现。
SFT → DPO / ORPO → RM → PPO一条命令序列完成,阶段之间自动检测base模型与LoRA配置。
在烧掉哪怕一个GPU周期之前捕捉配置错误与MoE路由崩溃风险。
从同一个稠密骨干出发,用一行YAML决定做哪种MoE实验。
dense_lora经典LoRA适配器——最快的领域适配路径,适合作为MoE变体的基线对照。
mixture_lora路由器 + 多个LoRA专家,把稠密模型改造为token级多任务路由结构。
moe_expert_lora把FFN替换为MoE块,并为每个专家注入LoRA(DeepSeek风格),将稠密骨干转为完整MoE训练对象。
native_moe_expert_lora向Mixtral、Gemma 4 MoE等原生MoE模型的每个专家注入LoRA以高效微调。
SFT → DPO / ORPO → RM → PPO。每一阶段的检查点自动衔接下一阶段。
| 训练类型 | 说明 |
|---|---|
| SFT | Supervised Fine-Tuning——基础对齐阶段 |
| DPO | Direct Preference Optimization——无需参考模型,显存友好 |
| ORPO | Odds Ratio Preference Optimization——单次forward对齐 |
| RM | Reward Model(Bradley-Terry) |
| PPO | Proximal Policy Optimization——RLHF最终阶段 |
EulerForge自动完成把HuggingFace稠密模型变为MoE训练对象的每一步。
按时间阶段控制谁可训练——大模型微调因此变得稳定可复现。
训练早期只训练路由器,稳定token到专家的分布。缺少该阶段极易出现路由/专家崩溃。
路由器稳定后只训练各专家的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参考目前仅提供韩语与英语版本。以下链接将跳转到英文页面。
5种语言的日志输出——团队成员可用各自语言使用同一工具。