Python は AI のために生まれたわけではありません。Golang は今後 10 年間の人工知能を支配することになるでしょうか?

Python は AI のために生まれたわけではありません。Golang は今後 10 年間の人工知能を支配することになるでしょうか?

ここ数年、Python は人工知能とデータサイエンスの分野で最も人気のあるプログラミング言語になりました。しかし、5G時代の到来とともに、実稼働環境ではAIアプリケーションに対するパフォーマンス要件がますます高まっており、Pythonでは少々「対応できない」状態になっています。当然のことながら並行処理をサポートする Golang が誕生しました。専門家は、Go 言語が今後 10 年間の人工知能の主流となるだろうと述べています。

[[345746]]

Pythonが認知されるまでに20年かかりましたが、AIのために生まれたわけではありません

Python が初めて登場したのは 30 年前です。

しかし、Python が一般に受け入れられるまでには 20 年かかりました。

2019 年の Stack Overflow 調査によると、Python は開発者の間で 2 番目に人気のある言語になりました。

過去 5 年間の Python の成長は間違いなく驚異的であり、機械学習やデータ サイエンスの開発者に好まれる言語となっています。

短期的には、Python の優位性が変わる可能性は低いでしょう。しかし、いくつかの新興言語と比較すると、実稼働環境への展開の障害となる重大な欠点がいくつかあります。

Python が人気である主な理由は、学習が簡単なことです。

他の言語に比べて構文がシンプルで、誰でも数時間または数日で Python の基礎を習得できます。

C++ や Java などの他の言語を学習した後でも、開発者は Python を使用することを好みます。何をしたいとしても、ニーズを満たす Python ライブラリが必ずあります。これらのライブラリにより、データ サイエンスと AI アプリケーションの開発がシンプルかつ効率的になります。

しかし、大規模な本番環境における Python のパフォーマンスの問題は、AI アプリケーションの開発効率に直接影響します。多くの人工知能スタートアップは現在、基盤となるアーキテクチャを構築している段階にあるため、Python の問題を確認する必要があります。

GIL が Python をロックし、松葉杖で歩くときにパフォーマンスがボトルネックになった

Pythonはインタープリタ型言語であるため、実行速度が遅くなります。C++やGoなどの他のコンパイル言語と比較すると、Pythonの実行速度はカメのように遅いです。そのため、多くのAIモデルはPythonで開発されたプロトタイプですが、展開時に他の言語に変換する必要があります。

Python は動的型付け言語です。変数のデータ型は実行時に自動的に決定されるため、実行速度も低下します。

Python の速度を克服するために、多くの Python ライブラリがより高速な言語で書き直されています。たとえば、TensorFlow、Numpy、Pandas は部分的に C または C++ で書かれており、実行速度が大幅に向上しています。

それは松葉杖をついて歩くようなもので、常に外界からの助けを必要とします。

5G時代の到来により、マルチタスクの並列処理とリアルタイム性能の需要が飛躍的に高まっています。Pythonは小さくて美しいアプリケーションの構築に使用できますが、大規模で高スループットのシナリオではパフォーマンスが不十分です。 Python の並列コンピューティング機能を向上させる方法は多数ありますが、それらはすべて回りくどい方法で実装されており、真の並列性は実現されていません。

Python には GIL ロックがあるため、一度に実行できるプログラムのスレッドは 1 つだけです。

GIL の正式名称は Global Interpreter Lock です。これは、Python の父がデータ セキュリティのために設計したものです。当時、コンピューターの主な周波数は 1G に達しておらず、すべてのプログラムはシングル コア コンピューターで実行されていました。

[[345747]]

スレッドを実行するには、まず GIL を取得する必要があります。GIL は CPU の「パス」とみなすことができます。パスがないと、実行のために CPU に入ることはできません。Python のマルチスレッドは、実際にはマルチコア コンピューティングの利点を活用しません。コアがいくつあっても、100 コアでは 1 つのスレッドしか実行できません。

したがって、ネイティブ Python にはパフォーマンスに関して多くの制限があります。人工知能やデータサイエンスの分野では、非常に高いパフォーマンス要件が求められます。Python のシンプルさと使いやすさの利点を備えながら、実稼働のニーズを満たす言語はあるでしょうか?

この時にGolangが誕生しました。

Goは自然に並行処理が可能で、クラウドコンピューティングを支配しており、今後10年間のAIを支配するだろう。

Golang (略して Go) は静的にコンパイルされる言語であり、Python よりも数倍高速に実行されます。 Python とは異なり、Go は高速化するために他の言語の助けを必要としません。

