Deepseek_V3技术报告阅读笔记
我的问题
1.关于Mixture-of-Experts(MoE)语言模型?
- 什么是MoE语言模型呢?
- 它的原理是什么?
- 它与其他类型的语言模型(比如Transformer)有何不同?
2.相比于其他模型,以及过往的DeepSeek模型,这次DeepSeek-V3的训练有哪些创新?
3.为什么DeepSeek-V3需要采用Multi-head Latent Attention(MLA)和DeepSeekMoE架构?
在论文中提到DeepSeek-V3采用了Multi-head Latent Attention(MLA)和DeepSeekMoE架构来实现高效推理和成本效益训练。
- 这些架构的具体作用是什么?
- 它们是如何提高模型性能的?
3.什么是辅助损失免费策略和多令牌预测训练目标?
在论文中提到DeepSeek-V3采用了辅助损失免费策略和多令牌预测训练目标来进一步提高性能。
- 这两个策略的具体含义是什么?
- 它们如何影响模型的训练和性能表现?
4.为什么DeepSeek-V3的训练过程如此稳定?
在论文中提到DeepSeek-V3的训练过程非常稳定,没有出现任何不可恢复的损失峰值或回滚。
- 这是什么原因导致的?
- 有哪些因素可以确保模型训练的稳定性?
5.模型预训练和后训练阶段的具体步骤是什么?
- 这些阶段的具体步骤是什么?
- 它们分别对模型性能产生了什么影响?
学习记录
1.什么是MoE语言模型?
MoE语言模型是一种新型的深度学习模型,它采用了一种新的架构方式——混合注意力(Mixture of Experts,简称MoE),来实现更加高效和准确的自然语言处理任务。MoE语言模型的核心思想是将输入数据分配给多个专家子网络,每个子网络负责处理一部分输入数据,并生成对应的输出结果。这些子网络可以看作是一组并行运行的小型神经网络,它们共同协作完成整个任务。相比于传统的单个大型神经网络,MoE语言模型具有更好的可扩展性和灵活性。由于MoE语言模型是由多个小的子网络组成的,因此可以通过增加子网络的数量来适应更大的数据集和更复杂的任务。此外,在预测时,MoE语言模型还可以根据输入数据的特征选择合适的子网络,并将其输出结果进行加权求和得到最终的预测结果。
简单来说,Moe模型的设计灵感有点像组建了一个各有所长的专家团队来处理各种语言任务。普通的语言模型就像是一个 “全能选手”,不管遇到什么任务都靠自己的一套能力去解决。但 MoE 模型不一样,它把不同功能或擅长不同领域的 “专家模块” 组合在一起。打个比方,假设有个语言任务涉及到数学计算、文学创作和日常对话。在 MoE 模型里,可能有专门擅长数学计算的 “数学专家” 模块,有擅长创作优美文字的 “文学专家” 模块,还有擅长日常交流对话的 “对话专家” 模块。
当模型接收到一个语言任务时,会有一个 “路由机制” 开始工作。这个机制就像是任务分配员,它会分析任务的特点,然后把任务分配给最合适的 “专家模块” 处理。比如遇到一道数学题,“路由机制” 就会把它分配给 “数学专家” 模块;要是让模型写一首诗,就会交给 “文学专家” 模块。这样一来,每个模块都能专注于自己擅长的领域,发挥出最大优势,提高整个模型处理各种复杂语言任务的能力。
同时,MoE 模型还能在训练和计算效率上表现得更好。因为在处理任务时,不是所有的 “专家模块” 都要参与,只有被选中的相关 “专家” 才会工作,这就节省了计算资源,让模型在大规模计算时成本更低、效率更高 。
2.MoE模型与其他架构的语言模型相比有哪些优缺点
2.1MoE语言模型的优点
- 效率高:普通语言模型就像一个人干所有活,不管遇到什么任务都得亲自处理,效率可能不高。而MoE语言模型像是一个团队,里面有各种“专家”。比如处理一篇既有数学问题又有日常对话内容的文章时,MoE模型的“路由机制”会把数学部分交给擅长数学的“专家”,对话部分交给擅长对话的“专家”。这样不同的“专家”同时工作,能大大提高处理速度,就像团队分工合作比一个人单打独斗要快得多。在训练过程中,因为不是所有“专家”都同时参与每一次计算,所以也节省了计算资源,训练成本更低。
- 能力强:MoE语言模型能处理更复杂多样的任务。还是拿刚才那篇文章举例,普通模型可能在数学和对话这两个不同领域的处理上不能同时做到很好。但MoE模型有不同专长的“专家”,可以把每个部分都处理得更专业。它还能通过调整“专家”的数量和种类,灵活适应不同的任务需求。要是某个领域的任务特别多,就可以增加这个领域的“专家”数量,让模型在这个领域的能力更强。
- 灵活性高:当遇到新的任务类型时,MoE模型不用大规模改动整个模型结构。只需要添加新的“专家”模块,或者调整“路由机制”,就能让模型具备处理新任务的能力。就好比一个团队,来了新的工作内容,不用重新招人组建全新的团队,只需要让合适的人学习新技能或者从外部找几个新专家加入就行,能更快适应变化。
2.2MoE语言模型的缺点
- 协调困难:虽然MoE模型的“路由机制”负责分配任务,但要准确地把任务分配给最合适的“专家”并不容易。如果“路由机制”判断失误,把任务分配给了不擅长的“专家”,处理结果就可能不好。而且不同“专家”之间的协作也可能出现问题,比如在处理一些需要多个“专家”协同工作的复杂任务时,可能会出现沟通不畅、工作衔接不好的情况。
- 训练复杂:训练MoE模型比普通模型更复杂。因为不仅要训练每个“专家”模块,还要训练“路由机制”,让它学会准确分配任务。这就好比训练一个团队,不仅要让每个人都有出色的专业技能,还要训练团队的管理和协作能力,难度自然更大。并且在训练过程中,要保证每个“专家”都能得到充分训练,又不能让某些“专家”过度训练,这需要精细的调整和大量的实验。
- 效果不稳定:MoE模型的表现可能不太稳定。由于是多个“专家”一起工作,当训练数据有波动或者遇到一些特殊情况时,模型的输出结果可能会有较大变化。比如在处理一些边界情况或者模糊不清的任务时,不同“专家”的处理方式差异可能导致模型给出的结果不一致,让用户觉得模型不太可靠。
3.具体对比,MoE与Transformer两种架构模型各自的优劣。
3.1MoE语言模型的优势
- 计算效率更高:Transformer架构模型在处理任务时,所有参数通常都会参与计算。而MoE语言模型引入了“专家”的概念,通过路由机制,能把不同任务分配给特定“专家”处理,只有被选中的“专家”模块会被激活。例如,处理文本既有代码又有数学问题时,代码相关部分由擅长代码的“专家”处理,数学部分由数学“专家”处理,其他“专家”无需参与,从而节省计算资源,提升效率。在面对长文本时,Transformer模型计算量会随文本长度增加而显著上升,MoE模型可通过动态分配任务,让合适“专家”处理相应片段,减少不必要计算。
- 任务适应性和扩展性更好:MoE模型能灵活调整“专家”配置以适应不同任务需求。在处理多语言任务时,可以为每种语言或语言的特定领域增加对应的“专家”模块。当出现新任务类型,如特定行业的专业文本处理,只需添加新“专家”模块并调整路由机制,无需大规模改动整体架构。相比之下,Transformer架构模型要适应新任务,往往需重新设计和训练整个模型,成本更高。
- 模型性能上限更高:在一些复杂任务或特定领域任务中,MoE模型的表现更优。它能让不同“专家”专注于特定领域知识和技能的学习,比如在医学、法律等专业性强的领域,通过训练专业“专家”,可以深入学习领域知识,提高任务处理的准确性和专业性。而Transformer架构模型通常基于通用的语言理解和生成能力,在专业性任务上可能不如MoE模型。
3.2MoE语言模型的劣势
- 路由机制带来的不稳定性:MoE模型的路由机制负责将任务分配给合适的“专家”,但它的准确性直接影响模型性能。如果路由机制出现错误,将任务分配给不匹配的“专家”,会导致处理结果不佳。在一些语义模糊的文本任务中,路由机制可能难以准确判断,导致任务分配失误。此外,不同“专家”之间的协同也可能存在问题,当任务需要多个“专家”协作时,可能出现协作不畅的情况,影响模型整体表现。
- 训练难度更大:训练MoE模型的复杂度更高,因为需要同时训练多个“专家”模块和路由机制。每个“专家”模块要学习特定领域知识,路由机制要学习如何准确分配任务,这需要大量的训练数据和计算资源。训练过程中还需平衡不同“专家”的训练程度,避免某些“专家”过度训练或训练不足。而Transformer架构模型的训练相对简单,目标更明确,专注于优化整个模型的参数以提高性能。
- 模型解释性更差:Transformer架构模型基于自注意力机制,其工作原理相对直观,对模型决策过程的解释有一定方法。而MoE模型由于包含多个“专家”模块和复杂的路由机制,理解模型如何做出决策变得更加困难。当模型生成某个结果时,很难确定是哪些“专家”在其中起到关键作用,以及它们之间如何相互影响,这在一些对模型可解释性要求较高的场景中是一个较大的问题。
4.相比于其他模型,以及过往的DeepSeek模型,这次DeepSeek-V3的训练有哪些创新?
4.1架构设计创新
- 无辅助损失的负载均衡策略:在混合专家(MoE)模型里,专家负载不均衡会导致问题。以往常用辅助损失来解决,但过大的辅助损失会影响模型性能。DeepSeek V3开创了无辅助损失的负载均衡策略 ,给每个专家引入一个偏差项。打个比方,就像给每个专家分配任务时,根据它之前的工作量动态调整任务分配倾向。如果某个专家任务太多,就减少分配给它的任务;任务少的专家,则增加分配。这样不用辅助损失就能让专家负载平衡,还避免了辅助损失对模型性能的损害。
- 多令牌预测(MTP)训练目标:普通模型一般只预测下一个令牌,DeepSeek V3的MTP目标则扩展了预测范围,能预测多个未来令牌。这就好比你读文章,普通模型只猜测下一个字是什么,而DeepSeek V3能多猜几个字。这样做可以让训练信号更密集,帮助模型更好地理解上下文,提前规划如何生成更准确的内容,提升了模型在各种评估基准上的性能。而且在推理时,MTP还能用于推测解码,加快生成速度。
4.2训练框架创新
- FP8混合精度训练框架:训练模型时,精度和计算资源消耗是个难题。DeepSeek V3提出了基于FP8数据格式的细粒度混合精度训练框架。大部分计算密集型操作采用FP8精度,这样可以加快计算速度,减少GPU内存使用;而一些对精度要求高的关键操作,像嵌入模块、输出头这些部分,仍然保持原来的精度。同时,还通过多种策略提升低精度训练的准确性,比如对激活值和权重进行细粒度量化,提高累加精度等。这使得模型在训练时既能保证精度,又能提高效率、降低成本。
- DualPipe算法与计算通信重叠:训练模型时,计算和通信的效率很关键。DeepSeek V3设计了DualPipe算法用于高效的流水线并行。以前的方法存在流水线气泡多、通信开销大的问题,DualPipe算法减少了这些气泡,还把计算和通信在向前和向后的过程中重叠起来。就像工厂生产产品,一边在加工零件(计算),一边在运输零件(通信),大大提高了整体的训练效率。并且,它还定制了高效的跨节点全对全通信内核,充分利用网络带宽,让模型在大规模训练时更高效。
4.3数据处理创新
- 优化训练语料库:DeepSeek V3对训练语料库进行了优化,增加了数学和编程样本的比例。如果把训练模型比作培养一个什么都懂的“小天才”,那就是让这个“小天才”多学数学和编程知识,这样模型在处理数学和编程相关任务时就更厉害。同时,还扩展了多语言覆盖范围,不只是英语和中文,让模型能处理更多语言的任务。此外,通过文档打包方法减少数据冗余,提高数据质量。
4.4训练方法创新
- 从长思维链模型蒸馏推理能力:在模型训练后期,DeepSeek V3引入了一种新方法,把长思维链模型(DeepSeek R1)的推理能力蒸馏到标准模型中。这就像是让一个学习好的“学霸”(DeepSeek R1)把知识传授给另一个同学(DeepSeek V3),让DeepSeek V3的推理性能显著提升,还能保持自己的输出风格和长度控制。
5.为什么DeepSeek-V3需要采用Multi-head Latent Attention(MLA)?它的具体作用是什么?它是如何提高模型性能的?
DeepSeek-V3采用Multi-head Latent Attention(MLA)主要是为了让模型在处理语言任务时更高效、更准确,解决一些传统注意力机制存在的问题。下面详细解释它的作用和提高模型性能的方式。
5.1为什么需要采用MLA
- 减少内存占用:在模型运行时,尤其是推理阶段,内存资源很宝贵。传统的注意力机制在处理大量文本数据时,会产生大量的中间数据需要存储,这就占用了很多内存。而MLA通过特殊的设计,可以减少这些中间数据的存储量,比如在保存注意力计算过程中的关键信息时,它能以更高效的方式进行压缩存储,这样就大大降低了内存的占用,让模型在有限的内存条件下也能高效运行。
- 提升计算效率:当模型规模很大,参数很多时,计算量会非常大。MLA通过对注意力计算过程的优化,减少了不必要的计算步骤。它在计算注意力时,对关键的输入数据进行低秩压缩,就像把复杂的数据简化处理,这样在保证计算结果准确性的同时,加快了计算速度,让模型能够更快地处理文本,提高了整体的计算效率。
5.2MLA的具体作用
- 低秩联合压缩注意力键值:MLA的核心之一是对注意力的键(Key)和值(Value)进行低秩联合压缩。在处理文本时,它会把输入的文本信息转化为数学向量,然后通过特定的矩阵运算,将这些向量压缩成更紧凑的形式。这样在后续计算注意力分数时,就可以用这些压缩后的向量进行计算,不仅减少了数据量,还能更快地得到注意力分数,确定文本中不同部分的重要程度。
- 缓存优化:在推理过程中,需要缓存一些信息以便快速处理后续的文本。MLA在这方面进行了优化,它只需要缓存少量关键的向量,比如压缩后的键值向量和携带位置信息的向量,相比传统注意力机制需要缓存大量的原始向量,MLA的缓存量大大减少。这使得模型在推理时能够更快速地获取所需信息,提高推理速度。
5.3如何提高模型性能
- 加快推理速度:因为MLA减少了内存占用和计算量,所以在推理时模型可以更快地处理输入文本,生成输出结果。比如在智能聊天场景中,用户输入一个问题,采用MLA的DeepSeek-V3能够更快地理解问题并给出回答,提升了用户体验。
- 增强上下文理解能力:MLA在计算注意力时,会综合考虑文本的不同部分,通过多个头的注意力计算,可以从不同角度捕捉文本中的信息。这就好比让多个人从不同视角观察一个场景,然后把他们的观察结果综合起来。这样模型能够更好地理解文本的上下文关系,准确把握文本的含义,从而在各种语言任务中表现得更加出色,比如在文本生成任务中,生成的内容会更符合上下文逻辑,在阅读理解任务中,能更准确地回答问题。
6.为什么DeepSeek-V3的训练过程如此稳定?
通常MoE模型训练不稳定,主要是因为专家负载不均衡会导致路由崩溃,影响计算效率,而且不同专家学习情况不一样,容易出现有的专家过度训练或训练不足的问题。但DeepSeek-V3在训练稳定性上表现出色,这得益于多个关键因素:
6.1创新的负载均衡策略
DeepSeek-V3采用无辅助损失的负载均衡策略,这是保持训练稳定的重要原因。在MoE模型里,专家负载不均衡会引发很多问题。传统方法用辅助损失来平衡负载,但效果不好,还会影响模型性能。DeepSeek-V3则给每个专家引入一个偏差项,在训练时,就像有个“小管家”时刻盯着每个专家的工作量。如果某个专家负载过重,“小管家”就会调整偏差项,让这个专家下次接到的任务少一些;要是某个专家太闲,就多给他分配点任务。通过这种动态调整,所有专家的负载能一直保持平衡,避免了因负载不均衡导致的训练不稳定,比如不会出现某个专家因为任务太多,学习效果变差,进而影响整个模型训练的情况。
6.2合理的训练框架和优化策略
- DualPipe算法:训练框架中的DualPipe算法对训练稳定也有很大贡献。训练模型时,计算和通信的协调很重要。DualPipe算法减少了流水线气泡,把计算和通信重叠起来。就像工厂生产东西,以前是做完一个工序再做下一个,中间可能会有很多空闲时间;现在通过DualPipe算法,不同工序可以同时进行一部分,大大提高了效率。而且这种算法让模型在训练时更加稳定,因为它减少了计算和通信之间的冲突,不会因为通信不畅或者计算等待而导致训练过程出现波动。
- 内存优化:DeepSeek-V3还对内存进行了优化。训练模型时,内存管理不好也会影响稳定性。它通过重新计算RMSNorm操作和MLA上投影,在反向传播时不需要一直存储这些中间结果,节省了内存。同时,把模型参数的指数移动平均(EMA)放在CPU内存里异步更新,也不会占用额外的训练时间和内存。这些内存优化措施保证了模型在训练时不会因为内存不足或者内存使用不合理而出现异常,确保了训练的稳定性。
6.3精心处理的训练数据
训练数据的质量和处理方式也对训练稳定性有影响。DeepSeek-V3优化了训练语料库,增加了数学和编程样本的比例,还扩展了多语言覆盖范围。而且在数据处理时,用了文档打包方法来减少冗余,同时保持数据的多样性。这样的训练数据能让模型学到更丰富、更优质的知识,避免因为数据的问题导致训练不稳定。如果训练数据里有很多重复或者错误的信息,模型在学习时就会“困惑”,导致训练不稳定。但DeepSeek-V3通过精心处理数据,给模型提供了一个稳定的学习环境。
6.4稳定的训练超参数设置
超参数的合理设置也是训练稳定的关键。DeepSeek-V3在训练时,对学习率、批大小等超参数进行了精心调整。学习率就像模型学习的“速度”,如果学习率太大,模型可能会“学过头”,导致训练不稳定;如果太小,学习速度又会很慢。DeepSeek-V3采用了一种动态的学习率调整策略,开始时慢慢增加学习率,让模型逐渐适应学习任务;然后在大部分训练时间里保持稳定的学习率;到后期再慢慢减小学习率,让模型更精细地调整参数。批大小的动态调整也很重要,开始训练时,逐渐增加批大小,让模型在训练过程中逐渐适应更大的数据量,提高训练的稳定性。
7.DeepSeek模型预训练和后训练阶段的具体步骤是什么?它们分别对模型性能产生了什么影响?
DeepSeek模型预训练阶段
1.具体步骤
- 数据准备:先对训练数据进行优化,增加数学和编程相关的内容,让模型能学到更多这方面的知识,同时扩大多语言覆盖范围,不局限于少数语言。还会处理数据,减少冗余,提高数据质量。比如把相似或重复的内容去掉,让数据更精炼。另外,采用文档打包方法,在不改变数据原意的前提下,将多个小文档组合成大文档,提高训练效率。使用Byte - level BPE分词器,并且对其进行改进,调整了预分词器和训练数据,使它在多语言处理上更高效。还针对模型可能出现的问题,比如处理多线提示时的令牌边界偏差,在训练时随机拆分一些特殊组合的令牌,让模型适应各种情况。
- 模型初始化:设置模型的各种参数,像Transformer层的数量设为61层,隐藏层维度设为7168等。这些参数决定了模型的结构和功能。所有可学习的参数都用标准差为0.006的随机数进行初始化,为模型的学习打下基础。
- 训练过程:用AdamW优化器来调整模型的参数。训练时要设置很多参数,比如最大序列长度设为4K ,在14.8万亿个高质量且多样的令牌上进行训练。学习率也不是固定的,刚开始的2K步,从0慢慢增加到2.2×10⁻⁴ ,然后在模型处理10万亿训练令牌的过程中保持这个学习率不变,之后再按照余弦衰减曲线,在处理4.3万亿令牌的过程中逐渐减小到2.2×10⁻⁵ 。到了训练最后5000亿令牌时,前3330亿令牌保持2.2×10⁻⁵ 的学习率,后1670亿令牌则变为7.3×10⁻⁶ 。梯度裁剪范数设为1.0 ,防止梯度爆炸或消失。训练时的批大小也会根据训练进度调整,开始的4690亿令牌训练中,从3072逐渐增加到15360,之后就保持15360不变。训练时用流水线并行技术,把模型的不同层部署在不同的GPU上,每个层的路由专家均匀分布在64个属于8个节点的GPU上,并且每个令牌最多被发送到4个节点。
- 长上下文扩展:预训练结束后,用YaRN技术进行长上下文扩展。分两个阶段进行训练,每个阶段1000步。第一阶段把序列长度扩展到32K,第二阶段进一步扩展到128K。在这个过程中,超参数保持一致,比如尺度s设为40 ,α设为1 ,β设为32 ,缩放因子设为0.1ln s + 1 。同时,第一阶段批大小设为1920,第二阶段设为480 ,学习率都设为7.3×10⁻⁶ ,和预训练最后的学习率一样。
2.对模型性能的影响
预训练让模型学习到了大量的通用知识,涵盖多种语言、数学、编程等领域。通过在大规模数据上的训练,模型具备了基本的语言理解和生成能力,能对各种文本进行初步的处理和分析。长上下文扩展让模型能够处理更长的文本,理解长文本中的复杂信息和上下文关系,这在处理长篇文章、对话等场景中非常重要,大大提升了模型的应用范围和能力。
DeepSeek模型后训练阶段
1.具体步骤
- 监督微调(Supervised Fine - Tuning):准备150万个涵盖多个领域的指令调整数据集。对于推理相关的数据,利用内部的DeepSeek - R1模型生成数据,但是R1生成的数据有一些问题,比如思考过度、格式不好、长度过长等。所以先训练一个特定领域的专家模型,用监督微调(SFT)和强化学习(RL)的方法,让这个专家模型作为数据生成器。训练时为每个实例生成两种SFT样本,一种是问题和原始答案组合,另一种是加入系统提示的问题和R1答案组合。系统提示能引导模型产生更优质的答案。在RL阶段,模型通过高温采样,融合R1生成的数据和原始数据的模式。RL训练完成后,用拒绝采样的方法筛选出高质量的SFT数据,用于最终模型的训练。对于非推理数据,如创意写作、角色扮演、简单问答等,用DeepSeek - V2.5生成响应,再由人工标注验证数据的准确性。之后用这些SFT数据集对DeepSeek - V3 - Base进行两个epoch的微调,采用余弦衰减学习率调度,从5×10⁻⁶ 逐渐减小到1×10⁻⁶ 。训练时把多个样本打包成单个序列,但采用样本掩码策略,让样本之间相互独立。
- 强化学习(Reinforcement Learning):采用基于规则的奖励模型和基于模型的奖励模型。对于有明确规则验证答案的问题,如数学题、LeetCode问题等,采用基于规则的奖励系统,根据规则判断答案是否正确。对于答案形式多样、没有明确标准的问题,如创意写作,使用基于模型的奖励模型。这个奖励模型从DeepSeek - V3 SFT的检查点进行训练,为了提高可靠性,构建的偏好数据不仅有最终奖励,还有得到奖励的思考过程。采用Group Relative Policy Optimization(GRPO)方法,从旧策略模型中采样一组输出,然后优化策略模型,让模型生成更符合人类偏好的答案。在RL过程中,使用来自不同领域的提示,如编码、数学、写作等,使模型在不同任务上的表现更好。
- 评估:使用多个基准测试评估模型性能,包括新的基准测试如IFEval、FRAMES等,还有之前预训练评估时用过的一些基准测试。将模型与多个强基线模型进行比较,如DeepSeek - V2系列、Qwen2.5 72B Instruct等。对于不同的数据集,采用相应的评估提示和格式,如MMLU采用simple - evals框架的评估提示,MMLU - Redux采用Zero - Eval提示格式等。对于代码和数学基准测试,采用不同的评估方法,如在LiveCodeBench上用思维链(CoT)和非思维链方法评估,对数学评估如AIME和CNMO 2024,用温度为0.7的设置进行16次运行取平均值等。
2.对模型性能的影响
监督微调让模型更加适应特定的任务和指令,提高了模型在实际应用中的表现,使模型能更好地理解用户的需求并生成符合要求的答案。强化学习进一步优化了模型的输出,通过奖励机制引导模型生成更符合人类偏好的结果,提升了模型的实用性和可靠性。评估过程则帮助了解模型的性能表现,发现模型的优势和不足,为后续改进提供方向。
名词解释
- Transformer层:一种在深度学习中常用的神经网络结构,它能让模型更好地处理序列数据,比如文本。就像一个智能处理器,能理解文本中每个词之间的关系,帮助模型抓住文本的重点和含义。
- 隐藏层维度:在神经网络里,隐藏层是夹在输入层和输出层中间的部分。隐藏层维度就是隐藏层中神经元的数量,它决定了隐藏层能处理信息的能力大小。这个数值越大,隐藏层能学习和处理的信息就越多。
- 标准差:用来衡量一组数据的离散程度。在模型参数初始化时,用标准差为0.006的随机数,就是让初始参数在一定范围内随机分布,这个范围由标准差决定。如果标准差小,参数值就比较集中;标准差大,参数值就更分散。
- AdamW优化器:一种优化神经网络训练的工具。在模型训练时,它能根据数据和模型的情况,自动调整模型参数,让模型的预测结果越来越接近真实答案,就像给模型一个“导航”,引导它朝着更好的方向学习。
- 最大序列长度:在训练模型时,规定输入文本的最大长度。比如设置为4K,就表示输入的文本不能超过4096个令牌(可以理解为文本的基本单位),这是为了控制计算量和内存使用,同时也符合模型处理能力的限制。
- 学习率:模型训练过程中调整参数的“步伐”大小。学习率小,模型学习得慢,但可能更精确;学习率大,模型学习速度快,但可能会错过最优解,导致结果不准确,所以要根据训练阶段动态调整。
- 梯度裁剪范数:在模型训练时,梯度是用来更新模型参数的重要依据。但如果梯度值太大,会导致模型训练不稳定,就像开车时油门踩得太猛容易失控。梯度裁剪范数就是给梯度设定一个限制范围,防止它太大,保证模型训练稳定。
- 批大小:训练模型时,每次喂给模型的数据量。开始训练时,数据量小一点,模型更容易适应,随着训练进行,逐渐增加批大小,让模型能学习到更多数据中的规律,提高训练效率和效果。
- 流水线并行技术:把模型的不同层分配到不同的GPU上进行计算,就像工厂的流水线一样,不同的工人(GPU)负责不同的工序(模型层),这样可以加快模型的训练速度,充分利用多个GPU的计算能力。
- YaRN技术:一种用于扩展模型上下文长度的技术。它能让模型处理更长的文本,理解文本中更复杂的上下文关系,就像给模型的“视野”进行了扩展,让它能看到更长的文本内容。
- SFT(监督微调,Supervised Fine - Tuning):在预训练模型的基础上,用有标签的数据进行训练,让模型更适应特定的任务。比如模型已经有了一定的语言理解能力,通过SFT,它可以学会按照特定的格式回答问题,提高在特定任务上的表现。
- RL(强化学习,Reinforcement Learning):一种训练模型的方法,模型通过与环境进行交互,根据环境给出的奖励或惩罚来调整自己的行为。在语言模型中,就是让模型生成答案,根据答案的好坏给予奖励或惩罚,引导模型生成更好的答案。
- 拒绝采样:一种数据筛选的方法。在训练模型时,会生成很多数据,但有些数据可能不符合要求。拒绝采样就是根据一定的标准,把不好的数据去掉,只保留高质量的数据用于训练,就像在一堆水果里挑出好的来吃。
- 样本掩码策略:在训练时,把多个样本组合成一个序列输入模型,但为了让模型不把这些样本混淆,采用样本掩码策略,让模型在处理每个样本时,感觉就像在单独处理它,避免样本之间相互干扰。
- 基于规则的奖励模型:在强化学习中,对于一些有明确规则判断答案是否正确的任务,按照这些规则来给模型的回答打分,这个分数就是奖励。比如数学题,答案对了就给高分,错了就给低分。
- 基于模型的奖励模型:对于那些没有明确判断规则的任务,用一个训练好的模型来评估模型生成的答案,根据评估结果给奖励。比如创意写作,由一个专门的模型来判断写得好不好,然后给出奖励。
- Group Relative Policy Optimization(GRPO):一种优化模型策略的方法。它通过比较模型在不同策略下的输出结果,来优化模型的策略,让模型生成更符合要求的答案。可以理解为让模型尝试不同的“做事方法”,然后选择最好的那个。
- 思维链(CoT,Chain of Thought):在解决问题时,模型一步一步思考的过程。比如做数学题,从条件分析到得出答案的步骤就是思维链。在评估模型时,看模型是否有合理的思维链,可以判断它的推理能力和答案的可靠性。
- 基准测试:用一些标准的数据集和评估方法来测试模型的性能,就像用统一的考试来检验学生的学习成果一样。通过基准测试,可以比较不同模型的优劣,了解模型在不同任务上的表现。