每一个困境,都是一次重塑自我的机会
大家好,我是柒八九。
前言
插播一条新闻,今天(4-25
)湖人赢了,然后老詹 20+20
统治全场,让我们一起高喊 --湖人总冠军。
继续插播一天新闻,因为该文章是4-25
起草的,然后最后发文也就是今天(4-28
)。中间,稀稀拉拉耗费了3天,因为有其他事耽搁,期间下班后的晚上就没写文章。So
,就拖到今天下午发文了。而此时的我,正坐在回家的高铁上,然后不停的码字。
期间,有些许,可可爱爱的小朋友,时而尖叫,时而哭泣。如果,下文有行文不顺的地方,请海涵。然后,也一并告诉我。
Last but not least
,我在这里预祝大家,5.1快乐,开心就完事了。
在AI
圈中,ChatGPT/Midjourney/Stable-Diffusion
三足鼎力的局面。它们各自有各自的适用场景和交互侧重点。
上一篇文章,在macOS下,利用AIGC:从0搭一个图文生成网站我们讲述了,如何在macOS
下,搭建Stable-Diffusion
环境,并如何利用现有模型进行作图。
今天,我们来讲讲另外一个大家耳熟能详的AI产品 --ChatGPT
。(如果大家,还没有真正的应用过ChatGPT
,然后也不知道如何申请账号,可以私聊我。由于,一些无法明说的原因,可能在华夏大地无法触及这种神奇,后期也有计划给大家搭建一个网站用于让大家使用)
工欲善其事,必先利其器,既然ChatGPT
这么强大,那我们就来了解它背后的技术和模型,希望这篇文章能够让你了解ChatGPT
能做什么,以及它如何施展其魔力。
如果,想了解该系列的文章,可以参考我们已经发布的文章。如下是往期文章。
文章list
你能所学到的知识点
- openAI 大事记 推荐阅读指数 ⭐️⭐️⭐️
- 深入了解ChatGPT的模型 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️
- GPT 全家桶 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️
- 教导GPT与人类互动:
InstructGPT
和ChatGPT
推荐阅读指数 ⭐️⭐️⭐️⭐️- ChatGPT 应用方向 推荐阅读指数 ⭐️⭐️⭐️⭐️
- 文章要点汇总 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️
好了,天不早了,干点正事哇。
openAI 大事记
在我们深入探讨ChatGPT
的机制之前,让我们快速了解一下语言模型的{变压器|Transformer}架构以及不同版本的GPT的发展时间线,这样可以更好地了解事情是如何演变成今天的ChatGPT
的。
2015
年,OpenAI
由Sam Altman
(OpenAI
掌门人)、Elon Musk
(这个人肯定熟悉,特斯拉CEO)等人成立。
OpenAI
开发了许多不同于GPT的AI模型。
2017
年,谷歌推出了{变压器|Transformer}架构。
- {变压器|Transformer}是一种神经网络架构,为许多最先进的大语言模型(
LLM
)如GPT打下了基础。
2018
年,GPT
被研发出来。
- 它基于一个修改后的变压器架构,并在大型语料库上进行了预训练。
2019
年,GPT-2
被研发出来,它可以在训练时不需要显式监督下执行一系列任务。2020
年,GPT-3
被研发出来,它可以在提示中使用少量示例并且表现良好,无需微调。2022
年,引入了InstructGPT
,它可以通过使用人类反馈进行微调,更好地遵循用户指令。2022
年,ChatGPT-3.5
作为InstructGPT
的姊妹模型,被研发出来。
- 由于使用人类示例进行微调和从人类反馈中进行学习,因此它可以与人类进行对话交互。
2023
年,ChatGPT-4
支持来自图像和文本的输入,而之前的几代模型仅支持文本输入
现在主流的模型是ChatGPT-3.5/ChatGPT-4
,但是,如果要想使用ChatGPT-4
你需要付费使用。
深入了解ChatGPT的模型
现在你已经了解了ChatGPT
是基于{变压器|Transformer}架构和之前的GPT模型,让我们更仔细地看一下这些模型的组成部分以及它们是如何工作的。
语言模型 & 自然语言处理(NLP)
市面上有许多类型的人工智能或深度学习模型。对于会话
、语音识别
、翻译
和摘要
等自然语言处理(NLP
)任务,我们会使用语言模型
来帮助我们。
NLP
是自然语言处理(Natural Language Processing
)的缩写。
NLP
是计算机科学与人工智能领域的一个分支,旨在让计算机能够理解、解析、生成自然语言,与人类进行更加自然和有效的交互。NLP
的应用范围非常广泛,涉及文本处理、语音识别、机器翻译、信息检索、情感分析、自动问答等领域。
语言模型
可以学习一个文本库(称为语料库
)并以概率分布预测单词或单词序列,即一个单词或序列出现的可能性有多大。
例如,当你说“柒八九喜欢吃……”
时,“山西刀削面”
作为下一个单词的概率会比“书”
高。
- 如果它正在预测序列中的下一个单词,则称为{下一个标记预测|Next-token-prediction}``;
- 如果它正在预测序列中缺失的单词,则称为{掩码语言建模|Masked Language Modeling}。
由于它是一个概率分布,可能有许多可能的单词,具有不同的概率。虽然你可能认为始终选择具有最高概率的最佳候选者是理想的,但可能会导致重复的序列。因此在实践中,研究人员会在选择前几个候选词时添加一些随机性。
在典型的NLP
(自然语言处理)流程中,输入文本将经过以下步骤 :
- {预处理|Preprocessing}: 使用诸如句子分割、分词(将文本分解为称为标记的小块)、词干提取(去除后缀或前缀)、删除停用词、纠正拼写等技术清洗文本。
- 例如,
“柒八九喜欢吃山西刀削面”
将被分词为[“柒八九”, “喜欢”, “吃”, “山西”, “刀削面”, “.”]
。 - 这一步,其实在计算机中很常见,如果熟悉
编译原理
的同学,可以联想到从源代码到机器代码过程,这一步不就是代码到中间代码或者机器代码中的解析步骤(词法解析
/语法解析
)
- {编码或嵌入|Encoding or embedding} :将处理后的文本转换为数字向量,以便模型进行处理。
- {投喂给模型|Feeding to model}::将编码后的输入传递给模型进行处理。
- {获取结果|Getting result}:从模型中获取表示为数字向量的潜在单词的概率分布的结果。
- {解码|Decoding}:将向量翻译回
可读的单词
。 - {后处理|Post-processing}:使用拼写检查、语法检查、标点符号、大小写等优化输出。
Transformer 架构
Transformer
架构是GPT
的基础。
- 它是一种神经网络,类似于人脑中的神经元。
Transformer
可以通过{注意力机制|Attention}和{自注意力机制|Self-Attention}更好地理解文本、语音或音乐等序列数据。
{注意力机制|Attention}可以让模型通过学习元素之间的相关性或相似性来关注输入和输出中最相关的部分,这些元素通常由向量表示
。如果模型关注同一个序列,则称为{自注意力机制|Self-Attention}。
让我们以以下句子为例:“Tom likes to eat apples. He eats them every day.”
在这个句子中,“he”
指的是“Tom”
,“them”
指的是“apples”
。
注意力机制
使用一个数学算法来计算单词向量之间的相似度得分,告诉模型这些单词之间的关系。通过这种机制,Transformer
可以更好地以一种更连贯的方式“理解”文本序列中的含义。
Transformers
由以下组件组成 :
- {嵌入和位置编码|Embedding & Positional Encoding} :将单词转换为数字向量
- {编码器|Encoder}:从输入序列中提取特征,分析其含义和上下文。
- 它为每个输入令牌输出一个隐藏状态矩阵,以传递给
解码器
- {解码器|Decoder} :基于来自编码器和先前输出令牌的输出生成输出序列
- {线性和Softmax层|Linear & Softmax Layer} :将向量转换为输出单词的概率分布
编码器
和解码器
是transformer
架构的主要组件。
编码器
负责分析和“理解”输入文本解码器
负责生成输出
编码器
是由多个相同层数的层组成的堆栈
。
每一层都有两个子层:
- 一个是{多头自注意力层|Multi-head attention}
- 它应用{注意力机制|Attention}来寻找输入令牌之间的连接/相似性,以理解输入
- 一个是{前馈层|Feed-forward}
- 它将结果传递给下一层之前进行一些处理,以防止
过度拟合
你可以把
编码器
想象成阅读书籍——你会注意到你所阅读的每一个新单词,并思考它与前面的单词的关系。
解码器与编码器相似,同样也是一组相同层级的堆栈
。但每个解码器层都在{多头自注意力层|Multi-head attention}和{前馈层|Feed-forward}之间多了一个{编码器-解码器注意力层|Encoder-Decoder Multi-head Attention},使解码器
能够关注输入序列。
例如,如果你要将“I love you”
(输入)翻译成“我 爱 你”
(输出),你需要知道“我”
和“I”
是对齐的,而“love”
和“爱”
也是对齐的。
你可以把解码器想像成自由写作,你会根据你写过的和你读过的写作,而不在意你将要写什么。
GPT 全家桶
GPT
的全称是“Generative Pre-trained Transformer”
,从名字中可以看出,
- 它是一种生成模型,擅长生成输出
- 它是预训练的,意味着它已经从大量的文本数据中学习到知识
- 它是一种
transformer
模型
实际上,GPT
只使用了transformer
架构中的decoder
部分。通过前面的文章,我们知道知道decoder
负责预测序列中的下一个标记。GPT
通过反复使用先前生成的结果作为输入来生成更长的文本,这被称为{自回归|Auto-Regressive}。
例如,如果它要将“I love you”
翻译成中文,它将首先生成“我”
,然后使用生成的“我”
得到“我爱你”
。
在训练第一版GPT
时,研究人员对其进行了无监督的预训练。无监督学习就像是让AI自己阅读这些书,并尝试学习语言和单词的一般规则。在预训练之上,他们还使用了针对特定任务的监督微调
,例如摘要或问答。监督学习意味着他们会向AI展示请求和正确答案的示例,并要求AI从这些示例中学习。
在GPT-2
中,研究人员扩大了模型的规模(15亿个参数
)和预训练时所使用的数据集。他们在无监督的预训练期间使用了WebText
,这是数百万个网页的集合。有了这么大的数据集进行训练,该模型证明它可以在广泛的语言相关任务上表现出色,即使没有监督微调。
在 GPT-3
中,研究人员进一步扩展了模型,达到了 1750 亿个参数
,并使用了来自网络、图书和维基百科的数千亿个单词的庞大语料库进行预训练。由于使用了如此庞大的模型和语料库,研究人员发现 GPT-3
可以在提示中只使用一个或少量示例学习表现更好的任务,而无需明确的有监督微调。
在GPT-4
中,相比之前的版本,有很大的差异。接下来,我们来简单来描述一下,GPT-4
与以前的模型有什么不同?
GPT-4可以接受图像和文本的多模式输入
GPT-4
最明显和令人兴奋的新功能是多模态输入。你可以把模态看作是你(或计算机)体验某物的方式,例如视觉(图像/视频)、听觉、触觉、嗅觉和味觉。GPT-4
支持来自图像和文本的输入,而之前的几代模型仅支持文本输入。
这种多模态输入能力开辟了更多可能性 - 你现在可以发送模型照片、图表和屏幕截图,并就它们提问。GPT-4
能够分析这些图像中的内容,并基于你输入的文本和图像的上下文和信息综合生成答案。
GPT-4更具创造性、可靠性和协作性
OpenAI
的研究人员对GPT-4
进行了各种基准测试和人类考试,如SAT
、LSAT
、Bar
考试、GRE
、AP
等。这些考试的问题包括文本和图像。他们发现,在某些考试中,GPT-4
可以胜过大多数人,尤其是对于语言相关的考试。
除了这些为人类设计的考试外,GPT-4在传统的自然语言处理任务
中也可以超越许多最先进的模型。它甚至可以在英语以外的少数语言中表现得比其他模型更好。
此外,GPT-4还比之前的GPT模型更能够准确地执行微妙的人类指令。现在我们可以更容易地实现我们想要做的事情,而无需非常详尽的提示。
GPT-4有一个更大的上下文窗口,可以接受更长的输入。
GPT-4
最多可以接受32K
个token
(大约25000个单词)。这是对GPT之前版本的巨大提升,前面的版本只支持大约4K
个token
(约3000个单词)。
有了这么大的上下文窗口,你可以在请求GPT执行任务时,将更多的上下文信息放入提示中,而不用担心输入的限制超过了限制。
例如,你可以把整个客户手册或产品说明提供给GPT-4
,让它从上下文中回答问题。如果你想让它执行一些非常复杂的任务,可能需要多个步骤,那么你还可以提供更全面和详细的提示。
GPT-4 比 GPT-3.5-turbo 使用起来更贵
如果你正在使用GPT
来构建自己的产品或业务,你可能会关心新模型的定价和成本效益。 GPT-4
API提供两种不同上下文窗口大小的模型。
- 对于上下文窗口为
8K
的GPT-4,每1Kprompt token
的费用为0.03美元,每1Kcompletion tokens
的费用为0.06美元; - 对于上下文窗口为
32K
的模型,每1Kprompt token
的费用为0.06美元,每1Kcompletion tokens
的费用为0.12美元。
从这个定价中,我们可以看到,GPT-4
的成本比先前的gpt-3.5-turbo
API昂贵了10多倍。
教导GPT与人类互动:InstructGPT和ChatGPT
经过从GPT
到GPT-4
的一系列迭代,研究人员意识到模型越大并不意味着它们可以很好地遵循人类意图,而且可能会产生有害输出。因此,他们尝试使用人类反馈的监督学习和强化学习来微调GPT-3+
。在这些训练步骤中,出现了两个经过微调的模型——InstructGPT
和ChatGPT
。
- 第一步是从人类示例中进行监督学习
- 研究人员首先向预训练的GPT提供一个由人类标注者编写的精选、标记过的提示和响应对数据集。该数据集用于让模型从这些示例中学习所需的行为。从这一步中,他们得到了一个经过监督精调(
SFT
)的模型。
- 第二步是训练一个奖励模型(
RM
)来评估生成模型的响应
- 研究人员使用SFT模型为每个提示生成多个响应,并要求人类标注者按照质量、参与度、信息性、安全性、连贯性和相关性将响应从最好到最差进行排名。
- 将提示、响应和排名馈送到奖励模型中,通过监督学习来学习人类对响应的偏好。奖励模型可以根据响应与人类偏好的匹配程度预测标量奖励值。
- 在第三步中,研究人员使用奖励模型通过强化学习来优化SFT模型的策略
- SFT模型将从新的提示中生成一个响应;奖励模型将评估该响应并给出一个奖励值,该值近似于人类偏好;然后使用该奖励来通过更新其参数来优化生成模型。
- 例如,如果生成模型生成一个响应,奖励模型认为人们可能喜欢它,那么它将获得正奖励,以便在未来继续生成类似的响应;反之亦然。
通过这个过程中的人类反馈的监督学习和强化学习,InstructGPT
模型(只有13亿个
参数)能够比体量更大的GPT-3
模型(有1750亿
个参数)在遵循人类指令的任务中表现更好。
ChatGPT
是 InstructGPT
的姊妹模型。ChatGPT
和 InstructGPT
的训练过程类似,包括前面提到的有监督学习和人类反馈强化学习。主要区别在于 ChatGPT
的训练样本是对话任务的例子,如问答、闲聊、小常识等 。通过这种训练,ChatGPT
能够与人类进行自然对话。在对话中,ChatGPT
可以回答后续问题并承认错误,使其更具吸引力。
ChatGPT 应用方向
聊天机器人
:ChatGPT
可以用作聊天机器人,这是一种可以与用户进行自然对话的程序,涉及广泛的话题。随着技术的进步,像ChatGPT这样的聊天机器人可能会变得更加逼真,能够处理更复杂的任务。文本摘要
:ChatGPT
可以摘要文本,这对于快速了解长文章或文档的主要要点非常有用。未来,这种技术可以用于自动生成新闻文章或科学论文的摘要。语言翻译
:ChatGPT
可以将文本从一种语言翻译成另一种语言,这对于与说不同语言的人进行交流非常有用。随着技术的进步,像ChatGPT这样的机器翻译工具可能会变得更加准确,并能够处理更复杂的语言任务。问答
:ChatGPT
可以回答问题,生成提供问题答案的文本。未来,这种技术可以用于创建虚拟助手,帮助人们查找信息和完成任务。情感分析
:ChatGPT
可以分析文本的情感,这对于了解人们对特定主题的感受非常有用。未来,这种技术可以用于自动分析社交媒体帖子或客户反馈,了解人们对特定产品或品牌的感受。
然后,在贴一张最近比较火的陆奇大佬-ChatGPT新机遇分享
中从大佬的视角来看AI的应用方向和场景。
然后,再贴一张一个现在比较常用的GPT
实现案例。(要原图,可私聊)
文章要点汇总
ChatGPT
是基于一个仅有解码器的自回归{变压器|Transformer}模型的,它可以接收一系列文本,并逐步生成一个符号的概率分布,从而迭代地生成一个符号。- 由于它没有实时搜索引用的能力,因此在生成过程中它是基于其训练的语料库进行概率性的预测,这可能会导致关于事实的错误陈述。
- 它被预训练于一个庞大的网络和图书数据的语料库上,并通过有人类对话示例的监督学习和来自人类反馈的强化学习进行微调。
- 它的能力主要取决于其模型大小以及其学习的语料库和示例的质量和大小。通过一些额外的监督学习或强化学习,它可以在特定的上下文或任务中表现得更好。
- 由于语料库来自于网络内容和图书,因此它们可能存在偏见,尤其是社会、文化、政治或基于性别的偏见,从而导致对某些请求偏颇的响应。
后记
分享是一种态度。
参考资料:
- 陆奇-ChatGPT新机遇分享.pdf
- How ChatGPT really works, explained for non-technical people
全文完,既然看到这里了,如果觉得不错,随手点个赞和“在看”吧。