通用AI模型的未来:深度强化学习(deep reinforcement learning)

发布时间:2023-05-08 07:00

摘要

随着深度学习领域的快速发展,AI模型逐渐拥有了接近甚至超越人类的能力。例如在人脸识别,目标检测,语义分析等应用中,AI模型已取得显著的进展。然而,在某些领域中,AI模型涌现出其拥有超越人类的潜力。这主要包括AlphaGo Zero围棋),AlphaZero国际象棋),甚至还有应用在拥有复杂规则和系统的电竞游戏中的AlphaStar(星际争霸2),OpenAI-Five(DOTA 2)等AI模型。其背后的核心技术为深度强化学习(deep reinforcement learning)算法,利用AI在几乎没有人类干预的环境中学习产生经验数据后进行模型训练,并重复整个过程来迭代。其能力也从一开始的随机输出发展到如今在许多任务上超越了人类。

 

随着ChatGPT的出现,人们看到了GPT类自回归(auto-regressive)模型在语言领域上的能力已经接近甚至可能超越人类,这为GPT类语言模型铺垫了一条可能成为通用人工智能的路。ChatGPT成功的重要一步是发掘GPT-3预训练模型的潜力,使其理解人类指令并能输出与人类价值观对齐的回答。简单来讲就是让AI模型能够通过判断文本背后所蕴含的意图来做出回答,这背后最关键的技术是深度强化学习算法。

 

本文将从偏上层的角度,为读者提供一种理解深度强化学习的精简概念,以及训练ChatGPT类模型的强化学习算法原理。

 

引言

 

自从谷歌在2017年提出了transformer模型结构后[1],深度学习领域就开始了新的辉煌时代。Transformer的成功核心在于模型训练阶段中能高效并行处理文本序列的同时能在推理时拥有比当时现有模型更好的效果。Transformer模型被推出的初衷是解决语言领域的问题,然而随着AI领域的快速发展,基于transformer结构的模型陆续在各种领域达到最好(state of the art)的效果。例如,在视觉领域中超越了基于卷积网络的模型。

 

Transformer的主要结构为编码器(encoder)+解码器(decoder)的结构,通过编码器来理解输入数据,再使用解码器来逐步生成新的数据。在2018年,OpenAI提出了GPT(generative pre-trained transformer)的概念[2],通过只使用transformer的解码器来预测下一个单词。其核心思想为通过海量数据的预训练(pre-training),仅使用解码器(decoder-only)结构就能几乎完全实现编码器-解码器的效果。这样做的好处是结构得到了简化,在固定的成本下,去除编码器有助于让模型的参数规模更大,从而增强模型的文字生成能力。事实也的确如此,经过海量文本数据预训练的GPT模型能很好地生成文字,得到让人类无法辨真假的句子。

 

然而预训练好的GPT模型只是能生成文字,还无法做到与人类对话,因为它并不能理解单纯的问题。早期的解决方案无异乎两种。首先是使用对话数据对模型进行微调(fine-tuning),不过这里需要对模型重新训练来更新参数,这往往依赖大量计算资源以及时间。另一种方法则是通过巧妙的提示设计(prompt engineering),在给模型输入的提示中下功夫,使得模型能理解我们想要它做的事,包括在提示中先举几个例子后让模型回答类似的问题(few-shot learning)等技巧。然而,光是使用以上提到的两种方法所产生的效果都还没能达到人们的预期。直到2022年末ChaGPT的问世,才有了更好的方法,在新方法的助力下ChatGPT的语言生成的质量震惊了许多人。其背后的秘诀其实在同年五月份公布的InstructGPT文章中已有相关的描述[3],核心的技术就是深度强化学习算法。

 

深度强化学习的应用
 

早在2016年,DeepMind就推出了一种基于监督学习和强化学习的AI模型 - AlphaGO[4]。该模型以4:1的成绩击败了当年世界围棋冠军李世石,震惊了全世界。一年后,DeepMind推出了AlphaGo Zero[5]。它在AlphaGo的基础上去除了所有人类监督学习的部分,让AI自己与自己对抗,从零开始学习围棋,在这个过程中摸索出一些人类无法理解和想象的新玩法。这种零人工干预所训练好的AlphaGo Zero模型在与之前击败世界冠军的AlphaGo进行围棋对战中甚至得到了100:0的惊人成绩!其拥有的围棋水平已让人类无法企及。

 

类似的例子还有2019年DeepMind公布的AlphaStar模型[6],在星际争霸2中三个不同种族(有着截然不同的玩法)都获得了Grandmaster(天梯中最高的评分)的成绩,超越了99.8%的人类玩家。同年,OpenAI也推出了OpenFive模型[7],在DOTA 2(AI控制5个角色与5个人类玩家对抗)这类需要队友之间配合的电竞游戏中击败了当年的世界冠军Team OG。
 

