Alibabaオープンソース!軽量ディープラーニングエッジ推論エンジンMNN

Alibabaオープンソース!軽量ディープラーニングエッジ推論エンジンMNN

最近、アリババは軽量ディープラーニングエッジ推論エンジン「MNN」を正式にオープンソース化しました。

AI科学者の賈楊青氏は次のようにコメントしています。「TensorflowやCaffe2など、トレーニングと推論の両方をカバーする一般的なフレームワークと比較すると、MNNは推論中の加速と最適化に重点を置いており、モデル展開段階での効率性の問題を解決し、モバイル側でモデルの背後にあるビジネスをより効率的に実装します。これは、TensorRTなどのサーバー側推論エンジンの考え方と一致しています。大規模な機械学習アプリケーションでは、大規模なモデル展開を考慮すると、機械学習の推論側の計算量はトレーニング側の10倍以上になることが多いため、推論側の最適化が特に重要です。」

MNN の背後にある技術的フレームワークはどのように設計されているのでしょうか?将来の計画は何ですか?今日はそれについてもっと詳しく学びましょう。

1. MNN とは何ですか?

MNN は軽量なディープラーニングデバイス側推論エンジンです。その中核機能は、ディープニューラルネットワークモデルの最適化、変換、推論をカバーし、デバイス側でディープニューラルネットワークモデルを実行する問題を解決することです。現在、MNNはTaobao Mobile、Tmall Mobile、Youku、Juhuasuan、UC、Fliggy、Qianniuなど20以上のアプリで使用されており、ライブ放送、ショートビデオ、検索推奨、商品画像検索、インタラクティブマーケティング、権利発行、セキュリティリスク管理などのシナリオをカバーし、毎日数億回安定して実行されています。さらに、CainiaoセルフサービスロッカーなどのIoTデバイスにも使用されています。 2018年双十一ショッピングフェスティバルでは、MNNが天猫祝賀会の笑顔の赤い封筒、スキャン、有名人のじゃんけん大会などのシーンで使用されました。

Taobao の軽量ディープラーニング クライアント側推論エンジン MNN プロジェクトが、次のアドレスの Github でオープンソース化されました。

https://github.com/alibaba/MNN

2. MNNの利点

MNN は、ネットワーク モデルの読み込み、推論と予測、および関連する結果の返送を担当します。推論プロセス全体は、モデルの読み込みと解析、計算グラフのスケジューリング、異種バックエンドでの効率的な操作に分けられます。 MNN は、汎用性、軽量性、高性能、使いやすさなどの特徴を備えています。

汎用性:

  • Tensorflow、Caffe、ONNX などの主流のモデル形式と、CNN、RNN、GAN などの一般的なネットワークをサポートします。
  • 86 個の TensorflowOps と 34 個の CaffeOps をサポートします。各コンピューティング デバイスでサポートされる MNN Ops の数: CPU 71、Metal 55、OpenCL 40、Vulkan 35。
  • iOS 8.0 以降、Android 4.3 以降、および POSIX インターフェースを備えた組み込みデバイスをサポートします。
  • 異種デバイスのハイブリッド コンピューティングをサポートし、現在は CPU と GPU をサポートしており、CPU Op の実装を置き換えるために GPU Op プラグインを動的にインポートできます。

軽量:

  • エンドサイドデバイスの特性に合わせて詳細にカスタマイズおよび調整されており、依存性がなく、モバイルデバイスやさまざまな組み込みデバイスに簡単に展開できます。
  • iOS プラットフォームでは、armv7 + arm64 静的ライブラリのサイズは約 5 MB、リンクされた実行可能ファイルのサイズは約 620 KB 増加し、metallib ファイルは約 600 KB になります。
  • Android プラットフォームでは、so のサイズは約 400 KB、OpenCL ライブラリは約 400 KB、Vulkan ライブラリは約 400 KB です。

高性能:

  • サードパーティのコンピューティング ライブラリに依存せず、大量の手書きアセンブリに依存してコア操作を実装し、ARM CPU のコンピューティング能力を最大限に活用します。
  • GPU アクセラレーション (Metal) は iOS デバイスで有効にでき、iOS 8.0 以降をサポートしており、一般的に使用されるモデルでは Apple のネイティブ CoreML よりも高速です。
  • Android は、OpenCL、Vulkan、OpenGL の 3 つのソリューションを提供しており、これらは可能な限り多くのデバイスのニーズを満たすことができ、主流の GPU (Adreno および Mali) 向けに徹底的に最適化されています。
  • 畳み込みアルゴリズムと転置畳み込みアルゴリズムは効率的で安定しており、あらゆる形状の畳み込みに対して効率的に実行できます。Winograd 畳み込みアルゴリズムは広く使用されており、3x3 -> 7x7 などの対称畳み込みが効率的に実装されています。
  • 新しい ARM v8.2 アーキテクチャ向けに追加の最適化が行われ、新しいデバイスでは半精度計算を利用することでさらに高速化できます。

