写点什么

Facebook 开源 Horizon:首个用于大规模产品和服务的强化学习平台

  • 2018-11-08
  • 本文字数:4230 字

    阅读完需:约 14 分钟

Facebook开源Horizon:首个用于大规模产品和服务的强化学习平台
  • Horizon 是首个使用应用强化学习(RL)在大规模生产环境中优化系统的端到端开源平台。

  • 这个版本中包含的工作流和算法是以开放框架为基础构建的——PyTorch 1.0、Caffe2 和 Spark——使得任何大规模使用 RL 的人都可以使用 Horizon。

  • 在过去的一年里,我们内部已经在多个应用程序中开使用了 Horizon,包括帮助定制 M 建议、发送更有意义的通知以及优化流媒体视频质量。


今天,我们开源了 Horizon,一个端到端的应用强化学习平台,使用 RL 来优化数十亿人使用的产品和服务。我们开发这个平台是为了弥补 RL 在研究领域日益增长的影响力和在生产领域历来狭窄的应用范围之间的差距。过去一年,我们在 Facebook 部署了 Horizon,提高了该平台把 RL 基于决策的方法运用到大规模应用程序的能力。虽然人们都在开发增强学习应用程序,但 Horizon 是第一个用于生产的开源 RL 平台。


虽然我们正在进行各种强化学习项目,这些项目使用反馈来提高性能,但是,Horizon 主要关注的是将 RL 应用于大型系统。这个版本包括模拟环境的工作流以及用于预处理、训练和导出生产环境模型的分布式平台。该平台已经为 Facebook 带来了性能优势,包括发送更相关的通知、优化流媒体视频比特率以及改进 Messenger 中的 M 建议。但是,Horizon 的开放设计和工具集也有可能让该领域的其他人受益,特别是那些有兴趣使用应用 RL 从大量信息中学习策略的公司和研究团队。Horizon 不仅仅证明了我们在 RL 领域的持续投入,也证明了这个有前途的人工智能研究领域现在可以运用到实际的应用程序中。

大规模决策:Horizon 如何把 RL 运用到生产环境

机器学习(ML)系统通常会生成预测,但随后需要工程师将这些预测转换为策略(即行动策略)。另一方面,RL 创建的系统能够做出决策、采取行动,然后根据反馈进行调整。这种方法有可能优化一组决策,而不需要手工制定策略。例如,RL 系统可以根据其他 ML 系统的估计和视频缓冲区的状态,直接为特定播放中的视频选择高比特率或低比特率。


虽然 RL 的策略优化能力在研究中显示出了良好的效果,但人工智能社区很难使用这些模型处理生产环境中有很大差别的实际需求。借助 Horizon,我们关注的是如何将两种完全不同类型的应用连接起来:复杂但终究有限的研究用模拟器环境;基于 ML 的策略优化系统,依赖于存在固有噪声的、稀疏的、任意分布的数据。与游戏中基于 RL 的机器人可以对一组有限且可预见、可重复的规则做出反应不同,现实场景很难模仿,反馈更难以纳入已部署代码,与在可控的实验环境中相比,任何修改通常都需要更加小心。


就像深度学习彻底改变了神经网络的应用那样,像 Horizon 这样的项目有可能将定义科学家和工程师如何将 RL 应用到生产环境中,使用策略优化来产生影响。特别地,Horizon 考虑了特定于生产环境的问题,包括特征规范化、分布式训练、大规模部署和服务、具有数千种不同特征类型和分布的数据集,以及高维离散的连续动作空间。



Horizon 的管道包括三个组件:


(1)时间轴生成,运行在数千个 CPU 上;


(2)训练,跨多个 GPU;


(3)服务,这也跨越了数千台机器。


这个管道允许 Horizon 扩展到 Facebook 的数据集。对于策略学习(例如使用 OpenAI Gym), Horizon 可以选择在一个闭环中将数据直接提供给训练过程。


Horizon 还解决了大规模构建和部署 RL 系统所带来的独特挑战。RL 通常以在线方式训练,系统从随机选择动作开始,然后实时更新。考虑到这些系统在 Facebook 的规模和影响,这种随机性和实时更新目前还不是一个选项。相反,我们的模型是从在一个产品工程师设计的策略上训练开始的。这些模型必须离线训练,使用 off-policy 方法和反事实策略评估(CPE)来估计 RL 模型在过去的决策中会做什么。一旦 CPE 结果被接受,我们将在一个小实验中部署 RL 模型,收集结果信息。有趣的是,我们发现,与之前相对稳定的系统不同,RL 系统会随着时间的推移不断学习和改进。


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


