ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

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 run aus.

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_providers aus 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 6033 erhalten, ersetzen Sie genai_config.json im Ordner ./model/model_name.

© . This site is unofficial and not affiliated with Microsoft.