浅析ChatGPT基本原理
1、前言
从整体技术路线上来看,ChatGPT使用了GPT-3.5大规模语言模型(LLM,Large Language Model),并在该模型的基础上引入强化学习来Fine-turn预训练的语言模型。这里的强化学习采用的是RLHF(Reinforcement Learning from Human Feedback),即采用人工标注的方式。目的是通过其奖励惩罚机制(reward)让LLM模型学会理解各种NLP任务并学会判断什么样的答案是优质的(helpfulness、honest、harmless三个维度)。
因此在了解ChatGPT之前,我们需要先看看什么是GPT-3以及强化学习。
1.1、GPT
OpenAI 在 2018 年 6 月提出的预训练模型GPT(也就是GPT-1)采用自回归的预训练方式,更适合自然语言生成任务的场景。它和Bert一样,不仅同样是预训练模型,而且都是源自于transformer,采用的是Transformer-Decoder作为编码器,在transformer基础上,它进行了一些改动,原本的 Decoder 包含了两个 Multi-Head Attention 结构,GPT只保留了 Masked Multi-Head Attention,如下图所示:
GPT模型结构
和Bert不同的是,它作为语言模型是利用上文预测下一个单词的, Decoder 使用了 Masked Multi Self-Attention 屏蔽了单词的后面内容,所以 Decoder 是现成的语言模型。又因为没有使用 Encoder,也就不需要 encoder-decoder attention 了。
GPT-2 主要就是在 GPT 的基础上,添加了多个任务,扩增了数据集和模型参数,又训练了一番。把各种NLP任务的数据集添加到预训练阶段。即把机器翻译、文本摘要、领域问答统统往预训练里加。既然多个任务都在同一个模型上进行学习,那么这一个模型能承载的并不仅仅是任务本身,“汪小菲的妈是张兰”,这条文字包含的信息量是通用的,它既可以用于翻译,也可以用于分类,判断错误等等。也就是说,信息是脱离具体 NLP 任务存在的,举一反三,能够利用这条信息,在每一个 NLP 任务上都表现好,这个是元学习(meta-learning)。本质上就是语言模型的一脑多用。此时,GPT-2相较于前一代,参数量和训练数据都已经有了爆发式的增长。
GPT-3,以往的预训练都是两段式的,即,首先用大规模的数据集对模型进行预训练,然后再利用下游任务的标注数据集进行 finetune,时至今日这也是绝大多数 NLP 模型任务的基本工作流程。
GPT-3 就开始颠覆这种认知了。它提出了一种 in-context 学习方式。即给模型输入一定的提示和范例,比如用户输入到 GPT-3:请把以下中文翻译成英文:苹果 =