GPT菜花宝典之原理大分析

Posted by Ramendeus on October 11, 2024

访问 个人技术博客: fuqifai.github.io

本文大部分配图使用微信小程序【字形绘梦】免费生成。

AIGC技术讨论群 什麽是GPT ChatGPT 是基于 OpenAI 的 GPT(Generative Pre-trained Transformer)架构构建的。它是一种深度学习模型,专门用于自然语言处理任务。 本文截止的最新GPT版本是GPT-4o,其中的“o”代表“omni”。这意味着,除了接受文本输入外,它还可以原生理解音频和图像输入——并且可以用文本、图像和音频的任意组合进行回复。这里的关键是,所有这些都是由一个模型完成的,而不是多个协同工作的独立模型。

历代GPT的发布时间,参数量以及训练量 模型发布时间层数头数词向量长度参数量预训练数据量

GPT-1比BERT诞生略早几个月。它们都是采用了Transformer为核心结构,不同的是GPT-1通过自左向右生成式的构建预训练任务,然后得到一个通用的预训练模型,这个模型和BERT一样都可用来做下游任务的微调。 GPT-1当时在9个NLP任务上取得了SOTA的效果,但GPT-1使用的模型规模和数据量都比较小,这也就促使了GPT-2的诞生。

对比GPT-1,GPT-2并未在模型结构上大作文章,只是使用了更多参数的模型和更多的训练数据.GPT-2最重要的思想是提出了“所有的有监督学习都是无监督语言模型的一个子集”的思想,这个思想也是提示学习(Prompt Learning)的前身。GPT-2在诞生之初也引发了不少的轰动,它生成的新闻足以欺骗大多数人类,达到以假乱真的效果。甚至当时被称为“AI界最危险的武器”,很多门户网站也命令禁止使用GPT-2生成的新闻。

GPT-3被提出时,除了它远超GPT-2的效果外,引起更多讨论的是它1750亿的参数量。GPT-3除了能完成常见的NLP任务外,研究者意外的发现GPT-3在写SQL,JavaScript等语言的代码,进行简单的数学运算也有不错的表现效果。 GPT-3 的训练使用了情境学习( In-contextLearning),它是元学习(Meta-learning)的一种,元学习的核心思想在于通过少量的数据寻找一个合适的初始化范围,使得模型能够在有限的数据集上快速拟合,并获得不错的效果。

GPT其核心原理依赖于 Transformer 架构和大规模预训练。 以下是 ChatGPT 核心原理的详细解释: 核心技术组件

  1. Transformer 架构:
    • Attention 机制:Transformer 模型使用注意力机制(Attention Mechanism),尤其是自注意力(Self-Attention),来处理输入序列中的每个元素。这使得模型能够捕捉到输入序列中不同位置之间的依赖关系。
    • 编码器-解码器结构:虽然 GPT 只使用了 Transformer 的解码器部分,但 Transformer 原始设计包括编码器和解码器两个部分。编码器处理输入数据,解码器生成输出。
  2. 预训练和微调:
    • 预训练(Pre-training):模型在大量未标注的文本数据上进行预训练,学习语言的基本结构和知识。这一步使用自监督学习方法,例如语言建模任务,即预测句子中的下一个词。
    • 微调(Fine-tuning):在预训练完成后,模型在特定任务(如问答、对话生成)上进行微调。微调使用的是有标注的数据,可以进一步优化模型在特定任务上的表现。
  3. 大规模数据和计算:
    • 大规模数据:ChatGPT 在海量的互联网文本数据上进行训练,这使得模型能够捕捉到广泛的知识和语言模式。
    • 大规模计算:训练这样的模型需要大量的计算资源,通常使用分布式计算和高性能的硬件(如 GPU 和 TPU)。

工作原理

  1. 输入处理:
    • 用户输入(如一个问题或一句话)被转换为一系列的标记(tokens)。
    • 这些标记被嵌入到向量空间中,形成输入向量。
  2. 模型计算:
    • 输入向量通过多个 Transformer 解码器层,每一层由多头自注意力机制和前馈神经网络组成。
    • 在每一层,自注意力机制计算输入序列中每个标记与其他标记之间的注意力权重,从而捕捉全局信息。
    • 前馈神经网络进一步处理自注意力机制的输出,生成新的表示。
  3. 输出生成:
    • 最终层的输出通过一个线性层和 softmax 函数,生成每个可能标记的概率分布。
    • 根据概率分布,选择下一个词或标记,逐步生成完整的输出句子。
  4. 后处理:
    • 生成的标记序列被转换回人类可读的文本。
    • 根据需要,可能进行一些后处理步骤,如去除重复、纠错等。

