海外からのアクセス:www.kdjingpai.com
Ctrl + D このサイトをブックマークする

MNNはアリババのオープンソースの軽量ディープラーニング推論フレームワークで、モバイルおよび組み込みデバイス向けのモデル展開に焦点を当てています。MNNはクロスプラットフォーム互換性を提供し、iOS、Android、組み込みデバイスをサポートし、CPUとGPUの計算性能を最適化します。MNN-LLMは、MNNに基づいて開発された言語モデル実行ソリューションで、ローカルで実行される複数の大規模言語モデルをサポートし、データのプライバシーを保証します。このフレームワークはGitHubでオープンソース化されており、活発なコミュニティ、豊富なドキュメント、サンプルがあり、開発者がすぐに使い始めるのに適しています。

MNN:轻量高效的深度学习推理框架-1

 

機能一覧

  • TensorFlow、Caffe、ONNX、TorchScriptなど、複数のディープラーニング・モデル形式をサポート。
  • 提供高效的模型推理,支持 CNN、RNN、GAN 和 変圧器 等神经网络。
  • CPUとGPU(Metal、OpenCL、Vulkan)にまたがるマルチデバイス・ハイブリッド・コンピューティングをサポート。
  • モバイルやPC上で大規模な言語モデルを実行できるMNN-LLMを提供。
  • モデルの数量化(FP16やInt8など)をサポートし、モデルサイズを50%-70%に縮小。
  • 制御フローモデリングと汎用コンピューティングをサポートするMNN-Expressを提供。
  • 軽量なOpenCVライクな画像処理ライブラリMNN-CVを内蔵。
  • MNNモデルをトレーニングするMNN-Trainをサポート。
  • テキスト、画像、音声処理をサポートするMNN-LLM-Androidなどのマルチモーダルアプリケーションを提供。

 

ヘルプの使用

設置プロセス

MNNをローカルで使用するには、まずGitHubリポジトリからプロジェクトコードをクローンする必要がある。詳しいインストール手順は以下の通り:

  1. クローン倉庫
    ターミナルを開き、以下のコマンドを実行してMNNリポジトリをクローンする:

    git clone https://github.com/alibaba/MNN.git
    
  2. 依存関係のインストール
    MNNはiOS 8.0+、Android 4.3+、POSIXインターフェイスを持つ組み込みデバイスをサポートしています。必要なコンパイルツールがシステムにインストールされていることを確認してください:

    • Linux/macOSCMake(3.10以上)、Git、GCC/Clangをインストールしてください。
      sudo apt-get install cmake git build-essential
      
    • アンドロイドAndroid NDK(r17以上)をインストールする。
    • iOSXcodeとMetalのサポートがインストールされていることを確認してください。
  3. コンパイル MNN
    MNNディレクトリに行き、ビルドフォルダを作成し、CMakeを実行する:

    cd MNN
    mkdir build && cd build
    cmake .. -DMNN_BUILD_MINI=ON
    make -j4
    

    利用する MNN_BUILD_MINI リソースに制約のあるデバイスでは、パッケージサイズを約25%削減します。コンパイルされた実行ファイルとライブラリファイルは build カタログ

  4. MNN-LLMのAndroidアプリをインストールする
    MNN-LLMのAndroidアプリについては、GitHub Releasesページからコンパイル済みのAPKファイルをダウンロードするか、自分でビルドしてください:

    • ソースコードをダウンロードする:project/android/apps/MnnLlmApp.
    • Android Studioでプロジェクトを開き、NDKパスを設定し、Build > Build APKをクリックする。
    • Android 4.3以上をサポートするAndroidデバイスにAPKをインストールしてください。

MNNを用いたモデル推論