以下は、Go と Python の小さなベンチマーク ゲーム対決です。 Go は C++ や Java とほぼ同じ速度で実行され、Go でコンパイルされたコードは C++ や Java よりもはるかに高速です。ゲームによっては、Go にかかる時間は Python の 1% にすぎません。

Go の構文も非常にシンプルです。プログラムを記述したら、それを直接バイナリ ファイルにコンパイルして実行できます。 25 個のキーワードで、思いつく限りの動きをすべて表現できます。やりたいことを何でも実行してください。

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か国16,000人以上の開発者を対象に実施した調査によると、Goは2020年に最も人気のあるプログラミング言語となった。

今年は、経験豊富な開発者の約 30% が Go を学習したいと考えており、学生の間でこの割合は 29% に達しています。

Zhihu も数年前に推奨システムを Python から Go に切り替えました。

GoのチーフエバンジェリストであるXu Shiwei氏は2015年に、Go言語は2年以内にクラウドコンピューティング分野を席巻し、今後10年間は​​Goが支配するだろうと語った。

Docker や Kubernetes などのプロジェクトの成功により、Go はクラスター コンピューティングとクラウド コンピューティングをリードできるようになりましたが、Go の勢いは止まりません。

私たちは予測と推論に機械学習とディープラーニングを使用し、最終的な目標はサービスを生み出すことです。

Go の実稼働環境に対するサポートは Python よりもはるかに優れています。たとえば、Go 言語で開発された Cortex は、Python で開発された AI モデルを実稼働環境に迅速かつ安定的にデプロイできます。

Go と Python のコミュニティの開発者も、どちらの言語が優れているかについて議論してきましたが、誰も完全に納得していないようです。

しかし、インフラストラクチャの構築に Go を使用する企業が増えており、少なくとも Go が本番環境に適していることが証明されています。

<<:  中国工程院院士の李軍氏:単一車両知能には5つの大きな問題があり、自動運転には新たな技術的ルートが必要

>>:  うつ病に苦しむ5400万人の人々に直面し、600人のボランティアはAIを使って彼らを救うつもりだ

ブログ    
ブログ    

推薦する

AI による IoT センサー電力の管理

[[352688]]センサーの電源喪失は IoT の悩みの種です。数百万個のセンサーを導入しても、そ...

IBM: ワトソン人工知能システムをすべてのクラウドプラットフォームに公開

米国のテクノロジーメディアの報道によると、IBMは本日、ワトソンブランドの人工知能サービスを自社のク...

...

機械学習と人工知能: 定義と重要性

[[258322]]機械学習は計算知能とも呼ばれ、近年いくつかの技術的障壁を突破し、ロボット工学、機...

梅の花の山の上を歩くロボット犬?自転車は自分でバランスをとることができますか?テンセント・ロボティクスXラボ研究初の「開封」

テンセントは11月20日、移動ロボット研究における新たな進展を発表し、四足移動ロボット「ジャモカ」と...

5G+UAVの利点

5G+UAVの利点を見てみましょう。 [[398161]]現在、ドローンの開発は3つの大きな障害に直...

Googleなどのテクノロジー大手が新技術を発表:人工知能が自ら進化できるようにする

ニューヨーク・タイムズの最近の報道によると、Googleなどのテクノロジー大手は、人工知能の専門家不...

...

...

5分でPythonのランダムヒルクライミングアルゴリズムをマスターする

ランダム化ヒルクライミングは最適化アルゴリズムです。検索プロセスの一部としてランダム性を使用します。...

GitHub で 2.3k スターを獲得した ML 論文のリストを入手し、自分の仕事に活用しましょう。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

サーバーレス コンピューティングによる機械学習の解決策は何でしょうか?

1. 機械学習とサーバーレス学習1.1. 機械学習 (ML) はアプリケーション シナリオでどのよ...

AIは人間の絵画と「区別がつかない」芸術作品を生み出すことができる

人工知能技術(AI)の発達により、画家という職業は機械に置き換えられつつあるようです。最近、アメリカ...

検証可能な AI に向けて: 形式手法の 5 つの課題

人工知能は、学習、問題解決、合理的な思考や行動など、知能と直感的に関連付けられる機能を含め、人間の知...

アイウェア市場は1000億円規模を超えるか? 3Dプリントで「顔のカスタマイズ」を実現

私たちの日常生活には、近視用メガネ、サングラス、サングラス、遠視用メガネ、ゴーグルなど、視力矯正、視...