算法工程师深度解构ChatGPT技术
引言 | 本栏目特邀腾讯知名语言文本项 目算法工程师冉昱、薛晨,用专 业视野 带你由浅入深了解ChatGPT技术全貌。它经历了什么训练过程?成功关键技术是什么?将如何带动行业的变革?开发者如何借鉴ChatGPT思路和技术,投入到日常工作中?期望本文能给你新的灵感。
ChatGPT主要特点
ChatGPT本质是一个对话模型,它可以回答日常问题、进行多轮闲聊,也可以承认错误回复、挑战不正确的问题,甚至会拒绝不适当的请求。在上周公布博文和试用接口后,ChatGPT很快以令人惊叹的对话能力“引爆”网络。
1)ChatGPT的技术背景
2)ChatGPT的主要特点
对于未知事物的“拒绝”:
ChatGPT的工作原理
1)ChatGPT的训练过程
ChatGPT训练过程很清晰,主要分为三个步骤,示意如图所示:以上精标的训练数据虽然数据量不大,但质量和多样性非常高,且来自真实世界数据,这是很关键的一点。
2)ChatGPT为何成功? 为何三段式的训练方法就可以让ChatGPT如此强大?其实,以上的训练过程蕴含了上文我们提到的关键点,而这些关键点正是ChatGPT成功的原因:
- 强大的基座模型能力(InstructGPT)
- 大参数语言模型(GPT3.5)
- 高质量的真实数据(精标的多轮对话数据和比较排序数据)
- 性能稳定的强化学习算法(PPO算法)
我们需要注意的是,chatGPT的成功,是在前期大量工作基础上实现的,非凭空产生的“惊雷”。下面我们将针对性阐述:
- InstructGPT
此篇可以视为RLHF 1.0的收官之作。一方面,从官网来看,这篇文章之后暂时没有发布RLHF的新研究,另一方面这篇文章也佐证了Instruction Tuning的有效性。
在完成以上工作后,我们可以来看看InstuctGPT与GPT3的区别:
GPT3只是个语言模型,它被用来预测下一个单词,丝毫没有考虑用户想要的答案;当使用代表用户喜好的三类人工标注为微调数据后,1.3B参数的InstructGPT在多场景下的效果超越175B的GPT3:
-
InstuctGPT的前序工作:GPT与强化学习的结合
RLHF第一阶段是针对多个候选摘要人工排序(这里就体现出OpenAI的钞能力,按标注时间计费,标注过快的会被开除);第二阶段是训练排序模型(依旧使用GPT模型);第三阶段是利用PPO算法学习Policy(在摘要任务上微调过的GPT)。
-
PPO
而PPO提出了新的目标函数可以在多个训练步骤实现小批量的更新,解决了Policy Gradient算法中步长难以确定的问题。由于其实现简单、性能稳定、能同时处理离散/连续动作空间问题、利于大规模训练等优势,近年来受到广泛关注,成为OpenAI默认强化学习算法。
-
WebGPT和CICERO
Meta原blog中写道:The technology behind CICERO could one day lead to more intelligent assistants in the physical and virtual worlds.
ChatGPT应用和思考
1)ChatGPT应用
-
ChatGPT对于文字模态的AIGC应用具有重要意义
其中有些方向会涉及到交互的全面改革,比如机器翻译不再是传统的文本输入->实时翻译,而是随时以助手问答的形式出现。甚至给出一个大概笼统的中文意思,让机器给出对应英文。目前我们目前所做的写作产品,可能也会涉及创作模式的改变和革新。
有些方向会全面提升产品质量,比如已存在的客服机器人、虚拟人等。
- ChatGPT作为文字形态的基础模型,自然可以与其他多模态结合
-
ChatGPT对于搜索引擎的代替性:C hatGPT可以作为搜索引擎的有效补充
对于网络有答案的query,抽取就完全能满足,现友商最近就有这样的功能。网络上没有明确答案,即使检索了相关材料(ChatGPT应该还没有这样的功能),也没人能保证生成结果的可信度。
- ChatGPT本身的升级
还有其他更多方向,包括ChatGPT与最近数理逻辑工作的结合。此处受个人思维所限,无法一一列举。
2)关于ChatGPT的思考
结合对于ChatGPT的看法,我们从算法和行业更新角度做出了阐述:
首先,对于ChatGPT的规模目前没有更多信息支撑,所以无法明确如此智能的ChatGPT是在何规模下达成的。
最早的175B的GPT-3代号是Davinci,其他大小的模型有不同的代号。然而自此之后的代号几乎是一片迷雾,不仅没有任何论文,官方的介绍性博客也没有。OpenAI称Davinci-text-002/003是GPT-3.5,而它们均为InstrucGPT类型的模型,ChatGPT是基于其中一个微调模型得到,由此推测ChatGPT可能是千亿模型。
其次,ChatGPT不完全算突破式的创新,是OpenAI一步一步扎实工作积累得到的几乎理所当然的结果,属于这两年业界发展的成果汇总。
大家一般没有机会接触千亿模型(之前有较少开源的千亿模型,GPT-3也是收费的),不了解现在千亿模型的能力边界,对全量微调这个级别的模型也无从估计。以Bert和T5为代表的早期Transformer,和现在的大模型已不是一个量级。事实上11月28日OpenAI上新了text-davinci-003,但几乎没有引起国内任何讨论。如果ChatGPT(11-30发布)不是免费试用,或许也不会引起这么大的反响。
同一时期的工作还有Deepmind的Sparrow和Google的LaMDA,效果与ChatGPT应该不相上下。同样以上提到的WebGPT和Cicero也在国内没有太大的水花。这两年LLM发展已经到了这个层级,或许因为成本或者工程化难度的问题,某种层面上在国内被忽视了。而此次ChatGPT正好找到了好的“曝光点”,一炮而红。
所以,一方面我们要理性看待ChatGPT的成果,但另一方面ChatGPT的出现,会将我们的认识和国外先进思想拉到一条线上,我们应该思考如何利用这些令人激动的最新成果,而其中关键是如何找到适合我们入口的方式。
3)如何借鉴和使用ChatGPT
- 直接使用层面
当然其缺点也很明显。直接调用成本是极高的,根据GPT3.5(Davinci)的成本推测:1k tokens≈700 words为0.02美元。换算后,一篇2k字的文章直接调用需要0.4人民币。若保守按照日活1w用户、人均10篇文章计算,则每日调用成本为:10000*10*0.4=40000元。虽成本过于高昂,但实现时间最少。
- 间接使用层面
- 思想借鉴
总的来说,将改写从最初的seq2seq,拓展到GPT+Instruction Tuning路径。 实现时间:(1)< (2) < (3) 资源成本:(1)> (3) > (2)
- 交互升级
👨👩👧👦有奖开放talk: 你还能想到ChatGPT哪些用途?它还有什么应用价值?
欢迎在评论区聊一聊你的看法。我们将选取点赞量最高的3位朋友,送出腾讯云定制礼品一份。12月20日中午12点开奖。快邀请你的开发者朋友们一起来参与吧!腾讯工程师技术干货直达: 1. 太硬核!用大数据技术预测足球胜率