MNNの中核機能はモデル推論である。具体的な手順は以下の通りである:

  1. モデル変換
    MNNはTensorFlow、Caffe、ONNX、その他のモデルフォーマットをサポートしています。モデルはMNN形式に変換する必要があります:

    • TensorFlowモデルがあるとする。 model.pb次のコマンドを実行する:
      ./MNNConvert -f TF --modelFile model.pb --MNNModel model.mnn --bizCode MNN
      
    • 転換した model.mnn ドキュメントは推論に使える。
  2. モデルのロードと実行
    MNNは推論のためにC++とPythonのAPIを提供している。以下は簡単なC++の例である:

    #include <MNN/Interpreter.hpp>
    int main() {
    auto mnnNet = MNN::Interpreter::createFromFile("model.mnn");
    auto session = mnnNet->createSession();
    // 输入数据
    auto input = mnnNet->getSessionInput(session, nullptr);
    // 运行推理
    mnnNet->runSession(session);
    // 获取输出
    auto output = mnnNet->getSessionOutput(session, nullptr);
    return 0;
    }
    

    開発者は以下を参照できる。 demo/ ディレクトリのサンプルコード。

  3. MNN-LLMの使用
    MNN-LLMは、大規模な言語モデル(QwenやLlamaなど)のモバイルでの実行をサポートしています。MNN-LLMのAndroidアプリをインストールした後:

    • アプリケーションを開き、サポートされているモデルのリストをブラウズします。
    • クリックするとモデルがダウンロードされ(例:Qwen-7B)、デバイスのローカルに保存されます。
    • テキストプロンプトを入力すると、アプリは生成された結果を返す。
    • 画像の説明や音声をテキストに変換するなどのマルチモーダルなタスクをサポートし、操作は同様で、対応するファイルをアップロードするだけです。
      アプリは完全にオフラインで動作し、プライバシー保護のためデータはサーバーにアップロードされない。
  4. パフォーマンスを最適化する
    • 利用する FP16 もしかしたら Int8 メモリフットプリントを削減する定量的モデリング。
    • GPUアクセラレーションを有効にする(MetalまたはVulkanのデバイスサポートが必要)。
    • 複雑なモデルの場合 MNN-Express コントロールフロー計算の最適化

MNN-CVによる画像処理

MNN-CVはOpenCVに似た軽量な画像処理機能を提供します:

#include <MNN/ImageProcess.hpp>
int main() {
MNN::CV::ImageProcess::Config config;
config.destFormat = MNN::CV::RGB;
auto process = MNN::CV::ImageProcess::create(config);
// 加载图像
process->convert(imageData, width, height, 0, output);
return 0;
}

開発者は以下を参照できる。 include/MNN/ImageProcess.hpp より多くの機能を手に入れよう。

 

アプリケーションシナリオ

  1. モバイル向けAIアプリケーション
    MNNは、タオバオやネイルなどのアプリケーションで、画像検索、レコメンドシステム、ライブエフェクトをサポートしている。例えば、タオバオでは、ユーザーが画像をアップロードすることで類似商品を素早く見つけられるように、商品画像認識にMNNを使用している。
  2. 組み込みデバイスの展開
    MNNは、スマートホームや産業用シナリオのIoTデバイスをサポートしている。例えば、スマートカメラで顔検出モデルを実行すると、1フレームを処理するのにわずか5ミリ秒しかかからない。
  3. 地域化言語モデル
    MNN-LLMは、ユーザーが携帯電話で大規模な言語モデルを実行することを可能にし、ローカルドキュメントの要約や音声アシスタントのようなプライバシーに配慮したシナリオに適している。
  4. マルチモーダル課題
    MNN-LLMのAndroidアプリは、画像説明、音声テキスト化などの機能をサポートしており、ホームメンテナンス、ボイスメモなどのシーンで活用できる。

 

品質保証

  1. MNNがサポートしているモデル・フォーマットは?
    MNNはTensorFlow、Caffe、ONNX、TorchScript形式をサポートしており、178のTensorFlowオペレーション、158のONNXオペレーションなどをカバーしている。
  2. ローエンドデバイスでMNNを動かすには?
    利用する MNN_BUILD_MINI コンパイルオプションでパッケージサイズを小さくし Int8 メモリフットプリントを定量的に削減する。
  3. MNN-LLMは外部モデルをサポートしていますか?
    現在、外部モデルを読み込むにはアプリを再コンパイルする必要があるが、将来的にはモデルのインポートを改善する公式計画がある。
  4. MNNの業績は?
    MNN 在 MobileNet 等模型上比 TensorFlow Lite 快 20% 以上,MNN-LLM 在 Android 上推理速度比 ラマ.cpp 快 8.6 倍。
0ブックマークに登録
0表彰される

おすすめ

AIツールが見つからない?こちらをお試しください!

キーワードを入力する アクセシビリティこのサイトのAIツールセクションは、このサイトにあるすべてのAIツールを素早く簡単に見つける方法です。

受信箱

お問い合わせ

トップに戻る

ja日本語