基于人类反馈的强化学习(RLHF)

1. 监督微调(SFT):为了训练语言模型(LM)掌握基本的任务执行技能,首先需要构建一个监督数据集。这个数据集包含了指令性的输入提示和期望的输出结果,通过这些数据对LM进行精细调整。为了保证任务种类的广泛性,这些输入提示和输出结果需由专业标注人员针对特定任务量身定制。例如,InstructGPT项目中,标注人员会创造性地编写输入提示(比如,“给出五个重燃职业激情的建议”)和对应的输出,覆盖了开放式问答、创意思考、对话和文本重写等多种创造性任务。值得注意的是,在某些情况下,这一步骤可能不是必需的。

2. 奖励模型训练(RM):此阶段的目标是利用人类反馈数据来训练一个奖励模型(RM)。具体操作是将样本提示输入到LM中,产生一系列输出文本,随后请标注人员对这些输入-输出组合进行偏好评价。这种评价可以通过不同的方法实施,但排序标注是一种常见的做法,因为它有助于减少标注者之间的评价差异。最终目的是训练出一个能够预测人类偏好输出的RM。以InstructGPT为例,标注人员会将模型生成的输出按照质量从高到低排序,然后基于这些排名训练GPT-3(一个拥有600亿参数的模型)来预测这些排名。

3. 强化学习微调(RL):在最后一个阶段,LM的对齐调整被视为一个强化学习问题。在这个框架下,策略由预训练的语言模型(PLM)提供,它接受提示作为输入并产生输出文本。行动空间是LM的词汇表,状态是当前生成的token序列,而奖励则由RM决定。为了防止LM在训练过程中大幅偏离初始模型,奖励函数通常会包含一个惩罚项。例如,在InstructGPT项目中,使用PPO算法训练LM时,会计算LM当前输出与初始输出之间的KL散度作为惩罚项。通过反复迭代奖励模型训练和强化学习调整这两个步骤,可以更有效地使语言模型与人类偏好保持一致。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-29 16:20:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-29 16:20:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-29 16:20:02       82 阅读
  4. Python语言-面向对象

    2023-12-29 16:20:02       91 阅读

热门阅读

  1. 东边日出西边雨

    2023-12-29 16:20:02       51 阅读
  2. 不停止业务的情况下优化 Elasticsearch Reindex

    2023-12-29 16:20:02       60 阅读
  3. 前端vue部署nginx多端口文件配置

    2023-12-29 16:20:02       50 阅读
  4. Redis 大/热Key故障处理流程

    2023-12-29 16:20:02       61 阅读
  5. SpringBoot--自定义starter

    2023-12-29 16:20:02       49 阅读
  6. 工作纪实40-使用redis的几种姿势

    2023-12-29 16:20:02       58 阅读