使いやすさ:

  • 完全なドキュメントと例。
  • 一般的な変形、変換、その他の要件をカバーする効率的な画像処理モジュールがあります。通常、画像を処理するために libyuv または opencv ライブラリを導入する必要はありません。
  • データの抽出や実行方向の制御を容易にするコールバック メカニズムをサポートします。
  • ネットワーク モデルで部分パスの実行、または CPU と GPU 間の並列実行の指定をサポートします。

3. MNNコアの紹介

3.1 モジュール設計

上の図に示すように、MNN はコンバーターとインタープリターの 2 つの部分に分けられます。

コンバーターは、フロントエンドとグラフ最適化で構成されています。前者はさまざまなトレーニング フレームワークをサポートする役割を担います。MNN は現在、Tensorflow (Lite)、Caffe、ONNX をサポートしています。後者は、演算子の融合、演算子の置換、レイアウトの調整などを通じてグラフを最適化します。

インタプリタはエンジンとバックエンドで構成されています。前者はモデルのロードと計算グラフのスケジュールを担当し、後者は各コンピューティング デバイスでのメモリ割り当てと Op 実装を含みます。エンジンとバックエンドでは、MNN は、畳み込みと逆畳み込みにおける Winograd アルゴリズム、行列乗算における Strassen アルゴリズム、低精度計算、Neon 最適化、手書きアセンブリ、マルチスレッド最適化、メモリ再利用、異種コンピューティングなど、さまざまな最適化スキームを適用します。

3.2 パフォーマンス比較

一般的に使用されている MobileNet、SqueezeNet、および主流のオープンソース フレームワークを比較します。結果は次のとおりです。

MNN は、NCNN、Mace、Tensorflow Lite、Caffe2 に比べて 20% 以上優れています。私たちは実際には社内で使用しているビジネスモデルの最適化に重点を置いており、顔検出などのモデルを徹底的に最適化してきました。iPhone 6では、約5ミリ秒でシングルフレーム検出を実現できます。

注: Mace、Tensorflow Lite、Caffe2 はすべて、2019 年 3 月 1 日現在、GitHub コード リポジトリのマスター ブランチを使用しています。NCNN は、コンパイルの問題のため、20181228 リリースのプリコンパイル済みライブラリを使用しています。

4. MNNのオープンソースの歴史

4.1 なぜデバイス上で推論を実行する必要があるのですか?

携帯電話の計算能力の継続的な向上とディープラーニングの急速な発展、特に小規模ネットワークモデルの継続的な成熟により、もともとクラウドで実行されていた推論と予測を端末に転送できるようになりました。エンド インテリジェンスとは、エンド側で AI アルゴリズムを展開して実行することを意味します。サーバー側のインテリジェンスと比較して、エンド インテリジェンスには、低レイテンシ、データ プライバシー、クラウド リソースの節約などの利点があります。現在、エッジインテリジェンスは徐々にトレンドになりつつあり、業界の観点から見ると、AI写真撮影や視覚効果などのシナリオで大きな役割を果たしています。

電子商取引のスーパーアプリである Taobao Mobile には、幅広いビジネスモデルがあります。 Pailitao、ライブショートビデオ、インタラクティブマーケティング、メイクアップトライアル、パーソナライズされた推奨検索などのビジネスシナリオには、エンドツーエンドのインテリジェンスが必要です。エンドツーエンドのインテリジェンス機能と組み合わせることで、ユーザーに新しいインタラクティブな体験をもたらし、ビジネスイノベーションの飛躍的進歩を促進することができます。

一般的に、エッジでのディープラーニングの応用は、次の段階に分けられます。

  • モデルトレーニングフェーズでは、主なタスクはモデルをトレーニングし、ラベル付けされたデータを使用して対応するモデルファイルをトレーニングすることです。クライアント用のモデルを設計するときは、モデルのサイズと計算の複雑さを考慮する必要があります。
  • モデル圧縮段階では、主にモデルのサイズが最適化されます。モデルのサイズは、プルーニング、量子化などの手段によって縮小され、端末での使用が容易になります。
  • モデル展開フェーズでは、主にモデルの管理と展開、運用と保守の監視など、モデルの展開を実装します。
  • エンド側推論フェーズでは、主にモデル推論を完了します。つまり、モデルをロードし、推論に関連するすべての計算を完了します。

