GPU上での手動モデル変換
本記事では、ローカルのNvidia GPUを使用してLLMモデルを変換する手動ワークフローを紹介します。必要な環境設定、実行手順、およびQualcomm NPUを搭載したWindows Copilot+ PCで推論を実行する方法について説明します。
LLMモデルの変換にはNvidia GPUが必要です。Model LabでローカルGPUを管理したい場合は、モデルの変換の手順に従ってください。それ以外の場合は、本記事の手順に従ってください。
GPU上での手動モデル変換の実行
このワークフローは qnn_config.json ファイルを使用して構成されており、2つの個別のPython環境を必要とします。
- 最初の環境はGPUアクセラレーションを使用したモデル変換に使用され、onnxruntime-gpuやAutoGPTQなどのパッケージが含まれます。
- 2番目の環境はQNN最適化に使用され、特定の依存関係を持つonnxruntime-qnnなどのパッケージが含まれます。
最初の環境のセットアップ
Python 3.10のOliveがインストールされたx64 Python環境で、必要なパッケージをインストールします。
# Install common dependencies
pip install -r requirements.txt
# Install ONNX Runtime GPU packages
pip install "onnxruntime-gpu>=1.21.0" "onnxruntime-genai-cuda>=0.6.0"
# AutoGPTQ: Install from source (stable package may be slow for weight packing)
# Disable CUDA extension build (not required)
# Linux
export BUILD_CUDA_EXT=0
# Windows
# set BUILD_CUDA_EXT=0
# Install AutoGPTQ from source
pip install --no-build-isolation git+https://github.com/PanQiWei/AutoGPTQ.git
# Please update CUDA version if needed
pip install torch --index-url https://download.pytorch.org/whl/cu121
⚠️ ここでは環境のセットアップとパッケージのインストールのみを行ってください。この時点では
olive runコマンドを実行しないでください。
2番目の環境のセットアップ
Python 3.10のOliveがインストールされたx64 Python環境で、必要なパッケージをインストールします。
# Install ONNX Runtime QNN
pip install -r https://raw.githubusercontent.com/microsoft/onnxruntime/refs/heads/main/requirements.txt
pip install -U --pre --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/pypi/simple onnxruntime-qnn --no-deps
qnn_config.json 内の /path/to/qnn/env/bin を、2番目の環境のPython実行ファイルが含まれるディレクトリのパスに置き換えてください。
設定の実行
最初の環境を有効化(アクティベート)し、ワークフローを実行します。
olive run --config qnn_config.json
このコマンドが完了すると、最適化されたモデルが ./model/model_name に保存されます。
⚠️ メモリ不足(Out of Memory)が原因で最適化に失敗した場合は、設定ファイル内の
calibration_providersを削除してください。
⚠️ コンテキストバイナリの生成中に最適化が失敗した場合は、コマンドを再実行してください。最後に完了したステップから処理が再開されます。
推論サンプルの手動実行
最適化されたモデルは、ONNX Runtime QNN Execution Provider および ONNX Runtime GenAI を使用して推論に利用できます。推論は、Qualcomm NPUを搭載したWindows Copilot+ PC上で実行する必要があります。
arm64 Python環境に必要なパッケージのインストール
QNN Execution Providerを使用したモデルのコンパイルには、onnxruntime-qnnがインストールされたPython環境が必要です。Oliveがインストールされた別のPython環境で、必要なパッケージをインストールしてください。
pip install -r https://raw.githubusercontent.com/microsoft/onnxruntime/refs/heads/main/requirements.txt
pip install -U --pre --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/pypi/simple onnxruntime-qnn --no-deps
pip install "onnxruntime-genai>=0.7.0rc2"
推論サンプルの実行
提供されている inference_sample.ipynb ノートブックを実行します。ipykernelとしてこの arm64 Python環境を選択してください。
⚠️
6033エラーが発生した場合は、./model/model_nameフォルダ内のgenai_config.jsonを置き換えてください。