详解ChatGPTxine

ChatGPT是一种基于深度学习的自然语言处理技术,它使用了Transformer模型进行文本生成和自然语言对话。ChatGPT最初由OpenAI团队在2018年提出,其初衷是通过模型的生成能力来解决对话系统中的缺陷,从而提升自然语言处理的性能和效果。ChatGPT采用了端到端的训练方法,使用大量的文本数据进行预训练,然后使用fine-tuning的方式进行微调,以适应不同的自然语言处理任务。ChatGPT在生成文本和自然语言对话方面表现出色,其最新版本GPT-3已经达到了颠覆式的效果。

在了解GPT原理之前,需要了解以下一些基础知识:

自然语言处理:自然语言处理是指计算机处理人类自然语言的技术。目的是让计算机能够理解、分析和生成人类语言。

神经网络:神经网络是一种模拟人脑的计算模型,可以用来进行各种机器学习任务。它由许多神经元(节点)和它们之间的连接构成,可以通过训练来优化权重和偏置。

Transformer模型:Transformer是一种基于注意力机制的序列到序列模型,由Google在2017年提出,主要用于机器翻译任务。Transformer可以并行计算,因此在处理长序列数据时比循环神经网络更快。

2018年,自然语言处理NLP领域也步入了LLM时代,谷歌出品的Bert模型横空出世,碾压了以往的所有模型,直接在各种NLP的建模任务中取得了最佳的成绩。

Bert做了什么,主要用以下例子做解释。

请各位做一个完形填空:___________和阿里、腾讯一起并成为中国互联网BAT三巨头。

请问上述空格应该填什么?有的人回答“百度”,有的人可能觉得,“字节”也没错。但总不再可能是别的字了。

不论填什么,这里都表明,空格处填什么字,是受到上下文决定和影响的。

Bert所作的事就是从大规模的上亿的文本预料中,随机地扣掉一部分字,形成上面例子的完形填空题型,不断地学习空格处到底该填写什么。所谓语言模型的训练和学习,就是从大量的数据中学习复杂的上下文联系。

GPT的全称是GenerativePre-TrainedTransformer,顾名思义,GPT的目的就是通过Transformer为基础模型,使用预训练技术得到通用的文本模型。

GPT-1比BERT诞生略早几个月。它们都是采用了Transformer为核心结构,不同的是GPT-1通过自左向右生成式的构建预训练任务,然后得到一个通用的预训练模型,这个模型和BERT一样都可用来做下游任务的微调。GPT-1当时在9个NLP任务上取得了SOTA的效果。

GPT-3被提出时,除了它远超GPT-2的效果外,引起更多讨论的是它1750亿的参数量。GPT-3除了能完成常见的NLP任务外,研究者意外的发现GPT-3在写SQL,JavaScript等语言的代码,进行简单的数学运算上也有不错的表现效果。GPT-3的训练使用了情境学习(In-contextLearning),它是元学习(Meta-learning)的一种,元学习的核心思想在于通过少量的数据寻找一个合适的初始化范围,使得模型能够在有限的数据集上快速拟合,并获得不错的效果。

编解码的概念广泛应用于各个领域,在NLP领域,人们使用语言一般包括三个步骤:

接受听到或读到的语言->大脑理解->输出要说的语言。

语言是一个显式存在的东西,但大脑是如何将语言进行理解、转化、存储的,则是一个目前仍未探明的东西。因此,大脑理解语言这个过程,就是大脑将语言编码成一种可理解、可存储形式的过程,这个过程就叫做语言的编码。

相应的,把大脑中想要表达的内容,使用语言表达出来,就叫做语言的解码。

在语言模型中,编码器和解码器都是由一个个的Transformer组件拼接在一起形成的。

GPT-2主要就是在GPT的基础上,添加了多个任务,扩增了数据集和模型参数,又训练了一番。把各种NLP任务的数据集添加到预训练阶段。即把机器翻译、文本摘要、领域问答统统往预训练里加。

