Deepseek介绍之一:V3的训练过程

我最近在香港城市大学内部交流时,作了一个Deepseek的介绍。这里做一个分享。

主要探讨三个问题。

一,为什么Deepseek的效果这么好?这主要源于他们的训练过程。

二,为什么他们能够用别人二十分之一的成本来训练这么大的一个模型。这部分主要介绍他们的一些关键技术。

三,简单探讨他们对工业界有什么影响、以及一些学术角度考虑的研究问题。

因为篇幅限制,分三篇文章发布。这篇是关于Deepseek V3是如何训练的,第二篇是R1的训练过程,第三篇是一些关键技术和Deepseek的影响。

Deepseek v3技术报告中介绍的训练过程详细、但有些复杂。我基于技术报告梳理了上面的流程图。圆柱体表示训练数据,菱形表示训练的过程,方形表示模型。

一 训练主线的三个阶段:预训练 --> 扩展提示词窗口 --> 后训练

下表展示了每个阶段所用的GPU Hours。95%的训练时间和成本是在第一个阶段:预训练。后训练只有5千GPU小时,按他们宣传的2k GPU计算,大约只有2个半小时。后面会介绍,就是这2.5小时,对V3惊艳的效果起到了决定性作用。

二. 预训练

V3预训练使用的语料大约15T的token。这个大约是ChatGPT 175B预训练预料的数十倍,但跟Llama2接近,基本上是当前这个规模的大模型常见的语料规模。

但与其他人不一样的是,他们在语料中增强了数学和编程的样本比例。这个对他们的能力是对应的。

三. 下文扩展

这一个阶段,他们用了业界的一个技术叫YaRN,他们预训练用的是4K的context,然后通过两次扩展训练,经32k、最后扩展到128k。

四. V3-Base

预训练和上下文扩展占用了大约99.8%的训练时间,得到的模型叫V3-Base。这个模型的性能如何呢?如下表所示。

V3-Base与阿里巴巴的Qwen(通义)和Facebook的llama3的Base模型进行了对比。这些都是开源的模型,而且是他们的Base版本。

相比其他模型,V3-Base主要是在code和math性能更好。这与他们在语料中增加了math和code的比例相关的。也就是说:V3-Base的性能主要来自于数据、而不是方法。

这个表格中另一个有意思的信息是:阿里的通义模型Qwen性能挺好的。他们只有Deepseek-V3-Base差不多1/10的参数量:72B,而性能是差不多的,个别指标甚至比Deepseek V3-Base更好。Deepseek 强调他们只激活了37B,这个参数量比qwen小一半。但我认为总的参数量也不是没有意义的。也许总的参数量有点像人的memeory记忆总量,也是很重要的一个因素。而且在部署的时候,这么多的参数量也需要更多的GPU memory容量,部署代价也是更高。“只激活了37B”的技术含义,在下次介绍Deepseek关键技术的时候会解释。

为什么不跟闭源的模型进行对比呢?因为闭源模型只能通过API调用。通常大家使用的是厂家经过一次后训练微调的,比如指令微调instructedfinetuning。这个阶段通常是为了让大模型输出政治正确的文字。Base模型只是一个中间过程的产物,闭源模型通常没有提供服务接口。

五. 后训练

介绍完V3-Base,我们现在来看后训练过程。如前面所说,这个阶段只花了0.2%的训练时间、5k GPU小时、平均到每个GPU只用了2个半小时。但是功夫在训练之外、在有监督微调(SFT)的数据准备上。

他们在这个阶段用了大约1.5M样本,与之对比的是Llama2用了大约1M人工
数据。Llama2这个阶段主要是为了模型的对齐alignment,也就是防止模型生成有害、政治不正确的输出。而V3的SFT目的不太一样。他们用了两个部分的数据。

一部分SFT数据是推理无关(non-reasoning)的,目的是与alignment一致的,也是为了防止生成有害数据。这部分数据,先由Deepseek之前的一个大模型Deepseek V2.5生成,然后人工进行检验、保障数据的质量。

另一个部分的SFT数据是推理数据。这部分有一个比较复杂的过程,用到了他们另一个为推理专门训练的模型:R1。R1的训练过程在下篇文章中介绍。

