大语言模型对齐技术发展

近日,前HuggingFace RLHF团队创始牵头人、AI2(艾伦AI研究所)的人工智能专家Nathan Lambert在斯坦福大学CS25讨论课程上回顾了学界在大语言模型技术出现以来,为了使期能够按照人类期待的方式工作、并具备人类价值观在技术方面所做的努力。
以“Transformer United”为主题的斯坦福CS25课程始于2021年,今年是第四年。这门课主要邀请产业界人士讲解Transformer模型技术将包的最新突破,并解释他们如何将其应用于研究领域。本课程的目标是将ML、NLP、CV、生物学和其他社区关于Transformer的想法汇集在一起,了解其广泛含义,并引发交叉合作研究。
现将课程胶片和主要内容整理如下。

01.语言模型发展简史

1948年,克劳德·香农(Claude Shannon)的一篇论文谈到了近似地用排列字符来创建语言模型。这可能就是Anthropic把他们的模型叫做Claude的原因。

后续语言模型的技术发展主要是遵循这个思路,并建立在自回归损失函数的基础上。如图中的训练示例,损失函数应该能使得:如果模型能预测“cat”,则损失小;如果模型预测其他单词,则损失大;通过这种方法来提升模型预测正确单词的概率。

2017年,《Attention is all you need》发表,Transformer架构提出,给自然语言处理带来了转折。

2018年,提出了三个重磅成果,ELMo、GPT-1和BERT。其中ELMo实现了语境化的词嵌入(可以区分多义词的不同义项)。GPT-1和BERT则是现代大语言模型的开端。BERT是辨别式、而GPT-1则是生成式。

GPT-2引发了规模定律的讨论——实际测试损失随计算量指数级投入上升而线性下降。GPT-2还引发了大量关于语言模型发布的讨论——由于语言模型的风险,它一度被暂缓发布。然而最终,GPT-2还是得以发布,目前在HuggingFace上可随意下载使用。

2020年,GPT-3发布。GPT-3开始具备涌现能力,比如情境学习能力。围绕情境学习,各类提示工程研究雨后春笋般展开。大语言模型开始惊艳。但同时,学术界和产业界也开始讨论发布语言模型有哪些风险?哪些类型的群体会因此受到伤害?

在这里插入图片描述

2021年的这篇论文借用了狄德罗“鹦鹉”概念提出了对我们应该如何思考语言模型的批判——它们的局限是什么?它们真的能思考能做事吗?还是它们只是在遵循数据中的规律?

一年后,ChatGPT发布,上述话题不再有人讨论。

目前,RLHF是大语言模型人类对齐的最主要技术,广泛应用于各家模型。左侧Anthropic论文中的这张图清晰地显示了RLHF在让模型以更理想的方式工作方面取得了非常明显的效果。右侧Meta在LLaMA 2技术报告中对RLHF的评价很有趣。它说尽管强化学习以不稳定著称,但它成本很低、时间效率很高。这一观点让我们(指Lambert自己)这些搞强化学习的人感到十分震惊,因为我们一向认为强化学习既不低成本,也不高时效。

在这一部分的最后,对要讨论的内容下一个定义。首先,我们将“对齐 ”定义为训练模型以反映用户需求的一般概念,可以采取任何方法。其次,指令精调和监督精调是很容易相互混淆的两个概念。在本文中,指令精调是指训练模型使得它能够响应查询或格式化的指令;而监督精调则指训练模型能完成特定的任务。第三,人类反馈强化学习是一种将机器学习模型与人类数据相匹配的特定工具。它是一个多阶段的过程,有很多具体方法,但通常需要训练一个偏好模型,然后从中提取信息。最后是一个我(Lambert)正视图发展的概念,即“偏好精调”。偏好精调指通过标注的数据训练模型满足人类的偏好。采取的手段包括但不限于强化学习,也可能是DPO或其他损失函数等。

02.2023年春夏,复制ChatGPT

ChatGPT问世以后,OpenAI以外的人工智能界都想尽快复制出一个ChatGPT。随着Meta的LLaMA意外开源,这种热潮被加速助推

当基础模型LLaMA开源后,很快就有了一批基于其做指令精调的模型。其中引发最大轰动的是Alpaca项目。Alpaca用通过OpenAI的API基于davinci-003(注意不是ChatGPT)生成的52,000条自定义风格的数据(主要是问答)对LLaMA做了指令精调。

