当前位置: 首页 > news >正文

DeepSeek LLM(初代)阅读报告

概况

这个是deepseek发布的第一版模型对应的技术报告,模型发布于23年11月,本报告发布于24年1月。

模型有7B和67B两个版本。

虽然本报告中还没有用上后面V2/V3和R1中的关键技术例如MLA、MTP、GRPO,但是报告中已经指明了MoE、强化学习等未来的方向,并且在infra方面给了比较多的重视,这也将是后续训练成本低的关键。

模型结构

模型设计上遵循了Llama的结构,也就是RMSNorm+RoPE位置编码等特征,MLP表达式: ,MLP的维度是隐藏层维度的8/3。

在67B模型中,使用了GQA,下图可以看出,64个注意力头被分成了8组,每组的8个头共享相同的计算KV时的权重参数。

还有一点值得注意,67B模型的层数是95层,MLP的维度是隐藏层维度的8/3;而Llama-70B的模型层数是80层,MLP的维度是隐藏层维度的3.5倍。也就是说,deepseek LLM的结构更深更细。

训练

在训练过程中,没有使用余弦学习率调度器,而是使用多步学习率调度器:在2000个预热步骤之后达到最大学习率,处理80%的训练数据后学习率降到最大值的31.6%,处理90%后降低到10%

infra

  • 使用幻方自己研发的HAI-LLM训练框架来训练和评估大型语言模型。该框架集成了数据并行性、张量并行性、序列并行性和1F1B流水线并行性,正如在Megatron中所做的那样。
  • 我们还利用了flash attention技术来提高硬件利用率。
  • ZeRO-1被用来将 优化器状态 分割到 数据并行的各个 rank 上。
  • 我们还努力重叠计算和通信,以最小化额外的等待开销,包括最后一个微批处理的反向过程和ZeRO-1中的reduce-scatter操作,以及序列并行中的GEMM计算和all-gather/reduce-scatter。
  • 使用图融合和算子融合以加快训练速度,包括尽可能的LayerNorm、GEMM和Adam更新。为了提高模型训练的稳定性,我们在bf16精度下训练模型,但在fp32精度下累积梯度。
  • 在位交叉熵被用来减少GPU内存消耗,即:我们在交叉熵CUDA内核中实时将bf16日志转换为fp32精度(而不是预先在HBM中转换),计算相应的bf16梯度,并用其梯度覆盖日志。
  • 模型权重和优化器状态每5分钟异步保存一次,这意味着在偶尔的硬件或网络故障的最坏情况下,我们不会丢失超过5分钟的训练。这些临时模型检查点定期被清理,以避免消耗过多的存储空间。我们还支持从不同的3D并行配置恢复训练,以应对计算集群负载的动态变化。
  • 至于评估,在生成任务中使用vLLM,并在非生成任务中使用连续批处理,以避免手动批处理大小调整并减少标记填充。

可以看出deepseek在最初的训练过程中,就注重通过优化infra来降低训练成本。

scaling law

这一块的研究,就是为了从模型的规模找到该规模对应的最佳超参数,即最佳lr和最佳batch_size

讨论了scaling-law和超参数之间的关系,最主要的超参数就是learning_rate和batch_size。通过研究超参数与计算预算(模型规模*数据量)之间的关系,提出了超参数的scaling-law,以确保不同计算预算下的模型能达到最优性能。

模型规模并没有用模型参数量来衡量,而是用非嵌入的 FLOPs/token (M) ,也就是每个token计算时需要的浮点计算数。报告中使用了来表示模型规模,也就是每个token需要经历的transformer layer中的计算量,而没有把也计算在参数量中的词表嵌入考虑在内。

于是计算预算的公式由变成了,N是模型参数,M是上面的非嵌入的flops/token,D是数据量

超参数的scaling-law:

下边这个公式展示了两个超参数与模型规模之间的关系,下图表示了随着模型规模的变化,超参数也发生变化。

通过计算预算来选择合适的数据量和模型规模:

通常情况下,都是现有硬件和训练时长的预算,下一步才开始规划模型的规模和训练数据的规模。因此,需要通过给定的C来得到M和D,使得训练过程的损失最小。

具体是如何选择的:

  • 选择了不同的计算预算范围(例如从 1e17到 3e20),对每个计算预算 C,设计了多个不同的 模型规模(M)数据规模(D) 分配方案。
  • 通过 IsoFLOP 方法,可以为每种分配方案计算出相应的 泛化误差
  • 得到一堆泛化误差的数据点,这些数据点构成了一个 损失缩放曲线,表示随着计算预算的变化,模型的泛化误差如何变化。

对齐

人类偏好对齐分成SFT和DPO两步,共有150万条数据

