ディープラーニングフレームワークの簡単な歴史: TFとPyTorchは二大勢力であり、次の10年は黄金時代を迎える

ディープラーニングフレームワークの簡単な歴史: TFとPyTorchは二大勢力であり、次の10年は黄金時代を迎える

過去 10 年間で、機械学習 (特にディープラーニング) の分野では多数のアルゴリズムとアプリケーションが登場しました。これらのディープラーニング アルゴリズムとアプリケーションの出現の背後には、さまざまなディープラーニング ツールとフレームワークがあります。これらは機械学習革命の足場です。TensorFlow や PyTorch などのディープラーニング フレームワークが広く使用されるようになったことで、多くの ML 実践者が適切なドメイン固有のプログラミング言語と豊富なビルディング ブロックを使用して、より簡単にモデルを組み立てられるようになりました。

ディープラーニング フレームワークの進化を振り返ると、ディープラーニング フレームワークとディープラーニング アルゴリズムの間に密接な結合関係があることがはっきりとわかります。この相互依存の好循環により、ディープラーニングのフレームワークとツールが急速に発展しました。

[[357968]]

Nationalmuseet 提供、CC BY-SA 3.0、https://commons.wikimedia.org/w/index.php?curid=90400464

石器時代(21世紀初頭)

ニューラル ネットワークの概念は、かなり以前から存在しています。 21 世紀初頭以前には、ニューラル ネットワークを記述および開発するためのツールがいくつかありました。これらのツールには、MATLAB、OpenNN、Torch などが含まれますが、これらはニューラル ネットワーク モデル開発用に特別にカスタマイズされていないか、ユーザー API が複雑で GPU サポートが不足しています。この間、ML 実践者は、これらの原始的なディープラーニング フレームワークを使用する際に、多大な労力を費やす必要がありました。

[[357969]]

Nationalmuseet 提供、CC BY-SA 3.0、https://commons.wikimedia.org/w/index.php?curid=90400464

青銅器時代(~2012年)

2012年、トロント大学のアレックス・クリジェフスキーらは、後にAlexNet[1]と呼ばれるディープニューラルネットワークアーキテクチャを提案し、ImageNetデータセットでSOTA精度を達成し、2位の競合を大きく上回りました。この素晴らしい結果により、ディープ ニューラル ネットワークの人気が高まり、それ以来、さまざまなディープ ニューラル ネットワーク モデルが ImageNet データセットの精度において新たな記録を樹立し続けています。

この頃、Caffe、Chainer、Theano などの初期のディープラーニング フレームワークが登場しました。これらのフレームワークを使用すると、ユーザーは CNN、RNN、LSTM などの複雑なディープ ニューラル ネットワーク モデルを簡単に構築できます。さらに、これらのフレームワークはマルチ GPU トレーニングをサポートしているため、これらのモデルのトレーニング時間が大幅に短縮され、以前は単一の GPU のメモリに収まらなかった大規模なモデルのトレーニングが可能になります。これらのフレームワークのうち、Caffe と Theano は宣言型プログラミング スタイルを使用し、Chainer は命令型プログラミング スタイルを採用しています。これら 2 つの異なるプログラミング スタイルは、今後のディープラーニング フレームワークに対して 2 つの異なる開発パスも設定します。

[[357970]]

北欧の家族 — 北欧の家族 (1910)、第 13 巻、芸術まで。Järnåldern。https://commons.wikimedia.org/w/index.php?curid=109777

鉄器時代(2015年~2016年)

AlexNet の成功はコンピューター ビジョンの分野で大きな注目を集め、ニューラル ネットワークへの期待を再燃させ、大手テクノロジー企業がディープラーニング フレームワークの開発に加わりました。その中で、Google は有名な TensorFlow フレームワークをオープンソース化しました。これは現在でも ML 分野で最も人気のあるディープラーニング フレームワークです。 Caffe の発明者は Facebook に加わり、Caffe2 をリリースしました。同時に、Facebook AI Research (FAIR) チームも、Torch フレームワークをベースにしながらも、より人気の高い Python API を使用する、別の人気フレームワークである PyTorch をリリースしました。 Microsoft Research は CNTK フレームワークを開発しました。 Amazon は、ワシントン大学、カーネギーメロン大学、その他の機関による共同学術プロジェクトである MXNet を採用しました。 TensorFlow と CNTK は Theano から宣言型プログラミング スタイルを借用していますが、PyTorch は Torch から直感的でユーザー フレンドリーな命令型プログラミング スタイルを継承しています。命令型プログラミング スタイルはより柔軟性があり (While ループの定義など)、追跡が容易ですが、宣言型プログラミング スタイルでは通常、計算グラフに基づいてメモリとランタイムの最適化のための余地が大きくなります。一方、“mix”-net として知られる MXNet は、シンボリック (宣言型) API のセットと命令型 API のセットの両方をサポートし、ハイブリッド化と呼ばれる手法によって命令型 API を使用して記述されたモデルのパフォーマンスを最適化し、両方のメリットを享受します。

