第一章 OpenAI
AI (Artificial Intelligence):人工智能
GPT ( Generative Pre-trained Transformer,生成式预训练Transformer )
AGI ( Artificial GeneralIntelligence,通用人工智能)
大公司建生态,小公司提供垂直领域服务
·指南针的发明,助力人类大航海时代的开启
·印刷术的发明,推动了人类文明的传承,大幅度是生产力。
·蒸汽机的发明,标志着人类进人了机械化时代。
·因特网的发明,推人类进人了信息化时代。
·太数据技术和云计算平台的广泛落地,标志着产人数智化时代。
·AlphaGo 和 AphaFold 的诞生,预示着机器人在某些垂直领内比人类更专业、更聪明。
·GPT-4 多模态大模型( 简称 GPT-4 )的诞生,而;着人类距离AGI时代不再遥远
·....
HCET(Hype Cycle for Emerging Technologies,新兴技术成熟度曲线)
2015年 12月,特斯拉创始人埃隆·马斯克和Y Combinator 总裁山姆·阿尔特在蒙特利尔 AI会议上宣布 OpenAI 成立。
谷歌大脑团队在 2017 年发布了:
·Transformer 预训练模型和
·BERT(Bidirectional Encoder Representation from Transformers基于转化器的双向编码表示模型)
OpenAI五个阶段:
·2015-2017:探索期
·2018-2019:低谷期
·2020-2021:发展期
·2022-2023:一鸣惊人期
·2024-:高速发展期
第二章 自然语言处理发展历程
自然语言处理里程碑
自然语言发展的六个阶段
·1913-1956:起源期
有图灵、马尔可夫、史蒂芬·科尔·克莱尼和香农
马尔可夫模型:λ=(S,π,A):
oS为状态序列中的状态集合;
oπ为初始概率分布;
oA为状态转移概率矩阵
·1957-1970:基于规则的形式理论期
形式语言模型:有限状态语言模型。
有限状态语言模型按照线性顺序选择语言的基本组成部分(比如,主谓宾生成句子、先选择的组成部分会制约后选择的组成部分,这种制约关系就是则和约束。诺姆·乔姆斯基认为: 语言就是由有限自动机产生的符号序列组的,语法是研究具体语言里用以构造句子的原则和加工过程。,它应该能生)出所有合乎语法的句子。
组成部分是符号,4种形式语言模型:
o正则语言模型
o上下文无关语言模型
o上下文相关语言模型
o递归可枚举语言模型
代码语言:javascript
复制
S1: { sentence ->S V O; S -> 张三 | 小猫; V ->吃|做; O->萝卜|鱼|作业 |手工 }
张三吃萝卜
张三吃作业
小猫吃萝卜
小猫吃手工
上下文无关语言模型
代码语言:javascript
复制
S2:{ sentence -> s V O; S -> 张三 | 小猫; V ->吃|做; O->萝卜|鱼|作业 |手工 吃O->吃萝卜|吃鱼; 张三 做 O ->张三 做 作业 | 张三 做 手工 }
上下文相关语言
冯志伟 FAJRA(法语-英语-日语-俄语-德语的法语)
·1971一1995:基于规则、概率模型和语料库的融合期
隐马尔可夫模型( Hidden Markov Model,HMM)
状态转移程和状态序列是隐蔽的、不可观察的,而可观察事件的随机过程是不可观察自状态转移过程的随机函数。
λ=(S,O,π,A,B):
oS为状态序列中的状态集合;
oO为每个状态可能的观察值;
oπ为初始概率分布;
oA为状态转移概率矩阵;
oB 为给定状态下观察值的概率分布,也称生成概率矩阵;
另一个重要的里程碑是语料库的引人
·1996-2005:浅层机器学习期
先验知识库导致泛化能力不强。浅层机器学习期以朴素贝叶斯模型开始, K 近邻算法、逻辑回归模型、决策树模型、随机森林算法、支持向量机、提升树算法等被广泛地应用。
提升树算法(GBDT、NGBoost、LightGBM) 提高了模型的效果
·2006-2017:深度学习期
NNML(Neural Network Language Model神经网络语言模型 )
o第一个是多层神经网络能够挖掘更多隐含信息。
o第二个是多层经网络能够有效地实现特征工程的自动化。
o第三个是可以通过逐层初始化的训练方式解决多层神经网络训练的难题,相当于解决了 Yoshua Bengio 关于经网络语言模型训练的问题
CNN(Convolutional Neural Networks 卷积神经网络)图像处理大放光彩,开始引入。
CNN 有一个明显的缺陷,即缺少记忆能力。
RNN(Recurrent Neural Networks 循环神经网络)
RNN 在面对长序列数据时,存在梯度消失的缺陷,这使得 RNN 对长期忆不敏感,容易丢失长期的记忆。
RNN 的优化变种算法长短时记忆 ( Long Short Term Memory,ISTM)网络和基于门机制的循环单元 ( Gate Recurrent Unit,GRU)被提出。
ISTM:输入门、遗忘门和输出门
GRU:重置门和更新门
对比 LSTM 网络和 GRU,整体而言LSTM 网络有更多的参数需要训练和学习,因此收敛更慢,效率更低;换句话说,GRU 为了运算效率牺牲了部分精度。
·2018-2021:预训练语言模型期
充分利用海量的未标注数据,预训练的方法应运而生。
"预训练"一般是将大量用低成本收集的训练数据放在一起,经过某种预训练方法去学匀其中的共性,然后将其中的共性“移植”到执行特定任务的模型中、再使用特定领域的少量标注数据进行“微调”。
将学习任务进行分解,首先学习数据量更庞大的共性知识,然后逐步学习垂直领域的专业知识。
1,让机器人学习中文,达到能够熟读和理解中文的水平。
2,让机器人学习法律领域的专业知识。
2.1学习法律行业的共性知识,
2.2学习更垂直领域的专业知识,这样也能提高学习的效果。
预训练语言模型的诞生是自然语言处理行业的一个里程碑。
论文"BERT: Pre-training of Deep Bidirectiol Transformers for Language Understanding"中提出了BERT模型
GPT、XLNet, MPNet 和 ERNIE
OpenAI的 GPT 的推出时间比 BERT 模型更早。
BERT 模型采用的双向 Transformer 的编码器( Encoder) 能获取下文信息,适合做自然语言理解,
GPT 采用的是单向 Transformer 的解码(Decode),更适合自然语言生成的应用场景。
从整体而言,上述预训练语言模型的参数基本上都为4 亿个以下。
·2022-:大模型期
ChatGPT 的参数量高达 1750亿个。聊天、机器翻译、文案撰写、代码撰写等。
GPT-4:多模态
ChatGPT :单模态
多模态两大主要内容:文字和图像
从BERT模型到ChatGPT
“可信”和“透明”
“让AI飞人寻常百姓家”
随之带来的后果就是中小公司开始逐渐玩不起AI了。
BERT模型到底解决了哪些问题
BERT模型由谷歌于2018 年发布。其主要创新点在于提出了预训练的思并且使用Transformer 的编码器作为模型的基础架构。
BERT模型和GPT-1的基础架构几乎是一样的。
10个自然语言处理任务
1,语法对错二分类
CoLA(The Corpus ofLinguisticAcceptabilit 可接受性语料库)数据集。10657个句子,对那么标注为 1,否则标注为 0。
句子来源 |
语法是否正确 |
是否该数据集的标注者标注 |
句子 |
clc95 |
0 |
* |
In which way is Sandy very anxious to students will be able to solve the homework problem? Sandy是不是很着急,学生们会用哪种方式来解决家庭作业的问题 |
c-05 |
1 |
The book was written by John.这本书是约翰写的 |
|
gj04 |
1 |
* |
The building is tall and wide.这座建筑又高又宽 |
gj04 |
0 |
The building is tall and tall.这座建筑又高又高 |
2.电影评论情感分析
SST-2(Stanford Sentiment Treebank,斯坦福情绪树),11855条电影评论,从中生成了 239231 个短语,【0-1】 1正面 0负面
评论 |
情感得分 |
Assured , glossy and shot through with brittle desperation有把握,有光泽,充满了脆弱的绝望 |
0.763 89 |
It's a big time stinker.这是一个可怕的时代 |
0.111 11 |
At best this is a film for the under-7 crowd . But it should be better to wait for the video.And a very rainy day.这充其量是一家适合7岁以下人群的电影。但最好还是等视频。还有一个非常下雨的日子 |
0.277 78 |
The turntable is now outselling the electric guita ..唱片现在的销售量超过了电吉他 |
0.5 |
comes from the heart.发自内心 |
0.75 |
3,语义相近判断
是MRPC(Microsoft Research Paraphrase Corpus,微软研究语义解释语料库)数据集。5800个句子对。同一个句子对中的两个句子语义相近,那么标注为1,否则标注为0。
句子 1: Amrozi accused his brother, whom he called "the witness", of deliberately distorting his evidence. Amrozi指控他称之为证人的兄弟故意歪曲证据
句子 2: Referring to him as only "the witness". Amrozi accused his brother of deliberately distorting his evidence. Amrozi称他只是证人,指控他的兄弟故意歪曲他的证据。
答案:1
句子 1: A BMI of 25 or above is considered overweight; 30 or above is considered obese. BMI为25或以上被视为超重;30或以上被视为肥胖。
何于 2: A BMl between 18.5 and 24.9 is considered normal, over 25 is considered overweight and 30 or greater is defined as obese. BMI在18.5到24.9之间被认为是正常的,超过25被认为是超重,30或以上被定义为肥胖。
答案:0
4,语义相近评分
STS-B ( Semantic Textual Similarity Benchmark。请义相似度基准)数据集。8628 个句子对,赋分为1分到 5 分,分数越高,表示语义越相近。
句子1: Neither was there a qualified majority within this House to revert Article 272.众议院也没有合格的多数人支持第272条。
句子2: There was not a majority voting in Parliament to go back to Arti 272.议会中没有多数人投票支持回到第272条。
得分:5
句子 1: The man played follow the leader on the grass.那个人在草地上跟在带领者后面玩
句子2: The rhino grazed on the grass.犀牛在草地上吃草
得分:1
5,问题对语义相近
QQP(Quora Question Pairs,问答对)数据集。上相近进行了标注,若语义相近则标注为 1,否则标注为0。
与 MRPC 数据的差异点在于,QQP数据集重点针对问题对,判断问题对的语义是否相近。
6,句子对关系判断
SNLI(The Stanford Natural Language Inference,斯坦福自然语言推理)数据集。570000万个句子对。每个句子对的第一个句子是前提,第二个句子是推断。
MNLI (The Multi-genre Natural Language Inference,多类型自然语言推理 )
RTE ( Recognizing Textual Entailment,识别语义蕴含 ) 数据集。
·蕴含( entailment)
·相互矛盾( contradiction)
·无关( neutral)。
前提: A soccer game with multiple males playing。一场由多名男性参加的足球比赛
判断: Some men are playing a sport.有些男人在运动
判断:蕴含( entailment)
前提: A man inspects the uniform of a figure in some East Asian country。在东亚的某个国家,一名男子正在检查一个人的制服。
判断: The man is sleeping.那个男人正在睡觉。
判断:相互矛盾( contradiction)
7.问答
QNLI( Question-answering Natural Language Inference,问答自然语言推理)数据集。该数据集主要用于处理自然语言推理任务。
模型需要判断两者之间是否存在蕴含关系,若蕴含则标注为 1,若不蕴含则标注为 0。
8,实体识别问题
NER(Named Entity Recognition,命名实体识别)数据集。20万个单词并且每个单词都被标注为四类实体之一。Person(人)Organization (组织)Location(方位)、Miscellaneous (各式各样的其他实体 ),四分类问题。
9.阅读理解
SQuAD(The Stanford Question Answering Dataset,斯福问答数据集)。该数据集是一个阅读理解数据集,由维基百科文章上提出各类问题、包含问题答案的一段文字描述和问题的答案组成。该数据集用于理的任务是预测段落中的答案文本范围或者得出“NO Answer”(我不到答的结果。目前该数据集最新的版本是 SQuAD2.0。
Computational complexity theory is a branch of the theory computation in theoretical computer science that focuses on classifying computational problems according to their inherent difficulty , and relating those classes to each other . A computational problem is understood to be a task that is principle amenable to being solved by a computer, which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps. such as an algorithm.
计算复杂性理论是理论计算机科学中理论计算的一个分支,专注于根据计算问题的固有难度对其进行分类,并将这些类相互关联。计算问题被理解为一项原则上可由计算机解决的任务,这相当于说明该问题可以通过机械应用数学步骤(如算法)来解决
问题 1: What branch of theoretical computer science deals with broadly classifying computational problems by difficulty and class of relationship?
问题 1: 理论计算机科学的哪个分支处理按难度和关系类别对计算问题进行广泛分类的问题?
回答:computational problems计算问题
问题 2: What branch of theoretical computer class deals with broadlclassifying computational problems by difficulty and class of relationship?
问题 2:理论计算机课程的哪个分支处理按难度和关系类别对计算问题进行广泛分类的问题?
回答,
10.完形填空
SWAG(Situations With Adversarial Generations,对抗生成的情境)数据集。113 000个完形填空的句子,每个子里都有部分词语是空缺的。该数据集用于处理的任务是对词语进行补全。
结论
使用MNLI、QQP、QNLI、SST-2、CoLA、STS-B、MRPC和RTE 8个数据集处理任务的综合测试效果显示。
BERT模型(12层神经网络、1.1 亿个参数)的效果比 GPT 的效果提高了约 6%,
BERT大模型(24层神经网络、3.4 亿个参数)的效果提高了约 9.3%。
BERT 模型在上述8个任务中的效果也要显著优于更早诞生的 OpenAI的 GPT-1 的效果。
模型 |
使用 MNLI、QQP、QNLI、sST-2、CoLA、STS-B、MRPC和RTE数据集的平均测试效果 |
使用 QQP数据集的测试效果 |
使用 CoLA数据集的测试效果 |
使用RTE数据集的测试效果 |
GPT |
75.1 |
70.3 |
45.4 |
56.0 |
BERT模型 |
79.6 |
71.2 |
52.1 |
66.4 |
BERT大模型 |
82.1 |
71.1 |
60.5 |
70.1 |
BERT大模型使用SQuAD和SWAG数据集处理任务的测试效果。
SQuAD
模型 |
EM(完全匹配)评分 |
F1评分 |
Human(人类) |
86.9 |
89.5 |
BERT大模型(Single) |
80.0 |
83.1 |
SWAG
模型 |
Accuracy(准确率)评分 |
Human(人类) |
85.0 |
BERT大模型 |
86.3 |
BERT 大模型在阅读理解任务中的表现十分优秀其和人类的理解能力还存在一定的差距,但是差距不太大。
BERT大模型在完形填空任务中的表现略好于人类。
(1)BERT大模型的效果显著优于BERT模型的效果,因此增加深度学的层数,增加参数量成为行业优化的一个方向。
(2)预训练模型和微调机制的结合也成为优化自然语言处理效果的方向。
(3)多任务学习也成为一个重要的方向,有助于数据相互挖掘,从而带模型效果的提高。
BERT模型诞生之后行业持续摸索
BERT模型在处理多个任务时存性能问题,而且本身存在一些缺陷(比如BERT模型的双向Transformer结构并没有消除自编码模型的约束问题)
RoBERTa模型使用了更大的批处理大小、更多的未标记数据和更大的模型参数量,并添加了长序列训练。采用了字节对编码(Byte Pair Encoding,BPE)方法
为了实现双向编码,同时获取序列的上下文信息,排列语言模型被提出。排列语言模型源于自回归语言模型。
排列语言模型:XLNet和MPNet
John Schulman 等人提出了近端策略优化( Proximal Policy Optimization,PPO)算法,PPO算法的核心思想是新策略和旧策略不能差别太大,新策略网络需要利用旧策略网络采样的数据集进行学习,否则就会产生偏差。
ZEN是一种基于 BERT模型的文本编码器。
BERT之后,ChatGPT之前的自然语言处理模型:
1.第一类是在BERT模型的基础上优化的模型,比如 ERNIE、StructBERT和ALBERT等。
2.第二类以GPT 为框架优化的模型,比如 GPT-2和 GPT-3 等。
3.第三类是结合 BERI型和GPT 的优势改良的模型,比如 XLNet 和 BART(BidirectionaAtto-Regressive Transformers )等。
年份 |
模型 |
框架 |
2019 |
ERNIE |
Transformer Encoder |
2019 |
InfoWord |
Transformer Encoder |
2019 |
StructBERT |
Transformer Encoder |
2019 |
XLNet |
Transformer-XL Encoder |
2019 |
ALBERT |
Transformer Encoder |
2019 |
XLM |
Transformer Encoder |
2019 |
GPT-2 |
Transformer Decoder |
2019 |
RoBERTa |
Transformer Decoder |
2019 |
Q8BERT |
Transformer Encoder |
2020 |
SpanBERT |
Transformer Encoder |
2020 |
FastBERT |
Transformer Encoder |
2020 |
BART |
Transformer |
2020 |
XNLG |
Transformer |
2020 |
K-BERT |
Transformer Encoder |
2020 |
GPT3 |
Transformer Decoder |
2020 |
MPNet |
Transformer Encoder |
2020 |
GLM |
Transformer Encoder |
2020 |
ZEN |
Transformer Encoder |
2021 |
PET |
Transformer Encoder |
2021 |
GLaM |
Transformer |
2021 |
XLM-E |
Transformer |
2022 |
LaMDA |
Transformer Encoder |
2022 |
PaLM |
Transformer |
2022 |
OPT |
Transformer Decoder |
ChatGPT的诞生
GPT-1->GPT-2->GPT-3->InstructGPT->GPT35-> ChatGPT
ChatGPT:自然语言理解任务+对BERT模型的优化上
与BERT模型相比,ChatGPT 在文本生成方面的效果提高十分明显,
·BERT模型重点关注的是自然语言处理任务;
·ChatGPT模型重点突破的是自然语言生成任务。
·BERT的目标是尝试取代普通的自然语言工作者
·ChatGPT 的目标是做人类助手,协助人类解决创意和推理问题,提高人类的能力。
BERT模型的目标更难达到,而ChatGPT做人类助手的目标更容易实现。
InstructGPT模型的构建流程
InstructGPT模型与ChatGPT是孪生兄弟
·第一步:微调GPT-3.0
o(1) 构建 Prompt 数据集:比如“向小孩解释登月”“讲讲白雪公主的故事”等。
o(2) 对数据集进行标注:主要通过人工进行标注,比如“登月就是去月球“。
o(3) 使用标注数据集微调GPT-3:使用监督学习策略对模型进行微调,获得新的模型参数。
·第二步:训练奖励模型。
o(1)模型预测:用微调过的GPT-3 对采样的任务进行预测。
o(2)数据标注,获得比较数据集:对模型预测数据结果按照从好到坏的规则进行标注,获得比较数据集。
o(3)得到RM:用比较数据集作为输入数据训练,得到 RM。
奖励模型(Reward Model,RM)
·第三步:使用PPO算法更新模型参数。
o(1)使用PPO算法预测结果:通过强化学习手段,使用 PPO算法优化GPT-3并构建新的生成函数,然后输人采样的Prompt数据集,获得模型输出。
o(2)使用RM打分:使用第二步训练好的RM给模型输出进行打分,获得Reward(奖励)打分数据。
o(3)更新模型参数:根据Reward 打分数据来更新模型参数。
ChatGPT和InstructGPT的差异
·ChatGPT 主要是通过对话型任务的样例进行训练的
·InstructGPT 是基令数据集进行训练的
模型 |
InstructGPT |
ChatGPT |
底座模型 |
GPT-3.0 |
GPT-3.5 |
数据集 |
指令数据集 |
人工交互标注数据+指令数集,最后转化为对话数据集 |
应用场景 |
更适合指令型文本生成任务 |
更适合对话型文本生成任务 |
推理能力 |
中 |
较强 |
代码生成能力 |
弱 |
较强 |
泛化能力 |
中 |
较强 |
ChatGPT和BERT大模型在公开数据集上的测试
ChatGPT在大部分自然语言理解上的测试效果不如参数量远远低于ChatGPT的BERT大模型。
ChatGPT在推理任务中(比如MNLI和RTE数据集用于处理的任务)的表现明显要优于 BERT大模型。
高质量的数据标注
ChatGPT强大的自然语言处理推标注数据和质量衡切相关,不论是指令数据集还是比较数据集,都离不开数据标注者的工作。
(1)简单而多样
(2)Few-shot(少数样本学习)。
(3)用户向的。
InstructGPT,处理多样性任务和不同的任务对应的统计分布
用例 |
占比 |
文本生成 |
45.6% |
开放问答 |
12.4% |
头脑风暴 |
11.2% |
闲聊 |
8.4% |
重写 |
6.6% |
总结和归纳 |
4.2% |
分类 |
3.5% |
封闭问题 |
2.6% |
抽取 |
1.9% |
其他 |
3.5% |
示例一:文本生成
指令:请生成一篇关于描写机器学习的技术报告!
示例二:开放间答
指令:请问谁建造了自由女神像?
示例三:头脑风暴
指令:请列出 6 个观点说明 AI 技术如何改变汽车行业!
对于指令还可以进一步细分和刻画,比如模棱两可、敏感内容、与身份相关、包含明确的安全限制、包含明遍的其他限制和意图不明确等。
因为 ChatGPT的目标是执行更广泛的自然语言处理任务,所以其对数据注的范围和质量都要求很高。
总结
一类是自然语言理解,另一类是自然语言生成。
ChatGPT更像一个依托于大算力的工程实践,而非AI术的巨大进步
1.香农的基于概率的有限自动机模型的发布。
2.诺姆·乔姆斯基提出了形式语言理论
3.HMM的发布
4.语料库的引入
5.基于规则、概率模型和语料库的融合方法的提出
6.提升树算法的提出
7.深度学习框架和AlphaGo的推出
8.词向量技术的提出
9.预训练模型和Transformer模型的发布
10.BERT模型的发布
11.单模态大模型ChatGPT的发布
12.多模态大模型GPT-4的发布
(1)ChatGPT对大算力的要求,使得使用门槛较高。
(2)ChatGPT太复杂,对算法工程师来说完全是一个黑箱,微调的效果全凭反复尝试,存在许多不可控性。
(3)ChatGPT更适合偏文创的文本生成场景,难以保证结果的准确性和致性。
(4)在许多应用场景中还需要融合 ChatGPT 和其他自然语言处理技术,但是ChatGPT的黑箱属性,会加大融合的难度和不确定性。
(5)存在法律合规和道德伦理等问题。
(6)不支持多模态输人,难以提供多模态一站式的服务体验。