推特将内部机器学习平台底层框架转至tensorflow – 十轮网-九游会官网真人游戏第一品牌

有鉴于原本使用的机器学习框架lua torch社群支持度降低,推特负责机器学习的团队cortex决定,把内部使用的深度学习平台deepbird,其底层机器学习框架从lua torch转移到tensorflow上。不只工程师有更丰富的可视化工具,帮助训练机器学习模型,在x86-64系统架构上执行的也更加快速。

推特在2014年并购了madbits,获取该公司的深度学习技术,用于理解推特的图片内容,而该公司在2015年中,转为内部团队cortex。 cortex一开始的任务是为推特的产品加入人工智能功能,但在2016年中开始,团队目标转为服务推特工程师,提供更好且一致性人工智能使用体验,因此他们创建了机器学习平台deepbird。

deepbird主要用于时间轴的排序上,而随着机器学习应用的规模扩大,cortex团队也随之成长,加入了tellapart、gnip以及magic pony等并购的公司。 deepbird原本是基于开源机器学习函数库lua torch,但是由于torch社群慢慢把项目重心从lua转移到了python,并开始降低对lua torch的支持,cortex只好开始另寻替代方案,经过比较pytorch和tensorflow,他们认为tensorflow对生产阶段的模型支持度更好,而tensorflow支持hdfs,原本就有许多文件以及大型社群参与贡献,有更完整的开发生态系统。因此在2017年中,他们毅然决然的转换deepbird的机器学习框架。

要将deepbird从第一版的lua torch转移到第二版的tensorflow上,cortex花了不少心力,早期团队为了让原本就存在的机器学习框架,方便过渡到deepbird上,因此其配置也同样使用yaml,但就在cortex决定转移deepbird的机器学习框架后,随即放弃了yaml,不过,大多数数据存储格式仍然沿用推特内部自定义的datarecord,而训练脚本则使用tensorflow与自订义的扩展套件组合编写而成。

cortex提到,人工智能系统系统转移到第二版的deepbird有几个步骤,首先要针对生产阶段服务器评估基准,使用来自生产服务的暗流量,验证推测的正确性并测量预测延迟,确保系统在高负载下还能维持推测服务的稳定性以及性能。再来,就是要比对第一版与第二版deepbird的推测以及训练品质。另外,撰写详细的文件以及教学也非常重要,能帮助用户更轻易的转换到新平台。

deepbird训练模型的流程就5个阶段,首先厘清问题,针对哪部分优化?什么作为输入或是特征?第二针对应用准备数据集,第三撰写训练脚本来优化模型,第四并在不同的数据集上评估,第五就定义超级参数组,并在aurora mesos上执行脚本。重复步骤3到5,直到取得需要的结果。

第二版deepbird的api在测试版发布后一季,已经进入了稳定版,而在这过程他们也对tensorflow的estimator api有了更深入的理解,并开始尝试在一些多阶段训练等非典型案例使用,并且进一步简化整合estimator api到自有的trainer api中。

框架的改变带来了许多正向影响,cortex提到,工程师的生产力提高了,由于通过使用tensorboard或是像model repo这样的内部可视化工具,工程师可以简单的观察模型收敛的情况,并进行调整取得更好的结果,而且加强过的模型度量方法,工程师可以更加掌握模型状态。

而deepbird服务的易用性提升,除了增加许多新功能外,与推特原本的系统也有良好的集成,自订易的指标以及减化的训练流程,让工程师更容易进行试验。而在系统的执行性能也获得提升,第二版的deepbird在x86-64架构执行的也更有效率。

发表评论