探索OpenAI 企业级AI Alignment的规范,学习资料汇总

207 阅读4分钟

众所周知,transformer以及llama 开源内容全部在强调deep learning,无数的大佬都花时间在优化transformer 及其衍生模型上做了大量的工作,但如何保证产出的回答是符合人类预期呢,这块的研究和进展则不是那么被人重视。但对于企业的合规,以及确保AI的答案不会威胁人类的层面上,RLHF(Reinforcement Learning from Human Feedback)和deep learning 一样重要。

经过这段时间的研究和学习,我决定一边探索OpenAI的实现方案,一边持续记录输出自己的学习心得。并期待阅读到我的文档的大佬能积极分享一些更新的文档。

前置知识

快速浏览Berkeley deeplearning公开课,简单了解神经网络,深度学习,梯度下降等基本概念。 因为transformer 以及 llama 等模型已经非常复杂了,站在巨人的肩膀上学习,也不太可能从头去搭建一个深度学习模型,未来的重点会放在如何调整模型以及AI对齐。

AI Alignment(AI 对齐)

AI alignment 意思是让人工智能的目标和人类的目标保持一致。举个简单的例子,如果你让一个机器人帮你整理房间,但它却把房间弄得更乱了,那就是AI没有对齐你想要的目标。AI对齐就是为了避免这种情况,确保AI系统做的事情是我们希望它做的。

RLHF(Reinforcement Learning from Human Feedback)

RFHF指的是从人类反馈中进行强化学习。简而言之,这种方法让AI通过人类的反馈来学习什么是好的行为,什么是不好的行为。比如,你让AI学会玩一个游戏,你可以给它看几个游戏片段,然后告诉它哪个片段表现得更好。AI通过这种人类反馈来调整自己的策略,逐渐学会如何更好地完成任务。

OpenAI Spinning Up,初级入门学习

OpenAI Spinning Up 是一个适合初学者学习强化学习(RL)的开源项目。它提供了一系列教程、示例代码和算法实现,让你可以从零开始学习如何用代码实现强化学习算法。

Spinning Up 能干什么:

  1. 学习基础知识:通过详细的教程,了解强化学习的基本概念和原理。
  2. 算法实现:提供了几种常见的强化学习算法的代码实现,你可以直接运行这些代码,看看这些算法是如何工作的。
  3. 练习与实践:提供了一些练习题和示例,让你可以动手实践,巩固所学知识。
  4. 研究与开发:对于有兴趣深入研究的同学,Spinning Up 是一个很好的起点,你可以在此基础上进一步开发和实验。

简单来说,Spinning Up 就是一个为想学习强化学习的人提供的入门工具包,包含了学习资料和实践代码。 OpenAI 提供了一些强大的强化学习基准实现,涵盖各种算法的实现以及与 RLHF 相关的实验代码。以下是一些主要的资源和实现:

OpenAI Baselines,探索企业级的实现

OpenAI Baselines 是 OpenAI 提供的一个强化学习库,包含了多种强化学习算法的实现,广泛应用于研究和实际项目中。以下是一些主要的算法:

  1. Deep Q-Network (DQN) :

    • 基于值函数的强化学习算法,用于解决离散动作空间的任务。
    • 实现地址:deepq
  2. Proximal Policy Optimization (PPO) :

    • 基于策略梯度的强化学习算法,结合了策略优化和信任域方法。
    • 实现地址:ppo2
  3. Trust Region Policy Optimization (TRPO) :

    • 另一种基于策略梯度的强化学习算法,专注于稳定的策略更新。
    • 实现地址:trpo_mpi
  4. Actor-Critic using Kronecker-Factored Trust Region (ACKTR) :

    • 结合了演员-评论家模型和 Kronecker-factored 近似卷积策略优化方法。
    • 实现地址:acktr
  5. A2C (Advantage Actor-Critic) :

    • 一个同步的策略梯度方法,使用优势函数来减少方差。
    • 实现地址:a2c
  6. Hindsight Experience Replay (HER) :

    • 一种用于稀疏奖励环境的策略,通过在回放时修改目标来提高样本效率。
    • 实现地址:her

Deep Reinforcement Learning from Human Preferences

OpenAI 在 "Deep Reinforcement Learning from Human Preferences" 论文中提出了通过人类反馈进行深度强化学习的方法。这个项目提供了相关的实验代码,展示了如何通过人类反馈来训练强化学习模型。

  • 实现地址:deep_rl_from_human_preferences

  • 该项目包含以下关键组件:

    • 人类反馈的收集:通过人类比较两个视频片段来获取偏好反馈。
    • 偏好模型的训练:使用收集到的人类反馈训练偏好模型。
    • 强化学习训练:使用偏好模型生成的奖励信号来训练强化学习代理。

以上这些学习资料看似非常繁杂,实际上都是强化学习在大语言模型对齐中的应用。 对于每一个可能的方案我都会列出实现的代码,并作为学习总结分享出来。