GPT系列
- 预备知识
- GPT-1
- 无监督预训练
- 有监督的微调
- 训练
- GPT-2
- 数据集:
- 输入表示
- 模型
- 实验
- GPT-3
- 模型
- 数据集
- 实验
- 局限性
- InstructGPT
- GPT-4
- GPT-4 新特性
- 基础能力
- 参考文献
大模型
GPT演进路线图
预备知识
Transformer 结构图
GPT-1
首先使用未标注的数据训练一个预训练语言模型,然后再使用有标注的数据在子任务上做微调。
下图为Transformer Decoder 和 GPT1结构图的对比
GPT只能关注上文的信息,无法关注到下文的信息。
无监督预训练
GPT使用标准的语言模型的目标函数来最大化似然函数:
语言模型就是要预测第 i 个词出现的概率
Transformer 编码器和解码器的区别:输入一个序列到编码器中,对第 i 个元素抽取特征的时候,可以看到整个序列的所有元素,而对于解码器来说,因为有掩码的存在,在对第 i 个元素抽取特征的时候,只能看到当前元素和它前边的元素,它后边的元素通过一个掩码使得在计算注意力机制的时候变为0。
GPT和BERT的区别:
BERT 用的不是标准的语言模型,用的是一个带掩码的语言模型,是一个完形填空,给定一个句子,把中间的词挖掉,然后预测中间的那个词,在预测这个词的时候既能看到它之前的词,又能看到它之后的词,所以用的是Transformer 的编码器。
主要区别在于两者目标函数的选取:GPT的预测更难,只通过前边的来预测下一个词。
有监督的微调
训练
GPT数据集:
- BooksCorpus:7000多本未出版的书籍
- Word Benchmark:10亿
GPT模型大小:12层,768维
参数量:1.17亿
BERT数据集:
- BooksCorpus:8亿个词
- English Wikipedia:25亿词
BERT大小:
- base:12层,768维(对标GPT)
- large:24层,1024维
GPT和BERT实验对比
GPT-2
增大数据集 + 增大模型 + zero-shot
通过任务提示来训练一个预训练模型,然后无需进行有监督的fine-tune就可以执行下游任务。比如翻译任务可以输入为
(translate to french, english text, french text)
,阅读理解任务可以输入为 (answer the question, document, question, answer)
。
数据集:
- 网页爬取:WebText 只抓取了人类策划/过滤的网页,800万文档(40G)
输入表示
BPE(Bype Pair Encoder)这种输入表示能够将词级 LM 的经验优势与字节级方法的通用性相结合。由于我们的方法可以为任何 Unicode 字符串分配一个概率,这允许我们在任何数据集上评估我们的 LM,而不管预处理、标记化或词汇大小。
https://zhuanlan.zhihu.com/p/589086649
模型
与 GPT1 类似,有如下的修改
- 层归一化移动到每个子块的输入,并且在最终的子注意力块之后额外添加了一个层归一化
- 改进初始化:按残差层个数进行缩放,缩放比例为 1 N \frac{1}{\sqrt{N}} N1, N N N 是残差层数
- 词汇表扩展到 50257
- 上下文大小从 512 增加到 1024,使用 512 的batch size
实验
zero-shot
GPT-3
Few-shot(不做梯度)
in-context learning
模型
与GPT-2类似,但是使用稀疏注意力机制
数据集
- 根据与一系列高质量参考语料库的相似性下载和过滤了 CommonCrawl 版本
- 文档级别、内部和跨数据集执行模糊重复数据删除,以防止冗余并保持验证集的完整性作为过度拟合的准确度量
- 已知的高质量参考语料库
实验
局限性
虽然 GPT-3 取得了非常亮眼的效果,但是出于严谨的学术态度,论文里还是客观的分析了自己的一些局限性:
-
当生成文本长度较长时,GPT-3 还是会出现各种问题,比如重复生成一段话,前后矛盾,逻辑衔接不好等等;
-
模型和结构的局限性,对于某一些任务,比如填空类型的文本任务,使用单向的自回归语言模型确实存在一定的局限性,这时候如果同时考虑上文和下文的话,效果很可能会更好一些;
-
预训练语言模型的通病,在训练时,语料中所有的词都被同等看待,对于一些虚词或无意义的词同样需要花费很多计算量去学习,无法区分学习重点;
-
样本有效性或者利用率过低,训一个模型几乎要把整个互联网上的文本数据全都用起来,这与我们人类学习时所需要的成本存在非常大的差异,这方面也是未来人工智能研究的重点;
-
有一个不太确定的点是,模型到底是在“学习”还是在“记忆”?我们当然希望它能够学习,但是在使用数据量如此大的情况下,很难去判断它到底是什么样的;
-
众所周知,GPT-3 的训练和使用成本都太大了;
-
GPT-3 跟很多深度学习模型一样,都是不可解释的,没办法知道模型内部到底是如何作出一系列决策的;
-
模型最终呈现的效果取决于训练数据,这会导致模型会出现各种各样的“偏见”;
InstructGPT
使用标注的数据集在比GPT-3小100倍的模型微调的效果甚至比GPT-3还要好一点(标注的数据信噪比更小)
GPT-3 虽然在各大 NLP 任务以及文本生成的能力上令人惊艳,但是他仍然还是会生成一些带有偏见的,不真实的,有害的造成负面社会影响的信息,而且很多时候,他并不按人类喜欢的表达方式去说话。在这个背景下,OpenAI 提出了一个概念“Alignment”,意思是模型输出与人类真实意图对齐,符合人类偏好。因此,为了让模型输出与用户意图更加 “align”,就有了 InstructGPT 这个工作。
InstructGPT总共干了三件事情:
1、将 prompt 和答案标出来,然后用最正常的 GPT 微调出一个模型
2、训练一个奖励模型去拟合人对模型中多个输出之间的排序,训练好之后将其放入到强化学习的框架中
3、通过强化学习模型调整 SFT 模型,使得输出的结果在排序上更符合人的喜好
GPT-4
GPT-4是一个大型多模态模型(Large Multimodal Model),能够接受图像和文本输入,并输出文本。 OpenAI首先发布了GPT-4的文本输入功能,图像输入功能敬请期待。
实验表明,GPT-4 在各种专业和学术考试中表现出了与人类水平相当的性能(human-level performance)。例如,它通过了模拟律师考试,且分数在应试者的前 10% 左右;相比之下,GPT-3.5 的得分在倒数 10% 左右。
GPT-4的训练稳定性是史无前例的,这得益于对抗性测试计划和来自于ChatGPT的经验教训,对 GPT-4 进行迭代调整,从而在真实性、可控性等方面取得了有史以来最好的结果。
在过去的两年里,OpenAI重建了整个深度学习堆栈,并与Azure共同设计了一台超级计算机以便于应付他们的工作负载。 将继续专注于可靠的扩展,进一步完善方法,以帮助其实现更强大的提前预测性能和规划未来的能力,这对安全至关重要。
OpenAI还开源了OpenAI Evals,这是他们的自动化评估AI模型性能的框架,任何人都可以提交他们模型的缺陷以帮助改进。
OpenAI 正在通过 ChatGPT 和 API(有候补名单)发布 GPT-4 的文本输入功能。图像输入功能方面,为了获得更广泛的可用性,OpenAI 正在与其他公司展开合作。
OpenAI 还在为机器学习模型设计的传统基准上评估了 GPT-4。GPT-4 大大优于现有的大型语言模型,以及大多数 SOTA 模型
GPT-4 新特性
- 重点强化了创作能力,作曲,写小说,能够生成歌词、创意文本、实现风格变化等
- 强大的识图能力,除本身带了对于图片 OCR 外,还有对位置和细节的理解能力。解析报表图片并进行汇总,直接回答图片中包含的提问内容等
- 增加了对于长文本的处理能力:GPT-4 文字输入限制提升至 2.5 万字,ChatGPT 4096字
- 回答准确性显著提高
- 多了一种新的交互方式,就是对于图片的理解
基础能力
GPT-4 是一个多模态大模型,支持接受图像和文本输入,输出文本。
虽然没一步到位,把音视频也覆盖上,但如果能把图像与文本这两块做好,相信其应用潜力无限。
在团队进行的多个 GPT-4 与 GPT-3.5 的考试测试中,发现这两个模型间存在很微妙的差异。当任务的复杂性足够高时,GPT-4 比 GPT-3.5 更可靠、更有创意,并且能够处理更细微的指令。
在 GPT-4 发布之前,Open AI 团队花了 6 个月的时间 ,使用对抗性测试程序,以及从 ChatGPT 得到的经验教训,对 GPT-4 进行了迭代调整 ,进而在其真实性、可操控性等方面取得了有史以来最好的结果。
专业和学术表现
即便 GPT-4 在许多现实世界场景中能力不如人类,但在各种专业和学术基准上的表现,还是超过了人类的平均水平。这里有一个数据是,在律师模拟考中,GPT-4 的成绩排在应试生的前 10% 中,而此前发布的 GPT-3.5,则在倒数 10% 的行列。参加的多种不同领域的专业应试,能够排到多靠前的位置。
模型评估对比
在与当前机器学习模型进行基准评估对比后,GPT-4 大大优于现有的大型语言模型,以及大多数最先进的 (SOTA) 模型。
图像处理能力
GPT-4 本次最为令人看重的,还是它接受与处理图像的具体能力。
GPT-4可以接受文本和图像输入,并且这两个是可以掺杂着用,它允许你用跟之前文本一样的使用方式。
在官方报告中,团队提供了多个实际交互示例。一共有7个例子,总结起来,它可以识别搞笑图片,可以做复杂的物理化学之类的题目,可以做看图题,可以读论文,可以识别meme图片,总之,非常的强,可惜还不能开放使用。
GPT-4 技术报告
OpenAI 公开的技术报告中,不包含任何关于模型架构、硬件、算力等方面的更多信息。
下面是稍微具体一点的技术报告 https://cdn.openai.com/papers/gpt-4.pdf
与 GPT-3.5/ChatGPT 技术路线完全相同。GPT-4 is a Transformer-style model pre-trained to predict the next token in a document, using both publicly available data (such as internet data) and data licensed from third-party providers. The model was then fine-tuned using Reinforcement Learning from Human Feedback (RLHF). ;
用一系列 alignment 方案来确保 GPT-4 输出的安全性。The post-training alignment process results in improved performance on measures of factuality and adherence to desired behavior.
用千分之一的计算量去预测 GPT-4 在一定计算规模下的性能,不用花时间训练大模型去探索,即 Predictable Scaling。A core component of this project was developing infrastructure and optimization methods that behave predictably across a wide range of scales. This allowed us to accurately predict some aspects of GPT-4’s performance based on models trained with no more than 1/1,000th the compute of GPT-4.
很想看到 OpenAI 是如何做到 Multi-modal GPT 的,我大致是这么猜的:GPT-4 的训练方法应当与最近微软发布的 KOSMOS-1 相同 (Language Is Not All You Need: Aligning Perception with Language Models)。预训练阶段,输入任意顺序的文本和图像,图像经过 vision encoder (如 ViT,CLIP ViT)成 embedding,文本经过 text tokenizer 也成 embedding,组成 multimodal sentence embedding,训练目标仍然是 next-token generation。KOSMOS-1 数据从哪来,直接爬网页训,网页里有图有文字。别看 KOSMOS-1 性能比较拉,那是因为它参数量少,就 1.3 B。同样的方式放到 GPT-4 的参数规模,能成大事。
GPT-4参数量,没有找到相关描述。
训练过程
与之前的 GPT 模型一样,GPT-4 基础模型经过训练可以预测文档中的下一个单词。OpenAI 使用公开可用的数据(例如互联网数据)以及已获得许可的数据进行训练。训练数据是一个网络规模的数据语料库,包括数学问题的正确和错误解决方案、弱推理和强推理、自相矛盾和一致的陈述,以及各种各样的意识形态和想法。
因此,当提出问题时,基础模型的回应可能与用户的意图相去甚远。为了使其与用户意图保持一致,OpenAI 依然使用强化学习人类反馈 (RLHF) 来微调模型的行为。请注意,该模型的能力似乎主要来自于预训练过程 ——RLHF 不会提高考试成绩(甚至可能会降低它)。但是模型的控制来自后训练过程 —— 基础模型甚至需要及时的工程设计来回答问题。
GPT-4 的一大重点是建立了一个可预测扩展的深度学习栈。主要原因是,对于像 GPT-4 这样的大型训练,进行广泛的特定模型调整是不可行的。团队开发了基础设施和优化,在多种规模下都有可预测的行为。为了验证这种可扩展性,他们提前准确地预测了 GPT-4 在内部代码库(不属于训练集)上的最终损失,方法是通过使用相同的方法训练的模型进行推断,但使用的计算量为 1/10000。
局限性
尽管功能已经非常强大,但 GPT-4 仍与早期的 GPT 模型具有相似的局限性,其中最重要的一点是它仍然不完全可靠。OpenAI 表示,GPT-4 仍然会产生幻觉、生成错误答案,并出现推理错误。
目前,使用语言模型应谨慎审查输出内容,必要时使用与特定用例的需求相匹配的确切协议(例如人工审查、附加上下文或完全避免使用) 。
GPT-4 跟 GPT-3.5 类似,对训练数据中断后(2021 年 9 月)所发生的事情不太了解,也会犯一些在我们看来很简单的推理性错误,给用户提供不合理的建议,以及在生成的代码中引入安全漏洞。
总的来说,GPT-4 经过多次迭代和改进,在 OpenAI 的内部对抗性真实性评估中,GPT-4 的得分比最新的 GPT-3.5 模型高 40%
GPT-4 风险和应对措施
GPT-4 的训练在去年 8 月完成,剩下的时间都在进行微调提升,以及最重要的去除危险内容生成的工作。
OpenAI一直在对GPT-4进行迭代,以使其更加安全。
GPT-4与以前的模型一样具有风险,但由于其额外的能力,从而会导致新的风险。
邀请了50多名专家对模型进行对抗测试,以提高模型的安全性能。
GPT-4在RLHF训练过程中加入了额外的安全奖励信号,通过训练模型拒绝对此类内容的请求来减少有害的输出。
为了防止模型拒绝有效请求,收集了多样化的数据集,并在允许和不允许的类别上应用安全奖励信号。
缓解措施显著提高了GPT-4的安全性能,例如将模型对于不允许内容请求的响应率降低了82%。 对敏感请求(如医疗建议和自我伤害)的响应符合政策的频率提高了 29%。
开源项目:OpenAI Evals
为了让开发者能更好的评测 GPT-4 的优缺点,OpenAI 的技术团队还开源了 OpenAI Evals 项目,可用于自动评估 AI 模型性能的框架,以便用户能更专业的指导团队,进一步优化与改进模型。
该项目具有以下功能特性:
使用数据集生成提示;
衡量 OpenAI 模型提供的补全质量;
比较不同数据集和模型的性能。
GitHub:https://github.com/openai/evals
参考文献
GPT,GPT-2,GPT-3论文精读
https://github.com/Mooler0410/LLMsPracticalGuide
拆解追溯 GPT-3.5 各项能力的起源