Learn Prompt-什么是ChatGPT?

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

ChatGPT生成式预训练变换器是由 OpenAI 在2022年11月推出的聊天机器人。它建立在 OpenAI 的 GPT-3.5 大型语言模型之上并采用了监督学习和强化学习技术进行了微调。

ChatGPT 是一种聊天机器人允许用户与基于计算机的代理进行对话。它通过使用机器学习算法分析文本输入并生成旨在模仿人类对话的响应来工作。ChatGPT 可用于各种用途包括回答问题提供信息和进行非正式对话。

决定 ChatGPT 对话成功的关键因素之一是用于启动和引导对话的提示的质量。明确定义的提示可以帮助确保对话保持在正确的轨道上并涵盖用户感兴趣的主题。相反定义不清的提示可能会导致对话支离破碎或缺乏重点从而导致体验不够引人入胜和信息丰富。

ChatGPT 中G、P、T 分别是什么意思

GPTGenerative Pre-Training Transformer

Generative 生成式

Transformer Generative 的语言模型的核心通俗的说就是「顺口溜」。

当看了足够多的文本以后发现有一些语言模式是反复出现的。它之所以可以准确的填补「锄禾日当__ 」的空格不是因为它在自己的大脑子里面重构了一副农民劳动的场景仅仅是不过脑子顺口溜出来的。

你问它 3457 * 43216 = 它回答 149575912 这是错的。正确结果是 149397712。之所以结果的 2 是对的仅仅因为它读了太多的文字资料以后隐约感觉到

7 结尾的文字乘号6 结尾的文字和 2 结尾的文字比较「押韵」 从语感上比较像一首诗所以它就学会了这样的文字而不是学会了计算。 生成式模型努力解决的问题就是给定一些字预测如果是人类会写什么字。

在 BERT 那个年代为了训练大家常常把一句话中随机几个单词遮起来让计算机用现有的模型预测那几个单词如果预测准了就继续加强如果预测错了就调整模型直到上百万上亿次训练之后越来越准。只不过 ChatGPT 的 Generative 的部分不仅仅把文字还把上下文、intention意图也放进去做训练和预测。

Pre-Training 预训练

以前很多的人工智能模型都是为了一个目标训练的。比如给我 1000 张猫的照片我就很容易的可以训练出来一个模型判断一个图片是有猫还是没有猫。这些都是专用的模型。

而 Pre-Training 模型不是为了特定的目标训练而是预先训练一个通用的模型。如果我有特定的需求我可以在这个基础上进行第二次训练基于原来已经预训练的模型进行微调Fine- Tuning。

这事儿就像家里请了个阿姨她已经被劳务公司预训练了整理家务的知识在此之前已经被小学老师预训练了中文对话到了我家里面我只要稍微 fine tune 一些我家里特定的要求就好了而不需要给我一个「空白」的人让我从教汉语开始把她彻底教一遍才能让她干活。

ChatGPT 的预训练就是给了我们所有人尤其是创业者程序员一个预先训练好的模型。这个模型里面语言是强项它提供的内容无论多么的胡说八道至少我们必须承认它的行文通畅程度无可挑剔。这就是他 pre-training 的部分而回答的内容部分正是我们需要 fine tuning 的。我们不能买了个 Apache 服务器回来不灌内容就说他输出的内容不够呀。

Transformer 转换器

语言的转换器就是把语言的序列作为输入然后用一个叫做编码器 encoder 的东西变成数字的表现比如 GPT 就用 1536 个浮点数也叫 1536 维向量表示任何的单词或者句子段落篇章等然后经过转化变成一串新的序列最后再用 decoder 把它输出。这个转换器是这个自然语言处理的核心。

比如如果给 ChatGPT 输入「Apple」这个词它给你返回

[
 0.0077999732,
 -0.02301609,
 -0.007416143,
 -0.027813964,
 -0.0045648348,
 0.012954261,
.....
0.021905724,
 -0.012022103,
 -0.013550568,
 -0.01565478,
 0.006107009]

这 1536 个浮点数字来表示 Apple其中一个或着多个维度的组合表达了「甜」的含义另外一堆表达了「圆」的含义还有一大堆共同表达了「红」等等属性组合至于具体哪些表达了这些不得而知

然后这堆数字再交给 decoder并且限定中文的话它会解码成为「苹果」限定西班牙语的话它会解码成「manzana」限定为 emoji 的话就输出「」。总之通过编码转换解码它就完成了从 Apple 到目标输出语言的转化。

