Horizo​​n:第一个面向大规模产品和服务的开源强化学习平台

Facebook开源了一个端到端的应用强化学习平台Horizon,它使用RL来优化数十亿人使用的产品和服务,旨在促使强化学习从研究论文过渡到生产环境。在Facebook内部业务实践中,已经通过部署Horizon提高了将强化学习应用于大规模应用的能力。虽然其他人已经致力于强化学习的应用,但是Horizon是第一个用于生产的开源RL平台。

Horizo​​n:第一个面向大规模产品和服务的开源强化学习平台

Horizon专注于将强化学习应用于大规模系统, 包括模拟环境的工作流程以及用于在生产中预处理,培训和导出模型的分布式平台。该平台已经在Facebook上提供了性能优势,包括提供更多相关通知,优化流视频比特率以及改进Messenger中的建议。但Horizon的开放式设计和工具集也有可能使该领域的其他人受益,特别是有兴趣使用应用强化学习从大量信息中学习策略的公司和研究团队。

大规模做出决策:Horizon如何利用RL进行生产

机器学习(ML)系统通常用于生成预测,但随后要求工程师将这些预测转换为策略(即采取行动的策略)。但是,强化学习创建的系统可以做出决策,采取行动,然后根据收到的反馈进行调整。这种方法有可能优化一系列决策,而无需手工制定策略。例如,强化学习系统可以基于来自其他机器学习系统的输入和视频缓冲器的状态,在视频播放时直接为特定视频选择高或低比特率。

虽然强化学习(RL)的策略优化能力已经在研究中显示出有令人期待的结果,但人工智能社区很难适应这些模型来处理生产环境中非常特殊的实际需求。通过Horizon我们可以专注于处理以下挑战:

  • 理论研究中模拟器环境非常负责,而且状态空间依然是有限;
  • 基于ML的策略优化系统依赖于固有噪声,稀疏和任意分布的数据。
  • 真实世界的域不可能被完美地模拟,而且反馈结果可能更难以合并到已部署的代码中,

类似于深度学习如何彻底改变神经网络的应用,强化学习驱动的机器人可以响应一组受限制的可预测和可重复规则,Horizon等项目有可能重新定义科学家和工程师如何将强化学习技术应用于实际生产环境中,使用策略优化来产生影响。特别是,Horizon考虑了特定于生产环境的问题,包括特征规范化,分布式培训,大规模部署和服务,以及具有数千种不同特征类型和分布的数据集以及高维离散和连续动作空间。
Horizo​​n:第一个面向大规模产品和服务的开源强化学习平台

Horizon的管道分为三个部分:(1)时间线生成,运行数千个CPU; (2)训练,跨越许多GPU; (3)服务,这也包括数千台机器。 此工作流程允许Horizon扩展到超大数据集。 对于策略学习(例如,使用OpenAI Gym),Horizon可以选择将数据直接提供给闭环训练。

Horizon还解决了大规模构建和部署RL系统所带来的独特挑战。RL通常以在线方式进行训练,其中系统通过随机选择动作然后实时更新开始。鉴于这些系统在Facebook的规模和影响,这种随机性和实时更新目前不可行。相反,我们的模型首先是训练产品工程师设计的政策。必须使用非政策方法和反事实政策评估(CPE)离线训练模型,以估计RL模型在做出过去的决策时会做些什么。一旦CPE结果可以接受,我们就会在一个小型实验中部署RL模型,我们可以在其中收集结果。有趣的是,我们发现,与以前保持相对稳定的系统不同,

行业数据集通常包含数十亿条记录,以及数千个具有任意分布和高维离散和连续动作空间的状态特征。根据我们的研究和观察,我们发现应用的RL模型比传统的深度网络对噪声和非标准化数据更敏感。Horizon使用Apache Spark并行预处理这些状态和操作功能,Spark管道包含在开源版本中。一旦训练数据被预处理,我们使用基于PyTorch的算法进行图形处理单元的标准化和训练。

虽然Horizon可以在单个GPU或CPU上运行,但该平台的设计主要集中在大型集群上,其中许多GPU上的分布式培训允许工程师解决数百万个示例的问题,并更快地迭代他们的模型。我们在PyTorch中使用数据并行和分布式数据并行功能来进行分布式训练。该版本包括Deep Q-Network(DQN),参数DQN和深度确定性策略梯度(DDPG)模型。在训练期间,我们还运行CPE并将评估结果记录到TensorBoard。训练完成后,Horizon会使用ONNX导出这些模型,因此可以大规模有效地提供服务。

