生产型机器学习已经没那么困难了?
作者 | Caleb Kaiser
译者 | 香槟超新星
出品 | CSDN(ID:CSDNnews)
封面图源自视觉中国
在软件工程的诸多领域内,生产用例是相当标准化的。以Web开发为例,要在Web应用中实现身份认证,你不会去创造一个数据库,自己写出散列功能,或者去设计一个新的认证方法。你会从几个明确定义的方法之中选一个,并利用标准的工具手段。
然而,对于机器学习来说,这种标准化还不存在。想要建立一个从模型训练到部署的一体化pipeline,团队不得不自己构建解决方案,基本上都是从零开始。
因此,该领域对于许多工程师来说都是触不可及的,而进一步,对于那些没有能力请专家的公司来说,也是如此。
但是,这种局面正在发生变化。模型的生产化正在变得越来越常规化。方法正在逐步标准化,工具的选择正在逐步成熟,到最后,非专业的ML工程师的也能搭建出软件了。
只要看一看你每天使用的那些软件,Gmail、Uber、Netflix,或者任何哪个你喜欢的社交媒体平台,你就会看到许多由机器学习驱动的功能:自动完成电子邮件,语音转文字,对象检测,ETA预测等。
虽然这些模型背后的数学是机器学习领域的科研人员要操心的事情,但能将其转化为产品的架构却应该为所有开发者所熟知:
从软件工程的角度来看,一个训练好的模型也只是一个API罢了,将模型投入生产意味着将其部署为一个微服务(microservice)。
注意:其他形式的模型部署(例如,对于没有连接到互联网的设备)也是存在的,但那不是本文的重点。
你想搭建出类似Gmail的Smart Compose这样的东西吗?把一个语言模型部署为web服务,用文本ping终端,然后在你的前端显示预测结果。你想实现一个像Facebook的推荐标签(Suggested Tagging)那样的东西吗?还是同样的流程:部署一个图像识别模型,然后就像使用其他web服务一样了。
但是,虽然用手比划着对别人说“把你的模型部署成微服务就好了”是很容易的,但如何做到却是个很有挑战性的问题。
不久前,想要部署一个实时推理模型,还需要先回答几个问题:
你要如何编写一个能从你的模型中生成预测结果的API? 将该API部署到生产中的最佳方式是什么? 如何实现生产型Web服务所需要的所有基础设施功能?比如自动缩放、监控、负载均衡、滚动更新等等。
将其托管到有足够空间/GPU来为预测服务的实例上。 配置autoscaling来处理任意数量的并发用户。 实施各种成本优化方案,以保持你的云计算总花销在可控范围内。
推荐阅读
360金融首席科学家张家兴:别指望AI Lab做成中台 我们想研发一个机器学习框架,6 个月后失败了
那个分分钟处理10亿节点图计算的Plato,现在怎么样了? 中国 App 出海“变形记” 詹克团反攻比特大陆:一场失去人心的自我挽留
你点的每个“在看”,我都认真当成了AI
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 为基层减负赋能 促干部实干担当 7976328
- 2 泽连斯基:停火至少需要20万维和人员 7963387
- 3 冷冷冷 多地将冻成这样“紫” 7870463
- 4 两新扩围落地实施 带动产销两旺 7767998
- 5 一想到28号全员洗头就想笑 7612362
- 6 刘畅彻底黑化 7583589
- 7 身体这几个表现说明你太累了 7431218
- 8 赵今麦 00后的黑历史都是高清的 7304009
- 9 原来快递停运比双十一更有吸引力 7281973
- 10 刘烨13岁女儿近照 7152672