如何从零打造一个极简的DeepSeek-R1大模型

如何从零打造一个极简的DeepSeek-R1大模型

本文旨在记录和分享如何依据开源项目minimind,从零开始完整地训练一个极简的大语言模型。minimind这个开源项目的目标是以极低的成本(约3块钱)和极短的时间(2小时)训练出一个仅有25.8M的超小型语言模型MiniMind。

这篇文章将重点关注整个大模型训练的完整流程,而非追求模型的极致性能。

一、 准备工作:高性价比的算力平台

要训练模型,首先需要GPU算力。本次实践选用的是GpuGeek算力市场。

• 选择GPU:平台提供了多种GPU选项,其中 RTX-A5000-24G 显卡性价比极高。它的单精度浮点性能达到27.8 TFLOPS,显存带宽768 GB/s,性能约为RTX 3090的80%,但价格却便宜很多,非常适合个人开发者和算法工程师进行模型迭代。

• 创建实例:在GpuGeek官网注册并完成实名认证后,进入控制台创建一个GPU实例。选择RTX-A5000-24G显卡,系统会自动创建容器实例,并支持SSH、JupyterLab等多种登录方式。

• 扩展数据盘:为了确保后续数据集和模型权重的存储空间充足,可以根据需要扩展数据盘。例如,扩展100GB的成本非常低廉。

二、 数据集准备:MiniMind开源数据集

minimind项目非常贴心地开源了预训练、微调和强化学习所需的全部数据集,省去了繁琐的数据预处理工作。

• 数据集简介:

◦ pretrain_hq.jsonl: 用于模型预训练阶段。

◦ sft_mini_512.jsonl: 用于SFT(监督微调)阶段,整合了匠数科技SFT数据和Qwen2.5蒸馏数据。

◦ dpo.jsonl: 用于RLHF(强化学习)阶段。

◦ r1_mix_1024.jsonl: DeepSeek-R1-1.5B蒸馏数据,这是训练推理模型的关键。

你可以打开这些数据集的具体内容,以便领会每个训练阶段的数据集不同格式。

• 下载数据集:

  1. 安装modelscope库:pip install modelscope。

  2. 进入数据盘目录(如 /gz-data),使用以下命令下载完整数据集:

  3. GpuGeek平台的网络速度很快,可以有效避免下载焦虑。

下面的流程图让我们对每个数据集在训练阶段的作用更加清晰:

三、 训练流程:三步构建大模型

首先,需要下载minimind项目代码,并准备好运行环境。

  1. 克隆项目代码:

  2. 这里使用了ghfast.top来加速GitHub的下载。

  3. 安装依赖:

  4. 注意:为了避免安装失败,建议去掉requirements.txt文件中各个库的版本号限制。

  5. 移动数据集:将下载好的数据集文件移动到项目代码的dataset目录下。

接下来,就可以按照大模型训练的经典三阶段流程开始训练了。所有训练脚本都位于trainer目录下。

第一阶段:预训练 (Pre-training) - 学知识

此阶段让模型学习语言的基本规律和世界知识。

执行后会得到预训练权重文件 pretrain_*.pth。

第二阶段:指令微调 (SFT) - 学对话

此阶段教模型理解并遵循人类的指令,进行对。

执行后会得到全参数微调后的权重文件 full_sft_*.pth。

第三阶段:强化学习 (RLHF) - 学偏好

通过DPO(Direct Preference Optimization)算法,让模型的回答更符合人类的偏好。

四、 核心技巧:训练符合特定格式的推理模型

为了让模型能像DeepSeek-R1那样生成带有和标签的回复,需要进行蒸馏训练。

• 回复模板:推理模型R1的回复遵循以下模板:

• 这个模板通过在强化学习阶段设置规则奖励函数来约束模型。

• 损失惩罚技巧:实验发现,仅通过SFT式的蒸馏,模型很难稳定地遵循上述模板。minimind项目采用了一个小技巧:在训练脚本 train_distill_reason.py 中,对标记位置的token(如)增加损失惩罚。通过提高这些关键token的损失权重,强制模型学会生成指定的格式。

下面是类似R1的训练数据格式:

在训练数据里有和两个部分,训练之后,我们可以在out目录得到四个模型权重:

五、 测试与总结

训练完成后,out目录下会生成四个模型权重。可以使用eval_model.py脚本来测试模型的效果。尽管由于参数量小,模型的回答可能比较简短,但它已经能够成功回答问题,完整地走完了整个训练流程。

通过这个项目,我们不仅可以动手实践大模型的完整训练过程,还能深入理解其背后的源码实现,例如其基于Transformer并包含MoE(混合专家系统)功能的MiniMind模型架构。

建议对源码进行深入阅读,以获得更深刻的理解。

相关推荐
蓝速科技16 分钟前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
数数科技的数据干货33 分钟前
把数据工作交给Agent,从 AE-CLI 开始
人工智能
stormzhangV37 分钟前
别吹 Jev 了
人工智能·aigc·ai编程
MobotStone1 小时前
AI 现状:哪怕只回答一个“是”或“否”,大模型背后的“算力”也一点没省
人工智能
是翎1 小时前
深度长文|2026产品经理AI实践手册
人工智能·深度学习·学习·自然语言处理·数据挖掘
AlbertZein1 小时前
不只看跑分,Step 5 Preview 两个真实编程任务实测
人工智能·ai编程
kyriewen1 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
AIGC小尼1 小时前
本地AI漫剧部署|低配8G显存实战部署MiniMax-H3|4步极速采样+低显存优化完整方案(可角色替换/视频魔改)
人工智能·stable diffusion·comfyui·ai漫剧
宿州派大星2 小时前
[NLP实战] 基于PyTorch实现N-gram词嵌入模型:输入4个词预测第5个词
人工智能·pytorch·深度学习·nlp
赛博仓鼠2 小时前
秋叶ComfyUI 3.2整合包实测:Python 3.13+Torch 2.13全栈升级,一键跑通MiniMax H3(附完整部署)
ai·ai作画·aigc·音视频