ChatGPT 基本原理与发展历程
2023-06-15 00:05
jojonas
2023-06-15 00:05
订阅此专栏
收藏此文章

为了详细了解 Prompt Engineering,本部分内容对 NLP 中大语言模型至今的一些发展做了详细介绍。在此过程中,读者可以了解到,prompt 这个概念是如何诞生,并且变得如此重要的。了解这些基础知识,有助于我们更好地发挥 prompt 优化任务的潜力。

Transformer 模型:LLMs 的根基

NLP 发展至今,基于机器学习算法逐步延伸出独特的算法方向。

在机器学习中,通常将语句拆分为词,统计词间关系、出现频率、TF-IDF 等特征,通过这些特征构建特征矩阵,以将其转化为机器能够处理的结构化数据。

在构建特征矩阵后,下一步通常是训练模型和对测试数据进行分类或预测。

深度学习通常通过多层次的非线性转换来进行自动的特征提取,最常用的模型为 CNN(卷积神经网络)。CNN 被广泛用于图像识别等领域;但在自然语言处理领域,效果不够好。这是因为语言的表达并非单纯沿着某个方向进行,上下文之间是互相影响的。为了将这种上下文(context)影响计算进来,RNN(循环神经网络)从多个方向进行循环计算。但这又带来大量的算力要求,后来引入了注意力(Attention)机制,只对最关键的点提高算力,其他地方则进行简化,这带来了不错的效果。

利用 Word2Vec 将词按某些规则变为向量,自然语言的各类特征就成为了词向量之间的关系;利用 RNN+Attention,训练者无需手动统计这些特征,只需对应参数输出结果和想要的输出接近一致即可。

2017 年 6 月,Google 发表论文 Attention is All You Need, 提出 Transformer 模型。基于 RNN 和 Self-Attention 机制,Transformer 将输入序列通过 Encoder 进行特征提取,并用 Decoder 将其映射为目标序列。自注意力机制能确保 Transformer 推导输入序列中的关键词,编码器 - 解码器架构则带来了极强的可扩展性,使其在自然语言处理、机器翻译等领域带来重大突破。

Transformer 模型的提出,是 NLP 发展的一座里程碑,成为了目前几乎所有 LLM 模型的底层算法。以 BERT 和 GPT 为典型。BERT 和 GPT 的区别优化目标上:BERT 采用的是Mask Language Model,即 mask 掉一个句子中的某些 token,利用句子中其他 token 预测;而 GPT 采用的是 Autoregressive Language Model,即利用前面的单词预测下一个单词,是一个典型的语言模型。

GPT-1:预训练模型

GPT-1 基于 Transformer 提出了无监督语言模型的“预训练 +finetune”架构,即先在大规模无监督语料上,以语言模型为目标进行预训练,再利用已经训练好的模型在下游任务行 finetune。

无监督学习是机器学习的主要方式之一(监督学习需要带标签数据),通常用于聚类、降维、模型优化等任务。相对监督学习来说,由于无需人工标注,所以成本上更占优势。在 GPT-1 之前,NLP 中的无监督预训练就已经有比较久的历史了。

在 GPT 之前,所有模型都是现训练的,为了训练一个针对特定下游任务的模型,需要大量的标注数据和计算资源,并且难以实现模型共享;GPT 则提出预训练的概念,即使用不同的预训练任务和数据集对模型进行提前训练,最后通过微调的方式来对下游任务进行定制。

预训练模型的发展历程大致如下:

由于 BERT 相对于 GPT-1 参数数量级的碾压,2018 年 GPT-1 与 BERT 相继问世后,后续大量模型几乎是直接拿 BERT 去做微调。

GPT-2:初见端倪的 prompt

BERT 和 GPT 提出后,预训练语言模型开始朝”大“的方向发展:更多的训练数据、更大的模型尺寸。因此,GPT-2 和 GPT-1 的一个基本差异是预训练的无监督数据用的更多了、质量更高了,模型的体积也更大了(GPT-2 拥有 15.4 亿个参数,48 层)。