就Alpaca项目解释两个概念。其一是指令精调。指令精调就是让基础模型向某一种特定的输出风格适配。特定的输出风格包括系统提示(即用户不可见但能影响模型工作的提示)、多轮对话和各类聊天模板。

其二是合成数据。在Alpaca项目中,合成数据以“自指令”形式出现。Self-instruct是艾伦人工智能研究所在2022年ChatGPT发布之前前发表的一篇论文,其基本思想是:如何扩展所拥有的分布和指令数据,即用于微调语言模型的训练数据,而无需让更多人类参与其中?提出的方法是从一些高质量的、通常是人工的数据种子开始,用一个更强大的语言模型去扩展创建一个与之类似但仍然多样化的提示列表。一旦有了提示列表,就可以使用 ChatGPT 或其他模型来生成回答,这样就自动化生成了一个非常大的问答对列表。右图展示了Alpaca从175条数据种子开始,通过OpenAI最终生成了52,000条数据并对LLaMA实施了精调。

Alpaca问世后,几乎每周都有一个新的类似模型项目。第二种引起轰动的Vicuna。Vicuna与Alpaca的不同之处在于它用于指令精调的数据的是众筹的与ChatGPT真实对话,即ShareGPT。ShareGPT提供了浏览器插件,使人们可以在X或其他平台上分享自己对ChatGPT的提示词。但是ShareGPT存在法律模糊地带,因为它没有让用户明确同意将自己的数据用于模型训练。但ShareGPT是来自于真实人类数据,它的数据多样性要比Alpaca的强很多。目前,已经出现了很多与ShareGPT类似的,但解决了法律问题的项目。如LMSYS-Chat-100,包含了LMSYS ChatBotArena中一百万条对话。它花了大量工作来清除个人信息;还有艾伦人工智能研究所的WildChat,它明确要求用户一开始就同意他们的数据可以被收集和发布,以换取免费使用语言模型。Vicuna还引入了 “LLM-as-a-judge”(LLM 即评委)的理念,这影响了后来的很多评估工作。

Vicuna之后有一个重要的项目较Koala,相比于前两者,它采用的数据来源更为丰富,并且引入了人类评估。

为什么上面几页PPT总是强调这些项目与某一版本的LLaMA权重不同呢?因为在最初的一段时间里,LLaMA是面向开发真按照申请来分发的。Licence不允许开发者们发布基于LLaMA的变种。因此这些项目实际上发布的是它们与某个版本的LLaMA权重不同的部分。如果其他开发者想要获取这些项目,那么他们应该首先向Meta申请对应版本的LLaMA拷贝,再把差异部分的权重融合进去。LLaMA 2没有这样的限制,但LLaMA 3则要求二次开发的项目名称中显式含有LLaMA 3的字样。

Koala后一个重要的项目是Dolly。Dolly的特点是它完全是采用人类编写的数据精调的模型。因为早在Alpaca项目起,合成数据就已经大行其道,因此完全采用手工编写的数据精调模型难能可贵。Dolly是基于EleutherAI的Pythia模型精调的。因为Pythia是EleutherAI用于研究规模定律的早期项目,性能不够强,所以Dolly没有引起很大轰动。

同期,开源届出现了OpenAssistant项目,是一个众筹的开源手工编写指令精调数据集。

23年4月底,CarperAI发布了第一个基于LLaMA的RLHF模型StableVicuna。尽管这个模型传播度不够广,但它在开源领域RLHF首开记录。

接下来,QLoRA的提出使应用消费级显卡精调大语言模型成为了可能,从而引入了大量的新玩家。LoRA代表低阶自适应——冻结大部分模型权重,然后向特定层添加新的权重。对这些权重实施微调,效果与对整个模型进行精调近似。一样可以实施指令精调,但占用的内存要少得多。QLoRA在此基础上结合了非常具体的量化和GPU技巧,从而对精调模型的内存要求更低。应用QLoRA,Tim Dettmers团队发布了Guanaco。他们还找到了过滤OpenAssistant数据集的方法。这种过滤版本的OpenAssistant是今天最流行的。

03.如何评价“对齐”

