Python为何我们用 Go 而非 Python 来部署机器学习模型?( 二 )
3. 在 Go 中构建跨平台 CLI 更容易 我们的 CLI 部署模型并管理 API:
本文插图
来源:Cortex GitHub
我们希望 CLI 在 Linux 和 Mac 上都可以用 。 最初 , 我们尝试用 Python 语言来编写 CLI , 但用户一直很难让它在不同的环境中使用 。 当我们在 Go 中重新构建 CLI 时 , 能够将它编译成单一的二进制文件 , 这样一来 , 我们就可以跨平台分发 CLI , 而不需要做太多额外的工程计划 。
编译后的 Go 二进制代码与解释性编程语言相比 , 性能上的优势也很明显 。 根据计算机基准测试的结果来看 , Go 的速度明显比 Python 要快得多 。
无独有偶 , 许多其他基础设施的 CLI , 如 eksctl、kops 和 Helm 客户端等 , 都是用 Go 语言编写的 。
4. Go 有助于构建可靠的基础设施 最后一点 , Go 有助于 Cortex 最重要的特性:可靠性 。
在所有软件中 , 可靠性显然很重要 , 但对于推理基础设施来说 , 可靠性绝对是最关键的 。 Cortex 中的一个 bug 可能会让推理费用严重增加 。 如果存在严重的 bug , 那么很有可能在编译过程中被发现 。 对于一个小团队来说 , 这是非常有用的 。
与 Python 相比 , Go 的高冷性质可能会使得它上手变得更痛苦一些 , 但这些内部的“防护栏”为我们提供了第一道防线 , 帮助我们避免犯下愚蠢的类型错误 。
小结:Python 用于脚本 , Go 用于基础设施 我们仍然喜欢 Python , 它在 Cortex 中占有一席之地 , 特别是在模型推理方面 。
Cortex 支持 Python 作为模型服务脚本 。 我们编写 Python , 将模型加载到内存中 , 进行推理前后处理 , 并为请求提供服务 。 然而 , 即使是 Python 代码也被打包到 Docker 容器中 , 这些容器也是由 Go 语言编写的代码进行编排的 。
对于数据科学和机器学习工程来说 , Python 将(并且应该)仍然是最流行的语言 。 但是 , 当涉及到机器学习基础设施时 , 我们对 Go 很满意 。
【Python为何我们用 Go 而非 Python 来部署机器学习模型?】 关注我并转发此篇文章 , 私信我“领取资料” , 即可免费获得InfoQ价值4999元迷你书!
推荐阅读
- 兰州新闻网美国疫情数据为何矛盾混乱
- 企业与观察华为如果上市估值将达13000亿美元!揭秘国民手机为何不上市?
- 网闻浣碧为何在白天出嫁,玉娆却在晚上?,甄嬛传中
- 李晨悦无限为何胖了这么多,还能这么美?,赵本山最看好的徒弟关婷娜
- 『考古』一个不起眼的小墓,为何能挖出近30亿稀世珍宝?墓主到底是何人?
- 虎扑篮球你无可替代,阿德托昆博祝妻子母亲节快乐:在我们爷俩心中
- 体坛海河她16岁打奥运会19岁获世锦赛女单冠军!为何遭两任教练嫌弃开除?
- 宋徽宗▲靖康之耻后,宋徽宗被俘,为何还能生养14个孩子?
- 央视央视体育频道负责人:目前我们与NBA方面没有任何接触
- 阿里巴巴▲三国志战略版什么来路?为何频频刷屏各大软件?