文章主题:ChatGPT, InstructGPT, 语言理解和生成能力, 对话能力
引言 | 本栏目特邀腾讯知名语言文本项目算法工程师冉昱、薛晨,用专业视野带你由浅入深了解ChatGPT技术全貌。它经历了什么训练过程?成功关键技术是什么?将如何带动行业的变革?开发者如何借鉴ChatGPT思路和技术,投入到日常工作中?期望本文能给你新的灵感。
ChatGPT主要特点
ChatGPT本质是一个对话模型,它可以回答日常问题、进行多轮闲聊,也可以承认错误回复、挑战不正确的问题,甚至会拒绝不适当的请求。在上周公布博文和试用接口后,ChatGPT很快以令人惊叹的对话能力“引爆”网络。
1)ChatGPT的技术背景
🌟【揭秘ChatGPT】🔥技术巨头新动向!🚀今年初的InstructGPT曾引领行业风潮,现在,ChatGPT正以独特的方式悄然崛起,它与前者的核心理念不谋而合。💡通过深入解析其介绍博文和试用API,我们发现ChatGPT凭借三大关键技术支柱支撑着它的创新力:🌟庞大的基础模型实力(InstructGPT基因),纯净且多样化的高质量数据池,🔥强化学习算法的巧妙运用(PPO引领)。欲知ChatGPT如何将这三大优势发挥到极致,敬请关注后续深度解析!🚀在文章的第二部分,我们将全面剖析其成功背后的每一个关键要素。📚SEO优化提示:ChatGPT、论文文献、技术点、InstructGPT、大模型能力、真实数据、PPO算法、强化学习、详细展开、成功要素、API试用、最新动向、行业风潮
2)ChatGPT的主要特点
🌟ChatGPT,语言艺术大师!🔥✨强大的AI助手,对话与创作无所不能!📝它以卓越的语义理解和文本生成技术为核心,无论是日常问答还是多轮对话,都能流畅应对,记忆力强,篇幅扩展自如。💬无论是英语、法语还是东方智慧,它都能轻松解析,展现全球语言魅力。compareTo行业巨头如GPT3,ChatGPT展现出全面且深入的解答能力,知识挖掘犹如宝藏,为用户提供全方位视角。🔍这不仅减少了学习负担,节省宝贵时间,还能满足各种需求:快速文案改写、长篇小说创作、代码bug定位,一应俱全!🌍无论是学术研究还是日常生活,ChatGPT都像一位贴心的私人助理,让信息获取变得轻松愉快。🚀未来,它将继续以创新和高效,引领语言技术的新潮流!🌟#ChatGPT #AI大师 #语言理解和生成
🌟ChatGPT的出色之处在于它不仅具备先进的安全防护体系,还能有效抵御偏见影响。👀相较于以往大模型的随意行为,它在应对不当问题和无礼请求时展现出更强的策略性,懂得如何巧妙地过滤和回应。🛡️对于那些试图触碰法律红线的提问,ChatGPT会坚决说不,并以一种既尊重又不失礼貌的方式进行回绝,守护了正确的价值观。👩⚖️
对于未知事物的“拒绝”:
当然,ChatGPT的表现虽引人瞩目,但也并非无懈可击。它的逻辑精确度虽然有所提升,但仍存在一些不稳定因素,尤其是在复杂的交互情境中,用户引导对其判断的影响不容忽视(相较于GPT3,已有显著改善)。值得注意的是,偶尔会因对话历史的误导而产生困惑,这是其需要进一步改进的地方。
🌟ChatGPT的智慧与挑战:🔥当AI助手成为知识源泉,我们如何辨别真相?🤔ChatGPT以其便捷性和广泛性,无疑为信息获取带来了革命性的改变。但它并非绝对可靠,有时会给出让人困惑的答案。👀特别是对于新手或匿名用户,难以判断其答案的准确性,就像在迷雾中寻找北极星。🔍生产者利用ChatGPT低成本制造错误信息的风险不容忽视,这已对某些领域产生了隐形影响。 kode warriors 遭遇了挑战,StackOverflow站内,官方声明暂时封禁ChatGPT生成内容,直言误答如潮,超出了网站的维护极限。🚫Stack Overflow的决定并非偶然,它提醒我们,在拥抱技术的同时,辨别真伪的能力同样重要。让我们一起审视,如何在享受AI带来的便利时,坚守知识的纯净。📚SEO优化提示:使用ChatGPT、AI助手、真相辨别、StackOverflow、误答等关键词,同时保持内容的相关性和价值性。
🌟ChatGPT的弱点及优化空间🌟虽然ChatGPT以其强大的生成能力吸引了广泛关注,但它在处理不安全提示和理解用户意图方面存在局限性。当用户的问题含糊不清时,它容易误解,而非引导用户澄清,这可能导致回应偏离预期。💡尤其在面对模糊意图时,ChatGPT的猜测功能需要改进,确保更精准地解读用户的真正需求。理想的交互应该是互动式的,而不是简单地猜测。🔍反馈显示,当用户提问时,部分回复显得冗余,句式单一,仿佛在重复训练数据中的常见短语和模式。💬 这现象与训练集偏向长篇大论的倾向不无关系,需要调整以适应多样化和简洁的表达。为了提升用户体验,ChatGPT未来应致力于减少无效信息,提供更具针对性和个性化的回复。同时,优化算法以识别并避免过度使用常见句式,让生成的内容更加自然流畅。🚀SEO提示:ChatGPT、用户意图理解、问题澄清、冗余回复、训练数据调整、个性化体验、算法优化
ChatGPT的工作原理
1)ChatGPT的训练过程
ChatGPT训练过程很清晰,主要分为三个步骤,示意如图所示:
第一步,使用有监督学习方式,基于GPT3.5微调训练一个初始模型,训练数据约为2w~3w量级(此处为推测量级,我们根据兄弟模型InstructGPT的训练数据量级估算)。由标注师分别扮演用户和聊天机器人,产生人工精标的多轮对话数据。值得注意的是,在人类扮演聊天机器人时,会得到机器生成的一些建议来帮助人类撰写自己的回复,以此提高撰写标注效率。
以上精标的训练数据虽然数据量不大,但质量和多样性非常高,且来自真实世界数据,这是很关键的一点。
第二步,收集相同上文下,根据回复质量进行排序的数据:即随机抽取一大批Prompt,使用第一阶段微调模型,产生多个不同回答:
,之后标注人员对k个结果排序,形成
组训练数据对。之后使用pairwise loss来训练奖励模型,可以预测出标注者更喜欢哪个输出。”从比较中”学习可以给出相对精确的奖励值。
这一步使得ChatGPT从命令驱动转向了意图驱动。关于这一点,李宏毅老师的原话称,“它会不断引导GPT说人类要他说的”。另外,训练数据不需过多,维持在万量级即可。因为它不需要穷尽所有的问题,只要告诉模型人类的喜好,强化模型意图驱动的能力就行。
第三步,使用PPO强化学习策略来微调第一阶段的模型。这里的核心思想是随机抽取新的Prompt,用第二阶段的Reward Model给产生的回答打分。这个分数即回答的整体reward,进而将此reward回传,由此产生的策略梯度可以更新PPO模型参数。整个过程迭代数次直到模型收敛。
强化学习算法可以简单理解为通过调整模型参数,使模型得到最大的奖励(reward),最大奖励意味着此时的回复最符合人工的选择取向。而对于PPO,我们知道它是2017年OpenAI提出的一种新型的强化学习策略优化的算法即可。它提出了新的目标函数,可以在多个训练步骤实现小批量的更新,其实现简单、易于理解、性能稳定、能同时处理离散/连续动作空间问题、利于大规模训练。
以上三个步骤即ChatGPT的训练过程,合称为文献中提到的RLHF技术。
2)ChatGPT为何成功?
为何三段式的训练方法就可以让ChatGPT如此强大?其实,以上的训练过程蕴含了上文我们提到的关键点,而这些关键点正是ChatGPT成功的原因:
强大的基座模型能力(InstructGPT)
大参数语言模型(GPT3.5)
高质量的真实数据(精标的多轮对话数据和比较排序数据)
性能稳定的强化学习算法(PPO算法)
我们需要注意的是,chatGPT的成功,是在前期大量工作基础上实现的,非凭空产生的“惊雷”。下面我们将针对性阐述:
InstructGPT
ChatGPT是InstructGPT的兄弟模型(sibling model),后者经过训练以遵循Prompt中的指令,从而提供详细的响应。InstructGPT是OpenAI在今年3月在文献 Training language models to follow instructions with human feedback 中提出的工作。其整体流程和以上的ChatGPT流程基本相同,但是在数据收集、基座模型(GPT3 vs GPT 3.5)以及第三步初始化PPO模型时略有不同。
此篇可以视为RLHF 1.0的收官之作。一方面,从官网来看,这篇文章之后暂时没有发布RLHF的新研究,另一方面这篇文章也佐证了Instruction Tuning的有效性。
InstuctGPT的工作与ChatGPT类似:给定Instruction且需要人工写回答。首先工作人员训练了一个InstructGPT的早期版本,使用完全人工标注的数据,分3类:Instruction Answer、Instruction 多个examples 和用户在使用API过程中提出的需求。从第二类数据的标注,推测ChatGPT可能用检索来提供多个In Context Learning的示例,供人工标注。剩余步骤与以上ChatGPT相同。
尤其需要重视但往往容易被忽视的是,OpenAI对于数据质量和数据泛化性的把控。这也是OpenAI的一大优势:寻找高质量标注者——寻找在识别和回应敏感提示的能力筛选测试中,表现良好的labeler;使用集外标注者保证泛化性——即用未经历以上1)步骤的更广大群体的标注者对训练数据进行验证,保证训练数据与更广泛群体的偏好一致。
在完成以上工作后,我们可以来看看InstuctGPT与GPT3的区别:
GPT3的回答简短,回复过于通俗毫无亮点。而InstructGPT“侃侃而谈”,解释自由主义为何愚蠢,显然模型学到了对于此类问题人们更想要的长篇大论的回答。
GPT3只是个语言模型,它被用来预测下一个单词,丝毫没有考虑用户想要的答案;当使用代表用户喜好的三类人工标注为微调数据后,1.3B参数的InstructGPT在多场景下的效果超越175B的GPT3:
InstuctGPT的工作也很有开创性:它在“解锁”(unlock)和挖掘GPT3学到的海量数据中的知识和能力,但这些仅通过快速的In-context的方式较难获得。InstuctGPT找到了一种面向主观任务来挖掘GPT3强大语言能力的方式。
OpenAI博文中有这样一段原话:当我们要解决的安全和对齐问题是复杂和主观,它的好坏无法完全被自动指标衡量的时候,此时需要用人类的偏好来作为奖励信号来微调我们的模型。
InstuctGPT的前序工作:GPT与强化学习的结合
其实在2019年GPT2出世后,OpenAI就有尝试结合GPT-2和强化学习。NeurIPS 2020的 Learning to Summarize with Human Feedback 工作中写道,OpenAI在摘要生成时,利用了从人类反馈中的强化学习来训练。可以从这篇工作的整体流程图中,看出三步走的核心思想:收集反馈数据 –