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 等软件包。
第一个环境设置
在安装了 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 笔记本。选择此 arm64 Python 环境的 ipykernel。
⚠️ 如果收到
6033错误,请替换./model/model_name文件夹中的genai_config.json。