五. 推理reasnoning的SFT数据如何生成

推理reasnoning的数据又细分了几个领域。技术报告提到的是math、code和general reasoning,比如一些智力题。

每个领域需要先训练一个专家模型expert model。每个domain expert model的数据,一部分是R1生成的特定domain的数据,然后他们也有一部分是格式化的推理数据,可能是人工生成或者人工处理过的高质量数据。

这些数据经过2个阶段的到领域特定的专家模型:sft和强化学习,这个过程,在后面介绍R1的训练过程时会详细介绍。

那么R1提供数据这件事,对模型的贡献有多大呢?Deepseek在v2.5的模型上做了一个实验,比较了Deepseek V2.5 Base与使用R1生成的数据进行微调的模型进行对比,结果如下:

可以看到在code和math两个任务上,使用R1的数据,可以获得显著的性能提升。这个实验证明了R1模型蒸馏对v3模型的重要性。

这里顺便介绍一个术语:蒸馏 distillation:用模型A的输出来作为样本训练模型B,这个过程就叫蒸馏。模型A是teacher,模型B是student。

六. V3的性能

最后是V3的性能对比。基本上达到GPT-4o等最先进的闭源模型的性能。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

在这里插入图片描述

### DeepSeek V3 训练教程、配置和常见问题 #### 1. 深度学习环境准备 为了顺利训练 DeepSeek V3,需要构建一个高性能的深度学习环境。这通常涉及安装必要的依赖库并设置合适的硬件资源。 - **Python 版本**: 推荐使用 Python 3.8 或更高版本。 - **CUDA 驱动程序**: 安装 CUDA Toolkit 及 cuDNN 库以支持 GPU 加速运算。 - **PyTorch/Transformers**: 使用 PyTorch 和 Hugging Face Transformers 库来加载预处理数据集与微调模型参数[^1]。 ```bash conda create --name deepseek python=3.9 conda activate deepseek pip install torch torchvision torchaudio cudatoolkit=11.7 -c pytorch pip install transformers datasets evaluate accelerate bitsandbytes ``` #### 2. 数据收集与预处理 DeepSeek V3 的高效训练离不开高质量的数据源。官方文档指出,在超过 14.8 太字节 (TB) 的标注语料上进行了大规模预训练过程[^2]。因此,建议采用相似规模且领域匹配良好的公开可用文本资料作为输入素材之一。 对于特定应用场景下的迁移学习任务,则应额外补充针对性强的小样本专有数据集用于后续精调阶段。这些原始文件可能来自网页抓取、社交媒体平台API接口或是企业内部积累的知识资产等渠道获得;之后再经过清洗过滤、分词切句等一系列操作转换成适合喂给神经网络的形式。 #### 3. 超参调整策略 超参数的选择直接影响到最终收敛效果的好坏程度。基于已有研究发现,以下几点可供参考: - 学习率初始设定为 $5e^{-5}$ 左右较为适宜; - 批量大小依据实际设备内存容量灵活变动,一般介于 8 至 32 之间; - Epoch 数目不宜过多也不宜过少,具体视项目需求而定,可先尝试跑满三个周期观察变化趋势后再做决定; - AdamW 是一种广泛认可优化器选项,它能较好平衡泛化能力和加速特性之间的关系[^3]。 ```python from transformers import Trainer, TrainingArguments training_args = TrainingArguments( output_dir='./results', num_train_epochs=3, per_device_train_batch_size=16, per_device_eval_batch_size=16, warmup_steps=500, weight_decay=0.01, logging_dir='./logs', ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=val_dataset ) ``` #### 4. 常见错误排查指南 当遇到难以解释的技术难题时,可以从以下几个方面入手寻找解决方案: - 如果显存溢出报错,考虑降低 batch size 参数值或者启用梯度累积机制; - 对抗性样例导致损失函数不降反升现象,适当减慢 learning rate 步伐有助于稳定迭代路径; - 测试集准确率远低于验证集水平表明可能存在严重的过拟合风险,此时引入正则项惩罚因子或将 dropout 层加入架构设计之中不失为良策; - 当前框架版本兼容性冲突引发各种莫名奇妙状况发生频率较高,务必保持各组件处于最新状态以便及时修复潜在漏洞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值