文章主题:chatgpt, 提问, 行业内容, 专家
对于常常使用 ChatGPT 的用户来说,相信他们在提出某些特定行业问题时,都会不自觉地加上了一句「假如你是 XX 专家」,而这句话背后的原因可能并不为人所知。
一开始我也是这样,有样跟样的学呗。但那个时候我不知道这样写提示词对实际生成的答案有什么影响。这些天看了Open AI创始人Andrej Karpathy的分享,想写个文来回答下这个问题。
首先要回答好这个问题,肯定得去了解下chatgpt的一些基础原理。
chatgpt是个大型的语言模型,这样的语言模型背后是需要很多的数据去支棱起来。chatgpt其实它是不知道自己知道什么和不知道什么,也不知道自己擅长什么和不擅长什么,它只是根据所训练的数据来尽力的模仿下一个字(token)是什么。我们可以从怎样训练一个语言模型入手来了解一些基础原理,从而更好地回答这个问题。
训练chatgpt模型大概有四个步骤:
预训练->监督微调->奖励建模->强化学习
别害怕,不会有太多的技术细节。简单的聊聊
预训练:
预训练阶段是训练语言模型的第一个阶段,训练前提是需要有数据,这些数据一般都是互联网上大量的文本,最初的chatgpt的数据是来源于这些。
训练这些数据前都是要对这些数据进行统一处理的,就好比你做饭的时候需要先把米洗一下然后在放到电饭煲。这些数据也一样都是要进行统一的标记化,就是我们上面所提到的token。
对于chatgpt来说它也不认识这些文本,它只会把拿到的数据进行分块处理,每一个块就是对应的一个token,它都是通过token来识别这些文本。
这个时候是需要大量的计算资源和时间进行训练,需要数千个GPU不间断的进行训练,要花费数百万美元的成本,妥妥的吞金兽。
这个阶段其实就是让chatgpt模型不断的学习人类的语言,当然它的学习方式不是跟我们一样去具体的理解这些词的意思,而是把这些词进行标记化就是我所说的token。
监督微调:
这个阶段就是有人工干预了。人工智能嘛,没有人工那里来的智能。
在预训练阶段都是训练互联网上的数据,很多也很杂,数据量很大但是质量一般。
这个时候就会收集少量但高质量的数据集,并且会让人工及时去处理这些数据,确保数据的质量。这里说的少量是相对于之前的数据,实际上为了确保数据的多样性也会收集数万个数据样本的。
这里与之前会有点不一样,之前训练是使用的互联网上的文本,现在是具有实时问答功能的数据集。到这里chatgpt就可以回答问题或者是让它写一篇文章了。
奖励建模:
从这个名字也能大概猜出这个阶段是要做啥。它们会在这把那些收集好的数据转换成比较的模式,会对生成的答案进行排名比较,就是让它们去“内卷”。
一般都是用相同的提示词,让模型生成不同的回答,这里还可以不断地补全提示词,好的答案也需要好的提问。然后人工去对这些回答进行排名比较还可以对其进行评分。
通过这种方式可以训练奖励模型。
强化学习:
强化学习是建立在奖励建模的基础上的,可以看作是一个不断迭代更新的过程。这里也就是“卷王”步骤了,看谁能不断卷到最后 !
奖励模型是可以对提示词完成补全的,就是你提问后产生了新的输出,质量好的输出结果会进行标记,然后再来一波,对好的输出结果继续不断的补充提示词。这里只需要不断的补全大量的提示并不断的执行下去。
这几个阶段中的细节还有很多,只是比较粗略的聊聊。
其实我们跟chatgpt的思考方式是有一定差异的。
比如你正在写什么统计文章,最后需要写上一句:“杭州的常住人口是上海常驻人口的20倍”。那么在你的大脑中会是怎样构思的,我可能就是这样
1. 我需要去查下杭州和上海的常住人口数据。
2. 我先去百度大概查下。
3. 我再去官方的网站查询下数据。
4. 然后我需要计算下这两个地方的人口数据,是不是相差20倍
5. 计算出来结果不对我不能这样写,这样会误导读者。
6. 我删除了这句话,因为杭州的常驻人口没有比上海常驻人口多20倍。
那如果是chatgpt会怎样思考。
从chatgpt的角度来看,它们其实都是一些的token。当chatgpt接收到你的提问,它会根据你的提问然后预测出下一个词是什么,然后生成一段文本。
从本质上来看,chatgpt就是训练了很多数据,把那些数据都标记了起来。它不知道自己知道什么和不知道什么,也不知道自己擅长什么和不擅长什么,只是在预测下一个标记(token)。
chatgpt不会进行自我的反思,不会检查任何东西,在默认情况下也不纠正错误,只是对标记序列(token)进行采样。它的头脑中没有跟我们人类一样,还有单独的内心独白。
但是也有一定的优势,那是我们远远也达不到的地步。那就是它们实际上拥有大量基于事实的知识,涵盖大量领域,因为它们有几百亿个参数。我们可以直接地访问并进行使用,有相对来说比较完美的工作记忆。
chatgpt并不会每次都去追求高质量的回答,而是追求模仿或者可以说是预测。你如果希望回答的质量好点,那你就得明确的提出要求。因为chatgpt也不知道得去生成什么样的内容给你,它的训练数据是参差不齐的。
比如,可能有一些物理问题的提示,现在有一个学生的解决方案完全是错误的,但也有一个专家答案是正常的。chatgpt知道低质量解决方案和高质量解决方案。但默认的情况下是会预测所有的这些答案,因为chatgpt只是接受过语言建模方面的训练,没办法区分这些答案之间的区别。
如果这会你给chatgpt设定了一个XX专家角色,那出现高质量回答的概率就会比较高一些。
不过你也可以这样写提示,比如:“你是这个话题的专家,假如你的智商是120”。但不能要求太高的智商,如果你要求智商400,那么基于现在所训练的数据,很有可能chatgpt就会开始玄幻了。
当然还有一个更好的提示方法:“让我们以一步一步地方式解决这个问题,确保我们得到正确的答案”。这个时候chatgpt就不需要把概率分散到低质量的回答中去了。
既然看到这里了,如果觉得不错,就随手点个赞吧。
参考链接:
https://build.microsoft.com/en-US/sessions/db3f4859-cd30-4445-a0cd-553c3304f8e2AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!