机器学习用哪门语言更好

机器学习用Python还是Golang?

  • 机器学习发展历史
    • 为什么Python在近发展这么快
    • 机器学习API需要实现哪些功能的基础架构:
      • 1.自动缩放
      • 2.Cortex部署
    • GO在什么方面超过了Python
      • 1.并发
      • 2.构建跨平台CLI
      • 3.生态系统
    • 总结
  • 后记

机器学习发展历史

机器学习阶段 年份 主要成果 代表人物
人工智能起源 1936 自动机模型理论 阿兰•图灵(Alan Turing)

为什么Python在近发展这么快

Python如今却稳坐编程语言界的霸主,尤其是在机器学习领域,所有主流机器学习框架都在用Python,当然Python爬虫也是有一部分功劳的。

Python引以为豪的机器学习算法,只是机器学习系统的一个组成部分。要实际大规模运行生产机器学习API。

机器学习API需要实现哪些功能的基础架构:

1.自动缩放

以便流量波动不会破坏您的API,API管理,以处理的API部署滚动更新,以便您可以在更新模型的同时仍为用户提供服务。

2.Cortex部署

对于像Cortex这样的开源机器学习部署平台,旨在使所有这些基础架构自动化,以及日志记录和成本优化等其他方面的关注,相比Python而言,Go更合。

GO在什么方面超过了Python

1.并发

并发对于机器学习基础架构至关重要,用户可以将许多不同的模型部署为不同的API,所有模型都在同一个Cortex集群中进行管理。
为了让Cortex Operator能够管理这些不同的部署,需要纠缠一些不同的API。
用户不会直接与任何这些API进行交互,取而代之的是,Cortex以编程方式调用这些API来供应集群,启动部署和监视API。
除此之外,Goroutines是正常的Go并发执行的功能。许多Goroutine可以放在一个OS线程上,如果Goroutine阻塞了OS线程,则Go运行时会自动将其余Goroutines移至新的OS线程。
使用asyncio等最新工具在Python中实现所有这些功能可能是可行的,但是Go的设计充分考虑了这种用例,这一事实使我们的生活变得更加轻松。

2.构建跨平台CLI

在Go中构建跨平台CLI更容易
Cortex CLI是一种跨平台工具,允许用户直接从命令行部署模型和管理API。Python编写的CLI尝试在各种平台之间分发太困难了。
因为Go可以编译成一个二进制文件(不需要依赖管理),所以它为我们提供了一个在平台之间分发CLI的简单解决方案,而无需进行过多的工程工作。经过编译的Go二进制文件和解释型语言的性能优势也很明显。
根据计算机基准测试游戏,Go的运行速度比Python快得多。许多其他基础结构CLI工具都是用Go编写的,这并非巧合。

3.生态系统

Go生态系统非常适合基础设施项目
开源的好处之一是,您可以从自己欣赏的项目中学习。 例如,Cortex存在于Kubernetes(本身用Go编写)生态系统中。 我们很幸运能够在该生态系统中学习到许多出色的开源项目。
例如: kubectlminikubehelmkops等是用GO写的,不仅是Kubernetes项目。
无论是在看CockroachDB还是Hashicorp的基础设施项目,包括Vault,Nomad,Terraform,Consul和Packer,它们都是用Go编写的。
Go在基础设施领域的流行还有另一个影响,这就是大多数工程师都感兴趣!在基础架构方面工作的人对Go很熟悉,这使得吸引工程师更加容易。

总结

除此以外,相比Python,Go的优势还体现在:
拥有非常棒的编译器,编译器可以检测出你犯的所有低级错误更好的并行性。Go 语言就是为并行而生的部署简单。代码所需要的所有依赖都在一个二进制文件里风格一致。格式化工具会让所有代码风格都保持一致更便捷的工具。一个编辑器+插件满足几乎所有需求,都不需要IDE适用于机器学习的Python,适用于基础架构的GoCortex服务于下面展示一些 。
TensorFlowPyTorchscikit-learn和其他Python模型,这意味着与这些模型的接口以及推理前后的处理,用Python完成。但是,即使将Python代码打包到了Docker容器中,这些容器都是用Go语言编写的代码精心编排的。如果你有兴趣成为一名机器学习工程师,那么了解Python是必须的。但是,如果你对使用机器学习基础结构感兴趣,则应认真考虑使用Go。

后记

大家觉得有什么方面说的不对可以再下方留言!
谢谢观看,希望大家能给个三连!

你可能感兴趣的:(golang,Python,golang,后端,python)