在 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。
⚠️ 若優化在產生 Context Binary 的過程中失敗,請重新執行該指令。程式將會從最後一個完成的步驟恢復執行。
手動執行推理範例
優化後的模型可透過 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。