在2022年末,DeepMind发表了AlphaTensor模型的文章[8],通过使用深度强化学习来减少矩阵与矩阵相乘时的标量乘法次数,从而使整体的矩阵乘计算效率在底层硬件中能被提升。其中,AlphaTensor所推导出的矩阵乘算法要比人类自己推导出的公式不仅周期更短且效果更好。近期使用深度强化学习应用在科学计算领域的工作还有从观测数据中找到具有实际物理意义(例如遵守能量守恒定律)的方程[9]。

 

OpenAI在2022年提出的InstructGPT文章中通过使用深度强化学习让GPT-3这类语言模型拥有了近乎人类对话的能力,并将这项技术应用在了GPT-3.5系列模型后,诞生了ChatGPT这个让世人震撼的AI模型。

 

这一系列的成功案例让科研人员逐渐意识到强化学习拥有能让AI模型超越人类的潜力。与其使用人类生成的数据来训练AI模型,不如让AI根据人类的数据,自己去探索寻找最优的路径(trajectory)来产生数据训练自己,因为这么做不仅能产生更多的数据,而且还能找到人类很难发现的新的解决方法。

 

深度强化学习的基本理念
 

强化学习中最重要的两个概念为智能体(agent)和能让其互动的环境(environment)。举个简单的例子,智能体可以是下围棋的AI模型,环境则是围棋的规则和对手下的棋。当智能体做出了一个动作(例如在棋盘的某个位置下一颗棋子),环境会给出一个反馈。这个反馈可能是立刻获得一些奖励(reward),也可能在当前时刻什么都不会发生,但是会影响未来得到的奖励。但是如果智能体没有得到即时的奖励(例如围棋只有在胜负已分的情况下会给出奖励),这会导致其很难判断接下来应该做出哪些动作。因此,通常会有一个价值(value)模型来判断当前状态(例如当前的棋谱)距离下一个奖励(胜利)还有多远,用来帮助智能体学习最佳的奖励路径。在深度强化学习中,智能体做出某个动作的策略(policy)由AI模型来决定。同样,价值模型也通常是AI模型。

 

深度强化学习与传统AI模型训练的不同之处展示在图1里。举一个不严谨但很接地气的比喻,传统模型训练类似通过大量读书来学习理论知识,而强化学习则是通过不断地实践来学习经验知识。通常这两种不同的训练方式可以混合使用来达到更好的效果,例如ChatGPT。这也符合我们通常的认知:通过先读书学习再将学到的知识应用到对应的工作中后积累经验成为领域的专家。然而在一些场景中,只使用强化学习却可达到最好的效果,例如称霸围棋界的AlphaGo Zero。这种方式通常更适合纯计算的场景(例如下围棋),因为人类在这方面的先验知识通常并非最优解。

 

 

图1:比较两种不同的训练方式。
 

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

ChatGPT的成功离不开它背后的训练方式,其整体流程总共分为三步。其中前两步使用了传统的模型训练方式,而第三步也是最关键的一步则是利用了深度强化学习。不同于围棋这类本身环境定义明确(有显示的规则和与对手互动)的场景,在文字生成的场景中,环境没有一个准确的定义。因此ChatGPT使用了额外的AI模型来创造一个环境,用于给生成文字的AI模型打分。具体可分为三步(图2):

 

1)首先是监督微调模型(SFT)的训练,通过学习人类手工补全的提示得到的回答来理解人类指令(自回归训练);

 

2)其次是奖励模型(RM)的训练,使用不同方式生成多个回答(4-9个),再让人类根据回答的质量对其进行排序,之后RM模型学习每一个问题中人类更倾向的一个回答(放大每一对回答中两者之间的分数差距);

 

3)最后是强化学习模型(RL)的训练,使用了Actor-Critic的形式来实现强化学习的算法,其中Actor是执行策略(生成哪些文字)的AI模型也是最终训练好的ChatGPT,Critic则是给Actor生成的内容进行一个价值预测(预判回答得好不好),具体真实得到的奖励(回答得好不好)是由第二步训练好的RM模型给出。这里Actor模型是由SFT模型初始化得来,Critic模型则是由RM模型初始化得来。此外,SFT模型本身也会作为约束来限制Actor模型参数更新过大造成训练不稳定的问题。

 

 

 

图2:InstructGPT/ChatGPT的整体训练流程。

 

强化学习算法
 

关于具体的强化学习算法,ChatGPT使用了OpenAI自己在2017年提出的PPO算法[10]。抛开许多算法细节和变种,其核心的思想是通过使用优势(advantange)预估来更新Actor模型,以及回报(return)来更新Critic模型。具体算法为首先在探索阶段(roll-out phase),Actor模型与RM模型互动后产生奖励,并且由Critic模型来判断当前Actor模型输出的句子的价值,从而获得优势和回报。

 

 这里V是Critic模型给出的价值,  T是最大步数(最长生成多少字), 为取值于(0,1]的折扣系数, 

