【51CTO.comオリジナル記事】 1. 前に書く 5Gは2019年上半期の輝く「星」と言えるが、米国は中国の5G技術が海外に流出するのを何としても阻止しようとしている。 5Gが重要な理由は、AI技術やビッグデータ技術と相まって、私たちの既存のライフスタイルを覆し、インテリジェンスを現実のものにするからです。 インテリジェントな世界では、5Gテクノロジーは高速(> 1 Gbps)かつ低遅延(1ms)の基本ネットワークサービスを提供して、モノのインターネット(IoT)を構築します。ビッグデータテクノロジーは、モノのインターネットによって生成された膨大なデータを統合する機能を提供し、AIテクノロジーは、インテリジェントエコシステム全体にコンピューティングと意思決定の機能を提供します。ディープラーニングテクノロジーは非常に効率的な実装方法です。過去10年間、学界と産業界によって「万能薬」であることが繰り返し証明されてきました。さまざまなモデルとアルゴリズムに依存して、人間よりも正確で迅速な判断を下すことができます。 図1 インテリジェント時代 テクノロジーは、その応用を実現するために効率的なモデルを必要としており、ディープラーニングフレームワークは「魔法の薬」を実現する「錬金術炉」です。ディープラーニングアルゴリズムのモジュールパッケージを通じて、モデルの構築、データの入力、さまざまなモデルのトレーニング、調整、テスト、展開を迅速に実行でき、インテリジェントエコシステム全体に予測や意思決定などのコア推論機能を提供します。 2. ディープラーニングフレームワークランキング ディープラーニングフレームワークの開発の初期段階で、技術開発をより促進するためにさまざまな企業が作成したオープンソースのエコロジカルモデルのおかげで、今日ではディープラーニングフレームワークが繁栄し、競争が激しくなり、産業分野でのディープラーニングテクノロジーの実装が急速に促進されています。もちろん、良い「薬」には良い「炉」も必要です。以下では、現在主流のディープラーニングフレームワークの開発状況、それぞれの特徴、適切なシナリオなどを紹介し、皆様が適切な「炉」を見つけるお手伝いをしたいと考えています。 以下の記事では、業界への影響、リソース投資、開発エコロジー、ドキュメントシステム、モデルの包括性、業界の実践、オープンソースの人気(GitHub)の7つの側面から各フレームワークの開発状況を評価します。結果は次の図に示されています(参考)。 図 2 上位 10 のディープラーニング フレームワークの開発レベル (caffe と caffe2 は別々にカウント) GitHubから関連データをいくつか見てみましょう。Pytorch、TensorFlow、PaddlePaddleは過去2年間で比較的速い開発速度を維持しています。特にPytorchのスター数は3倍に増加しており、注目を集めています。 Caffe&Caffe2、Theano、CNTK などはイテレーションを停止していますが、業界の急速な発展により、GitHub スターの数は依然として増加しています。 図 3 上位 10 のディープラーニング フレームワークの GitHub データの変化 (caffe と caffe2 は別々にカウント) 図4 上位10のディープラーニングフレームワークの成長率(caffeとcaffe2は別々にカウント) 3. ディープラーニングフレームワークのトップ10の詳細な説明 テンソルフロー Google の TensorFlow は、今日非常に人気のあるディープラーニング フレームワークと言えます。 Airbnb、DeepMind、Intel、Nvidia、Twitterなど多くの有名企業で使用されています。 Google は TensorFlow をオープンソース化して以来、基礎研究、AI 教育からアプリケーションの実装まで、AI エコシステムを段階的に構築するために多くの人的資源、物的資源、資金を投入してきましたが、このエコシステムの中核となるのが TensorFlow です。前述の通り、ディープラーニングはAIoT時代の礎であり、時代の転換期においてGoogleが今も最前線に立っていることは間違いありません。 TensorFlow は包括的なサービスを提供します。Python、C++、JAVA、Go、さらには JavaScript、Julia、C# であっても、ほぼすべての開発者が使い慣れた言語からディープラーニングの旅を始めることができます。 TensorFlow はアクティブなコミュニティと完全なドキュメント システムを構築しており、学習コストを大幅に削減します。ただし、コミュニティとドキュメントは主に英語であり、中国語のサポートを強化する必要があります。さらに、TensorFlow では計算グラフを非常に直感的に視覚化できます。このモデルは、高性能コンピューターからモバイル デバイス、小型軽量のスマート端末まで、さまざまなハードウェア マシンに迅速に展開できます。 TensorFlow の欠点は長年批判されてきました。Pytorch や Caffe などのフレームワークと比較すると、TensorFlow の計算速度は「荷車を引く牛」と言えるでしょう。さらに、これを使用してディープラーニング フレームワークを構築するには、より複雑なコードと静的グラフの繰り返し構築が必要になります。 しかし全体的には、英語での読解やコミュニケーションに問題がない学生にとっては、TensorFlow は依然としてディープラーニング フレームワークの好ましい選択肢です。 ピトーチ Pytorch は、Lua で記述された Torch ライブラリに基づいて Python で実装されたディープラーニング ライブラリです。Facebook によって作成され、現在、学界や産業界で広く使用されています。Caffe2 プロジェクトが Pytorch に組み込まれたことで、Pytorch はディープラーニング アプリケーション フレームワークの分野で TensorFlow の地位を脅かし始めています。 Pytorch の公式サイトのタイトルには、Pytorch の特徴と今後の発展の方向性が簡潔に説明されています。 Pytorch は学術界で大きな優位性を持っています。ディープラーニング モデルの使用に関する Google の記事を除いて、他のほとんどの記事は Pytorch で実験されています。その理由は、まず、Pytorch ライブラリは十分にシンプルで、NumPy、SciPy などとシームレスに接続でき、テンソル ベースの GPU アクセラレーションが非常に強力であることです。次に、トレーニング ネットワークの反復の核となる勾配計算、Autograd アーキテクチャ (Chainer から借用) は、Pytorch に基づいており、計算を実行するために不器用に静的ネットワーク グラフを定義することなく、ネットワークを動的に設計できます。任意のタスク用にネットワークを変更する場合は、静的グラフを最初から構築する必要があります。 Pytorch は、そのシンプルで柔軟な設計に基づいて、学術界における主流のディープラーニング フレームワークに急速に成長しました。 Pytorch の欠点は、モデルの展開にあります。展開の難しさについて聞いていたので、私は Pytorch モデルの展開を試みたことはありません。通常、私は Pytorch で新しいモデルをすばやくテストし、良好な結果を確認してから、簡単な最適化のために「既製の」TensorFlow モデルを探します。 しかし今、TensorFlow と Pytorch を詳しく見てみると、ますます似てきていることがわかります。TF は動的グラフ アーキテクチャを追加し、Pytorch は業界での使いやすさの向上に取り組んでいます。それぞれの公式サイトを開くと、文書のスタイルがどんどん似てきていることがわかります。 パドルパドル PaddlePaddleはBaiduが独自に開発したオープンソースのディープラーニングプラットフォームで、最近では中国語名がFeipangになっています。公式サイトのスクリーンショットも、多くの人がパドリングをしている様子が写っていてとても興味深いです。 PaddlePaddle が最初にリリースされたとき、あまり評判が良くありませんでした。Google や Baidu にもあるような感じでした。しかし、最近、意味認識のプロジェクトに取り組んでいます。他のフレームワークには中国語をサポートするモデルがほとんどなく、時間も限られており、大規模なトレーニングを行う時間はありません。そこで、PaddlePaddle を試してみることにしました。BERT をベースにした ERNIE モデルは良い結果を達成し、展開も難しくありませんでした。個人的には、モデル ライブラリ内のクラシック モデルを独自の問題に適用し、ベースライン モデルとして簡単にテストしてから、ゆっくりと調整してより良い結果を得ることができると思います。 モデルライブラリから自分に合ったモデルを見つけて、実践的なチュートリアルをステップバイステップで実行します。プロセスは比較的簡単です。遭遇した問題は、GitHub の問題で見つけることができます。TF ほどアクティブではありませんが、サポートも非常にタイムリーです。公式サイトから機種を探していたところ、公式サイトが再度更新されていたので、対応機種の雰囲気をつかむために写真を盗んでみました。 図 5 PaddlePaddle モデル ライブラリ (出典: Baidu PaddlePaddle 公式サイト) 機能面では、PaddlePaddle は動的グラフと静的グラフの両方をサポートしているため、モデルのデバッグとデプロイが容易になり、ビジネス アプリケーションの実装に非常に適しています。 PaddlePaddle はすでに数百のノードの効率的な並列トレーニングもサポートしています。過去2年間でディープラーニングの分野は大規模に実践され、さまざまなフレームワークも急速に発展してきたと言えます。しかし、現段階ではBaiduのPaddlePaddleが最も急速に成長しているフレームワークであり、さらに最も急速に成長しているAI開発エコシステムのようです。 現時点では、上記 3 つのフレームワークは比較的急速に発展しており、現在も安定的に更新・メンテナンスが行われていると言えます。機能面では、フレームワークはますます似てきていますが、3 つのフレームワークにはそれぞれ独自の特徴があります。どれを選択するかは、目的によって異なります。 以下は、他の主要なフレームワークの簡単な紹介です。 ケラス Keras の登場により、ディープラーニング アプリケーションの敷居は大幅に下がりました。Keras の API を使用すると、わずか数行のコードでネットワーク モデルを構築できます。かつては、Keras+Theano および Keras+CNTK モデルが開発者に深く愛されていました。現在、Keras アーキテクチャ全体が TensorFlow にカプセル化されており、すべての Keras タスクは TF.keras で完了できます。 ディープラーニング4j Deeplearning4j は、その名前が示すように、JAVA で記述されており、Scala、Clojure、Kotlin などのあらゆる JVM 言語と互換性があります。基本的なコンピューティング モジュールは、C、C++、CUDA で開発されています。これに基づいて、DL4J は Spark および Hadoop エコシステムを適切にサポートし、マルチカード GPU でも優れたパフォーマンスを発揮します。 TF、Pytorch、PaddlePaddleと比較すると、DL4Jのドキュメントとコミュニティシステムはあまり充実しておらず、Python自体はサポートされておらず、高レベルのKeras APIによってサポートされているため、始めるのが少し難しくなります。また、そのアプリケーション例も非常に限られています。 MXネット Mxnet は早くから有名になったと言えますが、その開発は生ぬるいものでした。現在は Apache プロジェクトの下でインキュベートされています。企業の支援を受けている TensorFlow、Pytorch、PaddlePaddle は、幅広い応用シナリオに依存して AI 開発の高速レーンに乗り出しました。Mxnet に欠けているのは、大手メーカーの応用シナリオの実装かもしれません。 カフェ&カフェ2 Caffe は、Yangqing Jia と Berkeley Artificial Intelligence Laboratory によって開発された、表現、速度、モジュール性を優先するように設計されたフレームワークです。 C、C++、Python などのインターフェースとコマンドライン インターフェースをサポートします。速度と変換性、そして畳み込みニューラル ネットワークのモデリングへの適用性で知られています。 Caffe ライブラリを使用する利点は、事前にトレーニングされ、すぐに使用できるディープ ネットワーク リポジトリ「Caffe Model Zoo」から利用可能なネットワークにアクセスできることです。 Caffe は、かつては強力な視覚認識用ディープラーニング ネットワークでした。ただし、Caffe は細粒度のネットワーク レイヤーをサポートしておらず、アーキテクチャを考慮すると、再帰ネットワークと言語モデリングの全体的なサポートは非常に貧弱であり、複雑なレイヤー タイプは低レベル言語で構築する必要があり、使用のハードルが高くなります。 Caffe2 は Facebook 組織によって開発されたディープラーニング モデルです。使用のハードルは Caffe ほど高くはありませんが、パフォーマンスをそれほど重視しない開発者にとっては依然として不向きであり、すぐに Pytorch プロジェクトに組み込まれました。 Caffe は 2017 年以降更新されておらず、新しいプロジェクトに登場することもほとんどありません。かつて有名だったフレームワークは終焉を迎えました。 チェイナー Chainer は、NumPy や CuPy などのライブラリをベースに、純粋に Python で開発されています。その革新性は、ネットワークが静的なグラフではなく、柔軟に定義して高速に実行できるディープラーニング アーキテクチャであることです。また、大規模なシステムで実行し、高いパフォーマンスを維持できます。その後、Pytorch の設計上のインスピレーションは Chainer から部分的に借用されました。 テアノ Theano はディープラーニング フレームワークの創始者です。2007 年に Yoshua Bengio 氏とモントリオール大学の研究チームによって作成され、広く使用されている最初のディープラーニング フレームワークです。 Theano は、より高速で強力な Python ライブラリです。数値表現や計算を効率的に実行できます。NumPy 行列表現からテンソル表現への飛躍とも言え、その後のディープラーニング フレームワークのモデルを提供します。残念ながら、Theano チームはプロジェクトの更新を停止しており、ディープラーニング アプリケーション フレームワークの開発は業界の大規模アプリケーションに依存する段階に入りました。 CNTK CNTK は、Microsoft が開発したディープラーニング フレームワークであり、商用グレードの分散ディープラーニング用のオープン ソース ツールキットです。これは、ニューラル ネットワークを有向グラフを介した一連の計算ステップとして記述し、DNN、CNN、および自由な組み合わせモデルをサポートします。今年、CNTK チームもプロジェクトの更新を中止すると発表しましたが、残念です。 一般的に、各ディープラーニング フレームワークにはそれぞれ独自の利点があります。重要なのは、チームに適したフレームワークを見つけ、チームのテクノロジー スタックにすばやく適合させ、ディープラーニング テクノロジー アプリケーションの商業的価値を最大化するためにすばやく実験することです。 4. どのように選択するのですか? では、これほど多くのフレームワークの中からどのように選択すればよいのでしょうか? TensorFlow、Pytorch、PaddlePaddle の 3 つのフレームワークをお勧めします。他のフレームワークはリソースが限られているか、メンテナンスされなくなっています。実際、私たちはこれら 3 つのフレームワークを多かれ少なかれ理解しているはずであり、実際の状況に応じて 1 つをすぐに選択できます。 ディープラーニングを初めて学びたい開発者であれば、TensorFlow と PaddlePaddle から始めることをお勧めします。少なくとも現時点では、Google と Baidu はこれら 2 つのプラットフォームの構築に全力を注いでいます。これらはもはや単なるディープラーニング フレームワークではなく、AI 開発エコシステムでもあり、基本的なビデオ コース、完全なドキュメント システムからオープンなプロジェクト実装まで、統合されたサービスを提供しています。ちなみに、Baidu PaddlePaddle の基本的なドキュメントは非常に詳細です。コードの実装とデータフロー プロセスのチュートリアルだけでなく、詳細なアルゴリズムの原理も含まれています。これにより、対応するモデルにあまり精通していない学生にとって非常に便利です。勉強する時間が余っている学生には、これら 3 つのフレームワークについて学ぶことをお勧めします。 学術目的であれば、まずはPytorchから始めるのがおすすめです。やはり学術研究は最先端を注視し、論文を読み、論文中のモデルの効果を再現することが大切です。誰もが使っているものを選ぶことで、無駄な時間コストを節約し、モデルの効果を高めるためのモデルの最適化に集中することができます。 すぐに使いたい、ディープラーニング技術を自分のシナリオに素早く適用したいという場合は、PaddlePaddle を選択することをお勧めします。PaddlePaddle には実践的なケースが多数用意されており、基本的にはそれを対応するシナリオに適用することで反復することができます。さらに、NLP の分野では、さまざまな言語を前処理する必要があります。PaddlePaddle は、膨大な中国語データをマイニングし、事前の意味知識をモデル化し、意味表現機能を強化する ERNIE など、中国語に対するサポートが優れていることは間違いありません。さまざまなシナリオでの NLP および NLU アプリケーションの基盤として機能します。 参考にして方向性を明確にするために、採用ウェブサイトからいくつかの JD を貼り付けます。 5. 未来 今は良い時代です。 インターネット文化とオープンソース文化のおかげで、テクノロジーは飛躍的に発展することができます。時代の転換点を導いてくれた人たちにも感謝しなければなりません。Google、Baiduなど、さまざまな業界に新しいテクノロジーを適用することに全力を尽くしてきた企業がいなければ、テクノロジーの急速な発展も、より良いライフスタイルへの変化もなかったでしょう。 AI技術の普及は、インテリジェント時代の発展の触媒です。ディープラーニング技術を原理からフレームワーク、そしてアプリケーションプラットフォームツールに応用し、あらゆるシーンに実装します。これが将来の発展のトレンドです。 5G技術の発展により、近い将来、あらゆるものの相互接続が実現すると信じています。ディープラーニングはAIoT時代の鍵であり、さまざまなプラットフォーム上の既存の実用的なプロジェクトは、業界に実装するための道筋を示しています。一つの火花が草原の火事を引き起こす可能性があると言えます。また、我が国独自のAI開発エコシステムを発展させることも同様に重要です。最近の「ファーウェイ事件」を考えると、備えておく方が良いでしょう。 結論として、フレームワークとプラットフォームはツールを提供するだけであり、コア競争力を持つためには、目標を定義し、適切なシナリオを見つけて、ビジネスにおけるアプリケーションの実装を促進し、商業的価値を実現する必要があります。 6. 参考文献
[51CTO オリジナル記事、パートナーサイトに転載する場合は、元の著者とソースを 51CTO.com として明記してください] |
<<: ディープラーニングを使用してPythonコードを自動的に補完するこのオープンソースプロジェクトは非常に素晴らしい
>>: 中国の科学者が色を変えることができる柔らかいロボットを開発
4月29日、テンセントのAIモデル「Hunyuan」がCLUE(中国語言語理解評価コレクション)部門...
スマートシティ建設が国家戦略となり、ハイテクが急速に発展するにつれて、スマートシティはバージョン1....
アメリカでまた銃撃事件が発生。 5月24日、テキサス州ユバルデのロブ小学校で銃撃事件が発生し、少なく...
ノアが編集制作:51CTO テクノロジースタック(WeChat ID:blog)生成 AI は De...
自然言語処理 (NLP) モデルは人間の言語を理解できず、テキストを反対の意味として解釈しますが、こ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人類は物質とエネルギーの新しい時代を迎えようとしているのでしょうか?未来のテクノロジーへの扉が開かれ...
まだ「投資段階」にある自動運転業界にとって、「新しいインフラ」は単なる概念ではなく、実際のビジネスチ...