ChatGPT基本原理与发展历程
jojonas
0x31Ae
June 14th, 2023

为了详细了解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令人惊艳的插件、多模态等,大致逻辑我想和前述应该一致,具体细节闭源也学不到、就算绑在我脸上我也学不会,就算了。

参考资料

mp.weixin.qq.com
mp.weixin.qq.com
mp.weixin.qq.com
mp.weixin.qq.com
mp.weixin.qq.com
mp.weixin.qq.com
mp.weixin.qq.com
mp.weixin.qq.com
mp.weixin.qq.com
mp.weixin.qq.com

往期作品

【Crypto Game】

关于MMMM的一些想法和建议
在正式内容开始之前,首先声明几点:
mirror.xyz
Fully on-chain game的介绍与展望
本文通过对游戏产业基础设施的说明,指出区块链与游戏技术方向的不同,并对全链游戏与普通链游、传统游戏的异同点进行了细致的分析、。在第二部分,本文对全链游戏的一些关键技术进行了介绍,并给出一些全链游戏的案例。最后,本文给出了对全链游戏的未来展望。
mirror.xyz
2022年度回顾总结-游戏篇
2022的链游市场似乎有些乏善可陈,从市场上活跃的产品来看,大部分都是初代链游的延续;作为Axie的接棒者,stepn在经历了四月五月的巅峰后轰然倒塌(仅资产表现角度)。自那之后,市场对play2earn叙事逐渐失去信心,几乎没有人认为它能摆脱庞氏的桎梏。…
mirror.xyz
一个crypto game资产租赁模型设想雏形
(mirror直接放标题太丑了所以胡乱找了张图
mirror.xyz
jojonas.xyz
jojonas.xyz
1段废话、2款链游体验报告 #skyweaver #stepn
目录
mirror.xyz
以Folius Venture链游经济系统设计研究为基础,谈谈链游的设计与治理
最近读了Folius Venture链游系统设计的研究报告,大获裨益。作者以现实世界的经济活动作类比,分析并给出了对于链游经济系统设计的建议,逻辑清晰分明。我本身对游戏经济系统这个话题也很感兴趣,就以此为基础,拓展补充一些个人观点。
mirror.xyz

【DeFi】

iZUMi 开创的 DL-AMM:基于UniSwap V3 思路的改进
转载请注明来自「Biteye」社区
mirror.xyz
首个整合全链流动性的 Rage Trade 会是永续期货的黑马吗?
撰文:懒惰的西瓜
mirror.xyz
一文详解顶级VC豪掷1800万美金的大学生创业项目Morpho——优化资金效率的借贷协议聚合器
Defieye 社区 Discord:discord.gg/defieye
mirror.xyz
新的稳定币协议?Olympus与Nirvana对比
最近有个$ANA貌似火了,粗看是类似于OHM的设计,来对比下吧。
mirror.xyz
从货币开始认识DeFi
DeFi,全称Decentralised Finance(去中心化金融),泛指一切以分布式账本与智能合约为技术基础的金融活动。我们知道,比特币一开始被设计出来,是具有明显的匿名抗审查特性的。要以这样一种技术来完成金融交易,首先要做的,就是在链上复现“信用”…
mirror.xyz
OHM模式相关问题集合(OHM第三弹)
从零撸到尾的Olympus模式详解(比较啰嗦地梳理了官网和docs,基本算是很全面了):
mirror.xyz
再谈olympus:$OHM的美好愿景与其魔咒(OHM第二弹)
在2021-10-18的文章《Olympus:重新定义货币价值?OHM机制分析》中,我详细得有些啰嗦地解释了这个协议。在写那篇文章前,我对ohm一无所知,因此整篇文章是顺着我自己的视角一步步从官网到docs再到最后自己的分析。如果你有耐心,完全可以通过这篇…
mirror.xyz
izumi finance:对uniswap v3方案的再次优化
好久不见!上一篇sheepdex我提到了uniswap v3的聚合流动性方案,解释了两种聚合流动性方案:
mirror.xyz
jojonas.xyz
jojonas.xyz

【NFT】

对现有NFT市场的一些反思、BVAT新模式
去年的牛市,NFT领域可谓百花齐放,其中出现了BAYC/doodles/azuki这类顶级IP,也有mfer这类独特的文化模因,有印尼小哥卖自拍,也有Kevin轻轻松松就卷走七千万美金,印象里最后一波好像是premint和月鸟向日葵。
mirror.xyz
NFT的特性、应用及畅想
最近涌起一波NFT炒作热潮,趁着今天下午空闲,打算详细说说我理解的NFT。其实上次的文章《说说我对区块链行业的一些看法(万字长文)》里说了一些,但当时是半夜,我比较困,写得有些潦草。这次正好完整总结一下,先提前感谢一下点赞和转发,嘿嘿。
mirror.xyz
jojonas.xyz
jojonas.xyz

【tokenomics】

Tokenomics Design: Some Questions You Need To Ask Before
@jojonas_xyz
jojonas.substack.com
代币设计:一些需要考虑的问题
好久没更新我的jokenomics系列了。最近正好有在整理项目代币设计需要考虑的一些问题,顺带着上来蹭一篇嘿嘿。
mirror.xyz
无限增发的代币一定会贬值吗?
无限增发的代币一定会贬值吗?说说我的思考。
mirror.xyz
关于$ATOM的价值捕获与治理的胡乱随笔
首先,本篇随笔起源于该推:
mirror.xyz
Jokenomics03:关于stepn的一些问题分析、反思与建议
这是jokenomics系列的第3篇,昨晚发推谈了对stepn的一些看法后,觉得想说的还有很多,包括一些问题的分析和反思,另外我也想从我自己的视角谈谈一些建议。形式就采用自问自答吧,问题包括很多人吐槽的点,也包括我自己提出的一些问题,至于“答”,就是我所给…
mirror.xyz
Jokenomics02:为什么重视tokenomics?如何判断其好坏?庞氏结构真的是垃圾吗?
注:本文纯个人观点。
mirror.xyz
Jokenomics01: 关于luna-ust的一些思考
这是一个新系列,会陆续记录我对tokenomics的思考。以J代T作为我的个人标志,同时也是一个暗示:客官您看看就好,勿当真,都是joke~
mirror.xyz

【web3】

04-加密钱包产品的商业逻辑思考
首先,很尴尬,这个系列本来是2022总结,结果因为工作忙和我懒两大原因,直到今天才开始写第四篇……多的话就不说了,总之这个五一老子不过了,开肝!
mirror.xyz
由Solana谈起:我们需要更多”消费者友好“的项目
相比于技术派,我对于那些”消费者友好“的项目抱有更大期待。任何项目本质上都要从商业逻辑去看,这要求以技术为基础,却并非唯一。目前的web3领域里,能够谈及”大规模应用“、”出圈叙事“等的项目并不多,StepN算一个,Solana算一个(咳咳,只看潜力,不出…
mirror.xyz
Web3社交赛道大盘点
本文根据互联网社交产品的分类盘点了web3社交赛道的现存项目:社交产品(人-人)、社区产品(人-内容)、IM、媒体平台,希望通过对这些先行者的记录与总结,引发一些可能有益的思考。由于web3逻辑的变化,加入了新的分类:基础设施/协议、工具。(排名不分先后)…
mirror.xyz
Web3社交:一个略显杂乱的概览
之前我已经写了web3数据,最近打算写社交。
mirror.xyz
web3数据市场展望(万字长文)
2022年伊始,我在推特写下:
mirror.xyz
jojonas.xyz
jojonas.xyz
说说我对区块链行业的一些看法(万字长文)
眨眼间来币圈七个多月了,钱呢没怎么赚到,从小白进来,经历过总资产亏损90%+,也经历过总资产翻几十倍;经历过死拿不卖归零痛失几十倍,也经历过土狗刚卖完就涨了近百倍;曾凌晨扫描新合约寻找潜力土狗,也曾熬夜写着那些看似没用实际确实没啥用的文章;经历了目前为止人…
mirror.xyz

【infra】

2022年度总结回顾-公链篇
本文是系列第二篇,第一篇为节点层篇。
mirror.xyz
2022年度总结回顾-节点层篇
这是2022年区块链行业回顾系列的第一篇,尝试讲讲对Node Layer领域的一些认识。作者twitter:@jojonas\_xyz 欢迎交流
mirror.xyz
jojonas.xyz
jojonas.xyz

【AI】

AI和区块链可以有哪些结合?
今天看到了孟岩老师的一篇文章 强人工智能时代,区块链还有戏吗? 主要提及对AGI的安全性的一些思考。想起我之前也思考过AI与区块链的一些联系,正好借此机会梳理一下。
mirror.xyz

【meme】

In the name of the people: $PEOPLE's vision
First of all, I'm not a whale of $PEOPLE, and I'm not following the trend of advertising $PEOPLE. In fact, I may be the first mo…
mirror.xyz

— — — — — —

Twitter同TG:@jojonas_xyz 欢迎交流

Subscribe to jojonas
Receive the latest updates directly to your inbox.
Nft graphic
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
Arweave Transaction
Qa9Isv6g5SrcqIC…Dm_nDmZte3-1jrg
Author Address
0x31Ae182A31Bb2c3…2cc53f7606FB773
Nft Address
0xE5902ac29067b52…39854cA6Fe61F45
Content Digest
wriNMUSoIM8lmB4…LFfA6QZEFLqPsbM
More from jojonas
View All

Skeleton

Skeleton

Skeleton

1 Collector
LOADING TEXT
#1