大模型进阶微调篇(二):基于人类反馈的强化学习RLHF原理、优点介绍,但需要警惕LLMs的拍马屁行为

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: 本文探讨了基于人类反馈的强化学习(RLHF)方法的优缺点。作者指出,虽然RLHF能够使模型更好地满足用户需求,但也存在缺乏多样性、创新不足、偏好固化和难以适应动态变化等问题。文章通过具体实验和示例代码,详细解析了RLHF的工作原理,并强调了其在实际应用中的潜在风险。

最近用llm辅助干活越来越多,但是发现一点不太好的地方-LLM总能让我满意、让我觉得自豪、觉得有无限可能。然后引起了我的警觉,于是抽时间思考了一下,似乎一切都来自于其RLHF的训练方法。似乎它的目标,就是让使用者满意,因为我满意会点赞,不满意会给负反馈。这些过程进一步得到了强化,虽然为了商业成功这必不可少,但或许存在一定危机。于是就有了这片文章,只是一个初步的思考,后续可能还会写更多深入点的、或者进行相关的具体研究

1. 引言

在之前的一篇文章以定制化3B模型为例,各种微调方法对比-选LoRA还是PPO,所需显存内存资源为多少?浅谈了一下微调所需的资源,但缺少对于原理的讲述,本文将对该对基于人类反馈的强化学习相关研究的背景、方法、实验结果进行概述,及剖析其存在的优缺点。

强化学习(RL)的成功通常依赖于明确定义的奖励函数,但在实际中,许多任务的目标难以明确表达。例如,机器人执行家务、开车或跳跃等任务,很难通过手工设计奖励函数来描述其目标。因此,如何有效传达人类的目标成为一个重要挑战。

此外,随着深度学习和计算能力的进步,深度强化学习在许多高维度的任务中取得了显著进展。然而,缺乏有效的奖励信号仍然是一个主要的瓶颈,因此基于人类反馈的奖励学习在解决这些挑战中具有巨大潜力。

2. 一篇基于人类喜好的强化学习论文解读

这个章节主要介绍了论文 Deep reinforcement learning from human preferences 的部分成果。还有很多介绍RLHF论文,就不多说了,只是起到抛砖引玉的作用。

2.1 研究背景

作者提出通过人类反馈学习奖励函数。这种反馈基于人类对RL代理的行为片段的偏好比较,而不是通过给定明确的数值奖励。其优点在于减少了人类监督的成本,同时可以更好地应用于复杂的深度强化学习系统。这种方法可以避免手工定义复杂的奖励函数,从而更加高效且灵活地解决实际中的问题,尤其是在任务目标难以量化的情况下,通过人类反馈传达目标变得尤为重要。

2.2 实现过程

作者提出了一种从人类偏好中学习奖励函数的关键方法,并用该奖励函数来优化代理的行为。具体步骤如下:

  1. 生成代理行为片段:RL代理与环境交互,生成一系列行为轨迹片段。
  2. 人类提供偏好:人类对这些轨迹片段进行比较,选择更符合预期的行为片段。
  3. 学习奖励函数:利用人类反馈的数据,训练一个神经网络预测奖励函数。
  4. 优化策略:使用学习到的奖励函数,通过强化学习算法训练代理,使其逐步优化行为。

这种框架通过减少所需的反馈量,使得复杂任务的训练变得更加经济和实际可行。人类的偏好反馈为代理提供了一种更加灵活和丰富的信息源,相较于传统的数值奖励函数,这种方式更具普适性和人性化,能够更好地应对任务目标模糊的场景。

为了提高反馈的利用效率,作者还设计了采样策略,优先向人类呈现那些代理行为质量接近、难以区分的轨迹片段,以便更好地从人类反馈中获取有价值的信息。这种主动采样策略能够有效减少所需的人类反馈次数,从而降低训练成本。

2.3 实验结果

