はじめに
MNN(Mobile Neural Network)は、アリババが開発し、モバイルデバイス向けに最適化された効率的で軽量なディープラーニングフレームワークである。MNNは、モバイルデバイス上での高速推論を可能にするだけでなく、テキスト生成、画像生成、音声処理などのマルチモーダルなタスクもサポートしている、MNNは、Taobao、Tmall、Youku、Nail、Idle Fishなどのアリババアプリケーションに統合されており、ライブストリーミング、ショートビデオキャプチャ、検索レコメンデーション、商品画像検索など、70以上の使用シナリオをカバーしています。
機能一覧
- マルチモーダルサポートテキスト生成、画像生成、音声処理など幅広いタスクに対応。
- CPU推論の最適化モバイル端末で優れたCPU推論性能を実現。
- 軽量フレームワークフレームワークは軽量で、モバイル機器のリソース制約に適した設計になっています。
- 汎用アリババの複数のアプリケーションに統合されており、幅広いビジネスシナリオをカバーしています。
- オープンソース統合や二次開発を容易にするために、完全なオープンソースコードとドキュメントが提供されています。
ヘルプの使用
設置プロセス
- ダウンロードとインストールGitHubリポジトリからプロジェクトコードをクローンする。
git clone https://github.com/alibaba/MNN.git cd MNN
2. **プロジェクトのコンパイル**: コンパイル環境を設定し、プロジェクトが提供するREADMEファイルに従ってプロジェクトをコンパイルする。
``bash
mkdir build
cd build
cmake ...
make -j4
- Androidアプリケーションへの統合コンパイルしたライブラリファイルをAndroidプロジェクトに統合するには
build.gradle
ファイルで設定する。
使用方法
マルチモーダル機能
MNNは、テキスト生成、画像生成、音声処理など、さまざまなマルチモーダル タスクをサポートしている。以下に、これらの機能の使用例を示す:
- テキスト生成学習済み言語モデルを使用したテキスト生成。
インポート MNN interpreter = MNN.Interpreter("text_model.mnn") session = interpreter.createSession() input_tensor = interpreter.getSessionInput(session) # 前処理のための入力テキスト input_data = preprocess_text("入力テキスト") input_tensor.copyFrom(input_data) interpreter.runSession(セッション) output_tensor = interpreter.getSessionOutput(session) output_data = output_tensor.copyToHostTensor() result = postprocess_text(output_data) print(result)
- 画像生成訓練済み生成モデルを用いた画像生成。
インポート MNN interpreter = MNN.Interpreter("image_model.mnn") session = interpreter.createSession() input_tensor = interpreter.getSessionInput(session) # 前処理用入力データ input_data = preprocess_image("入力画像") input_tensor.copyFrom(input_data) interpreter.runSession(セッション) output_tensor = interpreter.getSessionOutput(session) output_data = output_tensor.copyToHostTensor() result = postprocess_image(output_data) print(result)
- 音響処理訓練済みのオーディオモデルを使用したオーディオ生成または処理。
インポート MNN interpreter = MNN.Interpreter("audio_model.mnn") session = interpreter.createSession() input_tensor = interpreter.getSessionInput(session) # 前処理用の音声データを入力する。 input_data = preprocess_audio("input audio") input_tensor.copyFrom(input_data) インタプリタ.runSession(セッション) output_tensor = interpreter.getSessionOutput(session) output_data = output_tensor.copyToHostTensor() result = postprocess_audio(output_data) print(result)
詳しい操作手順
- 推論インスタンスの作成MNNモデルを初期化し、推論セッションを作成する。
インポート MNN interpreter = MNN.Interpreter("model.mnn") セッション = interpreter.createSession()
- 入力データの前処理モデルの種類に応じて入力データを前処理する。
input_tensor = interpreter.getSessionInput(session) input_data = preprocess_data("入力データ") input_tensor.copyFrom(input_data)
- 経営推論推論のためのセッションを実行します。
インタプリタ.runSession(セッション)
- 出力データの後処理出力を取得し、後処理する。
output_tensor = interpreter.getSessionOutput(session) output_data = output_tensor.copyToHostTensor() result = postprocess_data(output_data) print(result)