新智元报道
编辑:LRS
随着语言模型的参数量不断增大,生成文本的效果也越来越好。
由于训练数据中包含了海量的人类知识,所以主流的问答模型对于事实类问题(factual questions)基本都能回答正确,并生成一个满意的答案。
但如果让语言模型自由发挥,那它可就放飞自我了,在没有任何事实约束和检查的情况下,语言模型生成的文本基本就是胡言乱语。
比如提示文本是「用几句话向一个 6 岁的孩子解释一下登月」,而GPT-3输出的补全文本简直就是一个「复读机」。
虽然用户可能不懂「登月」,但这种明显不对的答案肯定不能用于主观问答。
最近DeepMind发表了一项新研究GopherCite,使用根据人类偏好的强化学习(RLHP, reinforcement learning from human preferences)训练了一个可以用于开放式问答的模型。
想想你平时碰到不会的问题怎么办?求助于搜索引擎,浏览各种文章,最后自己总结出一个答案来。
GopherCite的流程也是类似,它不仅可以针对问题生成答案,在给出答案的同时,还会给出 AI 模型做出这些答案的依据,「引用」具体证据及其出处,以更好地帮助用户判断答案的正确性。支持证据(supporting evidence)主要来自搜索引擎返回的多个文档和用户提供的数据。
站在自己的肩膀上
去年12月8日,DeepMind发布了2800亿参数的预训练语言模型Gopher,参数量达到2800亿,相比OpenAI GPT-3的1500亿参数量几乎翻倍。
Gopher一经推出,在152个任务的基准性能进行分析中,大约81%的任务中性能超越了SOTA,尤其是在需要大量知识才能解决的问题,如事实核查和常识方面效果特别好。
DeepMind认为语言能够让人类沟通思想,表达想法,创造记忆以及相互理解,是人类智力、社会智能中最基础的部分。
但随着研究的深入,DeepMind研究人员发现了一个重要的问题:像Gopher这样的语言模型可以幻想(hallucinate)出一些看似合理但实际上是假的事实。
对于熟悉这个问题的人可能自己核查一遍事实后就会发现漏洞。但对于不熟悉问题的人来说,最后可能就会信了语言模型的邪。
GopherCite解决的就是语言模型幻觉的问题。通过利用网络上的证据来支持其所有的事实描述。模型使用谷歌搜索引擎来寻找互联网上的相关网页,并引用一段话,试图证明为什么它的回答是正确的。如果系统无法形成一个有证据支持的答案,它就会告诉用户「我不知道」,而不是提供一个未经证实的答案。
对于互动的用户和评估样本质量的标注人员来说,用容易验证的证据来支持简单的事实主张能够提升语言模型的可信度。
比如问一个问题:普莱西德湖举办过多少次冬奥会?
Gopher的回答就是列举了几个年份,还多列了一个(1936)。多列的一个城市就属于是Gopher幻想出来的了。
而GopherCite的回答就简洁很多:2次。并且还附上了对应的网页(维基百科)和找到答案的段落,即模型能够将1932年和1980年抽象为两次。用户也可以根据这段自己总结出两年,从而确认GopherCite的答案是正确的。
值得注意的是,原文中多次出现「二」这个数字,两个城市举办过奥运会,每个城市举办过两次,普莱西德湖举办过两次冬奥会,洛杉矶举办过两次夏季奥运会。
为了以这种方式改造Gopher爱幻想的行为,就需要根据人类的喜好来训练Gopher。
研究人员在一项用户研究中要求参与者从一对候选中挑选首选答案,选择的标准为证据片段对模型答案的支持程度。这些标签既可以用于监督学习,也可以用于人类偏好的强化学习(RLHP)的训练数据。
在强化学习的方案中,研究人员开发了一种奖励机制。收到一个问题后,模型会访问谷歌搜索的 API 来找到相关的网页,把前K个返回结果作为候选文本。
然后模型根据问题和文本生成N个答案,并且要求答案的数量大于文本数量,即N>K. 这些答案在选出来的时候也会附带上证据,即包含答案的文本片段。
最后系统对这些答案进行评分,得分最高的答案作为结果输出。
模型的训练pipeline主要包括5个步骤:
1、从当前性能最好的模型中收集数据,并由人类进行评分。
研究人员将模型输出作为人类标记者的比较,评估单个答案的质量,以及答案之间的偏好判断。这些分别作为有监督下的微调和奖励模型训练的数据。在第一次迭代中,通过对基础Gopher模型的少量提示进行自举启动(bootstrap)。
2、训练一个有监督的微调(SFT, unsupervised finetuning)模型
在被标注人员评为positive的例子上对预训练的Gopher模型进行微调。监督微调阶段的目的是教导模型使用人类语法生成引用,并达到自支持的问答( Self-Supported Question-Answering)能力的基线水平。
3、训练一个奖励模型(RM, reward model)
对模型输出进行重排序和强化学习都需要一个与输出相关的标量值来表示整体质量(overall quality),如果生成答案太差,它就会回答不知道。
4、针对奖励模型优化强化学习(RL)策略进行优化,强化学习的微调阶段将模型的行为调整为人类的偏好
5、重复第1步
实际上谷歌在早些时候提出的LaMDA模型也在尝试解决语言模型中事实不准确的问题,通过对话模型与谷歌搜索进行互动,有时也会展示问题相关的URL。
GopherCite的训练方案与LaMDA类似,但一个关键的区别是GopherCite提供了相关证据的具体片段,而非甩一个URL了事。
并且OpenAI最近也宣布正在开发一个类似的系统,叫做WebGPT,也是应用RLHP来调整GPT-3语言模型,可以预见这可能也是语言模型的下一步研究方向。
只不过GopherCite专注于阅读长的文件输入,而WebGPT则通过与网络浏览器的多次互动来确定哪些上下文可以呈现给语言模型,并且也引用了证据来支持答案。
仍有进步空间
在用户调研中,参与者认为GopherCite能正确回答80%的事实类问题和67%的解释类问题。因为GopherCite可以选择拒绝回答问题,所以在模型能回答的问题中,性能得到了极大的改善。
实验结果显示,在NaturalQuestionsFiltered数据集上,GopherCite回答70%的问题时,正确率达到了90%; 在 ELI5Filtered 数据集上回答 70%的问题时,正确率为80%左右。
这种明确的弃权机制是GopherCite的一个核心贡献。
不过GopherCite的回答仍然有进步空间。
比如问它「喝了红牛会怎么样?」,它的回答是「翅膀」,源自于红牛的广告语:「给你双翅膀」
一个有趣的事是由于喝了红牛无法做到「给你双翅膀」,红牛公司涉嫌虚假宣传还赔偿了1300万美元。
所以GopherCite的回答喝了红牛能得到翅膀显然就是错误答案。不过要是问题改成喝了可乐会获得快乐,有可能就是正确的答案了。
所以,语言模型的新开的赛道,还不快来填坑!
参考资料:
https://deepmind.com/research/publications/2022/GopherCite-Teaching-Language-Models-To-Support-Answers-With-Verified-Quotes
https://dpmd.ai/GopherCite-paper