SFT的数据集主要有分成有用信息和无害化两部分,其中有用信息有一般对话、数学和编程。

在微调过程中,有可能出现无限重复问题,也就是不停输出相同的内容。这一现象会随着SFT中数学内容比例增加而提升,这是因为数学中偶尔包含推理中的相似模式。为了解决这一问题,使用了两阶段SFT和DPO来减少重复。

两阶段SFT,第一阶段涉及使用所有可用数据进行微调,第二阶段专注使用对话数据进行微调。

一些讨论:

  • 在训练数据中添加多选题能显著提升模型解答多选的能力,因为解答多选不仅需要拥有相关知识,还需要理解选项含义。但是这并不会带来对话任务上的提升,因此为了防止在基准任务过拟合,在训练和微调中完全排除掉了多选数据
  • 关于system prompt,deepseek LLM在Llama的基础上进行了轻微改动,最终在67B的模型上有所提升,但7B模型上性能反而下降。这可能是因为:更大的模型对系统提示背后的意图有更好的理解,使它们能够更有效地遵循指示并生成更优秀的回答。另一方面,较小的模型难以充分理解系统提示,训练和测试之间的一致性可能对它们的性能产生负面影响。

总结

我们介绍了DeepSeek LLMs,一系列开源模型,这些模型是基于2T tokens的庞大数据集从零开始训练的。在本文中,我们提供了关于超参数选择、scaling-law以及我们进行的各种微调尝试的深入解释。

  • 我们校准了之前工作的scaling-law,并提出了一种新的最优模型/数据扩展分配策略。
  • 此外,我们提出了一种方法,可以在给定的计算预算下预测接近最优的批量大小和学习率。
  • 我们进一步得出结论,扩展规律与数据质量有关,这可能是不同工作中扩展行为变化的根本原因。在扩展规律的指导下,我们使用最佳超参数进行预训练,并提供了全面的评估。

DeepSeek Chat具有其他大型语言模型普遍存在的公认限制,包括预训练后缺乏持续的知识更新、可能生成未经验证的建议等非事实信息,以及倾向于产生幻觉。此外,值得注意的是,我们的中文数据的初始版本并不全面,这可能导致在某些特定中文主题上的性能不佳。由于我们的数据主要由中文和英文来源组成,模型在其他语言上的熟练程度仍然微妙,应谨慎对待。

DeepSeek LLM是一个长期项目,致力于推进开源语言模型。

  • 很快,我们将分别发布我们在代码智能和**混合专家(MoE)**技术报告。它们展示了我们如何创建高质量的代码数据进行预训练,以及如何设计稀疏模型以实现密集模型的性能。
  • 目前,我们正在构建一个更大且改进的数据集,用于即将到来的DeepSeek LLM版本。我们希望在下一个版本中,推理能力、中文知识、数学和代码能力将得到显著提升。
  • 我们的对齐团队致力于研究如何向公众提供有帮助、诚实和安全的模型。我们的初步实验表明,强化学习可以提升模型的复杂推理能力。

个人总结:23年发布的第一版本的DeepSeek LLM是对开源LLM Llama的复刻,技术团队在复刻的过程中积累了自己构建的训练数据和训练经验,其中也包含了一些对超参数选择的探究。但整体来说,由于训练数据量不够大等原因,表现上也没有很突出。不过,此时团队已经发现这些问题,并已经在数据集、MoE架构以及RL方面有了清晰的认知和具体的行动,这将为V2和V3的出现奠定基础。

相关文章:

DeepSeek LLM(初代)阅读报告

概况 这个是deepseek发布的第一版模型对应的技术报告,模型发布于23年11月,本报告发布于24年1月。 模型有7B和67B两个版本。 虽然本报告中还没有用上后面V2/V3和R1中的关键技术例如MLA、MTP、GRPO,但是报告中已经指明了MoE、强化学习等未来…...

JAVA异步的TCP 通讯-服务端

一、服务端代码示例 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousServerSocketChannel; import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.Completion…...

高效协同,Tita 助力项目管理场景革新

在当今快节奏、高度竞争的商业环境中,企业面临着前所未有的挑战:如何在有限资源下迅速响应市场变化,确保多个项目的高效执行并达成战略目标?答案就在于优化项目集程管理。而在这个过程中,Tita项目管理产品以其独特的优…...

【AIGC魔童】DeepSeek v3提示词Prompt书写技巧

【AIGC魔童】DeepSeek v3提示词Prompt书写技巧 (1)基础通用公式(适用80%场景)(2)问题解决公式(决策支持)(3)创意生成公式(4)学习提升公…...

Vue | 透传 Attributes(非 prop 的 attribute )

