首页 > 其他分享 >chatgpt系列读后感

chatgpt系列读后感

时间:2023-03-12 17:24:20浏览次数:36  
标签:读后感 系列 训练 GPT2 模型 prompt gpt shot chatgpt

资料来源:李沐谈gpt1-3

GPT1:

用transformer的decoder作为base模型在unlabel的模型上做pretraining,然后放到下游任务做finetuning。从时间上来讲是第一个大预训练NLP模型,比bert要早几个月。为了做通用预训练模型,有两个事情要做:

1. 采用auto-regression的模式。这个和后面的bert不一样,因为bert的是用encoder,即全域attention来做的。由于GPT1采用了LM的模式来做预训练,即给定前面的context去预测后面的词(通过attention mask来实现),因此是一个更加通用,但是更加难的生成式任务;而BERT则是完形填空(masked language model, MLM),因此BERT的能力主要是理解,以及插值。这导致BERT在下游任务上可以更好(即在同样为12层以及768dim的情况下,BERT base比GPT1的效果更好),但是BERT在生成,以及AGI上则没有后面的GPT3来的惊艳。

2. 设计预训练任务。理解预训练有助于我们理解这个模型的能力是怎么来的,以及他的能力边界与适用范围。预训练任务把NLP任务抽象成4类,其中entitlment为判断给定premise,判断hypothesis对不对。注意这时候需要用到start,extract等特殊字符,以规范化输入的格式,方面模型利用attention机制来理解输入。

 

 

 

其他的注意点:

1. 在Bookcorpus上训练,模型参数约117M

2. GPT1展现了较强的的zero shot的能力,即仿佛真 的能理解用户的意图,然后生成答案。这能力可能确实来源于auto-regression。更重要的是,他展现了zero-shot能力随着模型大小的增长而上升的曲线,因此让大家对“增大模型,增强能力”来获得一个底气。

3. T5是encoder和decoder都用了。

4. Bert也有next sentence prediction,也类似于auto-regression,不知道为啥后面没有走这个路子了。

总结:之前都是CV的预训练大模型,GPT1通过设计任务,验证了NLP届的大模型也是可能的。

 

 

GPT2:

为了与Bert对比,但是可能性能上又没有比Bert强太多,GPT2的叙事开始转向了few-shot以及zero-shot等AGI的能力。下面是技术上的主要改进:

1. 为了实现few-shot,尤其是zero-shot,模型的参数是不会被finetune的,因此没有机会认识special token,因此GPT2去掉了1中的special token(如start,extract等)。而为了使得训练数据结构化,采用了如(answer the question, question,answer),或者是(translate the following language,source language,target languate) 这种形式,即task description,task format这样的数据组织形式来训练,实际上就相当于利用prompt来做训练。由于现实生活中的任务也都是这样的,因此可以expect在inference的时候也具有类似的泛化能力。从底层原理上来讲,prompt之所以能奏效,auto-regression很可能是一个很重要的因素,因为模型必须是根据前文的理解,然后生成后面概率比较高的话。这样的能力是完形填空做不到的,完形填空主要还是做理解,生成下游。

2. 数据:因为common crawl的数据虽然全,但是脏,因此认为不可用;作者们从reddit爬了40G的比较高质量数据(有过upvote)来提升训练的数据量,并且将模型扩大到1542M。数据集为webtext。

3. 用了Byte Pair Encoding (BPE) 来组织脏数据,因此模型可以理解unicode的输入,以及产生unicode的输出。这除了进一步丰富了泛化可能性外,还增加为多语种扫清了障碍。

注意点:

1. 在本文中,prompt还只是一个符号,即":"。这时候的prompt的概念还类似于前面的特殊字符,还没有扩大到task的描述,或者是先导语,比如once upon a time.

2. 模型大小为1.5B, 为GPT1的10倍。

3. GPT2还展示了,随着模型参数的增加,模型的zero-shot能力更强。并且有人认为GPT2在webtext dataset上是underfit的。

总结:有一段时间,我的感想是LLM的研究到后面都变成了heuristic的pretrain task设计,没有了数学在里面。事实上也是如此。但是GPT2的预训练方式还是非常的大胆,跟其他结构化的,task specific的预训练方式相比,更加通用,也有更好的上限,让人惊叹。

 

GPT3:

GPT3沿着GPT2的技术路线,主要是引入了in-context learning,以及用到了GPT2种没有用的common crawl的数据,为chatgpt的惊人的可扩展性以及few shot learning提供了准备。并且GPT3不追求one-shot,而是回到了few shot的设定,通过in context learning实现短时理解,跟人类更像了。下面是技术:

1. in-context learning 即gpt能够根据给定的一些example,然后模型通过类比example,来更好的理解当前的任务。因此在inference的时候,如果能够给足相关的信息上下文,模型是能理解的。一个解释是模型能够attend到example上,因此能够从一个没有歧义的space来进行生成。这其实是更好的挖掘出预训练模型的潜力的。

 

注意点:

1. gpt3的模型大小是175B,为GPT2的100倍

2. gpt3其实是一个无状态的,因此每一次都需要给example才能得到好的效果,这个和chatgpt的多轮对话能力不一样。这也成为了gpt3的一个弱点,即没法finetune,对于有数据的用户来说,好像只能每次都把几千个数据作为example提供上去,这无论从数据privacy,还是efficiency上来说都是很有问题的。

3. gpt3在安全性,可控性,可靠性上还是有问题,因此很难直接商业化。

总结:gpt3在训练以及模型上跟gpt2其实是一致的,不一样的只有inference的改变,以及模型规模的改变。

 

instructGPT(chatgpt):

因为gpt的训练过程是单纯的LM,但是和人类想要的安全性,公平性,以及preference是misalign的。因此为了商用,我们需要把GPT3和商业的需求align起来,这就是reinforcement learning with human feedback (RLHF)。结论就是,在服务人类上的效果更好,在通用的任务上的效果也没有下降(注意,其实这就是finetune与general的tradeoff)。

 

1. SFT(supervised fine-tune): 在以前的用户提出的需求中(也就是prompt),让40个标注人员写了一些答案。这应该就是最expensive的工作,因为sample比较难找,而符合要求的答案也是需要人来创造(不仅仅是简单的标注)。事实上,正是因为这一部分的工作很expensive,所以才需要第二步的排序。因为排序是比生成可靠的答案容易得多的。这一步的gpt用的是比较小的1.3B的gpt模型,

2. RM模型(reward model):用gpt生成多个答案之后,由人来排序,然后训练了一个排序模型,并且fix下来。由于排序是一个非常specific的简单工作,因此这个模型不需要很大,但效果可以很好。这个模型实际上模拟的是人类标注员对于答案的preference,比如bias,toxic,faireness。这个模型的训练其实是为了第三部的RL做准备的。从下面的loss看到,就是一个比较经典的learning to rank。

 这里有一个小讨论,之前的工作都是产生4个答案给人工排序,但是这个工作中产生的是9个答案。原因是因为,实际上排序9个没有比排4个多话多少时间,但是却从C_2_4变成了C_2_9的sample数量,因此大大提高了标注的效率和利用了率。

3. PPO:PPO是RL的其中一种方法。训练loss其实很简单,即把gpt作为policy model,而把第二步的human ranking proxy作为reward model,来提供实时的feedback,使得RL可行。训练过程即:a. 从SFT来boostrap模型。b.给定任务x,让gpt生成答案y,并由RM给一个反馈。loss的后面部分是让RL训练的模型和原始的SFT不要差距太大,以防RM算不准,因此用了一个KL divercence来控制;并且为了保证泛化性能,在最后还是补上了pretrain loss。

总结:instructGPT实际上提供了一个finetune模型的工作流,如果大模型的参数是accessible的话,那么通过这种办法对模型finetune可以得到一个令人类满意的结果。instructgpt是的gpt的迭代变得可能,而且高效。因为每次获取新的数据,或者新的badcase,我们只需要训练比较小的RM(6B)即可,然后由RM去泛化到gpt模型本身。instructGPT的另一个意义在于,让gpt更加像人,因而能通过图灵测试。但是如果数据多的话,可能还是直接微调就好,因为RL本身也有不稳定的地方存在。

 

Chain of Thought (COT):