上図からわかるように、エンドサイド推論エンジンはエンドサイドインテリジェントアプリケーションの中核モジュールであり、限られた計算能力とメモリの制約下でリソースを効率的に使用し、迅速に推論を完了する必要があります。エンド側推論エンジンの実装品質が、アルゴリズムモデルがエンド側で実行可能かどうか、そしてビジネスを立ち上げられるかどうかを直接決定すると言えます。したがって、エンドサイド推論エンジン、優れたエンドサイド推論エンジンが必要です。

4.2 なぜオープンソースの MNN なのか?

2017 年初頭、エンジン開発を開始する前に、システムソリューションとオープンソースソリューションの調査に重点を置き、汎用性、軽量性、高性能、セキュリティの側面から詳細な分析を実施しました。 CoreML は Apple のシステム フレームワークで、MLKit と NNAPI は Android のシステム フレームワークです。システム フレームワークの最大の利点は軽量であることで、パッケージ サイズは比較的大きめです。 ***のデメリットは汎用性です。CoreMLはiOS 11以上、MLKitとNNAPIはAndroid 8.1以上が必要で、カバーできる機種が非常に限られており、組み込み機器の利用シナリオに対応するのも困難です。さらに、システム フレームワークはサポートするネットワーク タイプと Op タイプが少なく、スケーラビリティが低く、デバイスの計算能力が十分に活用されておらず、モデルのセキュリティに問題があります。まとめると、システム フレームワークは適切な選択ではありません。オープンソース ソリューションの中で、Tensorflow Lite は発表されているもののまだリリースされておらず、Caffe は比較的成熟していますがエンドサイドのシナリオ向けに設計および開発されておらず、NCNN はリリースされたばかりで十分に成熟していません。一般的に、さまざまなトレーニング フレームワークや展開環境に適した、シンプルで効率的かつ安全なエンドツーエンドの推論エンジンを見つけることはできません。

そのため、私たちは、さまざまなビジネス アルゴリズム シナリオ、さまざまなトレーニング フレームワーク、さまざまな展開環境向けに、シンプルで効率的かつ安全なエンドサイド推論エンジン MNN を提供したいと考えています。 AndroidとiOSの違い、断片化されたデバイスの違い、異なるトレーニングフレームワークの違いを解消し、エンド側での迅速な展開と運用を実現し、ビジネスモデルに応じて柔軟にOPを追加し、CPU/GPUなどの異種デバイスのパフォーマンスを深く最適化することができます。

時が経つにつれ、NCNN、Tensorflow Lite、Mace、Anakin などが徐々にアップグレードされ、オープンソース化され、私たちに良いインプットとリファレンスを提供してくれます。私たちはビジネスニーズに合わせて常に反復と最適化を行っており、Double Eleven のテストを経て、比較的成熟し完成度が高まったため、コミュニティにオープンソース化し、アプリケーション開発者や IoT 開発者に私たちの強みを貢献したいと考えています。

5. 適用シナリオ

現在、MNNはTaobao Mobile、Maoke、Youku、Juhuasuan、UC、Fliggy、Qianniuなど20以上のグループアプリに統合されており、Pailitao、ライブショートビデオ、インタラクティブマーケティング、実名認証、メイクアップトライアル、検索推奨などのシーンで使用され、毎日数億回安定して実行されています。 2018年ダブルイレブンショッピングフェスティバルでは、MNNは「マオワン スマイリー レッド パケット」や「QR コード スキャン スター じゃんけん コンテスト」などのシナリオでも使用されました。

Pailitao は、Taobao Mobile の画像検索および認識製品です。2014 年のリリース以来、改良と開発を続け、現在では 1,000 万を超える UV を持つアプリケーションに成長しました。関連する技術も、初期の写真撮影とクラウド認識のための画像のアップロードから、現在では端末上での物体認識と切り抜き処理、そしてクラウドにアップロードして認識するまで、常に反復して更新されており、サーバー側の計算コストを節約しながらユーザーエクスペリエンスを効果的に向上させています。単純な物体分類、万物認識、ロゴ認識などでは、端末上のモデルを通じて直接リアルタイム認識がサポートされるようになりました。

