去年12月1号,自Sam Altman在Twitter上公开宣布ChatGPT后,ChatGPT逐步引发了全球瞩目。据新华社报道,在今年1月份ChatGPT已经拥有了一亿的月活用户,成为了历史上增长最快的应用程序。甚至,斯坦福大学有研究认为它已经具有了人类的心智。
本期的Tech Talk,我们邀请到了小米知识问答团队的工程师——刘惠文,为大家介绍ChatGPT的技术演进及问答应用,包括ChatGPT相关的工作和技术,并探讨ChatGPT会给小爱的开放域问答服务带来什么样的转变。
”
硬核指数:⭐⭐⭐⭐⭐
趣味指数:⭐⭐⭐
阅读时长:约14分钟
一、技术背景
>>>> 1.1 GPT1-3
GPT2模型在BERT之后于19年2月份推出。相比GPT1,它具有了更多的参数,达到了15亿,不过它在预训练+微调的模式下仍旧弱于BERT。但是从GPT2开始,OpenAI转变了视角,开始从预训练+微调的模式改为零样本学习。随后而来的Prompt, Instruction以及最终ChatGPT能够自然地与用户交互,都发轫于这一转变。就知名度来说,GPT2可能不如开篇之作GPT1和后面的GPT3,但它承上启下十分的重要。
GPT3在GPT2基础上,于20年5月份推出。它的训练参数达到了1750亿个。这么大规模的参数,需要耗费大量的计算资源才能完成训练,训练花销已高达数百万美元,引发了大型语言模型的新一轮军备竞赛。
GPT3有比较重要的两点:其一,它提出了一种新的范式In-Context Learning,可以认为后面的CoT、IFT都与之相关;其二,GPT3开始表现出了大型语言模型的涌现能力(Emergent Abilities)。涌现能力,通俗点说,就是当模型的参数量比较少时(比如GPT1、GPT2所具备的一亿或者十五亿的参数规模),模型不具备或者具备较弱的相关的能力,但是当参数量变大很多后,这些能力会突然具备或者变得很强。GPT3以数学中的加减法开展了实验,当模型达到GPT3这种参数规模时,它的两位数的加减法运算会好很多。涌现能力是一种意料之外的发现,到目前为止,学术界没有对这一现象给出很好的解释。
>>>> 1.2 IFT
IFT全称是Instruction Fine-Tuning,可以称为遵循指示的微调。通俗点说,就是尽量按照人的语言或者命令等常规说话的那种方式来组织一批训练数据,来对大型语言模型(比如GPT3)进行微调。微调后的这类模型已经是类似于ChatGPT的这种方式,可以更好地“理解”人说的话或者给出的命令,再在这个基础上给出回答。这个领域比较早的工作是2021年10月Google提出的FLAN,FLAN这篇工作在InstructGPT的论文中有提到,被认为和ChatGPT技术相关。
>>>> 1.3 CoT
CoT全称是Chain-of-Thought,中文叫思维链,最早由Google Brain发表在NeurIPS 2022上。思维链,简单点描述,就是用大型语言模型来回答问题前,先给它几个例子,而且在这些例子中给出整个问题的推理过程。比如做数学应用题时,先要给模型出一个例子,例子需要包含题干、答案,思维链的重点是和学生做题时一样,给出中间过程。与思维链相对的是,在给出的例子中,不给中间过程,仅仅给题干和最后的答案。此外,还有一种是鼓励模型自己生成中间过程(“Let’s think step by step”)的思维链,并基于模型自己的推导过程最终给出答案。
思维连被认为和ChatGPT的能力息息相关,比如,ChatGPT在回答鸡兔同笼的问题时,会给出中间的推导过程。它比较重要的一点在于,没有重新训练或者是微调大型语言模型,而仅仅是在给出的例子中增加了中间步骤的说明,就可以明显提升大型语言模型在数学计算、逻辑推理等任务上的表现。因此,有研究的观点认为,诸如数学计算、逻辑推理是大型语言模型的涌现能力,这些能力在模型规模、训练语料达到一定量级后,就自然而然地出现了,而思维链等方式只是解锁(或者叫唤醒)了这种能力。
RLHF,全称Reinforcement Learning from Human Feedback,来自人类反馈的强化学习。不同于模型在预训练阶段使用的大规模无标记文本数据,微调阶段用人工标注好的训练数据。RLHF会在训练过程中,引入人工的干预。模型产生的结果,会被标注人员进行比较和排序,然后这批数据会被用来指导模型的训练和迭代。OpenAI的数据标注质量被认为是比较高的,经过人工的干预,RLHF某种程度上减少了有害和不真实内容的输出。
除了上述的IFT、CoT、RLHF外,OpenAI的另一项工作Codex有可能和ChatGPT的代码编写、逻辑推理能力相关,Codex也是GitHub的AI代码补全工具Copilot背后的技术。之前GPT3是在互联网上选择文本来进行训练,Codex在训练的过程中加入了GitHub上的代码,并发展了一套评估系统。从论文的结果来看,其在编码能力方面是大大超过GPT3的。
按照介绍,大家可以看到,ChatGPT并不是突然出现的,它所基于的技术,在其他的公司也有积累,甚至做得更早更多。OpenAI做到了集各家之所长,最终拿出了跨时代的成果。
二、问答业务探讨
>>>> 2.1 示例
▍2.1.1 语文
▍2.1.2 数学
▍2.1.3 物理
图3. ChatGPT回答物理问题示例
▍2.1.4 常识
图4. ChatGPT回答常识类问题示例
>>>> 2.2 不足
图5. ChatGPT的回答存在事实性错误
图6. 回答不稳定示例
>>>> 2.3 应用
我们可以设想如何在小爱的开放域问答场景中应用ChatGPT以及相关技术。就目前来说,直接采纳ChatGPT会有两个问题:其一,有时它会产生事实性的错误且人们无法进行区分;其二,计算资源消耗大,成本高。
基于以上特点,我们认为对于高频且常规类的问答,仍旧需要传统的技术来提供稳定且可靠的服务,但是ChatGPT提供的开放域问答能力,可以被用来处理长尾且低频的问答。合理的产品形态设计再结合搜索引擎等提供的答案,可以给用户带来更好的产品体验。
● 补充槽位抽取的训练数据;
● 补充长尾的问答对数据。
① 槽位抽取的训练数据补充
图7. 槽位抽取的例子
② 问答对数据补充
多数时候,问答对数据的收集需要花费产品、运营、标注同学大量的人力。有了ChatGPT,在准备好问题后可以直接用它来生成答案。ChatGPT的回复可能存在事实性错误,在正式使用前还需要进行人工的审核,但这种方式会比直接收集数据便利不少。
图8. ChatGPT关于生活常识的回答,可以用来补充数据
三、结论和展望
ChatGPT具备了很强的开放域问答能力,于问答技术而言是当之无愧的跨时代的成果,前景无可限量,未来可期。尽管我们提到了它的一些缺点,比如事实性错误问题、不能获取新的知识等,但在当前全球的ChatGPT热潮下,这些问题都是可以避免或有解决的可能性。
图9. ChatGPT在中文字词问题上出现事实性错误
参考文献
[1] Improving Language Understanding by Generative Pre-Training
[2] Language Models are Unsupervised Multitask Learners
[3] Language Models are Few-Shot Learners
[4] Finetuned Language Models Are Zero-Shot Learners
[5] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
[6] Large language models are zero-shot reasoners
[7] Training language models to follow instructions with human feedback
[8] Evaluating Large Language Models Trained on Code
[9] Emergent Abilities of Large Language Models