当前位置: 首页 > news >正文

我们为什么用 Go 编写机器学习架构,却不用 Python?

要是你有意愿成为一名机器学习工程师, 那必定得熟练掌握, 然而, 要是你对机器学习的基础架构兴趣盎然, 那就应当慎重思考Go。

作者 | Caleb

译者 | 弯月,责编 | 郭芮

以下为译文:

如今, 大家都知道, 它是机器学习项目里最为流行的语言。虽然R、C++以及Julia等语言, 都有自身的支持者以及使用状况, 可它依然是使用最为普遍的语言, 差不多每个主流的机器学习框架都运用了它。

然而,存在一个开源平台, 其用途是把机器学习模型部署成 API, 在这个平台的代码库中, 有占比 87.5%的代码是 Go。

将引以为豪的机器学习算法当作生产机器学习系统的其中一个组成部分。如果想要具备大规模运行生产机器学习API的能力, 那么你的基础架构就得实现以下这些功能:

我们进行构建, 其目的在于, 将上述所有的基础架构予以自动化, 并且, 针对日志记录以及成本优化等其他问题进行处理。

以下这些原因致使, 我们觉得Go才是打造出契合上述需求的软件的理想选择所在。

并发对于机器学习的基础架构至关重要

许多种种各异的模型, 用户能够将其部署为各式不同的API, 且把全部所有的模型, 放置到同一个集群之内予以管理。而管理这些不同的部署, 得要借助一些API才行, 比如:

用户不会直接跟这些 API 展开交互, 借助程序去调用这些 API 用以管理集群, 启动部署以及监视 API。

存在这样一项难题, 即要以高效且可靠的方式去交叉调用这些API。处理这些API调用最为高效的方式是采用并发的方式, 然而这同时带来了复杂性, 原因在于我们不得不去担心竞争状况这类问题。

Go为解决这个问题提供了一个开箱即用的解决方案:。

是以并发这种方式去执行代码的函数, 我们能够另外撰写一篇文章, 深入地去探讨其背后的工作方式, 不过概括来讲, 它是由Go运行时进行自动管理的轻量级线程, 你能够把多个这样的轻量级线程放到一个OS线程上, 而且要是出现导致OS线程被阻塞的情况, 那么Go运行时会自动将其余那些轻量级线程转移到新的OS线程上。

并且给出了称之为“通道”(此处不明确你没给到关键修饰……)的一项功能, 你能够借助此功能于其间进行消息传递, 以此协助我们开展请求调度工作, 进而避免出现竞争情形。

当然, 你能够借助等最新的工具于当中达成这些功能, 然而Go的设计顾及到了这类情形, 运用Go可减轻我们的工作负担。

使用Go构建跨平台的CLI更容易

CLI属于跨平台工具, 借助该工具, 用户能够直接于命令行实施部署模型的操作以及对API进行管理。

起初, 我们借助编写完成了这个CLI, 然而, 经证实, 于多个平台之上分发此CLI着实艰难。鉴于Go能够编译成一个二进制文件(无需管理依赖), 故而可为我们提供一种简易的解决办法, 助力我们在平台之间分发CLI, 且无需进行额外的工程工作了。

Go编译成为的二进制文件, 和解释型语言相比较而言, 其性能方面所具备的优势也是十分显著的。按照计算机基准测试得出的结果来看, Go的速度远远胜出。

好多别的基础设施CLI工具同样是用Go来编写的, 这根本不是偶然情况, 详细的理由去参考下面的第三点。

Go的生态系统非常适合基础设施项目

开源具备的好处当中的其中之一是, 你能够朝着自己敬仰夸赞的项目展开学习。比如说, 处于存在着的生态系统里, 并且其自身同样是运用Go来进行编写创作。我们相当有幸能够去借鉴参考这个生态系统之中的诸多优秀杰出的开源项目, 这其中涵盖着:

像上述提及的那些工具, 全都是项目, 并且无一例外都是借助Go语言给编写出来的。要是你能够细致入微地去查看和的基础设施项目呢(这里面又涵盖了Vault、Nomad、、和哦), 那你势必就会发觉, 它们全部都是运用Go语言打造而成的。

Go于基础架构领域的流行存在另外一种影响, 即多数对基础架构怀有兴趣的工程师对Go颇为熟悉。因而, 极易吸引到这些工程师。我们公司极为出色的一位工程师是凭借特定方式找到我们的, 我们甚是庆幸他找寻到了我们。

