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を使って彼らを救うつもりだ

ブログ    

推薦する

...

大規模言語モデルのデコード

過去 10 年間で、AI (人工知能) の分野は目覚ましい進歩を遂げており、NLP (自然言語処理)...

ウクライナ国防省がAI認識技術を採用、Clearview AIが再び疑問視される

イベント紹介ロイター通信によると、ウクライナ政府省庁は土曜日、クリアビューAIの顔認識技術の使用を開...

Pythonでゲームボーイエミュレーターを作成し、AIモデルをトレーニングする:デンマーク人の大学のプロジェクトが大ヒット

Atari ゲームを使って人工知能を研究するのは、ちょっと現実的ではないと感じますか?これでゲームボ...

Julia言語を使用して「準同型暗号化+機械学習」を実装するには?

[[285696]]最近、「ブロックチェーン」や「フェデレーテッドラーニング」などの概念がかつてな...

鍾南山氏は人工知能カンファレンスでAI COVID-19画像認識などの技術について講演した。

現在、世界の健康は大きな課題に直面しています。2020年以降の新型コロナウイルスの蔓延は、世界的な公...

超強力なPytorchオペレーション! ! !

こんにちは、Xiaozhuangです!ここ数日、ディープラーニングに関するコンテンツをいくつか共有し...

GPUが急成長を遂げるGenAIの時代において、AMDはNvidiaのCUDAソフトウェアの堀を超えつつある

今日、生成 AI (GenAI) について話すとき、GPU とそれに伴うパフォーマンスおよびアクセシ...

...

機械故障診断における人工知能の応用方向

機械の故障診断における人工知能の応用方向を次に示します。 [[342398]] 1. 機械故障診断に...

PyTorch と TensorFlow の最新バージョンを比較すると、2021 年にはどちらを選択しますか?

ディープラーニングが再び認知されて以来、多くの機械学習フレームワークが登場し、研究者や業界の専門家の...

パートナーはいますか? Facebookの従業員が休暇中にロボットを家に持ち帰り、死に関する質問に答える

[[286539]]ビッグデータダイジェスト制作著者: 張大毓如、陳若夢春節が近づいてきました!叔母...

超人気のミニGPT-4は視覚機能が急増し、GitHubでは2万個のスターを獲得し、中国のチームによって制作されています

ターゲット検出用のGPT-4V?ネットユーザーの実地テスト:まだ準備ができていません。検出されたカテ...