前言
chatgpt的大火也引起对其原理的思考,本篇文章主要探索chatgpt背后的技术原理,并结合自己及周边同学使用后反馈带来的一些思考。
chatgpt注册使用方式见另一篇文章:chatgpt以鸡你太美主题写小说
instructgpt
chatgpt其原理与instructgpt类似,因此我们主要看一下instructgpt是如何实现的。
参考链接:training language models to follow instructions with human feedback
工作原理
instructgpt工作原理如下:
instructgpt训练分为三步:
sft:收集prompt数据集,根据gpt3进行有监督微调训练。
rlhf:收集人群反馈的数据集,进行强化学习训练。
ft:根据第二部的模型预测reward,并根据ppo算法进行有监督微调训练。
主要贡献
- 相较于gpt3输出的结果,标注者偏好于instructgpt输出的结果
- 相较于gpt3输出的结果,instructgpt输出结果在真实性上取得提升
- 相较于gpt3输出的结果,instructgpt输出结果在“毒性”上取得小幅度提升
- instructgpt 模型对 rlhf 微调分布之外的prompt有更好的泛化性。
- 公开的nlp数据集不能反映语言模型的使用方式
- instructgpt仍然会犯简单的错误
总结
- instructgpt生成的结果更符合标注者预期,真实性也更好
- instructgpt对输入的prompt泛化性更好
- 公开nlp数据集的评估方式不能反映instructgpt模型效果
- instructgpt仍然会犯简单的错误
思考
在使用chatgpt的过程中,根据身边同学反馈及自身的体验,我整理了以下的问题,里面的回答也只是个人思考,欢迎讨论指正:
q1: chatgpt生成过程是否根据搜索结果来进行生成?
身边有同学反馈,chatgpt输出的结果和xx产品文档一模一样,那么是否chatgpt是根据搜索结果来进一步生成呢?
我觉得并不是,我拿了一些官网介绍的说明文档进行提问,但是chatgpt回答的方向与官网介绍并不相同。个人觉得chatgpt还是通过大量的语料学习到类似问题的回答方式,根据海量训练数据以及人工反馈的修正,生成对应的结果。
q2: chatgpt中工程逻辑有多少?
chatgpt针对无准确答案的回答,带有偏见的回答,都会表明自己不具备相关能力,并给出解决方式。这种方式到底是训练过程给了足够的数据,还是通过工程手段匹配得到的呢?
q3: chatgpt能否直接取代搜索引擎结果?
chatgpt搜索结果的准确性还不够高。正如instructgpt论文中所说,该模型还是会生成错误答案,无法根据描述生成句子、虚构事实、对简单问题给出长时间的模糊答案,或者无法检测到带有虚假前提的指令。
例如,下面是一个脑筋急转弯题目:
看上去生成的没什么问题,但是细看却无逻辑性。实际应该是进货花了58,找钱花了15,因此总共亏了73元。