查看原文
其他

ChatGPT的工作原理及AIGC模型的演变

模型视角 模型视角 2023-08-09

在数字化时代,内容创作已经成为了一个核心的议题。随着技术的进步,我们已经从传统的PGC(专业生成内容)和UGC(用户生成内容)转向了AIGC,即人工智能生成内容。AIGC是使用人工智能技术进行内容创作的新方法,它在文本、图像、音频/视频、软件开发等多个领域都有广泛的应用。

AIGC的起源

AIGC的发展始于基于RNN的Seq2Seq模型。这是一个由两个RNN网络组成的模型,其中一个RNN用于编码,另一个用于解码。尽管这种模型在早期的AIGC应用中取得了一些成功,但它生成的文本质量通常较差,经常出现语法错误或语义不清的问题。

Transformer的崛起

2017年,Transformer模型结构的引入改变了AIGC的发展轨迹。与基于RNN的模型相比,Transformer模型在训练效率和捕获复杂特征表示的能力上都有显著的提高。这使得基于Transformer的预训练模型,如BERT、GPT系列等,迅速成为了AIGC领域的领先技术。

UniLM:统一的语言模型

微软研究院在2019年提出了UniLM,这是一个基于BERT的生成模型。与传统的Seq2Seq模型不同,UniLM只使用BERT,没有解码器组件。这使得UniLM在文本生成任务中表现出色,同时还保留了BERT在文本表示能力上的优势。

T5:文本到文本的转换

Google在2020年提出了T5模型,其核心思想是将所有NLP任务视为文本到文本的转换问题。这种方法简化了训练和部署的过程,因为所有任务都使用相同的模型架构和训练策略。

BART

BART代表双向和自回归变换器。这是Facebook在2020年提出的一个模型结构。顾名思义,它是一个结合双向编码结构和自回归解码结构的模型结构。BART模型结构吸收了BERT中的双向编码器和GPT中的从左到右的解码器的特点,基于标准的Seq2Seq变换器模型,这使得它比BERT更适合文本生成场景。与此同时,与GPT相比,它还具有更多的双向上下文信息。

GPT系列:从GPT-1到ChatGPT

OpenAI的GPT系列模型在AIGC领域也取得了巨大的成功。从第一代GPT到最新的ChatGPT,这些模型都展示了超大规模数据训练超大规模模型的强大能力。特别是GPT-3和ChatGPT,它们在零样本和少样本任务上的表现尤为出色。

GPT代表生成式预训练(Generative Pre-Training)。它是一个迭代的预训练模型,其主要成员包括第一代GPT、GPT-2、GPT-3、InstructGPT和目前流行的ChatGPT。
GPT-1:第一代GPT是OpenAI在2018年提出的预训练语言模型。它的诞生早于BERT,其核心思想是基于大量未标注数据进行生成式预训练学习,然后对其进行微调以适应特定任务。由于它专注于生成式预训练,GPT模型结构只使用了Transformer的解码器部分,其标准结构包括Masked多头注意力和编码器-解码器注意力。GPT的预训练任务是SLM(标准语言模型),它根据之前的上下文(窗口)预测当前位置的单词,因此需要保留Mask多头注意力以阻止单词后面的上下文,以防止信息泄露。由于不使用编码器,GPT结构中已移除了编码器-解码器注意力。
GPT-2:GPT-1的问题是微调下游任务的可转移性不足,且Fine-Tuning层不共享。为了解决这个问题,OpenAI在2019年引入了GPT家族的新成员:GPT-2。


GPT-2的学习目标是使用无监督的预训练模型来执行有监督的任务。与第一代GPT相比,GPT-2有以下变化:
  • 模型结构去除了Fine-Tuning层,所有任务都通过为语言模型设计合理的语句进行预训练,训练需要确保每个任务的损失函数收敛;
  • Layer Normalization的位置移动到每个子块的输入,并在最后的Self-Attention后添加了一个Layer Normalization;
  • 使用了修改后的初始化方法,在初始化时将残差层的权重缩放到1/√N倍,其中N是残差层的数量;
  • 词汇表规模扩展到50257,输入上下文的大小从512扩展到1024,并使用更大的batch_size进行训练。GPT-2的多任务训练使其具有更强的泛化能力,当然,这也归功于其使用了多达40G的训练语料库。GPT-2的最大贡献是验证了使用大量数据和大量参数训练的模型具有转移到其他类别任务的能力,而无需额外的训练。