虽然 Horizon 可以在单个 GPU 或 CPU 上运行,但该平台的设计侧重于大型集群,一次在多个 GPU 上进行分布式训练,使工程师可以使用数百万个样本来解决问题,并更快地迭代他们的模型。我们在 PyTorch 中使用数据并行和分布式数据并行功能进行分布式训练。该版本包括深度 Q 网络(DQN)、参数化 DQN 和深度确定性策略梯度(DDPG)模型。在训练过程中,我们还运行 CPE,并将评估结果记录到 TensorBoard 上。训练完成后,Horizon 将使用 ONNX 导出这些模型,以实现大规模地高效服务。


在许多 RL 领域中,你可以通过尝试来度量模型的性能。在 Facebook,我们希望确保在大规模部署模型之前对它们进行彻底地测试。由于 Horizon 解决了策略优化任务,训练工作流还自动运行了几种最先进的策略评估技术,包括时序双鲁棒性策略评估和 MAGIC。生成的策略评估报告从训练流中导出,可以使用 TensorBoard 进行观察。评估可以与异常检测相结合,在将策略公开部署之前,如果模型再次迭代的性能与前一个迭代相比有很大的差别,就会自动向工程师发出警报。

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

自从我们开始在内部使用 Horizon 以来,该平台已经示范了 RL 如何利用即时反馈来做出提高性能的决策,从而对生产应用程序产生影响。


例如,Horizon 使我们可以通过实时优化比特率参数来提高 Facebook 上 360 视频的图像质量。该平台既考虑了可用带宽的数量,也考虑了已缓冲视频的数量,以确定是否有可能转换到更高质量的视频。这个过程利用了 RL 随时产生奖励的能力,使用新的无监督数据——它在给定的视频正在播放时工作,而不是事后再分析性能和仔细标注的数据。



反事实策略评估为在离线环境中部署 RL 模型的工程师提供了见解。这个图比较了几种 CPE 方法和日志策略(最初生成训练数据的系统)。得分 1.0 意味着 RL 和日志策略在性能上是匹配的。这些结果表明,RL 模型的累积奖励大约是日志系统的两倍。



这个高级图表说明了 Horizon 的反馈循环。首先,我们对现有系统记录的一些数据进行预处理。然后,我们训练一个模型并分析离线环境下的反事实策略结果。最后,我们将模型部署到一组人员中,并度量真正的策略。来自新模型的数据反馈到下一次迭代中,大多数团队每天都部署一个新模型。


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


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


为了更好地处理这些长期信号——并使通知按照预期工作,为平台上的所有人提供价值——我们使用 Horizon 训练了一个离散动作 DQN 模型,用于发送推送通知。当某人参与了他们可能会错过的帖子时,这个模型会收到奖励,而发送通知则会受到惩罚。RL 模型仅在对用户的价值(例如,让他们注意到好友或家人发布的值得关注的帖子)高于惩罚值(在他们的设备上弹出额外的警告)时才允许通知。该模型还定期更新大量的状态转换,使其能够逐步改进,并最终调整通知的数量。自从我们将以前的基于监督学习的系统替换为基于 Horizon 的版本之后,我们观察到,通知的相关性得到了改善,而发送通知的总数没有增加。与通过点击或单击通知来定义相关性不同,我们可以更广泛、更深入地查看信息以确保它们提供了真正的好处。

使任何人都可以在生产环境中部署 RL 的工具

这些好处突显了 RL 能为行业提供的东西,即能够直接从以前的次优策略下收集样本,并从中学习最优策略。尽管我们已经确定了非常适合 RL 的具体场景和应用程序,但这仅仅是激动人心的旅程的开始。鉴于人工智能社区的集体才华和创造力,我们迫不及待地想看到 Horizon 所激发的创意、功能和产品。


任何使用机器学习来做决定的人都可以试试 Horizon。第一步是记录倾向(采取行动的概率)和备选方案(其他可能的行动)。Horizon 使用倾向性和备选方案来了解何时可以采取更好的行动。第二步,定义并记录奖励(采取行动所获得的价值)。在收集到这些数据之后,就可以运行 Horizon 的训练循环,导出一个能够做出新决策并最大化总回报的模型。


Horizon 是我们致力于 AI 开放开发的一部分——它是 Facebook 的内部平台,我们现在正在开放源代码,它使用的工具我们已经提供给社区,包括 PyTorch 1.0 和 Caffe2。虽然 Horizon 已经针对在生产环境应用进行了优化,但我们使用该平台的经验也揭示了与 RL 集成到其他系统相关的重要研究。我们正利用 Horizon 平台探索基于模型的 RL 和“奖励塑造(reward shaping)”的新技术,并利用该平台在 Facebook 更广泛地挖掘其他应用,比如数据中心资源分配和视频推荐。我们还计划添加更多的模型和工作流,以帮助其他人将 RL 的长期承诺转化为即时行动。