优化和改进

  1. 对话管理:
    • 为了处理连续对话,模型需要记住对话上下文。这通常通过将之前的对话历史作为输入的一部分来实现。
    • 还可以使用一些对话策略和管理机制来提高对话的连贯性和相关性。
  2. 安全性和伦理考虑:
    • 在训练和部署过程中,需要考虑模型可能产生的不良内容、偏见和误导信息。
    • 可以通过过滤、监控和人工干预等手段来提高模型的安全性和可靠性。

ChatGPT的训练 ChatGPT的训练过程分为以下三个阶段: 第一阶段:训练监督策略模型 GPT 3.5本身很难理解人类不同类型指令中蕴含的不同意图,也很难判断生成内容是否是高质量的结果。 为了让GPT 3.5初步具备理解指令的意图,首先会在数据集中随机抽取问题,由人类标注人员,给出高质量答案,然后用这些人工标注好的数据来微调 GPT-3.5模型(获得SFT模型,Supervised Fine-Tuning)。 此时的SFT模型在遵循指令/对话方面已经优于 GPT-3,但不一定符合人类偏好。

第二阶段:训练奖励模型(Reward Mode,RM) 这个阶段的主要是通过人工标注训练数据(约33K个数据),来训练回报模型。 在数据集中随机抽取问题,使用第一阶段生成的模型,对于每个问题,生成多个不同的回答。 人类标注者对这些结果综合考虑给出排名顺序。这一过程类似于教练或老师辅导。 接下来,使用这个排序结果数据来训练奖励模型。对多个排序结果,两两组合,形成多个训练数据对。 RM模型接受一个输入,给出评价回答质量的分数。这样,对于一对训练数据,调节参数使得 高质量回答的打分比低质量的打分要高。 第三阶段:采用PPO(Proximal Policy Optimization,近端策略优化)强化学习来优化策略。 PPO的核心思路在于将Policy Gradient中On-policy的训练过程转化为Off-policy,即将在线学习转化为离线学习,这个转化过程被称之为Importance Sampling。这一阶段利用第二阶段训练好的奖励模型,靠奖励打分来更新预训练模型参数。在数据集中随机抽取问题,使用PPO模型生成回答,并用上一阶段训练好的RM模型给出质量分数。把回报分数依次传递,由此产生策略梯度,通过强化学习的方式以更新PPO模型参数。 如果我们不断重复第二和第三阶段,通过迭代,会训练出更高质量的ChatGPT模型。

ChatGPT的小型化 虽然ChatGPT很强大,但其模型大小和使用成本也让很多人望而却步。有三类模型压缩(model compression)可以降低模型的大小和成本。

第一种方法是量化(quantization) 即降低单个权重的数值表示的精度。比如Tansformer从FP32降到INT8对其精度影响不大。 第二种模型压缩方法是剪枝(pruning) 即删除网络元素,包括从单个权重(非结构化剪枝)到更高粒度的组件如权重矩阵的通道。这种方法在视觉和较小规模的语言模型中有效。 第三种模型压缩方法是稀疏化 例如奥地利科学技术研究所 (ISTA)提出的SparseGPT (arxiv.org/pdf/2301.0077)可以将 GPT 系列模型单次剪枝到 50% 的稀疏性,而无需任何重新训练。 对 GPT-175B 模型,只需要使用单个 GPU 在几个小时内就能实现这种剪枝。 SparseGPT 压缩流程

应用场景 ChatGPT 具有广泛的应用场景,包括但不限于:

  • 客户服务:自动回答客户的常见问题。
  • 教育:提供学习帮助和解答问题。
  • 内容生成:生成文章、故事和其他文本内容。
  • 辅助编程:帮助编写代码和解决编程问题。

总的来说,ChatGPT 的核心原理是基于 Transformer 架构,通过大规模预训练和微调,结合注意力机制和大量计算资源,来生成高质量的自然语言文本。个人体验来说,最总结的论文应该是一文了。

參考文檔:

  1. A Study on a User-Controlled Radial Tour for Variable Importance in High-Dimensional Data
  2. Binary formation through gas-assisted capture and the implications for stellar, planetary and compact-object evolution
  3. Language Models are Few-Shot Learners
  4. Training language models to follow instructions with human feedback
  5. A Survey of Reinforcement Learning from Human Feedback
  6. Proximal Policy Optimization Algorithms
  7. Attention Is All You Need