GPT-2 的另一个重点是提出了 zero-shot learning 的思路。GPT-2 强调,在进行无监督预训练语言模型训练的过程中,模型即使没有加入任何下游任务的信息,模型也已经在学习下游任务了。语言模型这个优化目标,即包含下游所有 NLP 任务。

GPT-2 是 GPT-1 和 GPT-3 的一个过渡,GPT-2 开始认真思考这样一个问题:是否所有的 NLP 任务都是语言模型的一个子集?如何在不使用下游任务数据训练的情况下,以 zero-shot 的方式让下游任务来适应预训练语言模型?从 2019 年开始,OpenAI 逐渐将 prompt 的概念引入到 GPT-2 中,使得用户可以更方便控制模型的生成结果。正是这些思路的延续,才出现了后续的 GPT — — 基于 prompt 和 in-context learning 的 NLP 新方法

GPT-3:“预训练 + 提示 + 预测”

GPT-3 使用了 1750 亿的模型参数。其仍然是沿着 GPT-2 的思路,思考如何让下游任务更好的适配预训练语言模型,打破原有的 pretrain+finetune 架构。

**GPT-3 提出的 In-context learning 的思路,指的是预训练语言模型不需要在下游任务上 finetune,而是通过 prompt 的设计,让下游任务适配到预训练语言模型中,给出合适的回答。** 在 zero-shot 中,直接将任务描述和 prompt 文本输入到模型中,再将语言模型预测出的的文本映射到答案上。而 few-shot、one-shot 中,则是在此基础上,再输入一些任务的例子,以文本的形式拼接到一起,输入到语言模型中。

随着模型参数越来越多,单次训练的成本也愈发昂贵。GPT-3 逐步形成了与以往“预训练 +finetune”、让模型去迁就下游任务的模式不同的思路,使用 prompt(提示)方法将下游任务进行微调 / 重构,以达到大模型最佳输出的要求。

GPT-3 也掀起了一波大型语言模型(LLM)的浪潮。这些 LLMs 大多是包含数千亿(或更多)参数的语言模型,例如 GPT-3、PaLM、Galactica 和 LLaMA 等。

2019 年以来出现的各种大语言模型(百亿参数以上)时间轴,其中标黄的大模型已开源。

现有的 LLM 主要采用与小语言模型类似的模型架构,作为主要区别,LLM 在很大程度上扩展了模型大小、预训练数据和总计算量。随着参数量和训练数据量的增大,语言模型的能力会随着参数量的指数增长而线性增长,这种现象被称为 Scaling Law(下图左例)。但是随着进来对大模型的深入研究,人们发现当模型的参数量大于一定程度的时候,模型能力会突然暴涨,模型会突然拥有一些突变能力(Emergent Ability,涌现),如上下文学习、推理能力等。

InstructGPT:引入强化学习训练

InstructGPT 是在 GPT-3 的基础上进行改良的,可以利用指令式控制生成来提高生成结果的质量和多样性。其核心是如何让 GPT 生成的回答更符合人类的需求,核心是引入了RLHF 强化学习训练(reinforcement learning from human feed-back)

RLHF 基于强化学习的思想去优化无监督预训练模型产出的文本,让其更符合人类的需求。整个 RLHF 过程分为 3 个主要步骤。

在进行 RLHF 之前,需要先得到一个无监督样本行预训练的 GPT 模型。接下来第一步【监督学习】是根据一些 prompt,让人去生成高质量的回答,GPT 在这些人工生成数据上进行有监督的 finetune,让 GPT 初步具备根据问题产出符合人类标准的文本的能力。

第二步【奖励模型】是训练一个 reward model。Reward model 是强化学习中的一个核心概念,它可以用来评价 agent 的一次行动的奖励是多少,并以此为信号指导 agent 的学习。比如一个 AI 汽车发下前面有一块石头,它进行了避让,reward model 就会给其一个正的 reward,强化 agent 的这次行为;相反,如果遇到石头 AI 汽车直接冲了过去,reward model 就给其一个负的 reward。通过这种方式,reward model 可以指导模型的学习,以达到我们期望的目标。

