モバイルおよび組み込みデバイス向けに最適化された、効率的で軽量な深層学習フレームワーク。モデル推論とトレーニングをサポートします。
MNN - アリババがオープンソースで公開する軽量ディープラーニングフレームワーク
プロジェクト概要
MNNは、効率的で軽量なディープラーニングフレームワークであり、ディープラーニングモデルの推論とトレーニングをサポートし、デバイス側の推論とトレーニングにおいて業界をリードする性能を備えています。現在、MNNは淘宝(タオバオ)、天猫(Tmall)、優酷(Youku)、釘釘(DingTalk)、閑魚(Xianyu)など、アリババの30以上のアプリケーションに統合されており、ライブ配信、ショートビデオ撮影、検索レコメンデーション、画像検索、インタラクティブマーケティング、特典配布、セキュリティリスク管理など、70以上の利用シーンをカバーしています。
GitHubアドレス: https://github.com/alibaba/MNN
コア特性
1. 究極の軽量化
- iOSプラットフォーム: armv7+arm64プラットフォームの静的ライブラリサイズは約12MB、リンク後の実行可能ファイルの増分は約2MB
- Androidプラットフォーム: コアsoライブラリサイズは約800KB (armv7a - c++_shared)
- MNN_BUILD_MINIを使用すると、パッケージサイズを約25%削減可能
- FP16/Int8量子化をサポートし、モデルサイズを50%-70%削減可能
2. 幅広いモデルサポート
- フレームワークサポート: TensorFlow、Caffe、ONNX、Torchscripts
- ネットワークタイプ: CNN、RNN、GAN、Transformerなどの一般的なニューラルネットワーク
- 演算子サポート:
- 178個のTensorFlow演算子
- 52個のCaffe演算子
- 163個のTorchscripts演算子
- 158個のONNX演算子
3. クロスプラットフォーム互換性
- モバイルプラットフォーム: iOS 8.0+, Android 4.3+
- 組み込みデバイス: POSIXインターフェースをサポートするデバイス
- マルチデバイス混合計算: CPUとGPUの協調動作
- IoTデバイス: IoTデバイス上での応用も可能
4. 高性能最適化
- 大量の最適化されたアセンブリコードがARM/x64 CPUを最大限に活用
- Metal/OpenCL/Vulkanを使用してモバイルGPU推論をサポート
- CUDAとTensor Coreを使用してNVIDIA GPUをサポート
- Winograd畳み込みアルゴリズムは、3x3、4x4、5x5、6x6、7x7などの対称畳み込みに広く使用
- ARM v8.2アーキテクチャのFP16半精度計算をサポートし、速度が2倍向上
- ARM v8.2 sdotとVNNIをサポートし、速度が2.5倍向上
アーキテクチャサポートマトリックス
アーキテクチャ/精度 | Normal | FP16 | BF16 | Int8 |
---|---|---|---|---|
CPU | ||||
Native | B | C | B | B |
x86/x64-SSE4.1 | A | B | B | A |
x86/x64-AVX2 | S | B | B | A |
x86/x64-AVX512 | S | B | B | S |
ARMv7a | S | S(ARMv8.2) | S | S |
ARMv8 | S | S(ARMv8.2) | S(ARMv8.6) | S |
GPU | ||||
OpenCL | A | S | C | S |
Vulkan | A | A | C | A |
Metal | A | S | C | S |
CUDA | A | S | C | A |
NPU | ||||
CoreML | A | C | C | C |
HIAI | A | C | C | C |
NNAPI | B | B | C | B |
説明: S-強く推奨 | A-良好なサポート | B-サポートされているが問題あり | C-サポートされていません
コアコンポーネント
1. MNN-Converter
モデル変換ツール。他のフレームワークのモデルをMNNモデルに変換することをサポートします。
- TensorFlow(lite)、Caffe、ONNX、Torchscriptsをサポート
- 計算量を減らすためのグラフ最適化を実行
2. MNN-Compress
モデル圧縮ツール。モデルサイズを削減し、パフォーマンスを向上させます。
3. MNN-Express
制御フローをサポートするモデル実行。MNN演算子を使用して汎用計算を実行します。
4. MNN-CV
軽量な画像処理ライブラリ。OpenCVに似ていますが、MNNに基づいて実装されています。
5. MNN-Train
MNNモデルのトレーニングをサポートします。
特色ある応用
MNN-LLM
MNNエンジンに基づいて開発された大規模言語モデルのランタイムソリューション。目標は、すべての人のプラットフォーム(携帯電話/PC/IoT)にLLMモデルをローカルにデプロイすることです。以下をサポートします。
- 千問、百川、智譜、LLAMAなどの主要な大規模言語モデル
- フルモーダルLLM Androidアプリケーション
- テキスト生成、画像理解、音声テキスト変換、テキストから画像生成
MNN-Diffusion
MNNエンジンに基づく安定拡散モデルのランタイムソリューション。各プラットフォームに安定拡散モデルをローカルにデプロイすることをサポートします。
学術成果
MNN関連の研究成果は、トップレベルのシステム会議OSDI'22とMLSys 2020で発表されており、学術界と産業界への影響力を証明しています。
開発ツール
MNN Workbench
MNN公式サイトからダウンロードできます。以下を提供します。
- プリトレーニング済みモデル
- 可視化されたトレーニングツール
- ワンクリックでモデルをデバイスにデプロイ
Python API
機械学習エンジニアに使いやすいPythonインターフェースを提供し、C++コードを記述せずに推論、トレーニング、画像処理を実行できます。
まとめ
MNNは、アリババがオープンソースで公開するディープラーニングフレームワークとして、その軽量性、高性能、クロスプラットフォームの特性により、モバイルおよび組み込みAIデプロイメントの優れた選択肢となっています。従来のCNNモデル推論から最新の大規模言語モデルのデプロイメントまで、MNNは完全なソリューションを提供し、AI開発者にとって貴重なツールセットです。