第一部分:关于后训练阶段的RL
1. 预训练阶段通过堆数据对模型性能提升已经到头了吗?未来的趋势是在后训练阶段用RL吗?
这可能是一个行业趋势,核心问题还是数据的限制。pretrain的scaling已经做了几年,这里带来的收益会逐渐变少,但是仍然有很多可以做的空间,比如搞质量更高的数据,挖掘更diverse的数据,这相关的工作我理解是永无止境的。同时,强化学习(RL)的scaling才刚刚开始,我们期望会有更陡峭的梯度在这里。RL可以通过交互和优化策略,在现有模型的基础上进一步挖掘潜力,从而弥补数据增长乏力带来的局限性。
2. 什么类型的数据达到极限?是文本还是图片?
如果是单纯的语言模型,关键在于文本数据的规模和质量;但如果是多模态模型,除了文本数据之外,还需要其他类型的数据,比如图像、音频或视频数据,以支持多模态任务的学习和推理。对于多模态数据来说,比如图片和视频,目前数据的增长空间确实未达到极限,但是也需要更复杂的数据处理。在理想情况下,一个多模态模型的最优状态应该是既能够深刻理解数据,也能够生成高质量内容,也就是在同一个框架下同时训练生成和理解。
从理解能力的角度来说,目前的模型表现还不错,比如我们的Kimi k1或Kimi k1.5,它们在图片理解上的能力相对较好。我们曾在训练中引入了许多涉及数学和逻辑推理的题目,模型在这些任务上的泛化能力表现还可以。
比如我们试过一个任务,让模型通过一张图片推测拍照地点。结果显示它的推测非常靠谱,总体上表现得不错。但图片其实对提升模型的“智力”作用不大。也就是说,模型的核心推理能力和智力还是依赖于文字数据来训练的。图片的作用可能更多体现在grounding上,比如帮助模型更好地理解空间关系或者一些具体的场景。
3.强化学习之前的后训练阶段,通常使用的方法是什么?
一年前在后训练阶段,大家可能会做SFT(Supervised Fine-Tuning,监督微调)。完成SFT后,你可能会发现模型已经有了一定的提升,这时还会利用DPO 做进一步优化,然后基本上这个阶段的训练就完成了。
我们按照最开始的大模型的训练方式,先洗一堆数据来做预训练。最初这个模型是不会对话的,我们通过做SFT(Supervised fine-tuning监督微调),让它学会对话,学会指令遵循等能力。
这样处理之后,模型基本上就可以用了。在这之后,比如在以前,还会做一些RLHF(Reinforcement Learning from Human Feedback),但是RLHF和现在的强化学习(RL)还是不太一样。比如说,DPO(Direct Preference Optimization)可以算是RLHF的一种简化版本。SFT对模型的提升有一定帮助,但不能做得太多,做太多会对模型的性能有损伤。
在RLHF(Reinforcement Learning with Human Feedback)中,DPO 是 Direct Preference Optimization 的缩写,它是一种基于偏好优化的简化版本,用于替代传统RLHF中复杂的强化学习步骤。DPO的核心思想是直接利用人类偏好数据进行优化,而不依赖复杂的强化学习算法。DPO是RLHF方法的一种轻量化实现,适合在有大量人类偏好数据时直接优化模型输出效果,而无需完整的强化学习环节。
4. 现在后训练阶段用到的RL和之前的RLHF有什么区别?
基于人类反馈的强化学习(RLHF),与传统强化学习的本质区别主要在于奖励(reward)的来源不同。RLHF的奖励来自一个“奖励模型”(reward model),这个模型通过配置好的数据进行训练。比如,在训练过程中,会准备两条回答数据:一条是人类认为好的回答,另一条是人类认为不好的回答。
通过这些配对的数据,奖励模型学会了对回答进行评分。例如,问一个问题“今天的天气怎么样?”,如果模型回答了不相关的内容,比如“你好”,这是一个不好的回答。而如果模型回答了与天气相关的准确内容,那就是一个好的回答。奖励模型通过这种方式学会为不同回答打分。
基于这个奖励模型,对策略网络(policy net)进行训练。但这里需要注意,训练不能进行太多步,否则策略网络会过拟合(overfit)奖励模型。如果过拟合了,奖励模型就无法提供有效的反馈,这时需要重新训练一个新的奖励模型。
而现在我们在后训练阶段用到的RL,更多是根据ground truth来的,例如判断模型是否正确完成了任务,比如代码是否写对了,或者问题是否回答准确。在这种情况下,奖励相当于一个“黄金标准”(golden reward),具有更高的可靠性。由于这种黄金标准很难被策略网络“破解”或欺骗,因此可以在这种奖励下进行更长时间的强化学习训练。
RLHF是基于人类反馈的强化学习,本质上依赖于人类提供的意见来区分哪些回答是好的,哪些是差的。目前在后训练阶段用到的强化学习(RL)通常针对的是有明确答案的问题,这些答案并不是基于人类的主观意见,而是由客观标准决定的。
因此,这两种方法所处理的问题类型是不同的。RLHF更适合处理主观性较强的任务,比如文本对话,因为这些任务的评价标准往往因人而异。而传统RL则主要用于那些答案明确、目标清晰的场景,比如解数学题,或者写代码。所以其实如果总结上来看,在处理一些数学和编程相关的问题时,使用RL来进行post-training目前被认为是最优的。
5. 后训练阶段用到的RL是什么类型的RL?
强化学习中有许多分类,比如基于价值(value-based)和基于策略(policy-based)的方法。当前的主流方法大多采用的是基于策略的方法。
这是因为,比较长时间以来,大家逐渐放弃了基于价值的方法。基于策略的RL比较容易scale,主要是在大规模部署和训练的角度来说,它有一定的优势,所以进一步可以解决更难的问题。
目前,业界普遍使用的训练方法是基于策略的方法,比如以前常见的PPO(Proximal Policy Optimization)。PPO在早期阶段被认为非常有效,但现在来看,在LLM中PPO可能已经没有必要,或者说它的效果并不显著。当前的主流方法多是采用更简单的基于策略的训练算法,而不再依赖复杂的ppo框架。
从另一个维度Model-free还是Model-based(这里的model指的是transition model)目前在大语言模型用到的RL都是Model-free,机器人里用到Model-based的会多一些。
从on-policy和off-policy的角度,在on-policy方法中,训练的数据是从当前策略网络(policy network)中采样出来的,每次模型参数更新后,需要重新采样数据进行训练。而在off-policy方法中,可以利用之前采样的数据来继续训练,即便模型参数已经更新。这意味着on-policy更强调实时性和一致性,而off-policy则可以更高效地利用历史数据。我们用的是带有一定off-policyness的算法。
RL在后训练方面的方法其实在我们发布这篇论文之前,业界并没有共识,GPT-O1也没有公布他们在RL方面的训练方法。但随着更多的论文公布,RL在后训练方面的方法会受到越来越多人关注。
6. 文本类回答问题是否也存在用RL来进行post-training的趋势?
这个主要取决于能否准确评估结果,比如如果写两段作文,如何准确地评估哪一段更好?这其实是一个挺困难的问题,因为没有一个明确的、统一的标准能够完全客观地衡量优劣。很多时候,这种评估带有一定的主观因素。
因此,对于文本回答类的问题,通常还是需要通过RLHF(Reinforcement Learning from Human Feedback)来优化。然而,也存在另一种思路,即假设可以通过一套非常复杂的机制(比如有一个套非常复杂的pipeline)来获得更准确的评估,那么在这种情况下,也可以进行直接优化。
7. RL对训练效率和GPU的需求上升了吗?
强化学习(RL)方法并没有显著降低训练成本,其成本依然很高。这是因为RL方法依赖暴力搜索,需要大量算力支持,生成与训练需要同时进行。
在生成任务中,例如解决数学题时,模型需要生成答案并根据其正确与否进行评估,从而给予奖励(reward)。评估方法可能是将生成的答案与标准答案(ground truth)进行对比,或者在代码生成的情况下通过执行代码并运行测试用例来验证正确性。这种过程被称为"rollout",即生成答案并与标准答案进行对比,判断其准确性。
生成完答案后,还需要进一步训练,整个过程包括生成、验证、训练的迭代操作,最终优化模型的性能。
第二部分****k1.5 利用LLMs扩展强化学习
8.什么是Kimi的k系列模型?
关于k 系列的分类,k 系列主打长回复,但他能够解决复杂的问题,例如,数学竞赛和Codeforces编程竞赛的问题,这属于k 系列的目标应用。k0聚焦于数学问题上的应用,是系列的第一个版本;k1则拓展到多模态,k1.5 在k1的基础上进行了更多的训练,性能有所提升。
在多模态方面,k 系列逐步加入了视觉能力,尤其是2D图像的处理。在预训练阶段当然会有很多互联网上的图片信息,在后训练RL环节,用到的图片更有针对性,例如几何类数学题需要结合题目与图形信息才能解答;行测题包含许多图片推理的内容;智商测试中也有需要图片推理的题目。这些数据被用来针对性地训练模型,特别是针对于数学、几何类问题或需要视觉推理的问题。
总体来看,k 系列的研发方向逐渐增强模型在复杂问题和视觉推理方面的能力,同时利用多模态数据扩展其应用场景。代码需要多模态的部分比较少,但像数学,K12比如化学物理类题目对多模态的需求更高。
很有意思的一个点是,我们用这类和解题有关的图片训练好的模型,其实对他的空间理解能力也有提升。例如,在办公室拍一张窗外的照片,模型可以通过照片中的信息进行推理,判断照片中有什么内容,并进一步判断照片拍摄的地点。这种能力可以结合视觉识别和空间推理技术,提升模型在真实场景中的应用能力。
9.什么叫Inference Scaling Law?
Inference Scaling Law指的是推理时间变长可以显著提升模型效果。具体来说,模型的输出过程本质上是一种计算过程。如果允许模型有更长的时间“思考”,它会通过反复尝试和自我修正来优化答案。例如,模型可能会先粗略地计算一遍答案,发现错误后进行反思和调整,最终得出更准确的结果。这种延长推理时间的方式相比直接给出答案,能够带来非常显著的效果提升。
在推理时间较长的场景下,用户可能会感到模型的响应变慢,但得到的答案质量会更高。然而,这种延长推理时间的效果需要根据具体场景来权衡。如果只是回答简单的问题,比如打个招呼,响应速度慢会影响用户体验。
最理想的方式是模型能够同时掌握长回复和短回复,并能自如地判断在不同场景中何时需要长时间推理、何时需要快速响应。然而,目前的技术还未达到这一理想状态,模型的表现往往受到训练数据的影响,训练数据较多的场景更容易优化,而其他场景可能尚不够完善。
一种解决方案是提供多个入口,让用户自行选择是偏向快速响应还是高质量推理结果。这既为用户提供了灵活性,也是一种权衡模型能力与实际需求的方式。
10.怎么理解Long-COT和Short-COT以及Long2Short
关于Short-CoT(Chain of Thought)和Long-CoT的区别,长CoT是指模型在推理过程中使用非常长的输出,比如解决一道题可能需要一万token。然而,实际上模型可能并不需要这么长的推理过程,如果能将输出压缩到更短的长度,比如2000 token,仍然可以得出正确答案。
所以我们的Long2Short提到一个关键问题是,是否可以将模型的输出压缩到最短的程度,同时仍然能够正确解决问题。这意味着在保证正确性的前提下,尽量减少推理过程中不必要的冗余,使模型更加高效,避免无意义的过长推理输出。
这种优化的目标是在推理准确性和效率之间找到平衡,既能保持模型的高性能,又能减少计算资源的浪费。
然而,强化学习(RL)训练中模型往往会倾向于生成更长的推理过程,会越训越长。这是因为RL只根据模型的答案是否正确给予奖励,而不考虑推理过程的长度。因此,模型在训练中逐渐形成了更长推理的模式,并且这种模式具有自我强化的趋势。
虽然更长的推理过程可能显得冗余,但在许多情况下,通过更深入的反思和多次尝试,模型的最终准确率确实得到了显著提升。
将模型推理比作学生做数学题,强调了逐步推理的过程:模型不是直接给出答案,而是一步一步推导,有时还会回到前面的步骤重新反思和检查,寻找更好的思路。这种反复推理的方式能够提升最终答案的准确性。
然而,如果推理过程变得过长,可能会导致不必要的复杂性。当前的优化方向是限制推理长度,避免它无限制增长。在许多情况下,随着推理长度增加,模型性能会逐渐提升,但当问题本身的难度饱和时,推理长度的增加就不再带来额外收益。目标是找到一种方式,使模型在适当的长度内达到最佳性能,而不是盲目延长推理过程。
11.怎么做Long2Short?
针对优化模型从长推理到短推理,有几种方法。
第一种方法是模型合并(Model Merge),将一个长推理模型和一个短推理模型合并,得到一个输出长度中等的模型;
第二种方法是长度惩罚(Length Penalty),在强化学习(RL)的奖励函数中加入长度惩罚(Penalty),促使模型在推理时平衡长度和准确率。这是一种更优雅的方式,通过权衡推理长度和性能来优化结果。
第三种方法是最短数据筛选,具体做法是:从长模型生成的正确解答中,挑选出推理路径最短的数据,作为新的训练数据提供给其他模型。这种方法类似于知识蒸馏的过程,将长模型的能力提炼为更高效的推理方式。目标是引导模型按照能够正确解题的前提下,尽可能输出最短的推理路径,从而优化模型的推理效率。
第四种方法是,直接偏好优化(Direct Preference Optimization, DPO),通过强化学习的方法实现,直接偏向于短推理过程。这种方法简单快捷,适合快速实现优化目标。
12.通过RL来提高推理能力是否比单纯增加模型参数更有效?
有一个有趣的发现:如果有两个模型,一个是大模型,一个是小模型,小模型可以通过增加输出长度来达到与大模型相近的效果。
具体来说,小模型在推理时,如果允许其生成更长的输出,就能够在一定程度上弥补因模型规模较小而带来的性能差距。这种方式本质上是用更长的推理时间和过程来补偿模型本身的能力不足,从而实现接近大模型效果的表现。
13.怎么理解长上下文扩展?
我们将RL的上下文窗口扩展到128k,发现性能随上下文长度增加而提升。为提高训练效率,采用部分展开(partial rollouts),通过重用大量先前轨迹生成新轨迹,避免了从头生成的高成本。
关于模型扩展长度的问题,提到将扩展到128k是一种常态化的趋势。随着模型的推理长度不断增加,观察到性能也在持续提升。推理过程变得越长,模型的能力越强,能够处理更复杂的问题并给出更精准的答案。这种延长推理长度的方式,显示出模型在大规模推理场景下的潜力和效能。
在训练过程中,随着推理窗口长度从32k不断扩展,模型能力也随之增强。然而,这种扩展带来了一个明显的问题:由于模型的 autoregressive 特性,输出速度随着推理长度的增加变得越来越慢,训练效率显著降低。
为了解决这个问题,可以引入一种优化策略,将长推理的生成过程分段处理。例如,对于一条128k的回答,前32k由一个模型生成,中间32k由另一个模型生成,最后的32k由第三个模型生成。通过分段生成,可以有效缓解因推理长度过长而导致的生成速度问题,同时保持整体推理的完整性和效率。这个方法不仅能解决答案过长的问题,也为后续方向的扩展提供了思路。
此外,该方法可以在生成过程中提前检测重复。大型语言模型容易出现重复,这是其本质特性之一。因此,我们可以在输出过程中提前停止重复内容,并对其进行惩罚。虽然生成的答案可能较长,但基本不会出现重复现象。
在策略优化方面,改进主要集中在算法层面的优化,同时构建了一个简洁的框架,这也体现了工程实现上的实用性。实际上,比如MCTS、value network以及过程奖励等模块,都可以认为是不必要的,完全可以不依赖它们。总的来说,简单的方案往往是最有效的,这与之前许多论文对MCTS和PRM所做的探索得到的结论相反。
如何学习大模型 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 的正确特征了。