InstructGPT 论文精读【论文精读·48】_哔哩哔哩_bilibili更多论文:https://github.com/mli/paper-reading, 视频播放量 160552、弹幕量 803、点赞数 5846、投硬币枚数 4003、收藏人数 5253、转发人数 2664, 视频作者 跟李沐学AI, 作者简介 ,相关视频:GPT,GPT-2,GPT-3 论文精读【论文精读】,算法领域的“大力出奇迹”:ChatGPT!李宏毅教授重磅解读ChatGPT的底层逻辑!感兴趣的同学赶紧收藏学习了!,南丁格尔来了都得连夜买机票回国,ChatGPT原理剖析 李宏毅,【人物 | 李沐】亚马逊AI主任科学家,MXNet-Gluon深度学习框架【计算机科学】,ChatGPT:接下来,我要开始说真话了😋,男子喝酒喝进医院,医生:已没有抢救的必要,妻子当场崩溃,新版Bing——科研人的终极解决方案,高燃!chatGPT爆杀字节三面面试官!,chatgpt评价原神https://www.bilibili.com/video/BV1hd4y187CR/?spm_id_from=333.999.0.0&vd_source=4aed82e35f26bb600bc5b46e65e25c22instructGPT是在给定一定标注数据的情况下,如果通过有监督微调来使模型和用户输入达成align,并且很好的提升了效果。
instructGPT标注一些数据,来精调语言模型。
abstract: 大型语言模型可能会产生一些不真实有害不利于用户的信息,因此模型并不能很好的align用户。用fine-tuning with hunman feedback,在openai api上收集了一些人工prompts,并进行标注,精调了GPT3。此外,对模型输出进行了排序,人工对结果进行排序并且训练了一个强化学习模型,这个模型叫instructGPT。1.3B的InstructGPT要好过175B的GPT3。
1.introduction
大模型的目标函数是预测网上数据的下一个词,这和我们想让大模型根据人的提示去生成答案之间是有差距的。本文的核心目的就是想让用户的提示和大模型输出的结果更加align。
第一步,人工给prompts写答案,并用这个数据来微调gpt3,这个叫sft,但是人工写答案是很昂贵的。第二步,使用模型输出prompt的多个结果,然后人工对结果进行标注,训练一个reward模型,模型输出一个分数,对生成的答案进行打分。第三步,进一步微调sft,使得sft的结果是reward模型中打分较高的那个。gpt3通过上面三步产生的就是instructGPT.
有监督微调,模型的泛化性不错。
2.method
dataset
标注问题写了一些prompt,训练了一个InstructGPT,把模型放出来让大家试用,大家试用的问题收集起来,作为新的prompts。产生了三个数据集,1.让标注人员标注一部分数据,2.一个RM数据集,只需要排序就可以了,3.训练强化模型数据,不需要标注,因为标注来源于RM的标注。训练sft是13k样本,训练RM是33k样本,训练PPO数据是31k样本。大概40个人标注。
上面左图是用户用api提问的问题,右边是部分问题的示例。
models
supervised fine-tuning(SFT),用13k数据微调GPT3,训了16轮,其实第一轮就过拟合了。
reward modeling(RM),从sft模型中去掉最后一层unembedding layer,去掉softmax,加一个线性层,把prompt的完整输出向量变成一个分数,用的6b的gpt3,不是175b的gpt3,175b的训练不了,用的pairwise ranking loss,实际上是一个排序模型,对于每个prompt生成9个回答。
refinement learning(RL),
πrl和πsft初始化是相同的,前者是要学习的模型,后者是精调的gpt3,输入x,经过πrl得到y,将x,y数据输入rm模型,希望此时y的分数是最大的,也就是说希望rl模型生成的答案总是分数最好的那个。x作为prompt,不变,但是模型每次采样到的y是变化的,rl的策略是变化的。
用了ppo的模型效果好很多。