ChatGPT 所做的事情远远多于翻译。但核心上它就是把一个语言序列转换为了另外一堆语言序列这个任务完成得如此的好以至于让人产生了它有思想的错觉。

GPT 生成式预训练转化器

把上面三段话加在一起GPT 就是

一个预先训练好的用生成的方式把输入文字转化成输出文字的翻译

ChatGPT背后的技术

ChatGPT背后的技术InstructGPT论文标题为 Training language models to follow instructions with human feedback。

语言模型(Language model)的原理是给一段文本让它去预测后面下面的词是什么。在预训练中它的训练数据是没有标签的是自监督学习。当我们提出一些问题去问模型比如说勾股定理是什么的时候我们希望模型在预训练中就见过相关的数据所以模型的行为取决于预训练的内容。在现在的大语言模型中训练的词表是几十几百亿的级别所以实际里面有什么我们没有办法详细的去看我们只能大概知道我们获得的文本质量不错然后经过数据预处理后去喂给模型训练。这种情况下会导致模型的精细度不够可控性也比较低同时面临着有效性和安全性问题比如说如果我让模型做一些任务但是它在训练文本里没有出现模型没学会。或者模型输出一些很不好很敏感的内容怎么办

总的来说模型并不是越大用户体验就越好因为它不一定符合用户使用的目标在工作中我们常用“对齐” aligned这个词来保证公司里各个团队之间的目标保持一致模型也一样它没有和用户“对齐”因此可能会输出让用户觉得不满意、甚至觉得感到冒犯的内容。从学术上来说模型只要能刷榜刷很高的分数就可以了但是在实际的商业落地场景中用户的体验非常重要如果模型输出敏感性的内容会产生非常大的负面影响。因此需要模型和人类之间“对齐”于是引出了基于人类反馈的微调fine-tuning with human feedback

首先通过OpenAI API收集到的问题使用标注工具来对这些问题标注了一个数据集在这个数据集上对GPT3进行微调监督学习。

接下来再收集了一个数据集这个数据集是给定一些问题模型会产生不同的输出对模型的输出进行打分有了排序之后这个数据集会在后面使用向基于人类反馈的强化学习的方法进行微调最终的模型就叫InstructGPT。

RLHF

describe1

第一步首先找了些人来标注一个数据集在数据集里写了各种各样的问题这些问题在GPT里我们叫做 prompt。这里面的问题就类似于给6岁的小朋友来解释什么是登月然后标注员对问题写了答案比如回答登月的这个问题的答案为“一些人去了月球巴拉巴拉的....“。于是就得到了问题和答案把问题和答案拼接成一段话然后在这些数据上进行微调GPT3,微调出来的模型叫做SFTsupervised Fine-tune,基于监督学习的微调)。虽然这里标注了数据进行了微调但是实际上在GPT眼里它实际上就是给定一些词让它预测后面的词这个过程和语言模型预训练的过程没有太多区别。这个过程有个问题就是如果把所有收集到的数据都进行标注成本非常高于是就有了第二步。

describe1

在第二步里这里的标注会更简单一些。我们给模型问题比如还是前面的给6岁的小朋友来解释什么是登月让第一步训练好的SFT这个模型来生成问题的答案GPT生成的原理是每一次预测一个词的概率根据这个概率进行采样可以采样出多个不同的答案简单来说就是让GPT对每个问题都生成多个不同的答案。然后让人来给模型生成的每个问题的这些答案进行打分。比如上图中模型生成了A,B,C,D四个答案然后让人来对这四个答案进行打分排序D比C好C比A好A和B差不多这个排序就是数据的标注了。有了这些排序之后训练一个模型这个模型叫做RMReward Model 奖励模型。这个模型负责的工作是给一个prompt给对应的输出对输出生成一个打分使得对答案的打分满足标注的数据排序的关系D>C>A=B。第二步的目标就是训练一个打分的模型。

describe1

第三步就是继续微调第一步中训练好的SFT模型生成的答案给第二步的RM模型打分更新SFT模型的参数使得生成的答案尽可能的得到一个比较高的打分。理论上来说如果第一步能标注足够多的数据的话其实后面两步可以忽略可能也是可行的但是写一个答案属于生成式的任务标注和给第二步中给答案打分属于判别式的任务标注判别式的任务标注数据的成本是远低于生成式任务的成本的。因此第二和第三步可以让在同样标注的成本下能得到更多的数据使得模型的性能更好。第三步训练完成之后的模型就是InstructGPT。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: ChatGPT