Go语言编程是一种享受

我们构建时所运用的最后一个缘由是Go, 是因为我们对Go语言编程饱含享受之情。

相较于, Go入门存在一定艰难程度。然而, Go具备的宽容性能够给大型项目带去愉悦感受。我们于测试软件方面极为严格, 不过静态输入以及编译(这属于Go令初学者感到困扰的两大难题)对我们而言恰似防护栏, 助力我们编写(相对来讲)不存在bug的代码。

可能你会讲, 别的语言存在不一样的优势, 然而, 总体来讲, Go可以将我们的技术以及美学需求, 最大限度地予以满足。

适用于机器学习,而Go适用于基础架构

我们也很喜欢,它在中占有一席之地,尤其是在处理推理方面。

服务于, 、、 -learn以及别的模型, 这表明跟模型的接口以及推理前与之后的处理都于中达成。尽管代码经打包部署至容器里, 然而这些容器是由用Go编写的代码编排的。

如果你存有变成一名专长为机器学习的工程师的兴趣, 那么就一定要熟练地去掌握。然而, 要是你对作为机器学习构成要素的基础架构有着兴趣, 那么就应当慎重地去考虑Go。

原文:

/why-were-----in-go-not--

http://www.jsqmd.com/news/1391661/

相关文章:

  • 像这些问题,我又想能显示在我前面,但是又不是越加越多。因为我要处理的事情会越来越多。那么这些 提词问题会越来越多。我又不想加在本地的 检索,因为本地检索 加一个问题配置起来好麻烦,搞来搞去又影响到之前
  • 手把手玩转LET-Body-Dataset全身运控数据集:从VR遥操作到真机复现
  • 网盘下载太慢?免费开源的直链下载脚本3分钟上手,一次覆盖9大网盘
  • 河北新亚建设集团网站深度解析:从工程落地到品牌价值的数字化跃迁之旅
  • 如何 3 步自动破解 Steam 游戏?SteamAutoCrack 完整上手指南
  • 3步搞定:WindowResizer免费强制调整任意窗口大小
  • cvpods常见问题解答:新手入门到高级应用的避坑指南
  • 为什么‘让业务用起来‘是数字化转型的第一优先级——一个CEO的三年复盘
  • Python进阶 - re模块的findall方法 获取所有匹配的结果
  • 天津网站建设公司排名深度解析与避坑指南,助你找到靠谱合作伙伴
  • 网盘直链下载助手完整指南:一个脚本搞定九大网盘的下载难题
  • BetterRDP注册表优化原理:让远程桌面如本地般流畅的秘密
  • DeepSeek V4 Pro 正式版实测:Agent 能力暴涨 5 倍,API 零成本迁移指南
  • DDrawCompat 终极指南:三步让二十年前的 DirectX 游戏在现代 Windows 上满血复活
  • 如何 3 步跑通 Krea-2 Turbo:我在 ComfyUI 里从部署到出图的实战手记
  • Win7访问Win11共享文件夹报错:引用的账户当前已锁定
  • DeepSeek 在“心里“叫你“墨墨“:一场关于 AI 内心戏的误会
  • IPXWrapper 完整教程:让依赖 IPX/SPX 的老游戏在现代 Windows 重新联机
  • MicroStation许可证总在跨专业协同时变紧,企业怎么识别真正瓶颈
  • 别再熬夜翻DAG图了!Spark任务优化,其实可以交给AI Agent
  • 巩义专业网站建设公司推荐:本地企业数字化转型的必由之路与避坑指南
  • 让沉默的数据开口:自动洞察正在改写业务分析师的工作日
  • 窗口大小调不动?这款免费的窗口管理工具帮你强制调整任意窗口
  • 上海市建设安全协会网站查询考试结果详解与避坑指南,助您轻松搞定证书验证难题
  • 信息系统管理工程师 - 备考笔记 - 持续更新中
  • 零基础复活老游戏:DDrawCompat 三步兼容层部署指南
  • .NetCore项目使用EF Core操作SQL Server
  • DXVK游戏启动报错“DirectX版本不支持“?一份从排查到修复的避坑指南
  • 商标设计注册哪家便宜又靠谱?比价避坑指南
  • 别让十年微博静默消失:Speechless 免费 Chrome 插件教你完整备份 PDF