最初的时候,预训练任务仅仅是一个完形填空任务就可以让语言模型有了极大进步,那么,很多人就想,给LLM模型出其它的语言题型,应该也会对模型训练有极大的帮助。想要出语言题型不是很简单么,什么句子打乱顺序再排序、选择题、判断题、改错题、把预测单字改成预测实体词汇等等,纷纷都可以制定数据集添加在模型的预训练里。很多模型也都是这么干的。既然出题也可以,把各种NLP任务的数据集添加到预训练阶段当然也可以。那就把机器翻译、文本摘要、领域问答统统往预训练里加。

既然多个任务都在同一个模型上进行学习,那么这一个模型能承载的并不仅仅是任务本身,“汪小菲的妈是张兰”,这条文字包含的信息量是通用的,它既可以用于翻译,也可以用于分类,判断错误等等。也就是说,信息是脱离具体NLP任务存在的,举一反三,能够利用这条信息,在每一个NLP任务上都表现好,这个是元学习(meta-learning)。本质上就是语言模型的一脑多用。此时,GPT-2相较于前一代,参数量和训练数据都已经有了爆发式的增长。

GPT-3,以往的预训练都是两段式的,即,首先用大规模的数据集对模型进行预训练,然后再利用下游任务的标注数据集进行finetune,时至今日这也是绝大多数NLP模型任务的基本工作流程。GPT-3就开始颠覆这种认知了。它提出了一种in-context学习方式。即给模型输入一定的提示和范例,

以往的预训练都是两段式的,即,首先用大规模的数据集对模型进行预训练,然后再利用下游任务的标注数据集进行finetune,时至今日这也是绝大多数NLP模型任务的基本工作流程。

GPT-3就开始颠覆这种认知了。它提出了一种in-context学习方式。这个词没法翻译成中文,下面举一个例子进行解释。

用户输入到GPT-3:你觉得JioNLP是个好用的工具吗?

GPT-3输出1:我觉得很好啊。GPT-3输出2:JioNLP是什么东西?GPT-3输出3:你饿不饿,我给你做碗面吃……GPT-3输出4:Doyouthinkjionlpisagoodtool

按理来讲,针对机器翻译任务,我们当然希望模型输出最后一句,针对对话任务,我们希望模型输出前两句中的任何一句。另外,显然做碗面这个输出的句子显得前言不搭后语,是个低质量的对话回复。

这时就有了in-context学习,也就是,我们对模型进行引导,教会它应当输出什么内容。如果我们希望它输出翻译内容,那么,应该给模型如下输入:

用户输入到GPT-3:请把以下中文翻译成英文:你觉得JioNLP是个好用的工具吗?

如果想让模型回答问题:

用户输入到GPT-3:模型模型你说说,你觉得JioNLP是个好用的工具吗?

OK,这样模型就可以根据用户提示的情境,进行针对性的回答了。

这里,只是告知了模型如何做,最好能够给模型做个示范,这也蛮符合人们的日常做事习惯,老师布置了一篇作文,我们的第一反应是,先参考一篇范文找找感觉。

比如用户输入到GPT-3:

请把以下中文翻译成英文:苹果=>apple;你觉得ChatGPT怎么样=>

其中苹果翻译成apple,是一个示范样例,用于让模型感知该输出什么。不给提示叫做zero-shot,给一个范例叫做one-shot,给多个范例叫做few-shot。在GPT-3的预训练阶段,也是按照这样多个任务同时学习的。比如“做数学加法,改错,翻译”同时进行。这种引导学习的方式,在超大模型上展示了惊人的效果:只需要给出一个或者几个示范样例,模型就能照猫画虎地给出正确答案。但是这里需要超大模型才行得通。

之前提到过,GPT-n系列模型都是采用decoder进行训练的,它更加适合文本生成的形式。也就是,模型完全黑盒,输入是一句话,输出也是一句话。这就是对话模式。

提示(PromptLearning)学习和指示学习(InstructLearning)的区别:

指示学习和提示学习的目的都是去挖掘语言模型本身具备的知识。

Prompt是激发语言模型的补全能力,例如根据上半句生成下半句,或是完形填空等。