当我们回顾当下发生的很多事情,比如目前DPO的论文,每个人都读过,但DPO的应用前景仍然尚不明朗。在2023年夏天,我们在HuggingFace上建立了RLHF Pipeline,支持开发者们应用LoRA、QLoRA等方法实施RLHF。一时间,开发者们都非常兴奋,因为可以在消费级GPU上对齐70亿参数大小的模型。但一段时间以后,外界开始质疑为什么没有人能够通过我们在博客文章中发布的内容训练出一个真正好的模型?现在的共识是,LoRA方法在用法或梯度流动方面存在某种奇怪的限制,精调的实际效果不佳。因此它只能作为计算资源有限情况下的权宜之计。

对大语言模型对齐技术来说,这个时代的另一个决定性时刻是Llama 2的过度拒绝。上图是一篇名为XSTest的安全评估测试集的论文中的一个例子。除此之外民间还流传一个段子:“有人问Llama如何杀死Python进程。它会说,不”。这些情况开启了一系列新的讨论,比如对齐意味着什么?模型应该或不应该做什么?聊天模型应该“安全”还是应该按照人的指示去做?这些根本问题的答案会因组织或个人而异。对这些问题,目前还没有任何明确的解决方案。

LLaMA 2的“过度拒绝”引发的一个想法是开发所谓“不审查(Uncensored)”模型。上面提到模型精调广泛应用合成数据。合成数据中不可避免地包含生成这些数据的那个大语言模型的拒绝的内容。而这些所谓“不审查”模型则从精调数据中过滤掉ChatGPT等生成的“拒绝”内容。开发者们认为这样的模型就不会继承合成数据生成者的价值观,并把模型生成任何“不恰当”内容的责任下放给下游用户或二次开发者。

目前已经推出了很多此类模型,但是大多缺少正式的文献。其中比较典型的如UltraLM来自中国的openBMB,XwinLM 7B是第一个在AlpacaEval中超过GPT-4的模型。这些模型都没有引发太多的关注。

自从2023年5月以来,学术界连续发布大语言模型在“对齐”方面的评测基准。可以看到目前最为流行的四个基准都是在那一时段发布的。这反映了开发者们对评测基准的强烈需求——大公司可以通过各种线上的方法测试真正的人类用户对模型的反应,但小团队开发者们负担不起这个成本,因此他们需要评测标准。

LMSYS的ChatBotArena可以说是定义了当前的“行业标准”。它将时下最高端的模型如Claude 3、GPT-4等纳入其中,在评测时采用双盲的方式,把两个模型针对同一提示词生成的内容并排陈列出来,让参评人比选。但是ChatBotArena有两方面问题。首先,小模型在这个基准中很难获得存在感;其次,评测周期长——过去甚至需要几周,现在也需要几天。

相比ChatBotArena,AlpacaEval对大语言模型工程师更加友好。AlpacaEval有一套固定的Prompt列表。这个列表中的提示词大多来自于Open Assistant、Vicuna、Koala等常用的开源精调数据集。它向每个模型发送相同的提示词,然后用大语言模型来做评审,一轮出结果。

AlpacaEval曾经被指出有所谓“Length Bias”的问题:即作为评审者的大模型偏爱长度更长的、更复杂的文本。也即评价不公正、不客观的问题。因此AlpacaEval又推出了AlpacaEval 2试图解决这个问题。AlpacaEval的根本问题在于,一个模型在95%的情况下“击败”另一个模型,这能说明什么呢?对于这类灵魂拷问,目前也没有答案。

MT Bench是另外一种评测基准,它有一套提示词,并请GPT-4或Claude这样的模型为参评模型的每一次生成评分。

实际上,AlpacaEval、MT Bench这样的评测基准存在许多根本问题。它的测试过程高度不透明,测试结果不具备可解释性。也很难说测试成绩提升,模型就真的变得好了起来。与此同时,目前还存在测试分数饱和的问题,也即所有的模型通过改进最终都集中于高分区域,但是从根本上不具备继续突破的可能。

之前HuggingFace搞的Open LLM排行榜也存在同样的问题。这种排行榜说明不了任何根本问题,但也许对模型宣传有一定效果。

总结上述对齐方面的评测基准。对齐不像是MMLU等预训练时使用的那些评测基准——它们相对客观、透明。模型在预训练基准上如果能全面提升2%,那就是非常出色的。但是模型对齐是一个更加复杂的话题,目前没有探索出权威、统一的评测基准。ChatBotArena的模式是最接近合理的,但它存在成本大、周期长的问题,不好推广。目前AI2正在推广一种叫WildBench的基准,是某种ChatBotArena和AlpacaEval的结合方法,它可能是一个非常有益的探索。

