导读
作为ChatGPT的心技姊妹模型,InstructGPT的核心技术和ChatGPT有很多相通之处 。参透InstructGPT的起底核心技术细节,有助于研究者们在ChatGPT方向上走得更远 。
具体来看,一味地让语言模型变大并不意味着它们能更好地遵循用户的究人据比加意图 。大语言模型可能会产生虚假有害的类反,或是对用户毫无帮助的输出。这些模型并不能匹配用户意图。馈数去年9月,OpenAI的模型研究科学家Long Ouyang和Scale AI工程经理Aerin在Scale Virtual Events社区(简称Scale)发表了题为「OpenAI’s InstructGPT: Aligning Language Models With Human Intent」的演讲,他们探索了一种新的途径,通过基于人类反馈的微调,使语言模型在广泛的任务中与用户的意图保持一致。本文整理了报告中关于InstructGPT技术细节。规模更重
Long Ouyang(演讲嘉宾)
OpenAI研究科学家,斯坦福大学认知心理学博士,目前从事human-in-the-loop mechain learning。心技他是起底《Training Language models to follow instructions with human feedback》一文的主要作者,并且协助建立了GPT的变体,如InstructGPT和WebGPT,本次重点讨论了他在InstructGPT方面的工作。InstructGPT是究人据比加GPT-3的一个变体,具有更好的遵循人类指令的能力,并将继续探索如何利用人类的反馈,“使GPT-3更加有用 、真实和无害” 。类反
视频链接:
https://exchange.scale.com/public/videos/openais-instructgpt-aligning-language-models-with-human-intent-2022-09-13
要点速览:
从业人员需要确保机器学习模型优化人们所关心的馈数功能,而非与用户意图不匹配的代理函数(proxy function)
InstructGPT 旨在使 GPT-3 实现「助人、真实 、模型无害」的规模更重目标,重点匹配人们的实际偏好
和最初GPT-3的鹦鹉学舌相比,InstructGPT模型能够感知到用户给出指令的意图,并尽力而为,更像是为我们工作的“助手”
尽管模型本身绝大多数是在英语上训练的,InstructGPT 遵循指令的能力泛化到了其它语言上
“基于人类反馈的强化学习”(RLHF)是支撑 InstructGPT 的核心技术之一
,研究人类反馈数据比加大模型规模更重要
前提:确保ML模型
优化的是用户所关心的功能
模型的能力与对齐性(Alignment)是衡量机器学习模型性能的重要维度,模型的能力可以理解为模型能做哪些任务,给定明确的目标函数,我们通过训练模型对其进行优化 。对齐性则关心模型目标函数是心技什么?它是否真正反映用户的意图?为了开发在真实场景下使用的人工智能产品,从业人员需要确保机器学习模型优化人们所关心的功能,而非与用户意图不匹配的代理函数(proxy function) 。
原始的GPT-3的模型在一些数据集上的分布是错位的,模型获取了词例序列的分布,它们可以根据一些互联网的轻型语料库预测下一个单词是什么。但是,我们要如何使用这些模型真正执行有趣的、有价值的的认知任务?尽管训练好的模型能输出某个单词,但这种「创造」出的结果仍然可能与用户的想法背道相驰,或只是模型对事实产生的「幻觉」。模型其实似乎倾向于产生似是而非的文本,而非正确、严谨的输出 。甚至,模型有时会输出有害的内容 。因此,虽然最初的GPT-3理论令人印象深刻,但如果想用它来做有价值的认知工作,还需要在数据分布和训练目标等方面持续改进 。
图 1:用于预训练的标准目标函数并没有区分严重的错误和不严重的错误类型。比如,模型认为第二个词应该是‘tribes’而不是‘groups’,属于「不严重」的错误;但把‘across’改成‘outside’,改变了句子的意思,属于「严重」错误。
对于目标函数,我们在预训练中训练模型利用给定词例预测下一个词例。如图 1 所示,训练模型预测第1个标红的词例时,之前的所有词例与第1个词例都无关 。在这种情况下,‘group’表示一个企业。这种方法可以训练模型生成下一个词,但模型并没有区分「严重」或「不严重」的错误 。如果模型生成的第1处的词例是‘tribe’,并不是一个严重的问题,或多或少保留了原句的意思 。但在生成第2处标红词例时,如果生成‘outside’,而不是‘across’,实际上就改变了句子的意思。我们用于预训练的标准目标函数并没有区分这些严重/不严重的错误类型 。
我们进行了一些调整,尝试在输入/输出的例子上训练模型,给模型整个文本块作为输入背景,然后给定所有之前的词例,要求它继续输出每一个词例 。
根据Long的观察,「我们真正想做的是把语言模型当作助手」 。最初的GPT-3模型只是在「鹦鹉学舌」,而不能以有意义的方式作出反应 。虽然它产生了连贯的文本,但它根本不明白它是在完成一项特定的任务。另一方面,InstructGPT理解给定的任务,尽最大努力去完成它,这更像是一个助手的行为。
图 2:用简洁的语句给一个六岁的孩子解释登陆月球。GPT-3(左)虽然产生了似乎连贯的文本,这更像是一种“合成正确”的英语,它并不理解任务,只是把问题的模式作为样本,并将话题替换成登月;而InstructGPT(右)对人类指令做出的反应则更像一个助手。
这是另一个考虑原始GPT-3模型限制的维度 。我们真正想做的是像训练语言模型一样,使其完成一些给定的任务(例如,向一个六岁的孩子解释月球登陆)。如上图所示,原始的 GPT-3 模型的确产生了看似连贯的文本,似乎也与原始的提示(prompt)有关。但由于不理解任务,所以它只是将模板范式中的话题替换成登月话题