分别指的是在第t步的Actor模型给出的状态(生成的句子),RM模型给出的状态奖励(句子的得分),回报(当前句子补全以及未来每一步补全的得分求和),优势(预期价值与真实回报的差异,可以想象成做一个动作是否会带来收益,毕竟奖励是由动作造成的环境反馈产生的)。这些数据将会被保存用于接下来的训练阶段(trainig phase)。在Actor和Critic模型训练阶段中,他们对应要学习损失函数为

 这里是根据当前句子生成的文字,  分别为Actor模型和SFT模型对于不同文字的生成概率。这里 为Actor模型的网络参数,会根据优势来调整梯度的更新方向;为Critic模型的网络参数,会根据价值和回报的差异来调整梯度的更新方向。当Actor和Critic模型的参数更新后,会回到探索阶段再次生成新的回报和优势估计,整个过程会一直迭代直至Actor模型和Critic模型收敛。

总结
 

因篇幅有限,这里我们略过了许多PPO算法细节的描述,例如损失函数裁剪(clipping),Kullback–Leibler(KL)正则化,预训练梯度等方法,但这些也都是能成功训练ChatGPT的关键。此外,因为InstructGPT/ChatGPT的代码并未开源,因此许多细节的实现都会有多种方案。例如,目前比较热门的PPO训练ChatGPT类模型的框架是ColossalAI-Chat[11]和DeepSpeed-Chat[12],DeepSpeed-Chat的强化学习训练实现基于TRLX框架[13]使用了多步文字生成来得到回报和优势估计,并只使用了最后一个字的得分作为奖励,而ColossalAI-Chat则使用了一步生成的方式,并且奖励是对整个生成的句子的平均得出。这些框架层面的实现差异有可能会造成不同基础模型和超参配置下PPO强化学习训练最终效果的不同。

 

目前大语言模型的深度强化学习训练还处于早期科研阶段,其中OpenAI处在领先的位置。然而随着该领域的高速发展,众多开源项目的出现,以及开源社区的持续输出贡献,相信在不远的将来,人人都可训练出为自己量身定做的ChatGPT。此外,我们也期待未来深度强化学习和类似的研究能够使AI模型成功涌现出真正的通用人工智能。

 

参考文献

[1] Austin Derrow-Pinion, Jennifer She, David Wong, et al. ETA Predictionwith Graph Neural Networks in Google Maps. 2021

[1] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017).

[2] Radford, Alec, et al. "Improving language understanding by generative pre-training." (2018).

[3] Ouyang, Long, et al. "Training language models to follow instructions with human feedback." Advances in Neural Information Processing Systems 35 (2022): 27730-27744.

[4] Silver, David, et al. "Mastering the game of Go with deep neural networks and tree search." nature 529.7587 (2016): 484-489.

[5] Silver, David, et al. "Mastering the game of go without human knowledge." nature 550.7676 (2017): 354-359.

[6] Vinyals, Oriol, et al. "Grandmaster level in StarCraft II using multi-agent reinforcement learning." Nature 575.7782 (2019): 350-354.

[7] Berner, Christopher, et al. "Dota 2 with large scale deep reinforcement learning." arXiv preprint arXiv:1912.06680 (2019).

[8] Fawzi, Alhussein, et al. "Discovering faster matrix multiplication algorithms with reinforcement learning." Nature 610.7930 (2022): 47-53.

[9] Sun, Fangzheng, et al. "Symbolic physics learner: Discovering governing equations via Monte Carlo tree search." arXiv preprint arXiv:2205.13134 (2022).

[10] Schulman, John, et al. "Proximal policy optimization algorithms." arXiv preprint arXiv:1707.06347 (2017).

[11] https://github.com/microsoft/DeepSpeedExamples

[12] https://github.com/hpcaitech/ColossalAI

[13] https://github.com/CarperAI/trlx

本文中所引用的图片和视频来源均已标明,若有侵权请联系我们予以删除。

 

上一个:

下一个: “为了全人类更好地交流”:通用语音识别

近期文章

通用AI模型的未来:深度强化学习(deep reinforcement learning)

近年来,AI模型开始涌现出超越人类的潜力,在传统的围棋游戏以及拥有复杂规则和系统的电竞游戏(星际争霸2,Dota 2等)中都有体现。随着ChatGPT的出现,人们开始意识到语言模型成为通用人工智能的可能性,而这些模型的核心都是深度强化学习。

2023-05-08

“为了全人类更好地交流”:通用语音识别

人机交互的第一步往往由人发起,从你说出第一句话开始,计算机如何可以应答并能进而和你自然畅谈?在之前文章里我们分享了当前利用AI进行语音识别的关键步骤和做法,这次我们将随着技术的进化发展,领略当前通用语音模型的进化高度。

2023-04-24

查看更多