Instruct是激发语言模型的理解能力,它通过给出更明显的指令,让模型去做出正确的行动。我们可以通过下面的例子来理解这两个不同的学习方式:

指示学习的优点是它经过多任务的微调后,也能够在其他任务上做zero-shot,而提示学习都是针对一个任务的。泛化能力不如指示学习。我们可以通过图2来理解微调,提示学习和指示学习。

强化学习两个最基本的要素就是状态等观测值和奖励函数。监督学习两个最基本的要素就是训练数据和标签。这俩完全就是无缝链接,观测值可以作为训练数据,奖励函数可以作为损失函数,标签也有了。这样就可以在agent在环境里跑的时候不断获得训练数据和标签,本质上就是让agent的行为逐渐拟合奖励函数。强化学习并不需要人工标注数据,而是让机器自动学习标注。监督学习往往需要人为大量标注数据集,而强化学习需要人为创造环境和目标,让一个可以与环境交互的agent(代理人)自己学到达成目标的方法。

强化学习通过奖励(Reward)机制来指导模型训练,奖励机制可以看做传统模训练机制的损失函数。奖励的计算要比损失函数更灵活和多样(AlphaGO的奖励是对局的胜负),这带来的代价是奖励的计算是不可导的,因此不能直接拿来做反向传播。强化学习的思路是通过对奖励的大量采样来拟合损失函数,从而实现模型的训练。同样人类反馈也是不可导的,那么我们也可以将人工反馈作为强化学习的奖励,基于人工反馈的强化学习便应运而生。

RLHF是一项涉及多个模型和不同训练阶段的复杂概念,这里我们按三个步骤分解:

这里可以用额外的文本或者条件对这个LM进行微调,例如OpenAI对“更可取”(preferable)的人工生成文本进行了微调,而Anthropic按“有用、诚实和无害”的标准在上下文线索上蒸馏了原始的LM。这里或许使用了昂贵的增强数据,但并不是RLHF必须的一步。由于RLHF还是一个尚待探索的领域,对于”哪种模型”适合作为RLHF的起点并没有明确的答案。

接下来,我们会基于LM来生成训练奖励模型(RM,也叫偏好模型)的数据,并在这一步引入人类的偏好信息。

RM的训练是RLHF区别于旧范式的开端。这一模型接收一系列文本并返回一个标量奖励,数值上对应人的偏好。我们可以用端到端的方式用LM建模,或者用模块化的系统建模(比如对输出进行排名,再将排名转换为奖励)。这一奖励数值将对后续无缝接入现有的RL算法至关重要。

关于模型选择方面,RM可以是另一个经过微调的LM,也可以是根据偏好数据从头开始训练的LM。例如Anthropic提出了一种特殊的预训练方式,即用偏好模型预训练(PreferenceModelPretraining,PMP)来替换一般预训练后的微调过程。因为前者被认为对样本数据的利用率更高。但对于哪种RM更好尚无定论。

关于训练文本方面,RM的提示-生成对文本是从预定义数据集中采样生成的,并用初始的LM给这些提示生成文本。Anthropic的数据主要是通过AmazonMechanicalTurk上的聊天工具生成的,并在Hub上可用,而OpenAI使用了用户提交给GPTAPI的prompt。

关于训练奖励数值方面,这里需要人工对LM生成的回答进行排名。起初我们可能会认为应该直接对文本标注分数来训练RM,但是由于标注者的价值观不同导致这些分数未经过校准并且充满噪音。通过排名可以比较多个模型的输出并构建更好的规范数据集。

对具体的排名方式,一种成功的方式是对不同LM在相同提示下的输出进行比较,然后使用Elo系统建立一个完整的排名。这些不同的排名结果将被归一化为用于训练的标量奖励值。

这个过程中一个有趣的产物是目前成功的RLHF系统使用了和生成模型具有不同大小的LM(例如OpenAI使用了175B的LM和6B的RM,Anthropic使用的LM和RM从10B到52B大小不等,DeepMind使用了70B的Chinchilla模型分别作为LM和RM)。一种直觉是,偏好模型和生成模型需要具有类似的能力来理解提供给它们的文本。

