最近chatgpt太火了,对它的原理很是好奇,翻到一篇牛人大作“万字长文教你如何做出ChatGPT”,拜读后记录一个自己理解的内容。
1. GPT或者说GPT1.0是什么
GPT(Generative Pre-trained Transformer),其实是Generative Pre Training of a language model,可以简单地把语言模型理解为“给定一些字或者词,预测下一个字或者词的模型”。
类似我们使用搜索引擎写入部分查询内容后输入框自动给出的后续输入的预测。这个是已经较为成熟且大量使用的技术。
它的训练简单描述为P(output/input),即输入和输出。
2. GPT2.0
2.0在1.0基础上引入了task的概念,训练模型为P(output/input,task)。任务还可以带描述token
翻译任务
input:Today is a [翻译为中文]
output:今天是一个
问答任务
input:我是小明 [问题] 我是谁 [答案]
output:小明
上面例子中 [翻译为中文]、[问题] 、[答案] 这些就是用于告诉模型执行什么任务的token。
这样2.0的模型就可以尝试去理解提问中的“任务”描述了,以做出更符合预期更精准的输出预测。
3. GPT3.0
3.0 除了模型比2.0更大外,引入了情景学习概念,比如翻译任务可以采用输入:请把以下英文翻译为中文:Today is a good day。这样模型就能够基于这一场景做出回答了,其实跟GPT2中不同任务的token有异曲同工之妙,只是表达更加完善、更加丰富了。
4. ChatGPT
chatgpt的制作过程可抽象为3个步骤:
1. 使用清洗后的大量互联网语料训练GPT3.5模型,然后用有监督学习精调GPT3.5模型,使用人工写答案的方式对训练好的GPT模型进行精调。这里的GPT模型可以认为是一个生成模型,即用于生成问答结果的模型。
2. 训练一个奖励模型,这里的奖励模型是对GPT输出结果进行打分。chatgpt的奖励模型是雇佣大量人工进行打分,并将这个打分结果作为输入用于训练奖励模型。
3. 使用奖励模型,基于PPO算法,对GPT生成模型进行持续训练。
总结来说,chatgpt就是有2个模型,一个生成模型用于基于输入产生输出,一个奖励模型用于对生成模型的结果打分。持续用奖励模型对生成模型进行持续训练。
chatgpt的成功有不小的因素在于大量的资金投入得以雇佣大量的人工人肉参与了生成模型的精调以及训练模型的训练。
引用原文的一句话:人工智能就是需要“人工”才能走向“智能”。
转载请注明转自高孝鑫的博客!
本文链接:https://my.lmcjl.com/post/8818.html
4 评论