diff --git a/docs/chapter6/7.2 奖励模型.md b/docs/chapter6/7.2 奖励模型.md deleted file mode 100644 index 785efe8..0000000 --- a/docs/chapter6/7.2 奖励模型.md +++ /dev/null @@ -1,45 +0,0 @@ -# 7.2 奖励模型 - -在自然语言处理领域,大语言模型(如Llama 系列、Qwen系列等)已经展现了强大的文本理解和生成能力。然而,这些预训练模型并不总是能直接满足特定的业务需求和人类价值观。为此,人们通常需要对预训练模型进行“指令微调”(Instruction Tuning),即向模型提供特定的指令(prompts)和示例,使其在对话、问答、文本生成等任务中表现得更符合人类期望。 - -在完成初步的指令微调后,我们还想要使模型的回答不仅正确,还能最大程度上满足人类的审美、价值观和安全标准。为此,引入了强化学习与人类反馈(Reinforcement Learning from Human Feedback, RLHF)的概念。在 RLHF 中,我们会先从人类标注者那里获得对模型回答的偏好(例如,给出多个模型回答,让人类标注者对它们进行排名),然后通过这些反馈来指导模型学习,从而不断提高模型生成内容与人类偏好的契合度。 - -为了在 RLHF 流程中自动对模型的回答进行“打分”(赋予奖励),我们需要构建一个专门的奖励模型(Reward Model)。这个奖励模型会根据人类标注的数据进行训练,并在实际部署中独立对模型输出进行自动评分,从而减少持续人工参与的成本和延迟。 - -## 7.2.1 数据集构建 - -在构建奖励模型(Reward Model)之前,我们首先需要准备高质量的人类反馈数据集。此数据集的核心目标是为每条给定的提示(prompt)提供多个候选回答(completion),并由人类标注者对这些回答进行细致的评定与排序。通过对回答的对比和筛选,我们得以为机器模型提供明确的参考标准,帮助其进一步学习在给定任务下如何生成更符合人类期望的输出。 - -可以按照以下步骤进行数据收集: - -1. 收集初始回答:首先,我们需要从一个已经过基本微调的“大模型”(往往是具有一定指令理解和生成能力的预训练模型)中,为一组精心设计的提示生成多条回答。这些回答将作为后续人类标注工作的基础。 - - -2. 人工标注与评估:拥有多条候选回答后,我们邀请专业标注人员或众包标注者对每条回答的质量进行评价。这些评估通常会基于一系列预先设计的评价标准,如回答的准确性、完整性、上下文相关性、语言流畅度以及是否遵循道德与安全准则。对不同回答的比较与排序帮助我们识别最佳和最差的回答,从而形成有价值的训练数据。 - -3. 数据格式化与整理:标注完成后,我们将数据进行整理与格式化,通常采用 JSON、CSV 或其他便于计算机处理的结构化数据格式。数据集中需明确标识每个问题(prompt)、其对应的多个回答(completions),以及人类标注者对这些回答的选择(如标记为 "chosen" 的最佳答案与 "rejected" 的较差答案)。这些标记信息可直接作为奖励模型学习的监督信号,使其在训练中自动倾向于生成高质量回答。 - -下面是一个简单的数据示例,其中展示了两个问题(question)及其对应的回答和人类评价结果。通过 "chosen" 与 "rejected" 字段的对比,我们可以直观地看出哪条回答更为优质。 - -```json -[ - { - "question": "Python中的列表是什么?", - "chosen": "Python中的列表是一种有序的可变容器,允许存储多个元素,并且可以通过索引访问。", - "rejected": "Python中的列表用于存储数据。" - }, - { - "question": "Python中的元组是什么?", - "chosen": "Python中的元组是一种有序的不可变容器,允许存储多个元素,并且一旦创建就不能修改。", - "rejected": "Python中的元组用于存储数据。" - } -] -``` - -在上述示例中,人类标注者认为 "chosen" 字段下的回答相对于对应的 "rejected" 回答在描述、准确性和信息量等方面都更为优质。例如,对于列表的定义,"chosen" 答复更清晰地解释了列表的特征(有序、可变、支持索引访问),而非仅仅停留在“用于存储数据”这种笼统描述。 - - -## 7.2.2 奖励模型训练 - -我们可以借助大模型强化学习框架 TRL(Transformer Reinforcement Learning)来训练奖励模型。TRL 是一个基于强化学习的训练框架,旨在通过人类反馈指导模型生成更符合人类期望的回答。在 TRL 中,我们会将奖励模型作为一个独立的组件,用于评估模型生成的回答,并根据评估结果给予奖励或惩罚。 -