ChatGPT从入门到精通
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
本篇文章是 ChatGPT 系列文章的最后一篇。在之前的文章中,依次介绍了 Transformer->GPT1->GPT2->GPT3,下面是参考链接:
绝密伏击:【【淘密令】】(一):十分钟读懂 Transformer绝密伏击:【【淘密令】】(一):Tensorflow实现Transformer绝密伏击:【【淘密令】】(二):十分钟读懂 GPT-1绝密伏击:【【淘密令】】(二):Tensorflow实现GPT-1绝密伏击:【【淘密令】】(三):十分钟读懂 GPT-2绝密伏击:【【淘密令】】(三):Tensorflow实现GPT-2绝密伏击:【【淘密令】】(四):十分钟读懂 GPT-3绝密伏击:GPT-4技术文档如果你已经看过上面的文章,那么理解 ChatGPT 的技术原理就简单的多。
实际上 OpenAI 并没有公布 ChatGPT 的技术细节,但是在2022年的时候,曾经放出过 InstructGPT 的论文(Training language models to follow instructions with human feedback),而根据 OpenAI 的说法,ChatGPT 是 InstructGPT 的兄弟模型。
我们通过下面的图,也可以看出 ChatGPT 和 InstructGPT 之间的关系。
本篇文章,我们一起来了解一下 ChatGPT 背后的技术原理。
既然 ChatGPT 是由 GPT-3 迭代过来的,那么原有的 GPT-3 究竟有哪些问题?ChatGPT 又是如何做的改进?
如果你明白了上面两个问题,那么 ChatGPT 的核心你就算真正掌握了。
GPT-3 最大的问题就是训练目标和用户意图不一致。也就是 GPT-3 并没有真正拟合用户真实的问题(prompt)。
GPT-3 本质上是语言模型,优化目标也是标准语言模型的目标,即最大化下一个词出现的概率。GPT-3 的核心技术是 Next-token-prediction 和 Masked-language-modeling。
在第一种方法中,模型被给定一个词序列作为输入,并被要求预测序列中的下一个词。如果为模型提供输入句子:
“猫坐在”
它可能会将下一个单词预测为「垫子」、「椅子」或「地板」,因为在前面的上下文中,这些单词出现的概率很高。
Masked-language-modeling 方法是 Next-token-prediction 的变体,其中输入句子中的一些词被替换为特殊 token,例如[MASK]。然后,模型被要求预测应该插入到 mask 位置的正确的词。如果给模型一个句子:
“The[MASK]sat on the ”
它可能会预测 MASK 位置应该填的词是「cat」、「dog」。
这些目标函数的优点之一是,它允许模型学习语言的统计结构,例如常见的词序列和词使用模式。这通常有助于模型生成更自然、更流畅的文本,并且是每个语言模型预训练阶段的重要步骤。
然而这些目标函数也可能导致问题,这主要是因为模型无法区分重要错误和不重要错误。一个非常简单的例子是,如果给模型输入句子:
"罗马帝国[MASK]奥古斯都的统治"
它可能会预测 MASK 位置应该填入「开始于」或「结束于」,因为这两个词的出现概率都很高。
更一般地说,这些训练策略可能会导致语言模型在某些更复杂的任务中出现偏差,因为仅经过训练以预测文本序列中的下一个词(或掩码词)的模型可能不一定会学习一些其含义的更高层次的表示。因此,该模型难以泛化到需要更深入地理解语言的任务或上下文。
这也导致了 GPT-3 这样的语言模型,很难理解用户的真实意图,经常出现答非所问的情况,一本正经的胡说八道。
因此 ChatGPT 要解决的核心问题,就是怎么让模型和用户对齐。
备注:模型和用户对齐。就是让模型学会理解人类的命令指令的含义(比如给我写一段小作文生成类问题、知识回答类问题、头脑风暴类问题等不同类型的命令),以及让模型学会判断对于给定 prompt 输入指令(用户的问题),什么样的答案是优质的(富含信息、内容丰富、对用户有帮助、无害、不包含歧视信息等多种标准)。
那么 ChatGPT 又是如何做的改进?核心方法就是引入“人工标注数据+强化学习”(RLHF,Reinforcement Learning from Human Feedback ,这里的人工反馈其实就是人工标注数据)来不断Fine-tune预训练语言模型。
在“人工标注数据+强化学习”框架下,训练 ChatGPT 主要分为三个阶段。
- 第一阶段使用标准数据(prompt 和对应的回答)进行微调,也就是有监督微调 SFT(Super【【微信】】)
- 第二个阶段,训练回报模型(Reward Model, RM)。给定 prompt(大约3万左右),使用微调后的模型生成多个回答,人工对多个答案进行排序,然后使用 pair-wise learning 来训练 RM,也就是学习人工标注的顺序(人工对模型输出的多个答案按优劣进行排序)。
- 最后一个阶段就是使用强化学习,微调预训练语言模型。
后面我们会详细介绍上面的三个阶段。
这里有一个疑问,为啥不直接使用 SFT,而是又要引入强化学习?
这个问题非常重要。强化学习的目的是让模型的答案更接近人类意图,本阶段无需人工标注数据,而是利用上一阶段学好的 RM 模型,靠 RM 打分结果来更新预训练模型参数。
既然目标是让模型能更好拟合<prompt, answer>,那为什么不直接使用 SFT,这样不是更直接吗?或者为了拟合<prompt, answer1, answer2,...>这个序,再做一次 Fine-tuning。
之所以没有这样做,主要原因还是标注数据太少了,一共才3万条标注数据。换句话说,如果标注数据足够多,有可能 SFT 就足够了。
那么怎么能获取更多 prompt?就像 OpenAI 一样,快速推出产品 ChatGPT,然后不断收集用户的 prompt,再把收集的数据用于 SFT。这也是为什么 ChatGPT 越来越强,因为它在不断的收集->训练->收集...
在“人工标注数据+强化学习”框架下,具体而言,ChatGPT 的训练过程分为以下三个阶段:
为了让 ChatGPT 初步具备理解指令中(prompt)蕴含的意图,首先会从测试用户提交的 prompt (就是指令或问题)中随机抽取一批,靠专业的标注人员,给出指定 prompt 的高质量答案,然后用这些人工标注好的<prompt, answer> 数据来 Fine-tune GPT-3 模型。经过这个过程,我们可以认为 ChatGPT 初步具备了理解人类 prompt 中所包含意图,并根据这个意图给出相对高质量回答的能力,但是由于样本太少,很难达到理想效果。
我们来看一下这部分标注数据都有哪些问题:
问题类型 | 占比(%) |
---|---|
生成任务(Generation) | 45.6% |
开放问答(Open QA) | 12.4% |
头脑风暴(Brainstorming) | 11.2% |
聊天(Chat) | 8.4% |
重写(Rewrite) | 6.6% |
摘要(Summarization) | 4.2% |
分类(Classification) | 3.5% |
其它(Other) | 3.5% |
封闭问答(Closed QA) | 2.6% |
抽取(【【微信】】) | 1.9% |
这里面最主要的问题是生成任务,然后是一些问答,头脑风暴。下面看几个例子:
问题类型 | Prompt |
---|---|
头脑风暴(Brainstorming) | 列出5个方法用于重新对职业充满热情 |
生成任务(Generation) | 编写一个短篇故事,讲述一只熊前往海滩,结识了一只海豹,然后返回家中的经历。 |
重写(Rewrite) | 将下面一段话翻译成法语:<English sentence> |
SFT 就是根据这些问题和答案,对 GPT-3 进行微调。
这个阶段的主要目的是通过人工标注训练数据,来训练回报模型。具体而言,随机抽样一批用户提交的 prompt (大部分和第一阶段的相同),使用第一阶段 Fine-tune 好的模型,对于每个 prompt,由之前的 SFT 模型生成 K 个不同的回答,于是模型产生出了<prompt, answer1>, <prompt, answer2>….<prompt, answerK>数据(这里面 K 是4到9之间)。之后,标注人员对 K 个结果按照很多标准(上面提到的相关性、富含信息性、有害信息等诸多标准)综合考虑进行排序,给出 K 个结果的排名顺序,这就是此阶段人工标注的数据。
接下来,我们准备利用这个排序结果数据来训练回报模型,采取的训练模式其实就是平常经常用到的 pair-wise learning to rank。对于K个排序结果,两两组合,形成个训练数据对,ChatGPT 采取 pair-wise loss 来训练回报模型。RM 模型接受一个输入<prompt, answer>,给出评价回答质量高低的回报分数 Score。对于一对训练数据<answer1, answer2>,我们假设人工排序中 answer1 排在 answer2 前面,那么 Loss 函数则鼓励 RM 模型对<prompt, answer1> 的打分要比 <prompt, answer2> 的打分要高。
下面是回报模型的损失函数:
其中 表示回报模型的输出, 是给定的 prompt, 表示对于的回答。 和 表示回答 排在回答 前面 ,类似上面的 answer1 排在 answer2 前面。
总结下:在这个阶段里,首先由 SFT 监督模型为每个 prompt 产生 K 个结果,人工根据结果质量由高到低排序,以此作为训练数据,通过 pair-wise learning to rank 模式来训练回报模型。对于学好的 RM 模型来说,输入<prompt, answer>,输出结果的质量得分,得分越高说明产生的回答质量越高。
本阶段无需人工标注数据,而是利用上一阶段学好的 RM 模型,靠 RM 打分结果来更新预训练模型参数。具体而言,首先,从用户提交的 prompt 里随机采样一批新的命令(指的是和第一第二阶段不同的新的 prompt),且由一阶段的 SFT 模型来初始化 PPO 模型的参数。然后,对于随机抽取的 prompt,使用 PPO 模型生成回答answer, 并用上一阶段训练好的 RM 模型给出 answer 质量评估的回报分数 score,这个回报分数就是 RM 赋予给整个回答的整体 reward。
强化学习的目标函数如下:
这里面第一项是最大化回报 score,第二项是让强化学习的输出不要偏离 SFT 太多,最后一项是保证微调的同时,原有语言模型的效果不会变差。
上图是最终的效果对比。对比的是 SFT 175B 的GPT-3 模型。可以看到只做 SFT,1.3B 和 6B 都干不过 175B,但是加入强化学习后,1.3B 的效果就比 175B 的效果还好。
GPT 出来之后,基于 GPT 架构的大模型层出不穷,比较知名的有清华大学的 GLM (General Language Model Pretraining)模型,百度的文心一言。而后面腾讯、阿里、字节、知乎,都会推出自己的大模型,这些大模型用的数据可能不一样,但是有一样是共同的:都是基于 GPT 进行预训练。
目前 ChatGPT 的相关技术已经介绍完了,而目前 OpenAI 已经推出了最新版本的 GPT-4,支持多模态,可以理解图片,后面应该会加入视频理解。
AI 的时代,真的来临了。
Introducing ChatGPT
张俊林:ChatGPT会取代搜索引擎吗
机器之心:深入浅出,解析ChatGPT背后的工作原理
数据科学人工智能:ChatGPT 算法原理
How ChatGPT actually works
JioNLP团队:一文读懂ChatGPT模型原理
ChatGPT实现原理 chatgpt到底是如何实现的
chatgpt是什么意思,chatgpt怎么下载,chatgpt怎么读,chatgpt中文?
一、AI框架重要性日益突显,框架技术发展进入繁荣期,国内AI框架技术加速发展:
1、AI框架作为衔接数据和模型的重要桥梁,发展进入繁荣期,国内外框架功能及性能加速迭代;
2、Pytorch、Tensorflow占据AI框架市场主导地位,国内大厂加速布局AI框架技术;
3、AI框架技术从工具逐步走向社区,生态加速形成,未来围绕安全可信、场景落等维度呈现显著发展趋势;
二、GPT开启AI大模型时代,国内外大厂发力布局,商业化空间加速打开:
1、数据、算法、模型三轮驱动AI发展,大模型优势显著,成为AI主流方向;
2、GPT开启千亿参数级AI大模型时代,语言、视觉、科学计算等大模型快速发展;
3、微软加速AI商用化进程,国内大厂发力布局,看好在细分场景下的应用落地;
ChatGPT:AI模型框架研究(2023)
《166份重磅ChatGPT专业报告》
ChatGPT对GPU算力的需求测算与相关分析
英伟达2023 GTC大会及报告合集
ChatGPT火爆出圈,AI算力和行业应用潜能巨大
ChatGPT对数字孪生体发展的启示
GPT将如何影响我们的工作?
华为AI盘古大模型研究框架(2023)
《PLC可编程技术研究及报告合集》
1、PLC技术在机械电气控制装置的应用初探 2、PLC可编程逻辑控制研究―多元化发展,行业前景乐观
3、中国PLC行业研究报告(2022)
《OpenAI:GPT-4技术报告(2023)》
1、GPT-4技术报告(英)-OpenAI(2023)
2、GPT-4技术报告(中)-OpenAI(2023)
浙商证券:ChatGPT研究框架(2023)
ChatGPT芯片算力:研究框架
专题研究:ChatGPT:深度拆解(2023)
国泰君安:ChatGPT 研究框架(2023)
?
ChatGPT:AI模型框架研究(2023)”,重点介绍国内外AI主流厂商及在ChatGPT热潮下,主要的AI框架。
百度坐拥大模型+训练框架+数据+社区多重优势,百度有望成为AIGC领域率先实现商业化的领头羊。
Google在各模态领域布局AI模型,并提供多项功能服务模块。
阿里巴巴率先构建大模型统一底座、通过训练策略大幅提升稀疏参数大模型框架训练效率,在大模型框架上具备领先地位。
华为盘古大模型深耕实业,拥有更广泛的行业大模型,具备更强的落地能力。
微软发布Microsoft 365 Copilot,引领下一代AI大模型,Copilot AI 功能的应用场景,大幅提高办公效率。
下载内容:
信创研究专题框架
从软件算法生态看GPU发展与局限
N【【微信】】架构白皮书
GPU技术专题下载链接
《GPU高性能计算概述》?
《GPU深度学习基础介绍》?
《OpenACC基本介绍》?
《CUDA CC?编程介绍》?
《CUDA Fortr基本介绍》
深度报告:GPU研究框架
CPU和GPU研究框架合集
大话处理器:处理器基础知识深度读本
微架构:处理器的内心世界
MIPS指令与汇编
CPU架构与故障维修
《六大国产CPU架构分析报告》
1、开启国产CPU和AI芯片的腾飞之路
2、CPU生态价值与机遇研究
3、国产基础软硬件,重塑IT产业生态
4、中流击水:六大国产CPU厂商分析
5、聚力突破核心技术,信创产业扬帆起航
服务器研究框架
服务器系列技术(4本)
《RISC-V技术介绍及报告》
《飞腾CPU专题报告》
1、飞腾:国产CPU巨头,充分受益国产化浪潮
2、国产CPU全对比,飞腾有望异军突起
《国产CPU及研究框架》
1、国产CPU正从可用向好用转变,自主可控前景可期
2、国产CPU全对比,飞腾有望异军突起
3、专题报告:国产CPU研究框架
4、深度报告:CPU研究框架
《龙芯/海光CPU厂商专题报告》
1、龙芯:国产CPU引领者,构建自主可控生态体系(2022)
2、海光:进击的国产化CPU GPU领航者(2022)
3、海光:安全、性能、生态铸造国产高端处理器龙头
4、龙芯:深耕CPU行业20余年,国产化替代大有可为
?
?
?
4、2023年半导体设计:复苏与换挡
5、光刻胶:半导体产业核心卡脖子环节,国内蓄势待发
CPU和GPU研究框架合集
?
下载链接:
ChatGPT/AIGC技术合集(160+篇)