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

ブログ    
ブログ    

推薦する

科学ニュース!光速でのディープラーニングを実現、GPUに別れを告げる

GPU がディープラーニングを促進したのであれば、今日ではディープラーニングへの欲求はすでに GPU...

cnBeta は、開発者が AI アプリケーションを構築するのに役立つ 3 つの新しい機械学習ツールをリリースしました。

TechCrunchのウェブサイト、北京時間9月25日によると、多くの競合他社と同様に、Micro...

Visual Mamba が登場: 2.8 倍高速、メモリが 87% 削減

「万能トランスフォーマー」として知られるマンバは、発売から2か月も経たないうちに高性能ビジュアルバー...

重要なお知らせです!顔認識のために服を着用する必要があります!

[[409661]]画像はBaotu.comより顔認識は、多くのソフトウェアの ID セキュリティ...

小売業界のトレンド: 人工知能からクーポンコードまで

[[436501]]機械学習と人工知能 (AI) の登場により、企業のビジネスのやり方は大きく変化し...

ニューラルネットワークにおける分位点回帰と分位点損失

機械学習を使って予測モデルを構築する場合、単に「予測値(点予測)」を知りたいのではなく、「予測値が特...

...

Langchain、ChromaDB、GPT 3.5 に基づく検索強化型生成

翻訳者|朱 仙中レビュー | Chonglou概要:このブログでは、検索拡張生成と呼ばれるプロンプト...

AIが初めて新型コロナウイルスの警告を発するのか?人工知能はあなたが思っている以上に信頼できるものです!

2019年12月30日に武漢で新型肺炎が発生してから1か月以上が経ちました。マスクの値上げや品切れ...

月間 30 万個の H100 チップ、Nvidia は Intel にチップの製造を依頼しているのでしょうか? CoWosの生産能力が低すぎるからといって

TSMCの生産能力不足により、Nvidiaはチップ製造をIntelに頼らざるを得なくなったのか? T...

データコレクターでリアルタイム機械学習に TensorFlow を使用する方法

【51CTO.com クイック翻訳】ビジネス ユーザーとアプリケーションがさまざまなソースからの生デ...

機械学習開発者が知っておくべき 5 つのディープラーニング フレームワーク

ディープラーニングには大量の計算が必要です。通常、多数のノードを持つニューラル ネットワークで構成さ...

AI主導のサイバーセキュリティチームが人間の能力拡張に取り組む

サイバー脅威の範囲は、企業資産や選挙から健康データや物理インフラまで拡大しており、新興技術の予期せぬ...

...