Reward model 的训练也是基于大量的人工标注数据。首先第一步给 finetune 后的 GPT 提一个 prompt,GPT 会产生一些答案,让人对这些答案进行标注,按照人类的标准进行好中差的排序,这个数据就被用来训练一个 reward model。

第三步【模型微调】,有了 reward model,整个强化学习的逻辑就能自动跑起来了。给一个 prompt,GPT 生成一个答案,reward model 给这个答案打个分,这个分用来更新 GPT 的参数。通过这种方式,让 GPT 在第三步的学习过程中,不断朝着人类希望的标准优化。

GPT-3.5:继往开来

GPT-3.5 是一系列 GPT 模型的统称,如下图:

而 GPT-3.5-turbo* 就是我们常说的 chatGPT。本文为尝试了解 GPT 原理所整理的一个学习笔记,至于 GPT-4 令人惊艳的插件、多模态等,大致逻辑我想和前述应该一致,具体细节闭源也学不到、就算绑在我脸上我也学不会,就算了。

参考资料

https://mp.weixin.qq.com/s/xDhrGzOQcV_5OXTwMssNXg

https://mp.weixin.qq.com/s/x6xxOa2hgEZoKwJtFqZa6g

https://mp.weixin.qq.com/s/7HRr55Md2Wl6EHQMGioumw

https://mp.weixin.qq.com/s/QnDIZl6pYvaULcgZkXDoXQ

https://mp.weixin.qq.com/s/x6xxOa2hgEZoKwJtFqZa6g

往期作品

【Crypto Game】

https://mirror.xyz/jojonas1.eth/k77legBrv_oti89wnIROBtmxCpvd9dmdWmKuLnRkFQY

https://mirror.xyz/jojonas1.eth/nsUYk8fcRZ0-Tm5dLuorXniHKwohk9PZPoBnqLHVwdM

https://mirror.xyz/jojonas1.eth/TM7CjT7SSfGqDDjOP1tz60PWEUfp29cEi-h0Sn0J6lU

https://mirror.xyz/jojonas1.eth/SrJhNZzIJLwDg35KH6rmlkPf8pRHu0Ywl2vMrjcLthA

https://mirror.xyz/jojonas1.eth/VA3XDgTjFEu6jY9eWlkEjS9Hv-njtDtw_nRx86YyviA

https://jojonas.xyz/docs/Blockchain/Game/004/

https://mirror.xyz/jojonas1.eth/ruvtu2SfoMAXwQLIlLaxF0rFSUUdq1ekzo3dABvJvHQ

https://mirror.xyz/jojonas1.eth/PlC1AwtPmlPDaq_DbcMfjjvrrbJhC18vYoNt4K3qQto

【DeFi】

https://mirror.xyz/0x30bF18409211FB048b8Abf44c27052c93cF329F2/ZQ0E4EUer9rus15-E9ENBJRA7ArGT6hCaZUMLB1EtQQ

https://mirror.xyz/0x30bF18409211FB048b8Abf44c27052c93cF329F2/aOEuvo0jWsQvWckjYYoPJPBmfhKGvzdDTcWrnRJ1o7A

https://mirror.xyz/0x30bF18409211FB048b8Abf44c27052c93cF329F2/O52O0Ar2_ge1YmGYab0OxvmcxCWA5QYhmxuXI6pc9jE

https://mirror.xyz/jojonas1.eth/mzwJKabgo19CDHHIPozzNWc0Wi5anfQkBAWi40-zqXQ

https://mirror.xyz/jojonas1.eth/Qomo_pHM27lD4j1Fg4y83-mPCMHgpck6x2gowPmYkh8

https://mirror.xyz/jojonas1.eth/NCsvdY9UcgLHp8VDJWdyH5KcX2Q4mZNo_1mrtlW1rAs