2015年にHe KaimingらはResNet[2]を提案し、再び画像分類の限界を打ち破り、ImageNetの精度において新たな記録を樹立しました。業界と学界は、ディープラーニングが次なる大きな技術トレンドとなり、これまで不可能と考えられていたさまざまな分野の課題を解決するだろうという点で合意に達しています。この期間中、すべてのディープラーニング フレームワークは、マルチ GPU トレーニングと分散トレーニングを最適化し、よりユーザーにとって直感的な API を提供し、コンピューター ビジョンや自然言語処理などの特定のタスク専用のモデル ズーとツールキットを派生させました。また、Francois Chollet 氏がほぼ独力で Keras フレームワークを開発したことも注目に値します。Keras フレームワークは、TensorFlow や MXNet などの既存のフレームワークの上に、ニューラル ネットワークとビルディング ブロックのより直感的な高レベルの抽象化を提供します。本日より、この抽象化は TensorFlow における事実上のモデルレベル API になります。

[[357971]]

sv.wikipedia のユーザー Lamré より https://commons.wikimedia.org/w/index.php?curid=801434

ローマ時代(2019年~2020年)

人類の歴史の発展と同様に、ディープラーニング フレームワークは、激しい競争を経て、最終的に 2 つの「帝国」、つまり TensorFlow と PyTorch の複占を形成しました。この 2 つの「帝国」は、ディープラーニング フレームワークの研究開発と製造における使用事例の 95% 以上を占めています。 2019 年に Chainer チームは開発作業を PyTorch に移行しました。同様に、Microsoft は CNTK フレームワークの積極的な開発を停止し、一部のチーム メンバーは Windows 上の PyTorch と ONNX ランタイムのサポートに切り替えました。 Keras は TensorFlow に組み込まれ、TensorFlow 2.0 バージョンでは高レベル API の 1 つになりました。ディープラーニングフレームワークの分野では、MXNet は依然として 3 位にランクされています。

この期間中、ディープラーニング フレームワークの分野では 2 つの傾向がありました。 1つ目は大規模モデルのトレーニングです。 BERT[3]とその近縁種であるGPT-3[4]の登場により、大規模モデルをトレーニングする能力はディープラーニングフレームワークの望ましい機能となりました。これには、数百、あるいは数千のデバイスにわたって大規模かつ効率的にトレーニングできるディープラーニング フレームワークが必要です。 2番目のトレンドは使いやすさです。この時期のディープラーニング フレームワークはすべて、柔軟なセマンティクスと簡単なデバッグを備えた命令型プログラミング スタイルを採用していました。同時に、これらのフレームワークは、JIT (Just-in-Time) コンパイラ テクノロジを通じて高パフォーマンスを実現するためのユーザー レベルのデコレータまたは API も提供します。

[[357972]]

Tharunbr77 による — 自身の作品、CC BY-SA 4.0、https://commons.wikimedia.org/w/index.php?curid=86866550

産業時代(2021年以降)

ディープラーニングは、自動運転、パーソナライズされた推奨、自然言語理解、ヘルスケアなど、幅広い分野で大きな成功を収め、これまでにない数のユーザー、開発者、投資家の波をもたらしました。これは、今後 10 年間のディープラーニング ツールとフレームワークの開発にとっても絶好の時期です。ディープラーニング フレームワークは当初から大きな進歩を遂げてきましたが、ディープラーニングにおけるその地位は、インターネット アプリケーションにおけるプログラミング言語 JAVA/C++ に比べるとはるかに成熟していません。探索し、実行すべき刺激的な機会や仕事がまだたくさんあります。

今後、次世代のディープラーニング フレームワークで主流になると予想される技術トレンドがいくつかあります。

コンパイラベースの演算子の最適化。現在、多くのオペレータ カーネルは手動で実装されているか、特定のハードウェア プラットフォームを対象とする BLAS、CuDNN、OneDNN などのサードパーティ ライブラリを通じて実装されています。これにより、モデルが異なるハードウェア プラットフォームでトレーニングまたはデプロイされる場合、大きなオーバーヘッドが発生する可能性があります。さらに、新しいディープラーニング アルゴリズムの成長率は、これらのライブラリの反復率よりもはるかに速い傾向があるため、これらのライブラリは新しい演算子をサポートできないことがよくあります。 Apache TVM、MLIR、Facebook Glow などのディープラーニング コンパイラは、あらゆるハードウェア バックエンドで計算を最適化して効率的に実行することを提案しています。これらは、ディープラーニング フレームワークのバックエンド全体として機能することができます。