作者在模拟机器人任务和Atari游戏上验证了方法的有效性:

  • 模拟机器人任务:在MuJoCo环境中,实验表明仅需少量人类反馈,代理就能够执行复杂的任务,如翻跟头或单腿行走。通过人类的反馈,代理能够以更自然的方式完成任务,而不像传统RL中那样依赖于手工设计的奖励函数,导致行为可能过于机械或不符合人类期望。
  • Atari游戏:在多个游戏中,使用人类反馈的代理在没有明确奖励函数的情况下,能够接近或达到标准强化学习方法的效果。例如,在经典的Pong和Space Invaders等游戏中,基于人类偏好反馈的模型能够有效地学习游戏策略,并且在某些情况下甚至超过了传统的奖励函数驱动的模型。
  • 新行为学习:文章还展示了代理学习新行为的能力,例如成功学会了复杂的行为如连续翻跟头。通过人类的偏好反馈,代理不仅能够优化已有的行为,还能够探索并学习全新的行为方式,展示了较强的行为适应性和灵活性。

此外,实验还发现,人类的偏好反馈不仅有助于提高模型的表现,还能使得代理在复杂任务中展现出更多的人性化特征,例如避免明显的不安全动作或对环境产生负面影响的行为。

2.4 主要难点与挑战

  1. 反馈稀缺性:与传统RL方法需要大量的经验数据不同,这种方法通过减少人类反馈(<1%交互反馈)降低了监督成本。如何高效利用有限的反馈是一个核心难点。在实验中,研究者通过主动采样的方法来选择那些最有可能为模型学习带来价值的行为片段,从而最大化地利用每一次人类反馈。

  2. 奖励函数的非线性与非平稳性:由于代理行为的变化,奖励函数本身是动态的,这给RL训练增加了挑战。为了应对这一问题,作者引入了异步学习和集成模型的训练方法,以确保奖励函数在动态变化的情况下仍能保持稳定和有效。奖励函数的学习过程和策略优化过程交替进行,这使得模型能够持续地更新奖励函数以反映代理的最新行为。

  3. 与人类偏好的一致性:不同任务中的奖励函数设计复杂,人类反馈可能导致模型行为偏离预期目标。如何处理人类偏好中的不一致性也是一大技术难点。为了解决这一问题,作者引入了对反馈不确定性的建模,以处理可能存在的偏好不一致性,使得模型在面对矛盾反馈时能够更加稳健地学习。

3. 实现示例代码

下面是一个实现的示例代码,利用 input 让用户对代理行为进行选择,从而提供人类偏好反馈:

import random

def generate_trajectory():
    # 模拟生成行为轨迹片段,这里用简单字符串表示
    actions = ["向前移动", "向左转", "向右转", "跳跃"]
    return [random.choice(actions) for _ in range(5)]

def human_feedback(trajectory1, trajectory2):
    print("请对以下两个行为轨迹片段进行选择:")
    print("1: ", trajectory1)
    print("2: ", trajectory2)
    choice = input("请选择您更偏好的轨迹(输入1或2):")
    while choice not in ["1", "2"]:
        choice = input("无效输入,请输入1或2:")
    return int(choice)

def main():
    for _ in range(5):  # 假设进行5次人类反馈
        trajectory1 = generate_trajectory()
        trajectory2 = generate_trajectory()
        choice = human_feedback(trajectory1, trajectory2)
        if choice == 1:
            print("您选择了轨迹1\n")
        else:
            print("您选择了轨迹2\n")

if __name__ == "__main__":
    main()

在这个示例中,程序生成了两个行为轨迹片段,并通过 input 函数让用户选择他们更偏好的轨迹。通过这样的方式,人类偏好被收集用于后续的奖励函数学习和策略优化。

4. 可能存在的致命问题

尽管基于人类反馈的强化学习方法在很多方面具有优势,但它也存在一些致命问题,这些问题源于任何事物的两面性。
可能带来以下问题:

  1. 缺乏全面性和多样性:由于模型倾向于迎合人类偏好,它可能只呈现那些显得更加“正确”或“被期望”的行为,忽略了其他可能的解决方案或多样化的选择。这样可能导致模型在复杂的环境中缺乏探索精神,无法发现潜在的最佳策略。

  2. 风险规避与创新不足:由于模型的目标是最大化人类的满意度,它可能会回避高风险但有潜在高回报的行为,倾向于选择安全且稳妥的路径。这种“讨好”式的行为导致创新不足,限制了模型在面对不确定性和挑战时的表现。

  3. 偏好固化:人类的偏好本身是主观且可能存在偏见的,如果模型过度依赖于人类的反馈,可能会将这些偏见固化到系统中,从而使得模型的行为表现缺乏客观性与公平性。例如,在涉及伦理或道德决策时,模型可能无法提供平衡和多方面的视角。

  4. 难以适应动态变化的需求:人类的偏好是不断变化的,然而通过历史反馈学习的模型可能难以适应这种动态变化。这就导致了在环境和需求发生变化时,模型的表现可能滞后,无法迅速调整和适应新的目标或标准。

