Python并非为AI而生Golang将统治人工智能的下一个十年?_措辞_速度
【新智元导读】过去几年,Python成为人工智能和数据科学领域最受欢迎的编程措辞。但是随着5G时期的来临,生产环境对AI运用的性能哀求越来越高,Python有点「力不从心」。天生支持并发的Golang应运而生,专家称,Go措辞将统治人工智能的下一个十年。
30年前,Python 首次涌现。
但是Python花了20年的韶光才得到"大众的认可。
根据2019年Stack Overflow的调查,Python成为开拓职员第二喜好的措辞。
过去的5年里,Python的发展无疑是巨大的,已经成为机器学习和数据科学开拓职员的首选措辞。
短韶光来看,Python 的主导地位大概率不会变。但是与一些新兴的措辞比较,它有一些严重的缺陷,将成为生产环境支配的障碍。
Python 受欢迎的紧张缘故原由是它很随意马虎学习。
与其他措辞比较,它的语法很大略,任何人都可以在几个小时或几天内学会 Python 的根本知识。
纵然在学习了c++ 或 Java 等其他措辞之后,开拓职员还是更乐意利用 Python。由于无论你想干啥,总有一个Python 库能知足你的需求,这些库让开发数据科学和AI类的运用变的大略高效。
但Python在大规模生产环境下的性能问题,直接影响了AI运用的开拓效率。现在很多人工智能初创企业,正处于底层架构的构建阶段,检讨 Python 的问题很有必要。
Python是一个阐明性措辞,这导致它实行起来比较慢,与其他编译措辞如c++ 和 Go 比较,Python 的实行速率就像乌龟一样,以是很多AI模型虽然是用Python开拓的原型,支配时还得转成其他措辞。
Python 是一种动态类型措辞。变量的数据类型在运行时自动判断,也使得实行速率变慢。
为了战胜 Python 的速率,很多Python库选择更快的措辞来重写,例如 TensorFlow、 Numpy 和 Pandas 部分是用 c 或c++ 编写的,它们有助于显著提高实行速率。
这就有点像拄着拐走路,一贯须要外界的帮助。
随着5G时期的来临,多任务并行处理和实时性的需求猛增,Python是可以构建小而美的运用,但是大规模、高吞吐的场景下,表现不尽如人意。虽然有很多方法,来提高Python的并行打算的能力,但都是曲线实现的,并没有实现真正意义的并行。
由于Python中存在一个GIL锁,每次只许可程序实行一个线程。
GIL的全称是Global Interpreter Lock(全局阐明器锁),Python之父为了数据安全而设计的,那个时候打算机的主频还没有达到1G,程序全部都是运行在单核打算机上面。
某个线程想要实行,必须先拿到GIL,可以把GIL看作CPU的「通畅证」,拿不到通畅证就不许可进入CPU实行,Python 的多线程实际上并没有利用到多核打算的上风,它不管你有几个核,100个核也只能跑一个线程。
以是,原生的Python在性能上是有诸多限定的。人工智能和数据科学领域,对性能需求又很高,那有没有一种措辞既有Python大略易用的优点,又能知足生产需求呢?
这时,Golang应运而生。
Golang(简称Go) 是一种静态和编译型措辞,这意味着它的实行速率将比 Python 快好几倍。与 Python 不同,Go 不须要其他措辞的帮助来提高速率。
下面是Go和 Python 之间的一个小型基准游戏对决。Go实行险些和 c++、 Java 一样快,而且Go 编译代码比c++ 和 Java 要快得多,有些游戏中Go所需韶光只有Python的百分之一。
Go 的语法也很大略,程序写完后可以直接编译成二进制文件实行。25 个关键字就能表达你能想到的所有招式,想干啥事就 Go一下。
Go 最大的特色便是天生支持并发,不须要像其他编程措辞那样须要开拓者自行实现或借助第三方库实现并发编程,逻辑大略普通易懂。
Go利用 Goroutine来实现并发,Goroutine 是可以同时独立运行的函数,只占用2 kB 的内存,以是单机同时运行成千上万个Goroutine,也没问题。
上面这段程序顺序实行花费了1000多毫秒。下面我们在printTime函数前面增加一个关键字go,也便是利用Goroutine让程序并发实行,全体过程只花费了110毫秒,以是Go中实现并发非常大略。
不同于其他脚本或阐明性高等编程措辞,用 Go 编写的代码直接了当编译成机器码高效实行。x86、AMD64 (x86_64)、ARM;Linux、Windows、Darwin (OSX)、FreeBSD、Android (操持Go 1.4) 险些全平台支持,真正做到了一码在手,随处复用。
人工智能正在席卷全体天下,机器学习、深度学习等模拟人类智能的运用程序层出不穷,Python可以很好地构建原型系统,帮我们验证模型是否有利用提高效率。
但现在,对高可扩展性和打算能力的需求,让Python有点捉襟见肘,而Go则在这些方面表现出了更大的潜力。与Python比较,Go的速率可以快几十倍上百倍,吞吐更多的数据,知足更高的并发需求。
根据 Hackearth 对来自76个国家的16000多名开拓者的调查,Go 成为2020年最受欢迎的编程措辞。
今年,有履历的开拓职员中有近三成想学习Go,学生中这一比例也达到了29%。
知乎在几年前也将推举系统从 Python切换到了 Go。
Go首席布道师许式伟2015年时曾说,Go 措辞将在两年内制霸云打算领域,而且Go 将统治下一个 10 年。
Docker、Kubernetes等项目的成功,让Go在集群打算和云打算领域拔得了头筹,但是Go的脚步并没有停下。
我们利用机器学习、深度学习来预测和推理,终极目的还是为了生产做事。
Go对生产环境的支持要远远好于Python,比如Go措辞开拓的Cortex,可以将Python开拓的AI模型快速、稳定地支配至生产环境。
Go 和 Python 两大社区的开拓职员也辩论过哪种措辞更好,彷佛,谁也没完备说服谁。
但越来越多的公司采取Go搭建根本架构,至少证明,Go对生产环境来说更加得当。
推举阅读:
谷歌给听障人士按下静音键,AI的天下没有原谅?
参考链接:
https://towardsdatascience.com/golang-ai-programming-language-for-the-20s-71890baa8c47
https://blog.qiniu.com/archives/113
https://zhuanlan.zhihu.com/p/93931669
本文系作者个人观点,不代表本站立场,转载请注明出处!