接下来是最后一步:利用RM输出的奖励,用强化学习方式微调优化LM。

事实证明,RLHF的许多核心RL进步一直在弄清楚如何将熟悉的RL算法应用到更新如此大的模型。

让我们首先将微调任务表述为RL问题。首先,该策略(policy)是一个接受提示并返回一系列文本(或文本的概率分布)的LM。这个策略的行动空间(actionspace)是LM的词表对应的所有词元(一般在50k数量级),观察空间(observationspace)是可能的输入词元序列,也比较大(词汇量^输入标记的数量)。奖励函数是偏好模型和策略转变约束(Policyshiftconstraint)的结合。

PPO算法确定的奖励函数具体计算如下:将提示\(x\)输入初始LM和当前微调的LM,分别得到了输出文本\(y1\),\(y2\),将来自当前策略的文本传递给RM得到一个标量的奖励\(r_\theta\)。将两个模型的生成文本进行比较计算差异的惩罚项,在来自OpenAI、Anthropic和DeepMind的多篇论文中设计为输出词分布序列之间的KullbackLeibler(KL)divergence散度的缩放,即\(r=r_\theta-\lambdar_{\mathrm{KL}}\)。这一项被用于惩罚\(\mathrm{RL}\)策略在每个训练批次中生成大幅偏离初始模型,以确保模型输出合理连贯的文本。如果去掉这一惩罚项可能导致模型在优化中生成乱码文本来愚弄奖励模型提供高奖励值。此外,OpenAI在InstructGPT上实验了在PPO添加新的预训练梯度,可以预见到奖励函数的公式会随着RLHF研究的进展而继续进化。

最后根据PPO算法,我们按当前批次数据的奖励指标进行优化(来自PPO算法on-policy的特性)。PPO算法是一种信赖域优化(TrustRegionOptimization,TRO)算法,它使用梯度约束确保更新步骤不会破坏学习过程的稳定性。DeepMind对Gopher使用了类似的奖励设置,但是使用A2C(synchronousadvantageactor-critic)算法来优化梯度。

InstructGPT/ChatGPT都是采用了GPT-3的网络结构,通过指示学习构建训练样本来训练一个反应预测内容效果的奖励模型(RM),最后通过这个奖励模型的打分来指导强化学习模型的训练。流程如下:

InstructGPT/ChatGPT的训练可以分成3步,其中第2步和第3步是的奖励模型和强化学习的SFT模型可以反复迭代优化。

根据图,我们将分别介绍InstructGPT/ChatGPT的数据集采集和模型训练两个方面的内容。

SFT数据集是用来训练第1步有监督的模型,即使用采集的新数据,按照GPT-3的训练方式对GPT-3进行微调。因为GPT-3是一个基于提示学习的生成模型,因此SFT数据集也是由提示-答复对组成的样本。SFT数据一部分来自使用OpenAI的PlayGround的用户,另一部分来自OpenAI雇佣的40名标注工(labeler)。并且他们对labeler进行了培训。在这个数据集中,标注工的工作是根据内容自己编写指示,并且要求编写的指示满足下面三点:

该阶段的输入是从测试用户提交的prompt(就是指令或问题)中随机抽取的一批数据(SFT数据集),主要分为两步:

RM数据集用来训练第2步的奖励模型,我们也需要为InstructGPT/ChatGPT的训练设置一个奖励目标。这个奖励目标不必可导,但是一定要尽可能全面且真实的对齐我们需要模型生成的内容。很自然的,我们可以通过人工标注的方式来提供这个奖励,通过人工对可以给那些涉及偏见的生成内容更低的分从而鼓励模型不去生成这些人类不喜欢的内容。InstructGPT/ChatGPT的做法是先让模型生成一批候选文本,让后通过labeler根据生成数据的质量对这些生成内容进行排序。

其方法概括为如下两部分

