什么是内部对齐?
作者:Jan Leike
时间:2022年5月9日
用机器学习的语言解释
https://aligned.substack.com/p/inner-alignment
一个几乎正式的定义
让我们使用深度元强化学习(deep meta-reinforcement learning,也被称为RL²)的设置:在这个设置中,有两个不同层次的RL问题,"外部" 和 "内部" RL问题。内部RL问题可以是任何一组任务,每个任务都涉及学会一些新的技能,例如在新环境中导航或玩新游戏。外部RL问题是要学会在内部RL问题分布上进行强化学习--因此称为 "元RL"(meta-RL)。
为了解决元RL问题,我们在 "外部回合" 上训练 "外部策略",其中每个外部回合是新的内部RL问题(新任务)。外部策略在 "内部回合" 中与内部RL问题互动,同时在内部回合的边界上保持记忆状态。使用来自内部RL问题的奖励(对新任务的学习效果如何),我们更新外部策略,以更好地解决内部RL问题。随着时间的推移,它为内部RL问题学会了一种RL算法。

内部对齐
为了正式形式化内部对齐问题,我们将元RL设置扩展到在测试时没有奖励,只在训练时有奖励的情况。称为 "无奖励元RL" (rewardless meta-RL)设置。这起初听起来可能遥不可及,但事实并非如此;我很快就会给出例子。
为了解决无奖励元RL问题,需要稍微修改训练设置,因为内部RL问题现在不会在每个(内部)时间步提供奖励(因为奖励在测试时不可用)。相反,我们只在与内部RL问题的互动中提供观察反馈。在一个外部事件结束时,通过使用训练时奖励函数计算(折现)奖励的总和,得到外部策略的训练信号。
在这种情况下,外部策略需要领悟与奖励函数的观察相关性,并学会在内部事件之间相应地调整其行为。换句话说,外部策略只有在学会了训练时奖励函数的表示后才能做得好。此外,当外部策略是神经网络时,这种表示通常是 "隐性" 的,即可能不容易访问或检查。

