Facebook开发Spiral,自动优化其系统性能
极客时间编辑部
讲述:丁婵大小:1.39M时长:03:02
在 Facebook 数十亿用户眼里,Facebook 的服务看起来就像是一个统一的移动 App 或网站。但从公司内部看,却有着不同的视角。Facebook 提供了数千种服务,功能包罗万象,从均衡互联网流量到转码图像,再到提供可靠的存储。
为了更有效地优化这些服务,并灵活地适应不断变化的内部服务网络,Facebook 开发了 Spiral,这是一个只有很少依赖的小型嵌入式 C++ 库,采用了实时机器学习技术,致力于在 Facebook 范围内实现自调节的高性能基础设施服务。通过使用 Spiral 取代手工调整模式,可以在几分钟内对更新的服务进行优化,而不是几周。
要集成 Spiral,需要在代码中添加两个调用:一个用于预测,一个用于反馈。预测调用是用于做出决策的智能输出,例如“该项是否应该被放进高速缓存?”预测调用进行快速的本地计算,并且会在每个决策上执行。
反馈调用则用于在某些情况下提供反馈,例如“此项在缓存中已经过期,但是从未被命中,因此可能不应该缓存这样的项。”
据了解,这个库可以在嵌入模式下运行,它会向 Spiral 后端服务发送反馈和统计信息。后端服务可以可视化用于调试的有用信息,将数据记录到长期存储中,并训练和选择模型,
在 Spiral 中,一旦有反馈进入,就要开始学习。随着更多的反馈进入,预测质量会逐渐提高。大多数的服务会在几秒到几分钟内生成反馈,所以开发周期非常短。领域专家可以添加新功能,并在几分钟内查看它是否有助于提高预测质量。
与硬编码方式不同,Spiral 可以适应不断变化的环境。以缓存准入策略为例,如果某些项被请求的频率不高,就可以在没有人工干预的情况下,通过反馈重新训练分类器,以减少将这些项放入缓存的可能性。
值得一提的是,在 Spiral 出现之前,反应式缓存工程师必须通过运行实验和手动收集数据来检查每个新查询的副作用。而有了 Spiral 之后,大多数用例都可以在几分钟内自动学习本地模型,因此可以立即获得本地推理。
在大多数情况下,服务器能够使用来自多个服务器的数据在 10 到 20 分钟内训练好模型。在发布到每个服务器上后,这个更高质量的模型就可用于改进高保真推理。查询发生变更后,服务器能够自适应变更,并在收到更新的查询后重新学习新的模式。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论