在CNN,我们的使命是以信任,及时和透明的方式通知,参与世界。当我们面对我们这一代最具挑战性的时期,这项任务比以往任何时候都更加重要。由于世界变得越来越多的数字,我们无情地将我们的使命集中在与我们的观众直接联系,了解他们最关心的是什么,并以最符合他们的生活方式最可靠的方式到达它们。特别是我们的数据情报团队利用数据和机器学习能力为我们的受众构建创新体验,并为CNN的运营提供可扩展的解决方案。作为世界上最大的数字新闻目的地,我们每月为2020年的每月平均超过2亿个全球游客。我们的原始音频和视频素材目录也恢复了几十年。显然,我们有很多数据!
我们的数据科学团队认为,他们能够在2020年的所有内容中测试Q1 2021中的两倍型号。
鉴于我们的数据深度和机器学习进步的快速步伐,总是有太多有趣的想法来探索团队成员探索它们。 (我们正在招聘!)正如我们已经增长了我们的团队,我们的研究人员将时间越来越重要,以至于对我们观众最有价值的项目部分。当我们向他们提供信任和个性化新闻时,我们的观众最好服务,我们希望我们的研究人员能够尽可能多地专注于他们可以改善这种体验的时间。我们的研究实验时间通常涉及协调计算工作和计算集群,并支持我们的工程团队。
最初,我们培训新的实验模型的进程与我们(重新)培训生产模型的过程相当类似。该过程是针对规模持续培训生产模型的优化,并确实如此。不幸的是,它不是为轻质实验设计的,因此,研究迭代过程令人沮丧。
与Hop Labs的人员合作,我们探索了许多平台和方法来简化这一点。与我们团队最受谐波的那个是由Netflix的人民推出的开源项目:Metaflow。 Metaflow的关键概念是实现Python的定向非循环图(DAG)的“流动”。这个隐喻(我们已经在我们的气流数据管道中使用)和直接的Python接口意味着它立即对我们的ML工程师熟悉。此外,与AWS批处理的无缝集成给了我们简单和简单的可伸缩性选项。
流量由步骤组成,每个步骤可以具有自己的单独依赖性和计算要求。这允许研究人员编写纯Python并声明地识别粒度步长的要求,而无需担心如何满足这些要求。我们的ML OPS工程师能够实现富裕的计算基板,符合CNN的安全性/可扩展性要求,并且Metaflow能够利用使用AWS批处理的基板动态地扩展(并自旋)资源。这允许我们的研究人员在本地迅速迭代一小组数据。然后,当他们对他们的管道上有信心时,他们可以根据需要扩大到更大的资源 - 所有情况都不需要重写代码或手动计划作业并计算资源。
默认情况下,每个运行都可重复,并且所有代码和依赖关系都以对研究人员的(努力为)透明的方式对AWS S3进行快照。
虽然我们感谢Metaflow必须提供的所有措施,但它有一些特定的挑战,我们在此过程中发现。我们遇到的第一个挑战是,唯一的官方官方骑行方式通过单个CloudFormation模板。对于许多团队来说,这可能是足够的,但我们的政策要求我们对默认基础设施进行更改,并且现有模板并没有为此提供归因于此。在CNN的数据智能团队中,我们使用Hashicorp的Terraform来管理我们的基础架构。我们在采用Metaflow方面的一部分工程努力在高度模块化和可扩展的Terraform中重写提供的CloudFormation模板。我们很高兴能够将这些更改提交回Metaflow社区,希望这对其他团队希望使用Metaflow这不会是一个挑战。
我们团队的另一个障碍是Metaflow使用Conda进行包裹管理。这是一种自然和合理的技术选择,对快照代码和可重复性的依赖性特别有帮助。尽管如此,我们的队伍中的大量百分比以前没有使用公寓则在切换到它的同时,面临着一点学习曲线。 PYPI和Conda存储库之间还有偶尔的包版本不匹配。我们已经建立了一些内部解决方案,以部分解决这些挑战,但仍然存在更全面的方式来简化这里。
此时,我们已经能够完全切换我们的研究实验过程,依靠这种Metaflow动力的工作流程,并取得了巨大的成功。我们的研究人员能够花费更多时间为我们的观众改进他们的模型,我们的工程师能够提供丰富的计算基板,而无需手动管理群集。作为一个非正式的估计,我们的数据科学团队认为他们能够在2020年的所有2021季度在2020年所做的型号中测试两倍,因为他们在2020年的所有内容中都有一个简单的实验,现在已经花了一周时间。
虽然不是意图,但我们还能够将一些生产培训工作负载转换为此工作流程。我们的工程和运营团队欣赏具有更少的总是堆栈必须维持,因此降低了他们的运行负担,简化了其架构的表面积。
这项工作并不停止 - 我们已经开始的工作流程,但这只是意味着我们能够专注于对过程的下一步改进。我们强烈地相信不断改进我们的研究人员和工程师的工具,因此他们可以不断提高观众的CNN体验。
如果您有兴趣在具有广泛的社会影响的尖端团队上工作(并且不断改进工具!),我们正在招聘,并会很高兴与您交谈。
如果您想了解更多有关这项工作的信息,请随时致命地联系到Ankur Kalra或Kelly Davis。
感谢Deadna Devkar,Gregory Hilston,Roshan Bangera和其他CNN数据智能团队的有价值的贡献和反馈。