参考:复旦邱锡鹏:深度剖析 ChatGPT 类大语言模型的关键技术 – 我爱自然语言处理 (52nlp.cn)
随着算力的不断提升,语言模型已经从最初基于概率预测的模型发展到基于 Transformer 架构的预训练语言模型,并逐步走向大模型的时代。
重要的是它的涌现能力。
当模型规模较小时,模型的性能和参数大致符合比例定律,即模型的性能提升和参数增长基本呈线性关系。然而,当 GPT-3/ChatGPT 这种千亿级别的大规模模型被提出后,人们发现其可以打破比例定律,实现模型能力质的飞跃。这些能力也被称为大模型的“涌现能力”(如理解人类指令等)。
上图是多个 NLP 任务随着模型规模扩大的性能变化曲线,可以看到,前期性能和模型规模大致呈线性关系,当模型规模大到一定程度时,任务性能有了明显的突变。
ChatGPT的三个关键技术
ChatGPT 的三个关键技术为:情景学习、思维链、自然指令学习
- 情景学习(In-context learning)
对于一些 LLM 没有见过的新任务,只需要设计一些任务的语言描述,并给出几个任务实例,作为模型的输入,即可让模型从给定的情景中学习新任务并给出满意的回答结果。这种训练方式能够有效提升模型小样本学习的能力。
在机器学习和自然语言处理的上下文中,“completion”通常指的是模型完成或预测任务剩余部分的能力。例如:
-
文本生成 - 文本补全(Text Completion): 在基于Transformer的预训练模型,如GPT系列中,"completion"指模型根据给定的提示文本生成后续内容的能力。用户可以输入一个开头或者一段话的一部分,模型将尝试合理地完成剩下的文本。
-
推荐系统 - 推荐补全(Recommendation Completion) 在推荐系统中,"completion"可能表示根据用户的历史行为数据预测并推荐其可能感兴趣的内容的过程。
-
深度学习 - 目标函数补全(Objective Function Completion) 在某些优化问题中,可能会通过自动补全缺失的部分来构建完整的损失函数,以便更好地训练模型。
-
编程助手 - 代码补全(Code Completion) 在IDE(集成开发环境)中,智能编程助手能够根据已经输入的部分代码,自动补全剩余的代码片段,以提高程序员的工作效率。
-
知识图谱 - 实体补全(Entity Completion) 在知识图谱领域,实体补全是指根据已有的实体信息,推测和填充缺失的关系或者属性值。
总之,在不同的应用场景下,“completion”意味着利用模型、算法或工具去推断和填充未知信息的过程。
"completion" 的中文翻译是“完成”或“实现”。
以自然语言的形式描述两个情感分类任务输入输出的例子,LLM 就能够对新输入数据的情感极性进行判断。
- 思维链(Chain-of-Thought,CoT)
对于一些逻辑较为复杂的问题,直接向大规模语言模型提问可能会得到不准确的回答,但是如果以提示的方式在输入中给出有逻辑的解题步骤的示例后再提出问题,大模型就能给出正确题解。也就是说将复杂问题拆解为多个子问题解决再从中抽取答案,就可以得到正确的答案。
如思维链示意图所示,左边是直接让模型进行数学题的计算会得到错误的结果,而右侧在解题过程加入了一个示例,引入解题过程则可以激发模型的推理能力,从而得到的正确的结果。
由于 CoT 技术能够激发大规模语言模型对复杂问题的求解能力,该技术也被认为是打破比例定律的关键。
- 自然指令学习(Learning from Natural Instructions)
早期研究人员希望把所有的自然语言处理任务都能够指令化,对每个任务标注数据。这种训练方式就是会在前面添加一个“指令”,该指令能够以自然语言的形式描述任务内容,从而使得大模型根据输入来输出任务期望的答案。该方式将下游任务进一步和自然语言形式对齐,能显著提升模型对未知任务的泛化能力。
核心逻辑非常简单,一开始时让人写答案,但是成本太高,改成让人来选答案,这样对标注员的能力要求稍微低一点,可以迅速提升迭代和规模。基于打分再训练一个打分器,通过打分器自动评价模型的好坏,然后用强化学习开始迭代,这种方法可以大规模地把数据模型迭代给转起来,这是 OpenAI 做的 Instruct GPT 逻辑,强化学习的人类反馈。
基于 Instruct GPT 技术路线,ChatGPT 从技术上并没有特别好的创新,但它最伟大之处是赋予了大型语言模型对话的能力,这是个产品化创新,这个创新非常棒!
如何构建一个大语言模型?
目前,主要可以从下面四个维度来衡量大语言模型的能力。
- Know Knowns:LLM 知道它知道的东西。
- Know Unknowns:LLM 知道它不知道哪些东西。
- Unknow Knowns:LLM 不知道它知道的东西。
- Unknow Unknowns:LLM 不知道它不知道的东西。
构建对话式大型语言模型
ChatGPT 通过更大规模的预训练,得到了更多的知识,即 Knowns 范围扩大。
另外,ChatGPT 还关注了伦理问题,通过类似解决 Know Unknowns 的方式,利用人工标注和反馈,拒绝回答一些包含伦理问题的请求。
ChatGPT 的局限性
为什么说 ChatGPT 对于学术上来说有一定的重要性,因为它不仅展示了通用人工智能的大框架,更是因为它可以接入多模态信息,增强思考能力、增加输出能力,从而变成更好的通用人工智能底座,可以在学术上带来更多的应用。
- 目前形式有限。当前的 ChatGPT 仅局限于文本方向,但如前面所说,可以在上游使用一些多模态模型初步解决这个问题。
- 并不可控。目前已有不少报道通过各种方式解锁了模型的 Ethic 和部分 Know Unknowns 限制,但这部分可以通过更多的人工标注和对齐解决。
- 推理能力较差。通过思维链的方式,一定程度上可以增强模型推理能力。
- 无法与现实世界相接触。这也是目前 ChatGPT 最大的问题之一,作为大型语言模型,它无法实时与外部世界互动,也无法利用如计算器,数据库,搜索引擎等外部工具,导致它的知识也相对落后。