在许多RL域中,您可以通过尝试来测量模型的性能。在Facebook,我们希望确保在大规模部署之前彻底测试模型。由于Horizon解决了策略优化任务,因此训练工作流程还自动运行多种最先进的策略评估技术,包括顺序双重稳健的策略评估和MAGIC。生成的策略评估报告将导出到训练流程中,并可使用TensorBoard进行观察。在将策略部署到公众之前,评估与异常检测相结合,如果模型的新迭代具有与前一个完全不同的性能就会自动警告工程师。

在工作中学习:Horizon对Messenger,360度视频等的影响

自从我们开始在内部使用Horizon以来,该平台已经演示了RL如何通过使用即时反馈来制定提升绩效的决策,从而对生产应用程序产生影响。

例如,Horizon允许通过实时优化比特率参数来提高在Facebook上观看的360度视频的图像质量。平台会考虑可用带宽量和已经缓冲的视频量,以确定是否可以转换为更高质量的视频。它在给定视频播放时起作用,而不是在事后分析性能和仔细注释的数据。

Horizo​​n:第一个面向大规模产品和服务的开源强化学习平台

反事实政策评估为在离线设置中部署RL模型的工程师提供了帮助。 该图将几种CPE方法与记录的策略(最初生成训练数据的系统)进行比较。 得分为1.0意味着RL和记录的策略在性能上匹配。 这些结果表明,RL模型的累积奖励应该是记录系统的2倍。

Horizo​​n:第一个面向大规模产品和服务的开源强化学习平台

该高级图解释了Horizon的反馈回路。 首先,我们预处理现有系统记录的一些数据。 然后,我们训练模型并在离线设置中分析反事实政策结果。 最后,我们将模型部署到一群用户并衡量真正的政策。 来自新模型的数据反馈到下一次迭代,大多数团队每天都会部署一个新模型。

Horizon还过滤了Messenger中的智能助手M的建议。M在人们的公开对话中提供建议,以建议相关内容和功能,以丰富人们在Messenger中沟通和完成工作的方式。Horizon使用RL比基于规则的学习对话策略方法更具可扩展性,前瞻性,并响应用户反馈以帮助M学习。例如,如果人们更频繁地与一个建议进行交互,M可能会更多地表现出来。通过Horizon,M变得更加智能和高度个性化,因为它可以帮助数百万人每天进行交流。

该平台还改进了我们使用AI的方式,以帮助确定要发送给人们的Facebook通知以及发送频率。在过去,我们使用ML模型来帮助预测哪些可能是最有意义或最相关的,并过滤掉其他模型,而不是发送所有可能的通知(指示新帖子,评论等)。但这些模型依赖于监督学习,并没有考虑发送通知的长期价值。例如,每天多次访问该平台的人可能不需要通知他们本来会看到的帖子,而不太活跃的人可以从通知中受益以确保他们不会错过来自家人和朋友的值得注意的帖子

任何人在生产中部署RL的工具

这些好处凸显了RL为行业提供的内容,即能够直接从先前的次优政策下收集的样本中学习最优政策。虽然我们已经确定了适合RL的特定用例和应用程序,但这只是一个激动人心旅程的开始。鉴于AI社区的集体才能和创造力,我们迫不及待地想看到Horizon激发的想法,功能和产品。

任何使用机器学习做出决策的人都可以尝试Horizon。第一步是记录倾向(采取行动的概率)和替代方案(可能采取的其他行动)。Horizon利用倾向和替代方案来了解何时可以采取更好的行动。第二步是定义和记录奖励(从采取行动中获得的价值)。收集此数据后,可以运行Horizon的训练循环并导出一个模型,该模型将做出新的决策并最大化总奖励。

总结

Horizon是基于PyTorch 1.0的端到端平台,旨在促使RL从研究论文过渡到生产

  • Horizon是第一个使用应用强化学习(RL)来优化大规模生产环境系统的开源端到端平台,基于PyTorch 1.0搭建,
  • 此版本中包含的工作流和算法是基于开放框架 – PyTorch 1.0,Caffe2和Spark 构建的 – 使得Horizon可以大规模使用RL。
  • 在过去的一年中,Facebook已将Horizon广泛应用于内部应用程序,包括帮助个性化建议,提供更有意义的通知以及优化流视频质量。

除了对新应用产生影响外,Horizon还可以改变工程师和ML模型协同工作的方式。我们设想工程师和他们合作的模型之间的双向对话,而不是通过编写难以解释和维护的规则来驱动模型,工程师可以在其中指定他们的高级目标,并与机器学习一起工作。实现这些目标并使其适应不断变化的决策环境。Horizon是这次旅程的第一步,更多的可能性取决于我们如何可用它。

原创文章,作者:xgl,如若转载,请注明出处:https://edgeaitech.com/p/89

发表评论

登录后才能评论