統一された API 標準。多くのディープラーニング フレームワークは、類似しているもののわずかに異なるユーザー API を共有しています。これにより、あるフレームワークから別のフレームワークに切り替えるユーザーにとって、困難と不必要な学習曲線が生じます。ほとんどの機械学習実践者やデータ サイエンティストは NumPy ライブラリに精通していますが、NumPy API が新しいディープラーニング フレームワークのテナー操作 API の標準になるのは当然のことです。 NumPy と完全に互換性のある API を備えたフレームワーク JAX の採用が急速に増加しています。

第一級市民としてのデータ処理。マルチノードまたはマルチデバイスのトレーニングは、ディープ ニューラル ネットワークのトレーニングの標準になりつつあります。 OneFlow などの最近開発されたディープラーニング フレームワークは、最初からこの観点を念頭に置いて設計されており、データ通信をモデル トレーニングの全体的な計算グラフの一部として考慮しています。これにより、パフォーマンスの最適化の機会が広がり、以前のディープラーニング フレームワークのように複数のトレーニング戦略 (単一デバイスと分散トレーニング) を維持する必要がないため、パフォーマンスが向上するだけでなく、よりシンプルなユーザー インターフェイスも提供できます。

要約する

私たちは人工知能革命の幕開けを迎えています。人工知能の分野における新たな研究と応用が、かつてない速さで登場しています。 8年前のAlexNetネットワークには6000万個のパラメータが含まれていましたが、最新のGPT-3ネットワークには1750億個のパラメータが含まれています。ネットワークサイズは8年で3000倍に増加しました。一方、人間の脳には約100兆個のパラメータ(つまりシナプス)が含まれています。これは、ニューラル ネットワークが人間の知能レベルに到達するには、たとえそれが可能だとしても、まだ長い道のりがあることを示唆しています。

この許容できないネットワーク サイズは、モデルのトレーニングと推論のハードウェアとソフトウェアの計算効率に大きな課題をもたらします。将来のディープラーニング フレームワークは、アルゴリズム、高性能コンピューティング、ハードウェア アクセラレータ、分散システムの学際的な成果となる可能性があります。

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  AIがトランプ氏をダンサーに変身させ、蔡旭坤とともに「チキン、ユー・アー・ソー・ビューティフル」を踊った

>>:  フロントエンドアルゴリズムシステム演習:リンクリストの章が完了

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ワイヤレス ネットワークと人工知能が出会うと何が起こるでしょうか?

人工知能(AI)は未来の技術ではなく、すでに存在している技術です。機械学習のイノベーションにより A...

電子鼻のウイスキー識別精度は96%にも達する。ネットユーザー:茅台酒にも作ってみよう

国産茅台酒や一部の外国産高級ウイスキーは高価であるが、偽造品の重要なターゲットでもある。ワイン鑑定家...

機械学習を使用して、GPU と TPU で高速化できる O(N) 複雑度のソート アルゴリズムを構築します。

[[238409]]ソートは、コンピュータ サイエンスにおいて常に最も基本的なアルゴリズムの 1 ...

...

遺伝的アルゴリズムの動作原理を 1 つの記事で理解する (Python 実装付き)

最近、「遺伝的アルゴリズムの紹介とデータ サイエンスにおけるその応用」というタイトルの記事が Ana...

2020 年の世界トップ 10 AI ガバナンス イベント

[[378054]]現在、新世代の人工知能技術は世界中で急速に発展し、ビッグデータ、ブロックチェーン...

AI を使って「手を洗ってください」を 500 の言語に翻訳する方法

[[322940]]人間による翻訳と機械による翻訳の両方を使用することで、健康に関する重要なフレーズ...

教師なし機械学習技術は金融セキュリティの懸念を解決できる

「テクノロジーがなければ、金融は存在しない。」モバイルインターネット時代の到来により、テクノロジーや...

ビッグデータと機械学習は世界のエネルギー業界をどのように変えるのでしょうか?

機械学習、ビッグデータ、自動化は世界の産業システムに革命をもたらしており、エネルギー業界も例外ではあ...

...

...

...

AIは信頼の危機にどう対処するか

今後 10 年間で AI が改善する必要がある領域が 1 つあります。それは透明性です。しかし、人工...

エージェントは迅速なエンジニアリングに使用されます

エージェントが現実世界での人間の行動を模倣する場合、それをプロンプトエンジニアリングに適用できますか...