现在我们有了说明内部未对齐问题的所有要素。
如果外部策略隐式表示的奖励函数在测试时与内部RL问题上的期望奖励函数不匹配,那么外部策略就会存在内部未对齐。
虽然明确地对新的内部RL问题进行采样似乎有点不自然,但许多复杂的任务实际上看起来很像RL问题。(RL框架是如此的普遍!) 特别是,在我们并不真正认为任务是RL问题的情况下,内部对齐问题将是最令人惊讶的。在这些情况下,我们并没有真正意识到是在元RL设置中,因此可能没有考虑到外部策略可能隐式学习的奖励函数。
实例
一个玩具例子
让我们从一个玩具例子开始,它受到上面提到的元RL论文的启发(类似于不完全监督问题,partial monitoring problem)。我们训练一个神经网络,通过从 "无奖励" 多臂老虎机问题的分布中采样内部RL问题来学习外部策略。这些老虎机问题,不是返回奖励,而是返回一个观察向量o∈Rⁿ,这样(未观察到的)训练时的奖励是r=f(o),针对一些固定的函数f。为了做得好,外部策略需要近似f,这样它才可以解决新的无奖励多臂老虎机问题。
为了模拟测试时的分布变化,从一个稍有不同的无奖励多臂老虎机分布中采样,除了观察向量o的分布不同外,其工作原理是相同的。由于函数f是由神经网络近似的,它在训练时使用的输入域之外的泛化可能很差,因此在测试时对f的近似很差。换句话说,在测试时,外部策略对函数f的隐性学习表示与真正的f不一致。这意味着外部策略不会很好地解决问题,因为它在测试时对不一致的奖励函数进行了优化。
一个具体的例子
我所看到的关于内部对齐问题的最好的经验性展示是来自Koch和Langosco等人(2021)。他们在一系列二维迷宫游戏上用深度RL训练了外部策略,其奖励与到达迷宫中的宝石有关。在训练时,宝石总是黄色的,但在测试时,他们同时给出一颗黄星和一颗红宝石。通过迫使外部策略在它们之间做出选择,他们测试了它如何泛化任务的目标。有趣的是,外部策略始终选择黄星,偏向于颜色的泛化而非形状。因此,外部策略在收集宝石的目标方面存在着内部未对齐的问题。
从某种程度上说,期望策略知道它应该以哪种方式泛化不合理,但这不是重点。问题不在于泛化不容易,而在于泛化的失败会导致策略为错误的目标优化。
语言模型的内部未对齐
大型语言模型表现出著名的上下文学习(in-context learning):它们从输入文本中获取在训练集中未曾出现过的新模式。这导致了 "少样本提示"(few-shot prompting)的流行,在这种情况下,用户向语言模型指定新任务,给出关于如何执行该任务的示例清单。
我们可以把 "少样本提示" 看作是内部RL问题和内部回合。为了做好少样本提示,语言模型理解任务的目标,然后努力去实现它是很有用的。例如,如果任务可以从规划中受益,那么模型应该尝试朝着它对目标的理解进行规划。
假设使用RL来微调语言模型,使其更善于遵循少样本提示。现在我们处于无回报的元RL设置中,因此可能会看到内部未对齐:经过微调的语言模型在测试时可能会误解少样本提示的目标,然后在写回应时为错误的目标做计划。
另一个例子。假设我们训练语言模型,从自然语言描述的规则中学习玩棋盘游戏。每回合画一个新的棋盘游戏,即内部RL问题,并让语言模型与固定的对手玩几局。经过训练,语言模型学会了一个外部策略,可以玩以前未知的棋盘游戏。为了成功,它需要从提供的规则描述中提取游戏的目标,并计划其动作以实现这一目标。
然而,外部策略提取目标的机制对我们来说是不可检查的。在测试时,这个策略可能与人类玩家一起游戏,这些人类玩家编造了他们想玩的新游戏。如果他们以我们的策略不熟悉的方式描述一个新游戏(例如使用不同的语言),该策略可能误解了游戏的目标。因此,即使它的计划非常好,它的得分仍然可能很低。
自动诱导的分布转变
值得注意的是,内部RL问题分布的转变不需要来自外部,也可以由外部策略本身引起。这是由于自动诱导的分布转变:任何与环境互动的RL智能体被激励去改变它自己的输入状态分布(它遇到的状态分布):因为奖励是智能体访问的状态的函数,为了获得更多的奖励,智能体必须增加访问更高奖励状态的概率。
经典的例子是推荐系统,它通过改变平台用户的分布,使其向自然参与度更高的用户倾斜,从而提高平台上的参与度。
自动诱导的分布转变会导致内部对齐问题:外部策略最终可能会通过它对这些内部RL问题的反应方式直接导致测试时内部RL问题的分布变化,从而带来它自己的内部未对齐。
例如,我们的棋牌游戏策略可以通过使用过度的有毒语言来改变其用户群,从而使新的用户群倾向于选择他们想玩的不同种类的棋牌游戏。这种不同的棋牌游戏分布可能会有政策所误解的获胜条件。因此,该政策造成了其自身的内在错位。
解决内部对齐的路径
我认为可以用简单的技术来解决这里描述的内部对齐问题。其核心思想是,只要在内部RL问题的新分布上有一个我们信任的奖励函数,就可以在这个新分布上重新训练外部策略。换句话说:
可以将内部对齐问题归约为要实现 "外部" 对齐,已经需要解决的问题。
需要可靠的方法来评估策略在做什么,这样才可以在测试时为外部策略提供训练信号。
需要检测分布的变化,这样才知道是否可以相信策略和奖励函数,还是需要调整它们。
在高风险的环境中,需要安全的探索,这样,在更新内部RL问题的新(和未知)分布中,外部策略可以避免不安全状态。
这些解决方案需要非常谨慎地应用。例如,当使用从人类反馈中训练出来的奖励模型时,我们需要在新分布上足够快地更新它。特别是,自动诱导的分布变化可能比奖励模型的更新速度更快。过去根据人类反馈进行的RL工作表明,这种奖励函数的更新是至关重要的:如果底层任务分布发生变化,而我们不更新奖励模型,智能体将过拟合奖励函数。例如,这里Atari游戏已经说明:

我们该何去何从?
对于内部对齐的研究,我认为最重要的里程碑是在经验上表现出令机器学习从业者惊讶的失败模式。我真的不认为这篇文章中所描述的失败模式会让那些从事过元RL的人感到非常惊讶。其中一些具体的建议可能有希望,但我不知道它们是否已经被推进了。
感谢Joel Lehman、Katarina Slama、Evan Hubinger、Beth Barnes、Richard Ngo和William Saunders对本帖的反馈。