GPT-3:2020年,OpenAI基于GPT-2进一步推出了GPT-3。GPT-3的方法更为简单和粗糙,模型的整体结构和训练目标与GPT-2相似,但GPT-3将模型大小增加到1750亿参数(比GPT-2大115倍)并使用45TB的数据进行训练。得益于惊人的参数数量,GPT-3可以在没有梯度更新的情况下使用零样本和少样本进行学习和预测
InstructGPT:超大型模型GPT-3确实在生成任务中取得了前所未有的成果,尤其是在零样本和少样本场景中,但GPT-3面临了一个新的挑战:模型的输出并不总是有用的,它可能输出不真实、有害或反映负面情绪的结果。这种现象是可以理解的,因为预训练任务是一个语言模型,预训练的目标是在输入约束下最大化输出为自然语言的可能性,而没有“用户需要安全和有用性”的要求。为了解决这个问题,2022年OpenAI基于GPT-3发布了重要研究:InstructGPT,引入了来自人类反馈的强化学习技术(RLHF)


InstructGPT在模型本身方面与GPT-3的变化不大,主要的变化在于训练策略。总体思路是让注释员为呼叫示例提供示范答案,然后使用这些数据对模型进行微调,使其能够做出更合适的响应。其训练步骤分为三步:
  • 收集示范数据并使用监督训练训练模型。对提示数据集的一部分进行手动注释,并用于Fine-Tuning GPT-3。
  • 收集对比数据并训练奖励模型。对一批数据进行采样并输入到第一步中微调的模型中。注释员根据其优点对模型的输出进行排序,并使用这些数据训练一个奖励模型。
  • 使用强化学习优化模型的输出。使用第二步获得的奖励模型通过强化学习优化第一步微调的模型的输出,使模型能够输出更合适的响应。经过训练的InstructGPT在遵循指令方面比GPT-3好得多,而且InstructGPT不太可能凭空捏造事实,产生有害输出的趋势也有所下降。
ChatGPT 2022年11月30日,OpenAI正式发布了最新的研究ChatGPT,它采用了与InstructGPT相同的方法,使用来自人类反馈的强化学习(RLHF)来训练模型,并在数据收集方法上进行了改进(具体内容未公开)。


可以看到,ChatGPT的训练过程与InstructGPT的训练过程一致,不同之处在于InstructGPT是在GPT-3上进行微调,而ChatGPT是在GPT-3.5上进行微调(GPT-3.5是OpenAI在2021年第四季度训练的一个模型,具有强大的自动代码编写能力)。
从第一代GPT到ChatGPT的发展过程中,OpenAI证明了使用超大数据训练超大模型,所得到的预训练语言模型足以处理各种下游的自然语言理解和自然语言生成任务,即使不进行微调,也仍然可以处理零/少样本任务。在输出的安全性和可控性方面,OpenAI的答案是基于人力强化学习:雇佣40名全职注释员工作了近两年(注释时间没有正式公开,作者只是从GPT-3和ChatGPT之间的大约两年半的间隔推断,因为强化学习需要连续迭代)为模型的输出提供注释反馈,只有这样的数据才能进行强化学习以指导模型的优化。Transformer + 超大数据 + 超大模型 + 大量人力 + 强化学习创造了今天的ChatGPT现象

结论

AIGC技术的进步为内容创作带来了革命性的变化。从基于RNN的模型到先进的Transformer架构,技术的每一次进步都为我们提供了更好的工具来理解和生成内容。随着技术的不断进化,我们可以期待AIGC将在未来为我们带来更多的创新和价值。

参考资料:

How Does ChatGPT Work? Tracing The Evolution Of AIGC
https://www.dtonomy.com/how-does-chatgpt-work/


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存