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

  1. Navigieren Sie zu dem Speicherort auf der Festplatte, an dem das PyTorch-Modell und seine zugehörigen Dateien gespeichert sind.
  2. Ändern Sie num_hidden_layers in config.json auf Ihr gewünschtes Ziel (z. B. 4 Layer).
  3. 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