參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

在 GPU 上手動轉換模型

本文介紹了使用本地 Nvidia GPU 轉換 LLM 模型的手動工作流程。它描述了所需的環境設定、執行步驟以及如何在配備 Qualcomm NPU 的 Windows Copilot+ PC 上執行推理。

轉換 LLM 模型需要 Nvidia GPU。如果希望模型實驗室管理本地 GPU,請按照轉換模型中的步驟操作。否則,請按照本文中的步驟操作。

在 GPU 上手動執行模型轉換

此工作流程使用 qnn_config.json 檔案進行配置,需要兩個獨立的 Python 環境。

  • 第一個環境用於模型轉換,帶有 GPU 加速,包括 onnxruntime-gpu 和 AutoGPTQ 等包。
  • 第二個環境用於 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 命令。

第二個環境設定

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 替換為包含第二個環境 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