打造会聊天的Moxin-LLM:Tülu 3 SFT + DPO后训练完整路径详解

📅 2026/8/25 17:32:05
打造会聊天的Moxin-LLM:Tülu 3 SFT + DPO后训练完整路径详解
打造会聊天的Moxin-LLMTülu 3 SFT DPO后训练完整路径详解【免费下载链接】Moxin-LLMMoxin is a family of fully open-source and reproducible LLMs项目地址: https://gitcode.com/gh_mirrors/mo/Moxin-LLMMoxin-LLM 是一套完全开源且可复现的大语言模型LLM家族。本文带你走一遍它的后训练全流程用 Tülu 3 数据先做 SFT监督微调、再做 DPO直接偏好优化把只会续写的 Base 模型一步步打磨成会聊天的 Instruct 模型并附上关键参数、评测结果和运行脚本位置。1️⃣ 认识 Moxin-LLM一个全透明的开源模型家族市面上很多开源模型只放权重、不放数据和训练脚本。Moxin-LLM 反其道而行训练数据集、训练代码、模型权重全部公开方便你复现、魔改、做研究。项目文档在 README.md 中按四个方向组织方向说明入口预训练从头训练 Base 模型train/后训练Tülu 3 SFT DPO以及 GRPO 强化学习finetune/推理部署PyTorch 推理与 Llama.cpp 量化部署inference/、llamacpp/评测基准测试与性能评估benchmark/最终产出的模型家族包括Moxin-7B-Base底座、Moxin-7B-Instruct会聊天本文主角、Moxin-7B-Reasoning推理增强、Moxin-7B-VLM多模态。2️⃣ 后训练路线图SFT → DPO 两步走Moxin 团队遵循 Tülu 3 的后训练范式整条流水线非常清晰Moxin-7B-Base │ ① SFTTülu 3 SFT Mixture 数据集训练 2 个 epoch ▼ Moxin-7B-SFT学会对话格式与指令跟随 │ ② DPOTülu 3 8B Preference Mixture 数据集训练 1 个 epoch ▼ Moxin-7B-DPO Moxin-7B-Instruct对齐人类偏好更聪明两步都基于 AllenAI 的 open-instruct 训练框架完整说明见 finetune/README.md。2.1 第一步SFT 教会模型怎么聊天SFT 用高质量指令-回答对训练模型让它从补全文变成遵循指令。核心信息数据集Tülu 3 SFT Mixture官方混配比脚本中以1.0比例混入训练配置对齐 Tülu 3 8B SFT 的默认配置脚本位置finetune/instruct_finetune/sft_finetune.sh脚本核心参数一览参数取值作用model_name_or_pathmoxin-org/moxin-llm-7b从 Base 模型起步dataset_mixer_listallenai/tulu-3-sft-mixture 1.0指定 SFT 数据num_train_epochs2训练 2 轮learning_rate5e-06较小的全参微调学习率max_seq_length4096最大序列长度warmup_ratio0.03预热比例output_diroutput/sft_7bSFT 模型输出目录DeepSpeedstage3_no_offloading多机多卡并行启动方式脚本中已写好只需按自己的机器数修改NUM_MACHINES、NUM_PROCESSES等accelerate launch \ --mixed_precision bf16 \ --use_deepspeed \ --deepspeed_config_file configs/ds_configs/stage3_no_offloading_accelerate.conf \ open_instruct/finetune.py \ --model_name_or_path moxin-org/moxin-llm-7b \ --dataset_mixer_list allenai/tulu-3-sft-mixture 1.0 \ --num_train_epochs 2 \ --learning_rate 5e-06 \ --max_seq_length 4096 \ --output_dir output/sft_7b 注意示例配置为8 台机器 × 共 64 个进程、bf16 混合精度并开启 FlashAttention--use_flash_attn加速注意力计算。训练完成后SFT 模型保存在output/sft_7b。2.2 第二步DPO 让模型更懂人心SFT 模型能对话但回答质量参差不齐。DPODirect Preference Optimization用同一个问题下好回答 vs 差回答的偏好数据继续训练直接优化模型偏好无需再训练奖励模型简单高效。数据集Tülu 3 8B Preference Mixture偏好数据脚本位置finetune/instruct_finetune/dpo_finetune.shDPO 阶段的关键参数参数取值说明model_name_or_pathoutput/sft_7b在 SFT 模型上继续训dataset_mixer_listallenai/llama-3.1-tulu-3-8b-preference-mixture 1.0偏好数据集dpo_loss_typedpo_norm归一化 DPO 损失dpo_beta5偏好优化强度系数learning_rate5e-07比 SFT 再低一个量级稳住不跑偏num_train_epochs1只训 1 轮max_seq_length2048偏好对较短降低序列长度gradient_accumulation_steps16梯度累积等效更大 batchoutput_diroutput/dpo_7bDPO 模型输出目录accelerate launch \ --mixed_precision bf16 \ --use_deepspeed \ --deepspeed_config_file configs/ds_configs/stage3_no_offloading_accelerate.conf \ open_instruct/dpo_tune.py \ --model_name_or_path output/sft_7b \ --dataset_mixer_list allenai/llama-3.1-tulu-3-8b-preference-mixture 1.0 \ --dpo_loss_type dpo_norm \ --dpo_beta 5 \ --num_train_epochs 1 \ --output_dir output/dpo_7b DPO 在单节点 8 卡即可运行配 DeepSpeed Stage3 梯度检查点省显存。训出的output/dpo_7b就是最终会聊天的Moxin-7B-Instruct。3️⃣ 效果对比后训练到底提升了多少项目用 lm-evaluation-harness 评测了 SFT 前后效果多轮 shot 设定摘自 README.md 的官方数据模型ARC-CHellaSwagMMLUWinogrande平均分Qwen2.5 7B Instruct66.7281.5471.374.5973.54Moxin-7B-SFT60.1183.4360.5677.5670.42Moxin-7B-DPOInstruct64.7687.1958.3676.3271.66可以看到DPO 之后 ARC-C 提升约 4.6 分、HellaSwag 提升 3.7 分平均分超过纯 SFT 模型说明偏好优化确实让回答质量更上一层楼。零样本评测中DPO 模型平均分 75.92甚至超过同量级的 Mistral 8B Instruct 与 Llama3.1 8B Instruct。4️⃣ 跑起来三分钟体验你的聊天模型后训练完成后用项目自带的推理脚本即可对话。先按 inference/README.md 安装依赖conda create -n moxin-llm python3.10 -y conda activate moxin-llm pip install -r inference/requirements.txt然后运行演示脚本inference/inference-Instruct.py它用 HuggingFace pipeline 加载 Instruct 模型并支持 system / user 多轮消息model_id moxin-org/Moxin-7B-Instruct pipeline transformers.pipeline( text-generation, modelmodel_id, model_kwargs{torch_dtype: torch.bfloat16}, device_mapauto, ) messages [ {role: system, content: You are a helpful AI assistant!}, {role: user, content: Can you explain the concept of regularization?}, ]它的对话模板chat template长这样SFT/DPO 训练数据正是按此格式组织|system| You are a helpful AI assistant! |user| How are you doing? |assistant| Thank you for asking! ...5️⃣ 进阶路线从会聊天到会推理聊完了想让 Moxin 学会做数学推理吗项目还准备了 GRPO 强化学习路线finetune/reason_finetune/train_7b.sh先用 OpenThoughts OpenR1-Math-220k 高质量推理数据对 Instruct 模型做一轮 SFT再用 DeepScaleR 框架以 GRPO 算法做强化学习配合 vLLM 加速 rollout。按官方评测该路线训出的 Moxin-7B-RL 在 MATH 500 上达到 68 分超过 Llama-3.1-70B-Instruct。6️⃣ 总结一条可复现的后训练路径阶段数据方法脚本产物① SFTTülu 3 SFT Mixture监督微调 ×2 epochsfinetune/instruct_finetune/sft_finetune.shoutput/sft_7b② DPOTülu 3 8B Preference Mixture偏好优化 ×1 epochfinetune/instruct_finetune/dpo_finetune.shoutput/dpo_7bInstruct③可选GRPO推理 SFT 数据 强化学习GRPO / DeepScaleRfinetune/reason_finetune/train_7b.shReasoning 模型三步全部脚本、数据与配置公开想复现或改造都可以直接上手git clone https://gitcode.com/gh_mirrors/mo/Moxin-LLM从 Base 到会聊天、会推理Moxin-LLM 用数据 SFT DPO这条最经典的路线完整展示了开源大模型后训练的标准姿势。跟着finetune/目录里的脚本走一遍你就拥有了自己的对话大模型。【免费下载链接】Moxin-LLMMoxin is a family of fully open-source and reproducible LLMs项目地址: https://gitcode.com/gh_mirrors/mo/Moxin-LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考