跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Mini Qwen 1B 大模型从头训练全流程经验总结

总结了 Mini Qwen 1B 大模型的从头训练经验,涵盖预训练、SFT 微调和 DPO 偏好对齐三个阶段。实验基于 6 张 H800 显卡,使用 Accelerate、DeepSpeed 和 TRL 等工具。预训练阶段发现数据多样性不足会导致复读现象,Instruct 版本相对较好。SFT 阶段通过增加 System Prompt 提升了角色扮演泛化能力。DPO 阶段因数据规模和质量限制,性能提升不明显。文章提供了详细的超参数配置表及针对常见问题的排查建议,为小模型训练提供参考。

乱七八糟发布于 2025/2/6更新于 2026/10/23106 浏览
Mini Qwen 1B 大模型从头训练全流程经验总结

Mini Qwen 1B 大模型从头训练全流程经验总结

本文分享了基于 Mini Qwen 1B 大模型进行预训练、SFT 微调及 DPO 偏好对齐的完整实践经验。项目开源地址:https://github.com/qiufengqijun/mini_qwen

训练配置概览

本次实验在 6 张 H800 GPU 上进行,主要参数配置如下:

阶段数据量训练时间 (h)EpochBatch Size学习率序列长度训练策略
预训练16B token25111521e-41024zero-2
SFT9M 条43311521e-51024zero-2
DPO60K 条133845e-71024zero-2

技术栈与工具

全部流程采用以下工具链进行分布式训练与加速:

  • 分布式框架:Accelerate + DeepSpeed
  • 注意力机制:Flash Attention 2(显著提升训练速度)
  • 预训练:Hugging Face Trainer(参考 LLaMA-Factory 实现序列打包)
  • SFT 微调:TRL 库中的 SFTTrainer
  • DPO 对齐:TRL 库中的 DPOTrainer

一、预训练阶段 (Pre-training)

数据处理

预训练使用了 16B token 的数据集。在数据预处理中,采用了序列打包(Sequence Packing)技术以提高显存利用率。

遇到的问题与分析

  1. 复读现象:

    • 即使更改了序列打包方式,模型仍出现复读现象。
    • 对比官方 Qwen2.5-0.5B 和 Qwen2.5-1.5B 发现复读严重程度近似,但 Instruct 版本较轻。
    • 原因推测:预训练数据多样性不足,标点符号过多导致模型误判其重要性;Instruct 版本因包含人类偏好的格式化结构,更容易理解用户问题从而减轻复读。
  • 数据质量:

    • 建议检查数据的多样性,避免特定格式或标点符号过度集中。
  • 二、SFT 微调阶段 (Supervised Fine-Tuning)

    训练效果

    • 复读缓解:随着 Epoch 增加,复读现象有所减轻,但未完全消除。
    • 知识注入:模型在微调阶段不仅学习了对话格式,还掌握了新知识,能够识别自身身份。

    最佳实践建议

    • System Prompt:除了 user 和 assistant 信息,必须添加 system 信息以设定角色。
      • 建议 50% 的数据使用统一 system 信息。
      • 剩余部分按类别添加不同 system 信息,有助于提升角色扮演的泛化能力。

    三、DPO 偏好对齐阶段 (Direct Preference Optimization)

    现状分析

    • 复读现象:依然存在,需进一步优化。
    • 性能表现:模型性能并未明显提升。
    • 原因推测:可能是数据规模(60K 条)、数据质量或优化技巧未达到 DPO 训练的要求。DPO 对高质量对比数据要求较高,若数据不足以支撑偏好学习,可能导致收益不明显。

    四、工程化与调优建议

    1. 模型保存策略

    在 TrainingArguments 中可灵活配置保存逻辑:

    • 仅保存最终模型
    • 仅保存特定 checkpoint
    • 按 Epoch 定期保存

    2. 常见问题排查

    • Loss 不下降:检查学习率是否过大,或数据清洗是否彻底。
    • 显存溢出:尝试减小 batch_size 或启用更激进的 ZeRO 优化级别(如 ZeRO-3)。
    • 生成质量差:检查温度系数(Temperature)和 Top-P 采样设置,或在 SFT 阶段增加更多高质量指令数据。

    3. 环境依赖

    确保安装兼容版本的 PyTorch、DeepSpeed 和 TRL 库。推荐使用 Docker 容器管理依赖以避免版本冲突。

    五、总结

    本次训练验证了 Mini Qwen 1B 在有限算力下的可行性。虽然存在复读现象且 DPO 效果未达预期,但通过合理的系统提示词设计和数据配比,模型已具备基础对话能力。后续工作应聚焦于提升数据多样性及优化 DPO 数据集质量。

    目录

    1. Mini Qwen 1B 大模型从头训练全流程经验总结
    2. 训练配置概览
    3. 技术栈与工具
    4. 一、预训练阶段 (Pre-training)
    5. 数据处理
    6. 遇到的问题与分析
    7. 二、SFT 微调阶段 (Supervised Fine-Tuning)
    8. 训练效果
    9. 最佳实践建议
    10. 三、DPO 偏好对齐阶段 (Direct Preference Optimization)
    11. 现状分析
    12. 四、工程化与调优建议
    13. 1. 模型保存策略
    14. 2. 常见问题排查
    15. 3. 环境依赖
    16. 五、总结

    更多推荐文章

    查看全部
    • Whisper 模型版本及下载链接
    • PDF 压缩工具:纯前端开源本地压缩方案及实现思路
    • Kubernetes 集群 CPU 使用率监控与告警设置方案
    • OpenAI 指控 DeepSeek 非法蒸馏,字节发布 Seedance 2.0,Java 26 预览版上线
    • 百川 2-13B-Chat WebUI v1.0 故障排查手册:6 大常见问题解决
    • Lit 与 Alpine.js:轻量级前端开发的两种路径
    • C++原子操作:从底层原理到实战应用
    • Spring AI 使用 MySQL 持久化 ChatMemory 实战
    • Windows 部署 OpenClaw:本地 AI 助手搭建与公网访问指南
    • Stable Diffusion 基础:ControlNet 人体姿势控制详解
    • 四大 AI 编程工具深度对比:TRAE、Qoder、Cursor 与 Copilot 选型指南
    • Mac Mini M4 本地 AI 模型实战:从 Ollama 到 Stable Diffusion 配置指南
    • Python 编程从入门到精通:语法、数据结构与高级应用指南
    • Effective C++ 读书笔记:C++ 编程习惯与最佳实践
    • 边缘计算实战:基于 LLaMA-Factory 微调模型部署至 Jetson
    • IDEA 配置 Tomcat 服务器详细教程
    • 滑动窗口算法:找到字符串中所有字母异位词
    • PCL 点云处理算法与功能索引(C++ 版)
    • Java 垃圾回收机制详解
    • Flutter serial 库在鸿蒙系统的适配指南与串口通信实战

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online