本次船长着重分析一下的技术方案,不难发现强化学习在里面扮演了很重要的角色。首先我们来回顾一下,什么是,它能做什么?
的技术方案
整体路线上,本次着重使用强化学习+监督学习的方式,促进生成和人类差不多的回答,并且这种方式在线上使用之后,也可以根据用户的反馈进行不断更新。从模型的角度来说,使用了GPT3 3.5大规模语言模型作为初始的网络结构,可以说是一诞生就已经站在了巨人的肩膀上。
第一部分 基于GPT3.5模型的微调
图1:训练第一部分。
客观来说,这部分训练的过程和语言模型的fine-tune 微调很类似,在训练的第一部分,会使用比较原始数据,大概使得语言模型的表现提升一些。这部分的数据集主要来自人工标注,会有人写出关于问题的具体答案,之后会会按照这个答案来学习。数据的格式是
,之后会让模型学习到 和 之间内在的关联。
第二部分 奖励模型训练
所以在第二部分,为了把整个训练框架做的自动化,会训练一个奖励模型( Model),让这个奖励模型之后不断的奖励/惩罚。我们这里插个嘴,什么是奖励模型?
其实它主要用在强化学习模型里面,我们都知道强化学习训练的时候需要不断的奖励,但是单一刻板的奖励往往不能满足要求,所以有很多的科研工作集中在如何学习奖励函数。学习到好的奖励模型往往意味着拟人化,和人做的奖励大差不差。这个领域也被称为逆强化学习。
图2:训练第二部分。
在训练的机制中,首先让模型根据生成K个回答,然后再利用人工,对这K种回答进行排序,而用这种回答的排序去训练奖励模型。例如对应的结果是最好的,那么我们就让奖励模型学习到的结果要好于其他的。
总结一下,在这个部分主要是学习奖励函数,之后会利用这个奖励函数来训练强化学习模型。
第三部分 强化学习训练
在第三步中,主要使用奖励模型去训练强化学习模型PPO。具体而言,首先我们会产生一个和之前不同的,在图中的例子是“写一个关于水獭的故事”。之后PPO模型会根据写出一个回答,然后奖励模型会打分,PPO之后会根据这个奖励分数,来更新自己的网络权重。整体的训练过程有了一丝对抗学习的意味。在之后会逐渐的把对话机器人训练的更加成熟。
图3:训练第一部分。
以上就是训练的过程,我们再次见证了强化学习的伟大,它能够在数据很稀少的情况下,不断的学习,直到更新出满意的模型为止。
接下来我们讨论几个有意思的话题:
第一点,问题的生成很重要,这点会直接决定后期强化学习的内容,如果问题的生成只是围绕着感情聊天等等,那么势必不会学习出那么多的功能,所以需要研究人员很好的从知识问答数据中进行采样。
第二点来说,奖励函数往往决定模型的上限,直接决定对话机器人的天花板在哪里,所以训练一个好的奖励模型对于来说特别重要。举个例子,如果奖励模型很弱,只要能给出回答就是满分,那么可能会非常差。
你好,我是一个毕业于南加州大学的算法工程师,就职于大厂,个人喜好极其广泛,擅长深度思考,喜欢思维锻炼。公众号(船长尼莫)旨在和读者共同进步,会有原创的算法知识分享、工作求职分享、学者访谈、关于互联网的深度思考、读书分享等等。评论区可以和我积极互动,也可以写下你想看的内容~,点赞关注下吧!