语言模型总是给出“驴唇不对马嘴”的答案,已经成为它最饱受诟病的问题之一。现在,DeepMind 想到了一个解决办法 —— 让模型像人类一样,学会“谷歌一下”,回答问题同时还能给出论据。
这个模型名叫 GopherCite,当你问它:
GopherCite 是如何找到论据来源的?
它会回答:
通过谷歌搜索检索相关文档。
同时还给出了答案的依据,援引自 DeepMind 发布这项研究的页面。
而且遇到实在不懂的问题,它还会说“I don’t know.”,不会强行给一个错误答案。训练结果显示,该模型在自然问题数据集、ELI5 数据集上的正确率分别可以达到 90%、80%,接近人类水平。
用强化学习训练 AI 查谷歌
首先我们来看一下 GopherCite 的效果如何。当被问道:
在 Scooby Doo 中,Scooby 是什么动物?
GopherCite 回答道:
一只大丹犬。
摘自维基百科 Scooby-Doo。这是周六早上播出的系列青少年动画片,主角包括弗雷德・琼斯等,以及一只名叫 Scooby-Doo、会说话的大丹犬。
不难看出,在学会找论据后,AI 给出的回答靠谱多了。
事实上,GopherCite 的前辈 —— 超大语言模型 Gopher,此前回答问题时的表现就要差劲很多。Gopher 是 DeepMind 在去年年底发布的 NLP 模型,包含 2800 亿参数。它基于 Transformer 架构,在 10.5TB 大小的 MassiveText 语料库上进行训练。
在这里,DeepMind 举了一个例子来说明。让 Gopher 和 GopherCite 回答同一个问题:
普莱西德湖一共举办过几次冬奥会?
Gopher 回答(是错的):
普莱西德湖在 1932 年、1936 年、1980 年举办过冬奥会。
但 GopherCite 就答对了:
两次。
并给出了严谨的理由:
援引自美国主办奥运会城市史。1932 年、1980 年在普莱西德湖举办过冬季奥运会;1936 年、1984 年在洛杉矶举办过夏季奥运会。
那么 GopherCite 的具体工作原理是怎样的呢?在 Gopher 的基础上,研究人员开发了一种奖励机制,也就是用上强化学习。在收到问题后,模型会访问谷歌搜索的 API 来找到相关的网页,获取 top-K 结果。
(top-K 操作,即从分数集合中找到 k 个最大或最小元素,是一个重要的机器学习模型组件,被广泛用于信息检索和数据挖掘中。)
然后它会根据问题来生成一些答案,答案数量 N 会大于 K。这些答案同时会带有自己的证据,即从网页上搜索到的包含答案的文段。接下来,系统会对这些答案进行打分,最终输出得分最高的答案。
在推理过程中,模型采样会按照循环在文档上不断迭代,每个循环都会从单个文档中尽可能多地显示上下文内容,然后对文本重新排序并返回给上一步。
此外,这个模型还会计算最终生成答案的质量,如果生成答案太差,它就会选择不回答。
结果显示,在自然问题数据集上,GopherCite 回答 70% 的问题时,正确率达到 90%。在 ELI5Filtered 数据集上回答 70% 的问题时,正确率为 80% 左右。
DeepMind 表示这种训练模式和 LaMDA 有些类似。LaMDA 是谷歌在去年 I / O 大会上发布的一个对话模型,它能够在“听懂”人类指令的基础上,对答如流并保证逻辑、事实正确。
不同的是,LaMDA 有时会直接给人分享问题的相关链接,而 GopherCite 可以直接摘出相关论据文段。另外,OpenAI 最近也开发了一个网页版 GPT (WebGPT),同样也是用类似的方法来校正 GPT-3。
DeepMind 表示,WebGPT 是通过多次访问网页来组织答案,GopherCite 则是侧重于读取长文段。
还是会有失误
虽然懂得援引资料了,但是 GopherCite 有时还是会生搬硬套。比如当你问它“喝了红牛会怎么样?”,它的回答是“翅膀”。
这是源于红牛的广告语:“它会给你翅膀”。显然让它理解比喻还是有点困难…… 也有网友吐槽说,可能人类自己去谷歌搜索会更快。
你觉得呢?
参考资料:
https://deepmind.com/research/publications/2022/GopherCite-Teaching-Language-Models-To-Support-Answers-With-Verified-Quotes