Modelle mit dem Model Builder erstellen
Der Model Builder beschleunigt die Erstellung optimierter und quantisierter ONNX-Modelle, die mit der ONNX Runtime generate() API ausgeführt werden.
Aktuelle Unterstützung
Das Tool unterstützt derzeit die folgenden Modellarchitekturen.
- Gemma
- LLaMA
- Mistral
- Phi
Installation
Der Model Builder ist als Olive Pass verfügbar. Er wird auch als Teil des onnxruntime-genai Python-Pakets ausgeliefert. Sie können ihn auch eigenständig herunterladen und ausführen.
In jedem Fall müssen Sie die folgenden Pakete installiert haben.
pip install torch transformers onnx onnxruntime
Aus Paket installieren
pip install --pre onnxruntime-genai
Direkt herunterladen
curl https://raw.githubusercontent.com/microsoft/onnxruntime-genai/main/src/python/py/models/builder.py -o builder.py
Verwendung
Für alle verfügbaren Optionen verwenden Sie bitte die Flagge -h/--help.
# From wheel:
python3 -m onnxruntime_genai.models.builder --help
# From source:
python3 builder.py --help
Ursprüngliches PyTorch-Modell von HuggingFace
Dieses Szenario tritt ein, wenn Ihr PyTorch-Modell nicht lokal heruntergeladen ist (entweder im Standard-Hugging Face-Cache-Verzeichnis oder in einem lokalen Ordner auf der Festplatte).
# From wheel:
python3 -m onnxruntime_genai.models.builder -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_to_save_hf_files
# From source:
python3 builder.py -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_to_save_hf_files
Ursprüngliches PyTorch-Modell von der Festplatte
Dieses Szenario tritt ein, wenn Ihr PyTorch-Modell bereits lokal heruntergeladen ist (entweder im Standard-Hugging Face-Cache-Verzeichnis oder in einem lokalen Ordner auf der Festplatte).
# From wheel:
python3 -m onnxruntime_genai.models.builder -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_where_hf_files_are_saved
# From source:
python3 builder.py -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_where_hf_files_are_saved
Angepasstes oder finetuned PyTorch-Modell
Dieses Szenario tritt ein, wenn Ihr PyTorch-Modell für eine der aktuell unterstützten Modellarchitekturen angepasst oder finetuned wurde und Ihr Modell in Hugging Face geladen werden kann.
# From wheel:
python3 -m onnxruntime_genai.models.builder -i path_to_local_folder_on_disk -o path_to_output_folder -p precision -e execution_provider
# From source:
python3 builder.py -i path_to_local_folder_on_disk -o path_to_output_folder -p precision -e execution_provider
GGUF-Modell
Dieses Szenario tritt ein, wenn Ihr float16/float32 GGUF-Modell bereits auf der Festplatte vorhanden ist.
# From wheel:
python3 -m onnxruntime_genai.models.builder -m model_name -i path_to_gguf_file -o path_to_output_folder -p precision -e execution_provider -c cache_dir_for_hf_files
# From source:
python3 builder.py -m model_name -i path_to_gguf_file -o path_to_output_folder -p precision -e execution_provider -c cache_dir_for_hf_files
Zusätzliche Optionen
Dieses Szenario ist für Fälle gedacht, in denen Sie bestimmte Einstellungen steuern möchten. Das folgende Beispiel zeigt, wie Sie Schlüssel-Wert-Argumente an --extra_options übergeben können.
# From wheel:
python3 -m onnxruntime_genai.models.builder -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_for_hf_files --extra_options filename=decoder.onnx
# From source:
python3 builder.py -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_for_hf_files --extra_options filename=decoder.onnx
Um alle verfügbaren Optionen über --extra_options anzuzeigen, verwenden Sie bitte die help Befehle im Abschnitt Full Usage oben.
Nur Konfiguration
Dieses Szenario ist für Fälle gedacht, in denen Sie bereits über Ihr optimiertes und/oder quantisiertes ONNX-Modell verfügen und die Konfigurationsdateien für die Ausführung mit der ONNX Runtime generate() API erstellen müssen.
# From wheel:
python3 -m onnxruntime_genai.models.builder -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_for_hf_files --extra_options config_only=true
# From source:
python3 builder.py -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_for_hf_files --extra_options config_only=true
Öffnen Sie anschließend die Datei genai_config.json im Ausgabeverzeichnis und passen Sie die Felder nach Bedarf für Ihr Modell an. Sie sollten Ihr ONNX-Modell ebenfalls im Ausgabeverzeichnis speichern.
Unit-Tests für Modelle
Dieses Szenario tritt ein, wenn Ihr PyTorch-Modell bereits lokal heruntergeladen ist (entweder im Standard-Hugging Face-Cache-Verzeichnis oder in einem lokalen Ordner auf der Festplatte). Wenn es noch nicht lokal heruntergeladen ist, hier ist ein Beispiel, wie Sie es herunterladen können.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "your_model_name"
cache_dir = "cache_dir_to_save_hf_files"
model = AutoModelForCausalLM.from_pretrained(model_name, cache_dir=cache_dir)
model.save_pretrained(cache_dir)
tokenizer = AutoTokenizer.from_pretrained(model_name, cache_dir=cache_dir)
tokenizer.save_pretrained(cache_dir)
Option 1: Direkt das Model Builder Tool verwenden
Diese Option ist die einfachste, lädt aber eine weitere Kopie des PyTorch-Modells auf die Festplatte herunter, um die Änderung der Anzahl der Hidden Layer zu berücksichtigen.
# From wheel:
python3 -m onnxruntime_genai.models.builder -m model_name -o path_to_output_folder -p precision -e execution_provider --extra_options num_hidden_layers=4
# From source:
python3 builder.py -m model_name -o path_to_output_folder -p precision -e execution_provider --extra_options num_hidden_layers=4
Option 2: Die config.json-Datei auf der Festplatte bearbeiten und dann das Model Builder Tool ausführen
- Navigieren Sie zu dem Speicherort auf der Festplatte, an dem das PyTorch-Modell und seine zugehörigen Dateien gespeichert sind.
- Ändern Sie
num_hidden_layersinconfig.jsonauf Ihr gewünschtes Ziel (z. B. 4 Layer). - Führen Sie den folgenden Befehl für das Model Builder Tool aus.
# From wheel:
python3 -m onnxruntime_genai.models.builder -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_where_hf_files_are_saved
# From source:
python3 builder.py -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_where_hf_files_are_saved