Chain of thought是解放LLM的一个探索方向。比如用Let's think step by step,放在prompt的前面。这样LLM就会一步一步地将模型的推理过程generate出来,这对于模型进行reasoning是至关重要的。因为很多情况下,一个复杂的问题让模型直接给出答案,它可能只能胡扯,但是在step by step的prompt的情况下,模型是要保证每一步的答案都是合乎逻辑的,并且后面生成的话也是要跟前面的逻辑自洽(auto-regression+attention的作用),使得模型用了更多的算力(思考时间)来生成答案,因此模型更加可能进行合理的reasoning。具体而言,有两种方法:

1. zero-shot COT: 直接加上let's think step by step

2. Manual COT: 手工构建相关的问题以及推理过程,作为例子输入,进行one-shot/few shot learning. 

 

 

Auto COT是aston后面的工作,即让采样出一些问题,然后加上"let's think step by step", 让GPT做出一些回答。然后将所有的答案作为few shot example一起输入到gpt中。这样的好处就是,不需要人工构造COT的prompt,把这个过程给自动化。这里难点就是怎么去sample出相似问题,其中一个方法就是让gpt自动生成类似的问题。不过这篇工作则是从一个给定的dataset里面去找相似的问题,现实意义就没那么大了。

 

 

Reference:

1. GPT1: Improving Language Understanding by Generative Pre-Training

2. GPT2: Language Models are Unsupervised Multitask Learners

3. GPT3: Language models are few-shot learners

4. Blog: https://medium.com/walmartglobaltech/the-journey-of-open-ai-gpt-models-32d95b7b7fb2

5. InstructGPT: Training language models to follow instructions with human feedback

6. Chain of Thought: Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

7. AUTOMATIC CHAIN OF THOUGHT PROMPTING IN LARGE LANGUAGE MODELS

标签:读后感,系列,训练,GPT2,模型,prompt,gpt,shot,chatgpt
From: https://www.cnblogs.com/kunrenzhilu/p/17208364.html

相关文章

  • 学习ASP.NET Core Blazor编程系列二十八——JWT登录(3)
    学习ASP.NETCoreBlazor编程系列文章之目录学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习A......
  • [基础系列] 环境安装
    一、环境安装1、集成环境安装:anacoda下载链接anacoda清华镜像下载链接minianaconda下载链接2、PycharmIDE安装:https://www.jetbrains.com/pycharm/二、查看集成环......
  • ChatGPT:编码
    人的大脑结构对比计算机结构有哪些优劣势?人的大脑和计算机的结构存在一些显著的优劣势。优势:并行处理能力:人的大脑可以同时处理多个信息,即具有高度的并行处......
  • 构建之法读后感
    接触到《构建之法》是因为我在找两个答案,怎么规范一个软件开发的流程,以及怎么去管理一个技术团队完成软件开发中的一环。带着这两个问题,我开始拜读邹老师的构建之法。(开始......
  • 构建之法读后感
    刚开始读《构建之法》这本书时,书上所提到的很多问题都是我们平常在写代码时候会犯的一些小的错误,就我个人而言,在我还没读《构建之法》这本书之前,我还不知道我平常在写代码......
  • 物理学又不存在了?ChatGPT:室温超导是物理学的一个梦想
    大家好,我是小彭。就在前天,一组微信聊天记录突然开始在各大群中流传:随后,这一新闻直接引爆各大社交媒体,物理学又双叒叕不存在了吗?到底是什么重磅消息呢?原来在美国物理......
  • API接口开发系列,jd优惠券详情
    API是应用程序的开发接口,在开发程序的时候,我们有些功能可能不需要从到到位去研发,我们可以拿现有的开发出来的功能模块来使用,而这个功能模块,就叫做库(libary)。比如说:要实现......
  • ChatGPT讲座
    焦李成西安电子科技大学ChatGPT引起学术界和工业界的关注但目前只能作为工具辅助人类工作,但不能替代人类,并不具有人类的心智。大模型,但其实没有在基础上进行太大的创新......
  • PlotNeuralNet + ChatGPT创建专业的神经网络的可视化图形
    PlotNeuralNet:可以创建任何神经网络的可视化图表,并且这个LaTeX包有Python接口,我们可以方便的调用。但是他的最大问题是需要我们手动的编写网络的结构,这是一个很麻烦的事......
  • 《有人负责,才有质量:写给在集市中迷失的一代》读后感
    读了《有人负责,才有质量:写给在集市中迷失的一代》这一篇文章后,我明白了现如今的程序员有许多的人的技术是非常滥的,也知道了如今的代码中有许多的不必要的代码和代码的日益......