type
Post
status
Published
date
Mar 6, 2025
slug
deepseek-model-reproduction-learning-notes
summary
我用学习者视角拆解 DeepSeek 模型复现的路线:先明确目标,再从数据、训练方法、评估和成本边界逐步缩小范围。
tags
LLM
训练
PEFT
DATA
category
LLM
icon
password
这篇是我思考“DeepSeek 模型复现”时整理的路线图。严格来说,我不认为个人或小团队应该一上来就复现完整大模型;更现实的做法,是先复现其中一个能力点或训练思想。
📝 主旨内容
💡 一、我会先定义复现目标
复现不是把论文标题照搬一遍,而是明确我到底想验证什么。
如果目标是“复现 DeepSeek”,这个范围太大了。模型结构、预训练数据、训练集群、强化学习、蒸馏、推理优化,每一块都可以单独成为一个项目。作为学习者,我会先把目标缩小到可验证的问题。
比如:
- 我想理解 MoE 路由,就只做一个小规模 MoE 实验
- 我想理解推理能力,就复现一个数学或代码任务上的强化学习流程
- 我想理解蒸馏,就用开源模型做小规模 teacher-student 实验
- 我想理解 API 使用效果,就做任务集对比评测
范围越清楚,复现越有价值。否则很容易变成下载模型、跑几个 demo,然后误以为自己理解了。
🔍 二、数据比我想象中更关键
我以前容易把注意力放在模型结构上,但越学习大模型训练,越发现数据才是最难的部分。高质量数据决定了模型能学到什么,数据清洗决定了训练是否稳定,评测集决定了我是否真的知道模型变好了。
如果我做 DeepSeek 相关复现,我会先准备三类数据:
- 基础任务数据:让模型具备稳定的指令跟随能力
- 推理过程数据:包含中间步骤、错误修正和多步思考
- 评测数据:用于比较不同训练策略的真实收益
数据不需要一开始很大,但必须干净、可追踪、能复现实验结果。
🛠️ 三、训练路线要从小开始
小实验的价值,是让我看清变量之间的关系。
我不会直接追求“大”。更合理的顺序是:
- 选一个小模型作为基座
- 先做 SFT,确认数据格式和训练流程正确
- 再做 LoRA / QLoRA,控制训练成本
- 最后尝试强化学习或偏好优化
- 用固定评测集比较每一步是否真的带来提升
这个过程看起来慢,但它能避免一个常见问题:训练跑完了,却不知道效果变化来自数据、参数、学习率,还是评测随机性。
🧩 四、我会特别小心“看起来复现了”
我认为复现时最容易踩的坑
- 只跑通 demo,却没有系统评测。
- 只比较主观案例,没有固定 benchmark。
- 训练集和测试集泄漏。
- 忽略成本,导致方案不可持续。
- 把蒸馏效果误认为原始训练能力。
对我来说,复现的价值不在于做出一个名字很像 DeepSeek 的模型,而是通过小实验理解:为什么这个方法有效,边界在哪里,换到我的任务上是否仍然有效。
🤗 总结归纳
如果我要复现 DeepSeek,我会把它拆成几个可学习的小目标:MoE、推理训练、蒸馏、评测和部署。每次只验证一个问题,保留实验记录,再逐步扩大范围。
作为学习者,我现在更相信“小而真的复现”。一个清楚的小实验,比一个模糊的大项目更能让我建立真实理解。
📎 参考文章
- DeepSeek-V3 Technical Report:https://arxiv.org/abs/2412.19437
- DeepSeek-R1:https://arxiv.org/abs/2501.12948
- Hugging Face PEFT 文档:https://huggingface.co/docs/peft
我后面如果真的做复现实验,会先从 LoRA 微调和小规模推理数据集开始,而不是一开始就追求完整训练链路。
- 作者:老王TechTalk
- 链接:https://www.illusionjourney.com/article/deepseek-model-reproduction-learning-notes
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章