スマイリーレッドエンベロープは、2018年のダブルイレブンキャットナイトのオープニングを飾る最初のプログラムでした。このゲームプレイは、リアルタイムの顔検出と表情認識機能に基づいています。これまでのさまざまな画面タッチによるインタラクティブゲームプレイと比較して、このアクティビティはカメラのリアルタイム顔検出アルゴリズムを使用して、従来のタッチインタラクティブゲームプレイから自然なインタラクティブゲームプレイへの飛躍を実現し、ユーザーに新しいユーザーエクスペリエンスをもたらします。

五福集めは2019年春節のイベントであり、タオバオモバイルが新年の商品の購入を通じてこのイベントに参加したのも初めてです。商品認識機能をスキャンして赤い正月商品を識別すると、ラッキーカードに加えて、羽毛布団、五糧液、茅台酒、タラバガニ、猫潮、天猫精霊などの閾値なしクーポンなどの実物賞品も獲得でき、自宅の正月商品が金の卵を産む「鶏」に変身します。

6. ロードマップ

2か月ごとに安定バージョンをリリースする予定です。現在の計画は次のとおりです。

モデルの最適化:

  1. コンバーターグラフの最適化の改善
  2. 量子化のサポートを改善し、スパースのサポートを追加

スケジュールの最適化:

  1. モデルフロップ統計を追加しました
  2. デバイスのハードウェア特性に基づいて操作戦略を動的にスケジュールする

計算最適化:

  1. 既存のバックエンドの継続的な最適化 (CPU/OpenGL/OpenCL/Vulkan/Metal)
  2. 量子化モデルをサポートするためにArm v8.2バックエンドを最適化
  3. NNAPIを使用してNPUバックエンドを追加する
  4. 高速行列乗算とウィノグラードアルゴリズムを適用してパフォーマンスを最適化します

他の:

  1. ドキュメントと例
  2. テストおよびベンチマーク関連ツールの改善
  3. より多くのオペレーションのサポート

<<:  今後5年間の人工知能における5つのブレークスルー

>>:  顔認識技術は議論を呼んでいる。人工知能はどのように制御されるべきか?

ブログ    
ブログ    

推薦する

AIをうまく活用したいなら、この2つの問題を早急に解決しなければなりません!

[[441323]]早すぎるオールインデータ文化を一夜にして構築することはできないのと同様に、分析...

PaddlePaddle パノラマビューが初めて公開され、11 の新機能とサービス ハードコア リリース

ディープラーニングが注目を集めています。 4月23日、北京で第1回WAVE SUMMIT 2019デ...

...

Google の家庭用ロボットがスタンフォード大学のエビ揚げロボットに挑む!猫と遊ぶためにお茶と水を出し、3回続けてフリックして猫と遊ぶ

インターネット上で話題となったスタンフォード大学のエビ揚げロボットは、1日で人気が急上昇した。結局の...

Reddit で強く推奨: 20 時間の体系的なディープラーニングと強化学習コース | 無料

[[383847]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

AIチップの過去と未来、この記事を読んでください

[[248236]]皆さんは、イ・セドルと柯潔を破った Google の「Alpha Go」をまだ覚...

人工知能はデータ活用効率を向上させ、他産業とのAI統合を加速させる

コンピューティング能力は、デジタル技術の継続的な発展とデジタル経済時代の中核的な生産性にとって重要な...

...

AI導入の課題

人々は、データ、人、ビジネスなど、AI を導入する際の課題を理解する必要があります。 [[27672...

...

CMU、NUS、Fudanが共同でDataLabを立ち上げ:テキストフィールドでのデータ分析と処理のためのMatlabを作成

データ中心の人工知能の構築は、今後のトレンドになりつつあります。 1年以上前、アンドリュー・ン氏は「...

...

未来を受け入れる: 2024 年のホームオートメーションの 5 つのトレンド

新たな進歩の時代を迎えるにあたり、「スマートホーム」という概念がかつてないほど普及しています。人工知...

LLM収益化プラットフォームが登場! LangChain+DemoGPT 協力: アイデアがあればお金が稼げる、「プログラマーが足りない」時代は終わった

大規模な言語モデルのサポートにより、開発者は多くの新しい機能を実装し、より幅広いアプリケーション シ...

ビデオPSツール!文字の非表示と透かしの除去:CVPRで発表されたこの研究はオープンソース化されました

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