文章目录 引言I Attribute 继承II 禁用 attribute 继承禁用 attribute 继承的常见场景通过将 inheritAttrs 选项设置为 false从 3.3 开始可在 `<script setup>` 中使用defineOptions例子引言 “透传 attribute”指的是传递给一个组件,却没有被该组件声明为 props 或 emi…...

启明星辰发布MAF大模型应用防火墙产品,提升DeepSeek类企业用户安全

2月7日&#xff0c;启明星辰面向DeepSeek等企业级大模型业务服务者提供的安全防护产品——天清MAF&#xff08;Model Application Firewall&#xff09;大模型应用防火墙产品正式发布。 一个新赛道将被开启…… DeepSeek的低成本引爆赛道规模 随着DeepSeek成为当前最热的现象级…...

Vuex 解析:从 Vue 2 到 Vue 3 的演变与最佳实践

Vuex 是 Vue.js 中的状态管理模式&#xff0c;广泛应用于 Vue 2 和 Vue 3 中&#xff0c;其内部实现存在一些差异。 1. 什么是 Vuex &#xff1f; Vuex 是 Vue.js 官方提供的状态管理库&#xff0c;用于集中管理应用的所有组件的状态。主要是通过一种集中化的方式来管理共享状…...

一文解释nn、nn.Module与nn.functional的用法与区别

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;零基础入门PyTorch框架_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 …...

日志统计(acWing,蓝桥杯)

题目&#xff1a; 1238. 日志统计 题目 提交记录 讨论 题解 视频讲解 小明维护着一个程序员论坛。现在他收集了一份”点赞”日志&#xff0c;日志共有 NN 行。 其中每一行的格式是&#xff1a; ts id 表示在 tsts 时刻编号 idid 的帖子收到一个”赞”。 现在小明想…...

3个DeepSeek隐藏玩法

大家最近是不是都被DeepSeek-R1刷屏了 这款号称“中国版O1”的模型&#xff0c;不仅在数学和编程领域表现出色&#xff0c;中文写作能力也很强。 最重要的是&#xff0c;它在理解提示词方面有了很大突破&#xff0c;只要你能打字&#xff0c;它就能理解你的意思。 不过&…...

部署LLM模型到云端

文章目录 1 ECS 云服务器部署2 函数计算FC3 人工智能平台PAI-EAS4 大模型服务平台百炼压测实验结果显示,由于本地设备算力有限,本地部署的模型服务无法满足低延迟和高并发的需求。针对这类线上业务,可以考虑云端部署。 下面先来看看本地部署和云端部署的特点对比。 由上可…...

Python连接不同数据库的总结

Python连接不同数据库的总结 在数据驱动的现代应用开发中&#xff0c;Python凭借其丰富的库和强大的生态系统&#xff0c;成为连接各种数据库的理想编程语言。本文将深入探讨Python连接不同类型数据库的方法、常用库以及关键注意事项。 一、连接MySQL数据库 MySQL是广泛使用…...

web直播弹幕抓取分析 signature

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 前言 最近遇到太多难点了卡了很久&am…...

Linux ftrace 内核跟踪入门

文章目录 ftrace介绍开启ftraceftrace使用ftrace跟踪指定内核函数ftrace跟踪指定pid ftrace原理ftrace与stracetrace-cmd 工具KernelShark参考 ftrace介绍 Ftrace is an internal tracer designed to help out developers and designers of systems to find what is going on i…...

1Panel应用推荐:WordPress开源博客软件和内容管理系统

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用&#xff0c;1Panel特别开通应用商店&am…...

【数据结构-C语言】绪论

文章目录 一、前言二、基本概念和术语2.1 数据元素、数据项和数据对象2.2 数据结构2.2.1 逻辑结构2.2.2 存储结构 2.3 时间复杂度 一、前言 数据结构部分是根据严蔚敏老师的《数据结构-C语言版第2版》书中内容整理的。 二、基本概念和术语 2.1 数据元素、数据项和数据对象 …...

java poi Excel 文件导入导出常见错误及解决方案

在使用 Apache POI 进行 Excel 文件的导入导出操作时&#xff0c;可能会遇到各种问题。以下是一些常见的错误及其解决方案&#xff1a; 一、文件格式相关问题 1. 文件格式不兼容 问题描述&#xff1a;尝试使用 HSSFWorkbook 读取 .xlsx 文件&#xff0c;或者使用 XSSFWorkbo…...

深入浅出DeepSeek LLM 以长远主义拓展开源语言模型

深入浅出地讲解DeepSeek LLM 以长远主义拓展开源语言模型 &#x1f31f; 1. 什么是 DeepSeek LLM&#xff1f; 大家想象一下&#xff0c;你在游戏里要打造一个超级英雄角色&#xff0c;选择最强的装备、技能点和升级策略。那么&#xff0c;DeepSeek LLM 就是 AI 界的“超级英雄…...

