7月18日凌晨,OpenAI在官网发布了最新技术研究——Prover-Verifier-Games。
随着ChatGPT在法律、金融、营销等领域的广泛使用,确保模型的安全、准确输出同时被很好理解变得非常重要。但由于神经网络的复杂和多变性,我们根本无法验证其生成内容的准确性,这也就会出现输出“黑盒”的情况。
为了解决这个难题,OpenAI提出了全新训练框架Prover-Verifier Games(简称“PVG”),例如,用GPT-3这样的小模型来验证、监督,GPT-4大模型的输出,从而提升输出准确率以及可控性。
PVG技术概念早在2021年8月的一篇论文中就被提出来,OpenAI也正是受此灵感启发。这是一种基于博弈论的训练方法,通过模拟证明者和验证者之间的互动,提高模型的输出质量。
在这个机制中,Prover(证明者)的任务就是生成内容,而Verifier(验证者)的任务就是判断这些内容是否正确。
这样做的目的是让验证者学会如何从大量的内容中识别出正确的答案。在验证的过程中,证明者和验证者的角色是相互依赖的。证明者需要生成能够说服验证者的内容,而验证者则需要具备足够的判断力来识别出正确的内容。
在训练PVG时,每轮训练都包括验证者和证明者的优化。在每一轮中,验证者首先使用监督学习来预测内容的正确性,帮助验证者学会如何从大量的内容中识别出正确的答案。使证明者通过强化学习来优化其生成的内容。
例如,当用户提出问题“肖娜的父亲的年龄是肖娜的5倍。肖娜目前的年龄是阿莉亚的3倍。如果阿莉亚3岁,肖娜的父亲有多大?”GPT-4的输出为45岁。而验证者模型GPT-3需要确定阿莉亚的年龄,然后根据阿莉亚的年龄计算出肖娜的年龄,最后再根据肖娜的年龄计算出肖娜父亲的年龄,整个过程需要多轮验证。
此外,在训练过程中,OpenAI还引入了一种名为“可检查性训练”(checkability training)的方法。
通过交替训练验证器和证明者模型,从而验证使用监督学习来预测从之前轮次的证明者中采样的解决方案的正确性。证明者则使用强化学习,根据当前轮次验证器的接受度和解决方案的正确性来进行持续优化。
研究人员表示,随着训练轮次的增加,验证者的健全性逐渐提升,表现为对狡猾论证者生成的错误解决方案的抵抗力增强。同时,有益论证者生成的解决方案也变得更清晰,更易于被人类理解。
分不清9.9与9.11谁大?大模型数学能力堪忧
大部分大模型都在给出答案的同时呈现了推理过程。智谱清言给出的推理过程显示,在比较13.11%和13.8%时,13.11%是更大的数值。这是因为当比较两个百分数时,我们首先比较整数部分,如果它们相同,则比较小数部分。在这里,两个数的整数部分都是13,但13.11的小数部分(11)大于13.8的小数部分(8),因此13.11%大于13.8%。
从推理过程判断,可能由于小数点后数位不同,大模型在比较过程中产生了幻觉。经过两轮提问后,智谱清言给出了正确回答。
当把问题换成“9.9与9.11谁大”,零一万物的万知大模型等同样在一开始给出错误答案,当记者进一步追问“9.11减9.9等于多少”,甚至有大模型给出“0.21”的答案。
万知的推理过程稍显混乱:在比较9.9和9.11时,由于整数部分都是9,所以比较小数点后的第一位数字。9.9的小数点后第一位是9,而9.11的小数点后第一位是1。由于9小于10,所以在比较小数点后第二位数字时,9.9的小数点后第二位是0(隐含的),而9.11的小数点后第二位是1。因此,9.9的小数点后第二位数字(隐含的0)小于9.11的小数点后第二位数字(1),所以9.9小于9.11。
为何会出现有大模型认为13.11大于13.8的情况?ChatGPT给出的回答显示,出现这种情况的原因可能是由于计算或比较方式的错误。可能的误差原因包括:数值理解错误,有时系统可能会误解数字的小数点位置;字符串比较,如果直接按字符串比较,可能会出现错误。因为字符串比较是按字符顺序逐一比较的,而不是按数值比较;代码实现错误,在编程中,可能存在比较逻辑或转换错误。
文心一言给出的解答则是,训练数据偏差、输入处理与理解、模型幻觉、推理能力不足等原因。训练数据偏差层面,即大模型在训练过程中,可能接触到了大量包含数字的数据,但这些数据并不总是以比较大小为目的。例如,数字可能出现在版本号、股票代码、基金表现、汇率等上下文中,这些场景下的数字大小并不总是具有直接的比较意义。如果训练数据中存在关于数字比较的偏差或不足,模型可能无法学习到正确的比较规则。
另一方面,可能由于大模型在处理输入文本时,将数字视为字符序列,而不是具有数值意义的实体。因此,在比较数字大小时,模型可能没有正确地将其转换为数值进行比较。另外,模型在处理小数时可能存在困难,特别是当小数位数不同时。模型可能没有正确地理解小数部分的比较规则。