Manuelle Modellkonvertierung auf GPU
Dieser Artikel stellt den manuellen Workflow zur Konvertierung von LLM-Modellen mithilfe einer lokalen Nvidia-GPU vor. Er beschreibt die erforderliche Umgebungs-Einrichtung, Ausführungsschritte und wie die Inferenz auf einem Windows Copilot+ PC mit einer Qualcomm NPU ausgeführt wird.
Für die Konvertierung von LLM-Modellen ist eine Nvidia-GPU erforderlich. Wenn Sie möchten, dass Model Lab Ihre lokale GPU verwaltet, folgen Sie den Schritten unter Modell konvertieren. Andernfalls folgen Sie den Schritten in diesem Artikel.
Manuelle Ausführung der Modellkonvertierung auf GPU
Dieser Workflow wird mithilfe der Datei qnn_config.json konfiguriert und erfordert zwei separate Python-Umgebungen.
- Die erste Umgebung wird für die Modellkonvertierung mit GPU-Beschleunigung verwendet und umfasst Pakete wie onnxruntime-gpu und AutoGPTQ.
- Die zweite Umgebung wird für die QNN-Optimierung verwendet und umfasst Pakete wie onnxruntime-qnn mit spezifischen Abhängigkeiten.
Einrichtung der ersten Umgebung
In einer Python 3.10 x64 Python-Umgebung mit installiertem Olive, installieren Sie die erforderlichen Pakete
# 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
⚠️ Richten Sie nur die Umgebung ein und installieren Sie die Pakete. Führen Sie zu diesem Zeitpunkt noch nicht den Befehl
olive runaus.
Einrichtung der zweiten Umgebung
In einer Python 3.10 x64 Python-Umgebung mit installiertem Olive, installieren Sie die erforderlichen Pakete
# 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
Ersetzen Sie /path/to/qnn/env/bin in qnn_config.json durch den Pfad zum Verzeichnis, das die ausführbare Python-Datei der zweiten Umgebung enthält.
Ausführen der Konfiguration
Aktivieren Sie die erste Umgebung und führen Sie den Workflow aus
olive run --config qnn_config.json
Nach Abschluss dieses Befehls wird das optimierte Modell gespeichert unter: ./model/model_name.
⚠️ Wenn die Optimierung aufgrund von Speichermangel fehlschlägt, entfernen Sie
calibration_providersaus der Konfigurationsdatei.
⚠️ Wenn die Optimierung während der Generierung der Kontextbinärdatei fehlschlägt, führen Sie den Befehl erneut aus. Der Prozess wird vom letzten abgeschlossenen Schritt fortgesetzt.
Manuelle Ausführung von Inferenz-Samples
Das optimierte Modell kann für die Inferenz mit dem ONNX Runtime QNN Execution Provider und ONNX Runtime GenAI verwendet werden. Die Inferenz muss auf einem Windows Copilot+ PC mit einer Qualcomm NPU ausgeführt werden.
Installation erforderlicher Pakete in der arm64 Python-Umgebung
Die Modellkompilierung mit dem QNN Execution Provider erfordert eine Python-Umgebung mit installiertem onnxruntime-qnn. Installieren Sie in einer separaten Python-Umgebung mit installiertem Olive die erforderlichen Pakete
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"
Ausführen des Interface-Samples
Führen Sie das bereitgestellte Notebook inference_sample.ipynb aus. Wählen Sie ipykernel für diese arm64 Python-Umgebung aus.
⚠️ Wenn Sie einen Fehler
6033erhalten, ersetzen Siegenai_config.jsonim Ordner./model/model_name.