【Leetcode 每日一题】59. 螺旋矩阵 II

问题背景 给你一个正整数 n n n&#xff0c;生成一个包含 1 1 1 到 n 2 n ^ 2 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n n n \times n nn 正方形矩阵 m a t r i x matrix matrix。 数据约束 1 n 20 1 \times n \times 20 1n20 解题过程 定义方向数组…...

回退 android studio emulator 的版本

前情提要 最近用 frida 需要一个完全跑 arm64 的手机 os&#xff0c;因为雷电实时转义 arm 到 x64 的方案本质上还是 x64&#xff0c;会导致 frida 有 bug。查了一下有帖子说 android studio 自带的模拟器支持直接跑 arm64 的镜像 (Other Images) 直接跑跑不通&#xff0c;调…...

深兰科技董事长陈海波受邀出席2025苏商高质量发展(常州)峰会,共话AI驱动产业升级

5月29日&#xff0c;2025苏商高质量发展峰会在常州隆重开幕。本次峰会聚焦新质生产力培育与产业创新转型&#xff0c;汇聚了众多江苏省内知名企业家、专家学者及政府代表。深兰科技创始人、董事长陈海波作为人工智能领域的领军企业代表&#xff0c;受邀出席盛会并参与重要活动环…...

大模型应用开发之Langchain

一、框架简述 Langchain 是一个用于构建和管理 LLM 应用的开发框架。它为开发者提供了工具和接口&#xff0c;以便于更轻松地将大语言模型集成到应用程序中&#xff0c;并处理语言模型生成的响应、管理对话状态、执行链式调用、处理多步任务等。 二、Langchain主要模块 1、M…...

PHP中文网文章内容提取免费API接口教程

接口简介&#xff1a; 提取PHP中文网指定文章内容。本接口仅做内容提取&#xff0c;未经作者授权请勿转载。 请求地址&#xff1a; https://cn.apihz.cn/api/caiji/phpzww.php 请求方式&#xff1a; POST或GET。 请求参数&#xff1a; 【名称】【参数】【必填】【说明】 【用…...

飞腾D2000与FPGA结合的主板

UD VPX-404是基于高速模拟/数字采集回放、FPGA信号实时处理、CPU主控、高速SSD实时存储架构开发的一款高度集成的信号处理组合模块&#xff0c;采用6U VPX架构&#xff0c;模块装上外壳即为独立整机&#xff0c;方便用户二次开发。 UD VPX-404模块的国产率可达到100%&#xff0…...

第三十七天打卡

过拟合的判断&#xff1a;测试集和训练集同步打印指标模型的保存和加载 仅保存权重保存权重和模型保存全部信息checkpoint&#xff0c;还包含训练状态 早停策略 过拟合判断 import torch import torch.nn as nn import torch.optim as optim from sklearn.datasets import load…...

python分配方案数 2023年信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析

python分配方案数 2023全国青少年信息素养大赛Python编程挑战赛复赛真题解析 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】1、Python比赛 信息素养大赛Python编程挑战赛 蓝桥杯python选拔赛真题详解...

QNAP MEMOS 域名访问 SSL(Lucky)

注意&#xff1a;下述是通过ssh、docker-compose方式安装docker的&#xff0c;不是直接在container station中安装的哈&#xff01;&#xff01;&#xff01; 一、编辑docker-compose.yml文件 用“#”号标识的&#xff0c;在保存文件的时候建议去掉&#xff0c;不然有时候会出…...

讲述我的plc自学之路 第十二章

“老k&#xff0c;你没想过自己以后怎么过吗&#xff1f;”lora听我夸他漂亮&#xff0c;开始鼓起勇气追问我的过往。 “我还能怎样呢&#xff0c;说实话&#xff0c;家里介绍过几次相亲了&#xff0c;上来就问车问房的&#xff0c;大多数不了了之。”我解释道。 “老k这你就…...

项目 react+taro 编写的微信 小程序,什么命令,可以减少console的显示

在 Taro 项目中&#xff0c;为了减少 console 的显示&#xff08;例如 console.log、console.info 等&#xff09;&#xff0c;可以通过配置 terser-webpack-plugin 来移除生产环境中的 console 调用。 配置步骤&#xff1a; 修改 index.js 文件 在 mini.webpackChain 中添加 …...

PGSQL结合linux cron定期执行vacuum_full_analyze命令

‌VACUUM FULL ANALYZE 详解‌ 一、核心功能 ‌空间回收与重组‌ 完全重写表数据文件&#xff0c;将碎片化的存储空间合并并返还操作系统&#xff08;普通 VACUUM 仅标记空间可重用&#xff09;。彻底清理死元组&#xff08;已删除或更新的旧数据行&#xff09;&#xff0c;解…...