04.RLHF vs. DPO

如上面公式所示,大语言模型人类价值观对齐的根本目标是:让模型的行为尽量去贴近一个目标,但又不能靠得太近。这是因为所谓人类的价值观、偏好,是非常多元化、难以明确定性定量的规范。强化学习正好是使系统能够逐步接近某种目标的一种机器学习方法,因此被用于实现人类对齐。在强化学习范式下,通过人类偏好启发训练出来一个奖励模型,来预测在各种情况下人类的偏好,然后迭代训练使大语言模型向奖励模型看齐,这就是所谓的PPO近端优化算法。

上面说到,人类的“偏好”非常难于明确地描述出来,因此为了能够训练出上面提到的奖励模型,目前广泛采用的是一种比较的方法,如上图所示。也即通过对相同问题不同答案的比较来间接描述人类的偏好,这被称为Bradley-Terry模型,是一种来自于经济学的方法。

然而回顾本部分第一张胶片上的函数可知,强化学习不是人类价值观对齐的唯一方法。还是通过对比的方法,如果能有足够多的偏好对比数据,从这些数据中总结出一个损失函数,就可以利用精调的方法实现人类对齐——这就是DPO的基本思想。

右图就是DPO的伪代码。可以看出DPO算法非常的简单,并且很容易与现有的训练库相融合。它实际上是在训练一个隐含的奖励函数。这几点意味着采用DPO做对齐的大语言模型可能会越来越多。

不论是强化学习的方法还是DPO,最终的目标都是希望模型在人类偏好的地方梯度下降,在人类不喜欢的地方梯度上升。但强化学习的方法要首先训练奖励模型,然后逐步强化学习找到一个价值函数,再从价值函数去做梯度调整。而DPO则是直接做梯度调整。听上去DPO似乎更好。有人说推特上关于DPO和RLHF哪个更好的争论持续了整整一个月。

这种争论在HuggingFace发布Zephyr β模型时达到了顶峰。Zephyr是第一个用DPO做人类对齐的模型,并且它发现DPO相比强化学习的方法需要采用低得多的学习率。目前这个模型已经被嵌入到You.com搜索引擎。这是我离开HuggingFace之前参与的工作。

我来到AI2后,发布了基于LLaMA 2采用DPO做人类对齐的700亿参数规模的模型Tulu 2。这个模型在MT Bench上差一点就击败了GPT-4。Tulu 2验证了DPO的有效性,同时也让开源模型的性能来到了一个新高度。

与此同时,RLHF也在快速进展。比如英伟达的SteerLM项目将RLHF和DPO做了对比实验,结果证明RLHF更胜一筹。Starling的第二款模型引入了新的偏好数据集Nectar,以及新型奖励函数等。

05.当前的模型生态

当前,大语言模型的技术创新远未结束,越来越多的玩家加入到这场竞赛。其中有几个项目值得一提。NousResearch的Genstruct模型可以基于任何给定的文本生成半合成的指令精调数据集——这有望与RAG技术相竞争;AI2等机构开始发布完全透明的语言模型;Cohere的Command R+成为了第一个在ChatBotArena上击败GPT-4的开源模型,尽管要想在真实世界中击败GPT-4显然还有很长的路要走;微软的Rho在预训练中开展数据加权;Cohere的Aya模型带来了多语种精调;出现了更多的MoE模型以及Mamba、Jamba等transformer之外的创新模型架构等。

LLaMA 3让我们看到,当前模型性能的提升还是遵循缩放定律,而对齐技术的发展滞后——据传Meta内部有一个四千亿参数大小的LLaMA 3模型。

06.当前发展趋势

这是前一段在推特上广泛流传的图。看上去开源模型的性能似乎就要追上闭源模型了。但长期来看,我不确定开源能保持赶超的态势。开源的劣势在于数据,特别是在人类对齐方面,目前大概只有屈指可数的几个对齐数据集。但如果人类对齐做不好,开源模型的使用体验就比不过闭源模型。

在人类对齐方面,目前最缺乏的还是对齐数据。与此同时,围绕DPO的学术研究已经蓬勃开展。人类对齐正在向小体积模型渗透,这是一个新的赛道,最终可能演化为端侧模型。对齐的评测基准仍有待探索。

同时,越来越多的机构和个人已经投入到模型人类对齐的领域。

如何学习大模型 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 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

  • 19
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值