有关详细信息,请阅读关于 Horizon 开发和内部用例的完整白皮书:https://arxiv.org/abs/1811.00260


除了对新应用程序产生影响外,Horizon 还可以改变工程师和 ML 模型协同工作的方式。不再通过编写难以理解和维护的规则来驱动模型,我们设想,在工程师和他们使用的模型之间有一个双向对话,工程师可以指定他们的高层目标,并与机器学习协同实现这些目标,把它们应用到一个不断变化的决策环境中。Horizon 是这个旅程的第一步,我们邀请您复制我们的 GitHub 库并进行试用。


查看英文原文:


https://code.fb.com/ml-applications/horizon/


2018-11-08 22:041662
用户头像

发布了 1008 篇内容, 共 410.9 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

波卡生态的去中心化存储Crust Network | Hoo虎符研究院

区块链前沿News

波卡生态挖矿 Hoo虎符 虎符交易所 虎符研究院 去中心化存储

CRM系统如何帮助企业改变销售周期

低代码小观

程序员 销售管理 销售 CRM CRM系统

30个类手写Spring核心原理之动态数据源切换(8)

Tom弹架构

Java spring 源码

Ajax+SSM实现客户端开发 实现简单的前后端分离

Bug终结者

Java ajax 前后端分离

超市发:多措并举 提振销售 服务顾客

科技热闻

「Oracle」数据库字符集编码修改

恒生LIGHT云社区

数据库 oracle

语音信号处理 4:汉语中语音的分类及韵律特性

轻口味

28天写作 12月日更

「猿桌派」即将开播,聚焦客户端埋点和大数据分析

融云 RongCloud

大数据 程序员 埋点

实用机器学习笔记二十:偏差和方差

打工人!

机器学习 深度学习 算法 学习笔记 12月日更

熟悉又陌生的白帽黑客组织OWASP

喀拉峻

黑客 网络安全 安全 OWASP

一站式云安全保障,就用行云管家!完美保障!

行云管家

云计算 云安全 企业上云 云资源 云管理

如何跟踪log4j漏洞原理及发现绕WAF的tips

H

网络安全 漏洞

在线JSON转Csharp工具

入门小站

工具

【MongoDB学习笔记】-使用 MongoDB 进行 CRUD 操作(上)

恒生LIGHT云社区

数据库 mongodb

给弟弟的信第19封|年轻人要注意养生

大菠萝

28天写作

6000 字干货详解:直播聊天室的无限用户优化

融云 RongCloud

高并发 直播 直播聊天室 海量用户

2021低代码平台推荐,每一个都具有10年行业开发经验!

J2PaaS低代码平台

低代码 低代码开发 低代码开发平台 地代码平台

(转)大数据开发之Hive中UDTF函数

@零度

大数据 hive

10 个打造 React.js App 的最佳 UI 框架

编程江湖

前端开发

【等保小知识】等保一级需要测评吗?

行云管家

网络安全 等保 等级保护 等保一级

升级过log4j,却还没搞懂log4j漏洞的本质?

华为云开发者联盟

Java log4j 漏洞 JNDI rmi

从 Discord 看未来社交的「超级群」模式

融云 RongCloud

30个类手写Spring核心原理之自定义ORM(下)(7)

Tom弹架构

Java spring 源码

从Hadoop框架讨论大数据生态

编程江湖

大数据 hadoop

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」RocketMQ消息发送的全部流程和落盘原理分析

码界西柚

RocketMQ 消息队列 Apache RocketMQ 12月日更

酷炫3D效果在瘦设备上也能实现?|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

Linux云计算好学吗?Linux云计算运维学习资料,手把手教你学 条件测试语句和流程控制语句的使用

学神来啦

Linux centos Shell if linux云计算

视频通信中的码率控制算法

拍乐云Pano

音视频 RTC 视频编码 码率控制

安全漏洞之任意文件上传漏洞分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

2021数据技术嘉年华 | OceanBase 技术盛宴ON LINE ,我们不见不散!

OceanBase 数据库

数据库 OceanBase 社区版 技术嘉年华 DTC

恒源云(GPUSHARE)_[文本分类] 文本数据增强1(论文笔记)

恒源云

深度学习 语音识别

Facebook开源Horizon:首个用于大规模产品和服务的强化学习平台_AI&大模型_JASON GAUCI_InfoQ精选文章