我们希望被判定更好的输出得到的奖励数值要更高。由此,奖励模型可以通过最小化下面这样的损失函数来得到。对于一对训练数据,我们假设人工排序中answer1排在answer2前面,那么Loss函数则鼓励RM模型对的打分要比的打分要高。

这一步数据集规模更大一些且和第一二阶段不同,且不再需要人工。其方法可以概括为以下四个部分:

这是一种包括三个部分的目标函数,通常用于强化学习模型的有监督微调,其中:

RLHF用于第一二阶段,首先通过人工标注微调gpt模型得到SFT模型,用SFT模型生成k个回答人工排序,训练RM模型。第三阶段,把SFT模型参数拿来,用RM模型获得的reward进行训练,得到ppo和ppo-ptx模型。

1、《ImprovingLanguageUnderstandingbyGenerativePre-Training》

这是ChatGPT的第一个版本,论述了如何使用大规模的文本数据进行预训练,并通过fine-tuning的方式进行微调。该论文使用了两个不同规模的模型,分别是GPT和GPT-2,其中GPT-2是目前最流行和最广泛使用的版本。该论文主要的贡献是提出了一个用于自然语言处理的预训练方法,为后来的研究提供了基础和启示。

2、《LanguageModelsareFew-ShotLearners》

这篇论文主要介绍了GPT-3模型,它是ChatGPT最新版本,也是最具代表性的版本。该模型是目前最大的自然语言处理模型之一,拥有1.75万亿个参数。GPT-3采用了零样本学习的方法,即可以在没有任何人工标注的情况下进行自然语言处理任务。GPT-3的生成能力非常强,可以在多个任务上达到颠覆性的效果,如生成新闻、回答问题、翻译等。

3、《OntheLimitationsofUnsupervisedBilingualDictionaryInduction》

这篇论文介绍了ChatGPT在机器翻译任务上的应用。该论文提出了一种用于无监督机器翻译的方法,即使用ChatGPT生成的文本作为中间语言,实现跨语言的翻译。该方法不需要人工标注的平行语料,只需要大量的单语语料即可。该方法在某些语言对上表现出色,但在其他语言对上的效果不如传统的有监督翻译方法。

4、《LeveragingPre-trainedCheckpointsforSequenceGenerationTasks》

THE END
1.汪小菲这次在台北待了好久,每天都带妻女出来玩网友:大曲开窍了汪小菲这次回台北时间不短,已经一个多星期了,也没直播,也还没有回北京,在小杨阿姨的视频里,汪小菲和小梅带着小玥儿去了好多地方玩。 在8日,汪小菲他们又去桃园沙丘公园玩,给小杨阿姨拍视频的一定是小玥儿,小杨阿姨爬上沙丘后,摆了一个造型,风太大没站稳,一个踉跄让大家吓一跳,同行的司机赶紧说“小心小心...https://www.163.com/dy/article/JGN0P79U055652N9.html
2.#汪小菲台北酒店正式停业#,高端床垫等用...来自福布斯中文网...【#汪小菲台北酒店正式停业#,高端床垫等用品低价甩卖,从S Hotel更名美憬阁不到半年】#汪小菲台北酒店每月亏损上千万新台币#媒体报道,汪小菲在台北的酒店已于上周正式停业,所有床垫和用品安排在8月25、26日两日进行低价甩卖,引发众多市民排队扫货。据酒店开出的价单,加大双人床卖3500元新台币,合人民币784元;加大单人...https://weibo.com/1765373140/Ou3zAbSP8
1.www.eazhsh.com/apf60504620.shtml「CHINESE腹肌体育生CUMSHOT」衍生小说无弹窗 雏田脱内衣奶头露出来照片动态图 下载免费的黄色网站 五月天婷婷社区 国产骚臀操啪啪 老妇女进进出出 yumi...公的浮之手中字2023最新版_特别酒店2_公司的员工味道中_学习网 泰国人妖连裤丝袜子 刻晴3DNagoonimation 欧美黄色一区二区三区 日本亚洲黄色三级片电...http://www.eazhsh.com/apf60504620.shtml