共计 7978 个字符,预计需要花费 20 分钟才能阅读完成。
内容起源:ChatGPT 及大模型专题研讨会分享嘉宾:中国科学院自动化研究所研究员 张家俊分享主题:《ChatGPT 中的提醒与指令学习》中国科学院自动化研究所研究员张家俊以 ChatGPT 中的提醒与指令学习为题,从 ChatGPT 简要技术回顾、迈向通用性的提醒学习、从提醒学习到指令学习、相干摸索与学习等角度和在场听众开展技术分享。大模型次要有两个方向,一个是“预训练 + 参数微调”,就是大模型有了之后针对上游工作进行微调,而后失去一个面向上游工作的大的模型,二是“预训练 + 提醒学习”,预训练之后不变,用提醒学习激发大模型来实现特定的工作。相干实践证明,学习提醒对于模型性能晋升十分无效,怎么学到或者找到提醒语十分要害。上面是分享的具体内容。
ChatGPT 简要技术回顾
一、根本介绍
ChatGPT 不再仅仅是传统的人机对话零碎。而是一个以自然语言为交互方式的通用语言解决平台。它在三个方面有十分优异的体现:首先,它在根底数据、外围模型和优化算法的技术实现上获得了重大突破;其次,它的利用十分接地气,简直能够实现所有与语言相干的性能;最初,相比于过来的智能对话零碎,它的交互体验成果产生了质的飞跃。
而超出预期的交互体验,又能够归功于四个要害能力:通用的用意理解能力、弱小的间断对话能力、智能的交互修改能力以及较强的逻辑推理能力。这些能力始终以来对自然语言解决研究者来说属于高难度的工作,因为之前咱们只是针对单个工作进行钻研。然而随着 ChatGPT 的诞生和倒退,咱们当初意识到它能够实现更为简单的工作。
二、ChatGPT 的集成技术组成
ChatGPT 是以产品思维驱动的重大集成翻新成绩,是 OpenAI 自 2018 年以来保持生成式 AI、长期技术积攒,质变产生量变的重大成果,是迈向 AGI 的阶段性成绩。ChatGPT 的集成技术次要蕴含三个方面:
- 根底模型架构。根底模型架构次要是生成式解码器,来自于 Google2017 年提出的 Transformer[1]。
- 指令学习。同样来自于谷歌 2021 年提出的指令学习 FLAN[2]。基于人类反馈的强化学习。
- 强化学习局部是 OpenAI 成立之后始终在专一的畛域,2017 年提出了强化学习的算法 PPO[3],在 2021 年时它在主动摘要工作 [4] 上体现出十分好的性能,所以间接用到对话的场景上。
三、ChatGPT 的根底大模型
ChatGPT 的根底模型实质上是一个语言模型。语言模型做的事件,是给定前缀,预测下一个词是什么,或者说计算下一个词的可能性的散布,从中抉择一个最优 的。而语言模型的训练过程实质是基于海量数据的自监督学习,通过对大量的文本进行学习。举个例子,对于“人工智能是模仿拓展人类智能的”这句话去预测下一个词是什么时,模型发现历史的文本外面,“人工智能的”前面有四次接了“实践”,三次接了“实践”,两次接了“技术”,所以预测时,模型会以更大的概率把后果预测为“实践”这个词,这个过程有点相似词语接龙。
对于语言模型来说,如果后面的上文历史信息能看得更长,预测就会更精确一些。每个输出的词都是以向量的形式来示意,每个词的示意维度越高,它的语义示意能力就越好。其次,支流的语言模型都是通过深度学习神经网络构建,它的网络档次越深,预测能力就越强。向量的示意维度和网络的档次,是影响参数规模的次要因素,参数规模越大,模型的容量就越高。从 2018 年 -20201 年,参数规模从 1.17 亿到 1750 亿,模型曾经展示进去了微小的变动,呈现了能力涌现的特点。
图 1 ChatGPT 根底模型
刚刚提到的能力涌现,意思是某些能力在参数规模较小的模型中不存在,在参数规模较大的模型中存在,则该能力就是涌现的。下图外面思维链的推理、新指令泛化会在 100 亿到 1000 亿的参数规模之间产生能力的涌现。
图 2 能力涌现
四、基于海量数据的自监督学习
ChatGPT 基于海量数据的自监督学习来构建根底模型,这个过程不是欲速不达的。在 2020 年,openAI 应用 45T 文本数据训练失去了根底大模型 GPT-3,实现了流畅性和知识性。能力体现上,GPT- 3 产生的文字流畅性比拟高,然而通用工作的解决能力还没那么强。2021 年,openAI 在 GPT- 3 的根底上,用 179G 代码数据通过自监督训练实现了逻辑编程模型 CodeX,具备肯定的推理能力。2022 年,openAI 利用更多更新文本数据和代码数据的混合学习,失去更强的根底大模型 GPT-3.5,成为 ChatGPT 的根底模型,实现了流畅性、知识性和逻辑性(推理能力)。
在失去足够弱小、能力足够通用的根底模型之后,ChatGPT 还是用指令学习和基于人类反馈学习来进一步晋升交互体验。其中指令学习领导模型可能遵循人类的指令来输入预期的内容,而基于人类反馈的强化学习则让模型更加合乎人的偏好。ChatGPT 通过把根底大模型、指令学习和基于人类反馈的强化学习联合起来,实现了流畅性、知识性、逻辑性和拟兽性。
图 3 指令学习与人类反馈学习
迈向通用性的提醒学习
一、预训练大模型的两种方向
预训练大模型次要是通过“预训练 + 参数微调”(Pre-training+Fine-tuning)和“预训练 + 提醒学习”(Pre-training+Prompt Learning)两种形式来实现上游工作的预测。
二、预训练 + 参数微调
“预训练 + 参数微调”是指大模型预训练后作为一个良好初始化的根底模型, 从构造上适配每一个上游工作, 并微调大模型的参数, 使得上游工作的性能达到最优。譬如以大模型适应分类工作为例子,模型的实现形式是在预训练模型的最初一个节点减少一个简略的分类网络(softmax),在训练过程中,不仅去更新分类网络的参数,也去更新整个预训练模型的参数。训练实现后,模型就能更适宜分类工作,不过与此同时,模型具备的通用性就变弱了。面向序列标注、文本生成工作也是采纳预训练 + 参数微调的形式来更新模型参数,模型的通用能力也会削弱。同样的状况能够推广到机器翻译、主动问答、情感剖析的工作。
图 4 预训练 + 参数微调:适应分类工作
图 5 预训练 + 参数微调:适应分序列工作
图 6 预训练 + 参数微调:适应文本生成工作
图 7“预训练 + 参数微调”范式
从下面这些例子做个总结,预训练 + 参数微调的形式可能在特定工作获得不错的成果,不过这种形式存在一些局限性。第一,预训练 + 参数微调的形式不足解决通用问题的能力。第二,须要针对每种工作都独立进行模型训练,资源占用过多。第三,会存在过拟合的问题,因为不是所有类型的工作都有大量的标注数据,在上游工作数据少的状况存在泛化能力方面的问题。
三、预训练 + 提醒学习
“预训练 + 提醒学习”指的是先对大型模型进行预训练,在后续的工作中放弃参数不变,利用提醒语的模式使预训练模型可能满足各种上游工作需要。具体来说,咱们会将上游工作转换为预训练模型的输入输出格局,例如文本分类、序列标注和文本生成等工作都须要将文本输出格式化为预训练模型的输出格局,并将预训练模型的输入转换为工作须要的输入格局,最终通过利用提醒语激活大模型来实现特定工作。
咱们针对几个常见的 NLP 工作来形容一下预训练 + 提醒学习的处理过程。譬如有个文本分类场景要对“I truly love this film”这句评论来预测它表白的情感偏向是“positive”或“negative”。提醒学习的解决方法是在“I truly love this film”句子前面加个提醒语“Its sentiment is”,用语言模型来预测下一个词是什么,预测后果如果为“positive”或“negative”则能够作为最终预测后果,或者如果两个词都没命中,能够通过判断“positive”还是“negative”的概率更高,来实现整个工作的解决。其余的工作的处理过程是相似的,次要在于提醒语有所区别。在解决词性标注时,是在句子前面增加提醒语“Its POS is”,而后就依照语言模型的形式生成词性标注后果。在解决翻译的时候,是在句子前面增加提醒语“Its Chinese Translation is”,而后语言模型会预测输入“我真的喜爱这部电影”。
图 8 预训练 + 提醒学习:分类工作适应大模型
图 9 预训练 + 提醒学习:序列标注工作适应大模型
图 10 预训练 + 提醒学习:文本生成工作适应大模型
四、提醒语
提醒语是预训练 + 提醒学习外面的重要因素。怎么了解提醒语呢,提醒语就是插入到上游工作文本输出中的一段非凡文本,能够视为一组非凡参数, 触发预训练大模型实现特定上游工作的同时, 放弃预训练大模型训练和测试统一。
提醒语能够是离散的, 也能够是间断的。离散的提醒语比拟常见,下面提及的提醒语就是离散提醒语。离散提醒语的产生次要有两种形式:人工剖析特定的上游工作, 总结上游工作的法则, 设计适宜特定上游工作的提醒语;通过从文本数据中主动搜寻的形式找到适合的实现特定上游工作的提醒语。为每个工作每个样本找到适合的提醒语是一个微小挑战, 不同提醒语导致显著的后果差别。
间断提醒语则是在输出文本或者模型中退出一组间断向量代表具备泛化能力的提醒语。间断提醒语有两种增加形式,一种是间接在文本输出前增加[5],一种是网络或者每层网络前增加间断向量示意提醒语[6]。
图 11 间断提醒语
五、比照剖析
咱们对“预训练 + 参数微调”和“预训练 + 提醒学习”两种形式进行比照。两种形式最重要的区别是在反对上游工作的模式[7]。下图中“预训练 + 参数微调”的大模型须要针对不同工作来对参数进行调整,“预训练 + 提醒学习”只须要通过设计提示信息来批改输出模式,使得让它具备实现上游工作的能力。
图 12“预训练 + 参数微调”VS“预训练 + 提醒学习”
尽管“预训练 + 提醒学习”有显著的长处,不过在 2020 年前相干方向的研究成果较少。这是因为之前的模型规模较小、通用性比拟弱,不适宜提醒学习,适宜参数微调。而到了 2020 年后,模型规模有大幅晋升,微调的老本也随之晋升,同时通用性强,适宜提醒学习。
图 13 从“预训练 + 参数微调”到“预训练 + 提醒学习”
下图的蓝线是 GPT- 3 在 45 个工作上的 Zero Shot 性能,准确率均匀在 30% 左右,成果还是比拟弱的。这阐明提醒学习可能触发预训练大模型实现特定工作, 然而繁多的内部提醒信号难以最大限度地激发预训练大模型的能力, 从而高质量地实现具体任务。
图 14 GPT- 3 在 45 个工作上的性能
从提醒学习到指令学习
“预训练 + 参数微调”通过具体任务的监督数据微调模型参数,可能最大限度地激发预训练大模型实现特定工作的能力,然而面临数据稀缺、劫难忘记、资源节约、通用性弱等难题。“预训练 + 提醒学习”通用性强,然而在具体任务上成果偏弱。所以研究者思考更好整合两者的劣势,让大模型更好了解具体任务的执行用意,所以就有了从提醒学习到指令学习的过渡。“参数微调”、“提醒学习”、“指令学习”的执行逻辑如下:
- 大模型 + 参数微调:通过工作相干的通过设计提醒通过若干工作相干的通过提醒监督数据批改模型参数。
- 大模型 + 提醒学习:通过设计提醒通过若干工作相干的通过提醒监督数据批改模型参数信息批改输出模式。
- 大模型 + 指令学习 8:通过若干工作相干的通过提醒加强的监督数据优化模型参数。
图 15 大模型 + 指令学习
上面看一个提醒学习的例子,还是以机器翻译、问答和情感分类作为工作场景,原来是每个工作场景对应一个模型,当初把所有工作的模式转变为语言模型的模式。譬如解决翻译工作时,把提醒语的信息插入文本失去“‘I love China’的中文翻译是”。不同的样本能够应用不同的提醒语来保障肯定差异性。而后把所有工作的标注数据合并在一起,作为一个对立的工作执行参数微调。所有数据经过训练之后失去一个新的大模型,新的大模型能够再利用提醒语触发大模型去实现特定的能力,后果是可能反对不同工作的同时也晋升了多任务的执行成果。
图 16“大模型 + 指令学习”适应上游工作
图 17 谷歌 FLAN 模型
这是过后谷歌提出来 FLAN 的例子,左上角是预训练 + 微调,左下角是提醒语,左边是 FLAN 的指令学习,是前两者的联合。FLAN 在数十个工作上微调,发现它在未见的工作上也有预测能力。举例来说,FLAN 在对常识推理、翻译等工作进行微调后,会发现训练好的模型会在自然语言推断工作上具备不错的预测成果。所以 FLAN 在 62 个数据集 40 多个工作上进行了训练,工作蕴含了解和生成两种状态。试验后果发现当参数达到百亿规模以上,几十个工作的联结指令学习就能够解决未知的工作。
图 18 FLAN 展示的未知工作的预测能力
图 19 FLAN 应用的文本工作数据集
图 20 百亿参数规模模型多任务联结学习能够解决未知工作
FLAN 的重大发现对后续的工作起到了指导作用。在此基础上,ChatGPT 的前身 Instruct GPT 收集了 API 指令,这样它的指令 类型更丰盛,笼罩的范畴越大,在此基础上的训练更触发了它的通用能力。
大语言模型的相干摸索和实际
一、如何寻找最佳的提醒语
上文提醒学习的内容提到,提醒语对预测成果有显著影响。上面的例子展现了 ChatGPT 在解决同样的文本翻译时,采纳了不同的提醒词(“中文翻译是什么”和“用中文怎么说”),返回的后果差别十分大。此时如何晋升模型成果的问题可转化为,如何找到不同问题的最佳提醒语,有没有一种办法主动学习提醒语。
图 21 不同提醒语对文本翻译后果的影响
二、样本级提醒学习办法针
对上述问题,咱们提出一种样本级提醒学习办法[10], 为每个样本学习最合适的提醒语。执行的形式为,来了新的样本时,模型会联合输出的提醒语和文本,依据相关性去搜寻最相干的提醒语,作为语言模型的输出。这种办法的劣势是最大限度地建模了不同样本的独特性, 相比于雷同的提醒语获得更好的性能晋升,不过存在的不足之处是未思考样本间的共性, 也即疏忽了不同的样本实际上属于同一种工作的事实。
图 22 样本级提醒学习办法
三、对立提醒学习办法
鉴于样本级提醒学习办法只思考样本、没有思考到工作的共性,所以咱们进一步提出了对立提醒语学习的办法[11],能够同时建模工作级的信息和样本级的信息。它的解决方法是为每个工作学习一个提醒, 为工作中的每个样本学习一个提醒,两类提示信息进行交融,获得最佳提醒。下图是对立提醒学习办法的架构,灰色的局部参数不变,蓝色的局部是十分小的参数量,一个是从样本学到样本级的参数,一个是每个工作有对应的参数。通过这个构造模型可能判断每个样本应该用多少工作级的信息、多少样本级的信息,最终为每个样本学到最合适的提醒。
图 23 对立提醒学习办法
对立提醒学习办法劣势是同时联合了工作信息和样本信息, 实践上能够获得最佳的提示信息。存在的有余是须要提前晓得工作信息,须要进一步的泛化。相比之下目前 ChatGPT 在不晓得申请的工作是什么的状况,也可能感知到工作的具体类型,有较大劣势。后续钻研拓展方向能够通过感知的形式判断工作的信息,在跟工作信息已知的根底上再去学习工作和样本相干的泛化。
四、试验成果
试验后果验证了对立提醒学习办法在 SuperGLEU 规范数据集上获得少样本学习的最佳均匀性能。在 SuperGLEU 数据集上发现,对立提醒学习办法比 GPT- 3 在上下文推理能力能力更优(单句子工作的均匀工作得分别离为 83.2 和 70.0,句子对相干工作的均匀得分为 72.0 和 49.8),这阐明了学习提醒对晋升模型成果十分无效,如何找到最佳提醒语十分要害。
图 24 对立提醒学习办法在 SuperGLEU 规范数据集单句子工作上的成果
图 25 对立提醒学习办法在 SuperGLEU 规范数据集双句子工作上的成果
开放性问题思考
一个月前写了《ChatGPT 八个技术问题的猜测》,起初始终在做模型摸索,整顿了一些开放性问题与观众读者探讨:
第一,实际发现数据不仅仅决定模型性能,还能极大影响模型训练过程的成败,其中的起因是什么。Meta 去年公布几个模型,在训练过程中失败挂掉了二十多次,每一次数据会影响数据的训练是否胜利。
第二,能力涌现是如何产生的? 为什么会在百亿参数规模以上才会体现进去?或者并非涌现, 只是模型规模测试不够间断。
第三,中文等语言的数据占比非常少, 例如只有不到 5%, 而模型的中文体现却十分好? 能力迁徙是如何产生的。
第四,大模型的能力是否蒸馏到小模型。
第五,作为黑盒的通用大模型仿佛与人脑有相似之处, 将来是否能够采纳脑科学钻研范式钻研大模型。
参考文献
[1] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.
[2] Wei J, Bosma M, Zhao V Y, et al. Finetuned language models are zero-shot learners[J]. arXiv preprint arXiv:2109.01652, 2021.
[3] Schulman J, Wolski F, Dhariwal P, et al. Proximal policy optimization algorithms[J]. arXiv preprint arXiv:1707.06347, 2017.
[4] Von Rueden L, Mayer S, Beckh K, et al. Informed Machine Learning–A taxonomy and survey of integrating prior knowledge into learning systems[J]. IEEE Transactions on Knowledge and Data Engineering, 2021, 35(1): 614-633.
[5] Lester B, Al-Rfou R, Constant N. The power of scale for parameter-efficient prompt tuning[J]. arXiv preprint arXiv:2104.08691, 2021.
[6] Li X L, Liang P. Prefix-tuning: Optimizing continuous prompts for generation[J]. arXiv preprint arXiv:2101.00190, 2021.
[7] Liu P, Yuan W, Fu J, et al. Pre-train, prompt, and predict: A systematic survey of prompting methods in natural language processing[J]. ACM Computing Surveys, 2023, 55(9): 1-35.
[8] Wei J, Bosma M, Zhao V Y, et al. Finetuned language models are zero-shot learners[J]. arXiv preprint arXiv:2109.01652, 2021.
[9] Ouyang L, Wu J, Jiang X, et al. Training language models to follow instructions with human feedback[J]. Advances in Neural Information Processing Systems, 2022, 35: 27730-27744.
[10] Jin F, Lu J, Zhang J, et al. Instance-aware prompt learning for language understanding and generation[J]. arXiv preprint arXiv:2201.07126, 2022.
[11] Jin F, Lu J, Zhang J,et al. Unified prompt learning makes pre-trained language models better few-shot learners. ICASSP 2023.