https://mirror.xyz/jojonas1.eth/VQGOMLV0glGPfzB3AoHz0HztjGSA6Ku6rXTUdkYeAUg

https://mirror.xyz/jojonas1.eth/9cx0nivXgGiGzQhPgvRt98hB8sBxa6FD2OZgIB8cDo0

https://mirror.xyz/jojonas1.eth/6NU75PhbffJDiTTwUbr2biKKnZR_9J6774_kNHiewWI

https://jojonas.xyz/docs/Blockchain/DeFi/002/

【NFT】

https://mirror.xyz/jojonas1.eth/7EIe8ZJSX6OZmOod2dbr3RFCsEIwhH9Y8BVAj4X2fU4

https://mirror.xyz/jojonas1.eth/Y2PkQ7kOuTD3tV765xb7gr7CcwwYGdWnSJ_BFkDApdg

https://jojonas.xyz/docs/Blockchain/NFT/001/

【tokenomics】

https://jojonas.substack.com/p/tokenomics-design-some-questions

https://mirror.xyz/jojonas1.eth/95QWfGDyeZx7pnpy8hEAV6kebD7mkm6h2yVG6HDnUrs

https://mirror.xyz/jojonas1.eth/NeHiUW2Xq4OTLfJrVG5rCGiX5bhkKkrkHG1MRYDAClA

https://mirror.xyz/jojonas1.eth/oi27pJiHzc62DE1P2YfB1XTNlH7Ousgr-k0UunvJsj4

https://mirror.xyz/jojonas1.eth/vcpkJkQc03UyPkMmrTY-E6xVmjkW1f7Gq0Hnhv6RTz8

https://mirror.xyz/jojonas1.eth/kp4JMV6TT41tZige8GvYERX4vJhHqipguVdCuovxExc

https://mirror.xyz/jojonas1.eth/vu5gzDXXRJFVZQuGbt7X2IM26XQZiT4LjtfWZTcSbz4

【web3】

https://mirror.xyz/jojonas1.eth/NpzBtsTg2mc1WV1skcE7f-olKc_Pw89OQtXE1Y9G-Zw

https://mirror.xyz/jojonas1.eth/qxXNH_mRtd_6m8c1a1QyA0y6qKAkkcssN3F9y4Doumc

https://mirror.xyz/jojonas1.eth/tRejExcZGdNXh-FKYn_39Euo-htO6iHqiydbsIO9tr4

https://mirror.xyz/jojonas1.eth/7wOq6uWWm8Rj8YPdy6dOIPQyTVLZyuUyPlNuN0GAzhI

https://mirror.xyz/jojonas1.eth/C1XwiABsyQ5-AKUCJVa4PyuEOwPe8hX-hsVXAqZfSJ4

https://jojonas.xyz/docs/Blockchain/Web3/008/

https://mirror.xyz/jojonas1.eth/RaCaoKZQXOI4dlgUlWfpT_VUUpG4yv9IUJzkZF5dmMw

【infra】

https://mirror.xyz/jojonas1.eth/adNyk5S9T8mDiTDyh8ggMiNXhsALZ9YxaIJK4EbfUlU

https://mirror.xyz/jojonas1.eth/IwajZ_wp5hxjnrlKiV04rrSErmTTFUU-proZ0vlH2eY

https://jojonas.xyz/docs/Blockchain/Infra/000/

【AI】

https://mirror.xyz/jojonas1.eth/QuAqUxThml7XLJNL88QRlfrvm4yhHRKiJmsTXcGHjlA

【meme】

https://mirror.xyz/jojonas1.eth/kUcHgxBNIjSD8cFHc1J8Qd7zOi-2YAq6-OOMzfdq5wY

https://mirror.xyz/jojonas1.eth/kjDAIbXsAi36efGQgWyiuhL6nP61cf1jcVoxsCbuKpI

— — — — — —

Twitter 同 TG:@jojonas_xyz 欢迎交流

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

jojonas
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开