GPU 手動模型轉換
本文件介紹使用本地 NVIDIA GPU 轉換 LLM 模型的手動工作流程。它描述了所需的環境設定、執行步驟以及如何在配備 Qualcomm NPU 的 Windows Copilot+ PC 上執行推理。
LLM 模型轉換需要 NVIDIA GPU。如果您希望 Model Lab 管理您的本地 GPU,請按照 轉換模型 中的步驟進行操作。否則,請按照本文件中的步驟進行操作。
手動執行模型轉換 (GPU)
此工作流程使用 qnn_config.json 檔案進行配置,並需要兩個獨立的 Python 環境。
- 第一個環境用於具有 GPU 加速的模型轉換,幷包含 onnxruntime-gpu 和 AutoGPTQ 等軟體包。
- 第二個環境用於 QNN 最佳化,幷包含 onnxruntime-qnn 以及特定依賴項的軟體包。
第一個環境設定
在安裝了 Olive 的 Python 3.10 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命令。
第二個環境設定
在安裝了 Olive 的 Python 3.10 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 替換為包含第二個環境的 Python 可執行檔案的目錄路徑。
執行配置
啟用第一個環境並執行工作流程
olive run --config qnn_config.json
完成此命令後,最佳化後的模型將儲存在:./model/model_name。
⚠️ 如果因記憶體不足而導致最佳化失敗,請從配置檔案中刪除
calibration_providers。
⚠️ 如果在生成上下文二進位制檔案期間最佳化失敗,請重新執行命令。該過程將從上一個已完成的步驟繼續。
手動執行推理示例
最佳化後的模型可使用 ONNX Runtime QNN 執行提供程式和 ONNX Runtime GenAI 進行推理。推理必須在配備 Qualcomm NPU 的 Windows Copilot+ PC 上執行。
在 arm64 Python 環境中安裝所需的軟體包
使用 QNN 執行提供程式的模型編譯需要一個安裝了 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。