基于人类反馈的大模型倾向于给出让对方满意的答案,这种行为类似于“拍马屁”,即只陈述让对方满意的观点或赞同对方的正确点,而不会主动进行双面阐述,除非你特意指出。

5. 总结

利用人类偏好反馈可以有效地训练复杂的深度强化学习模型,且在某些任务上甚至能超过传统RL算法的效果。未来的研究可能会进一步提高反馈利用的效率,并探索更多没有明确奖励信号的实际应用场景。

但是也需要警惕风险,不要轻易让大模型帮忙做决策,除非明确指出了要求其两面性的分析。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
3月前
|
自然语言处理
评估数据集CGoDial问题之半监督终身语言学习是重要的问题如何解决
评估数据集CGoDial问题之半监督终身语言学习是重要的问题如何解决
|
4月前
|
机器学习/深度学习
大模型概念问题之什么是人类反馈信号强化学习(RLHF)
大模型概念问题之什么是人类反馈信号强化学习(RLHF)
|
4月前
|
自然语言处理 程序员
大模型问题之大模型与之前的NLP技术有什么显著差别
大模型问题之大模型与之前的NLP技术有什么显著差别
|
5月前
|
机器学习/深度学习 人工智能 算法
【机器学习】RLHF:在线方法与离线算法在大模型语言模型校准中的博弈
【机器学习】RLHF:在线方法与离线算法在大模型语言模型校准中的博弈
334 6
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
【大模型】在使用大语言模型的过程中,我们需要考虑到哪些道德问题?
【5月更文挑战第5天】【大模型】在使用大语言模型的过程中,我们需要考虑到哪些道德问题?
【大模型】在使用大语言模型的过程中,我们需要考虑到哪些道德问题?
|
6月前
微调真的能让LLM学到新东西吗:引入新知识可能让模型产生更多的幻觉
研究表明,大型语言模型通过微调获取新知识可能引发幻觉,降低性能,尤其是当处理未知事实时。模型倾向于利用已有知识而非真正学习新知识。已知事实能提升性能,而未知事实则在后期微调中损害性能。使用“我不知道”来标记未知知识可减轻负面影响。最佳结果来自处理可能已知的事实,而非极其知名的事实。微调对模型知识的更新存在风险,需谨慎处理新旧知识的融合问题。建议使用RAG和策略来克服微调限制。[阅读完整论文以了解更多](https://avoid.overfit.cn/post/21daac41f99042be804b381a6a9700fb)。
84 3
|
5月前
|
人工智能 自然语言处理 机器人
大模型训练的艺术:从预训练到增强学习的四阶段之旅
大模型训练的艺术:从预训练到增强学习的四阶段之旅
|
5月前
|
机器学习/深度学习 人工智能 监控
【机器学习】大模型驱动少样本学习在图像识别中的应用
【机器学习】大模型驱动少样本学习在图像识别中的应用
133 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
论文介绍:自我对弈微调——将弱语言模型转化为强语言模型的新方法
【5月更文挑战第17天】论文《自我对弈微调》提出了一种新方法,名为SPIN,用于在无需额外人工标注数据的情况下增强大型语言模型(LLM)。SPIN利用自我对弈机制,让模型通过与自身历史版本交互生成自我训练数据,实现性能提升。该方法在多个基准数据集上表现出色,超越了传统监督微调和直接偏好优化。SPIN还为生成对抗网络研究提供了新思路,展示了自我对弈在强化学习和深度学习中的潜力。实验表明,SPIN有效提升了模型性能,为未来研究奠定了基础。[[arxiv](https://arxiv.org/abs/2401.01335v1)]
67 3
|
6月前
|
机器学习/深度学习 数据采集 人工智能
深度学习中的大模型「幻觉」问题:解析、原因及未来展望
深度学习中的大模型「幻觉」问题:解析、原因及未来展望

热门文章

最新文章