明敏 发自 凹非寺
量子位 | 公众号 QbitAI
语言模型总是给出“驴唇不对马嘴”的答案,已经成为它最饱受诟病的问题之一。
现在,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