Konfigurationsreferenz

Hinweis: Diese API befindet sich in der Vorschau und kann sich ändern.

Eine Konfigurationsdatei namens genai_config.json wird automatisch generiert, wenn das Modell mit dem Modell-Builder erstellt wird. Wenn Sie Ihr eigenes Modell bereitstellen, können Sie das untenstehende Beispiel kopieren und für Ihr Szenario anpassen.

Beispieldatei für phi-2

{
    "model": {
        "bos_token_id": 50256,
        "context_length": 2048,
        "decoder": {
            "session_options": {
                "log_id": "onnxruntime-genai",
                "provider_options": [
                    {
                        "cuda": {}
                    }
                ]
            },
            "filename": "model.onnx",
            "head_size": 80,
            "hidden_size": 2560,
            "inputs": {
                "input_ids": "input_ids",
                "attention_mask": "attention_mask",
                "position_ids": "position_ids",
                "past_key_names": "past_key_values.%d.key",
                "past_value_names": "past_key_values.%d.value"
            },
            "outputs": {
                "logits": "logits",
                "present_key_names": "present.%d.key",
                "present_value_names": "present.%d.value"
            },
            "num_attention_heads": 32,
            "num_hidden_layers": 32,
            "num_key_value_heads": 32
        },
        "eos_token_id": 50256,
        "pad_token_id": 50256,
        "type": "phi",
        "vocab_size": 51200
    },
    "search": {
        "diversity_penalty": 0.0,
        "do_sample": false,
        "early_stopping": true,
        "length_penalty": 1.0,
        "max_length": 20,
        "min_length": 0,
        "no_repeat_ngram_size": 0,
        "num_beams": 1,
        "num_return_sequences": 1,
        "past_present_share_buffer": true,
        "repetition_penalty": 1.0,
        "temperature": 1.0,
        "top_k": 50,
        "top_p": 1.0
    }
}

Konfiguration

Modellabschnitt

Allgemeine Modellkonfiguration

  • type: Der Typ des Modells. Kann phi, llama oder gpt sein.

  • vocab_size: Die Größe des Vokabulars, das das Modell verarbeitet, d. h. die Anzahl der Tokens im Vokabular.

  • bos_token_id: Die ID des Tokens für den Beginn der Sequenz.

  • eos_token_id: Die ID des Tokens für das Ende der Sequenz.

  • pad_token: Die ID des Padding-Tokens.

  • context_length: Die maximale Sequenzlänge, die das Modell verarbeiten kann.

Sitzungsoptionen

Dies sind die Optionen, die an ONNX Runtime übergeben werden, welches das Modell bei jeder Token-Generierung ausführt.

  • provider_options: Eine priorisierte Liste von Ausführungszielen, auf denen das Modell ausgeführt werden soll. Wenn auf der CPU ausgeführt, ist diese Option nicht vorhanden. Eine Liste von anbieterspezifischen Konfigurationen kann innerhalb des Anbietereintrags angegeben werden.

    Unterstützte Anbieteroptionen

    • cuda
    • dml
  • log_id: Ein Präfix für die Ausgabe beim Logging.

Dann gibt es für jedes Modell in der Pipeline einen Abschnitt, der nach dem Modell benannt ist.

Decoder-Modellkonfiguration

  • filename: Der Name der Modelldatei.

  • inputs: Die Namen jedes der Eingänge. Sequenzen von Modelleingängen können ein Wildcard-Zeichen enthalten, das den Index in der Sequenz repräsentiert.

  • outputs: Die Namen jedes der Ausgänge.

  • num_attention_heads: Die Anzahl der Aufmerksamkeitsköpfe im Modell.

  • head_size: Die Größe der Aufmerksamkeitsköpfe.

  • hidden_size: Die Größe der versteckten Schichten.

  • num_key_value_heads: Die Anzahl der Key-Value-Köpfe.

Generierungs-Suchabschnitt

  • max_length: Die maximale Länge, die das Modell generieren wird.

  • min_length: Die minimale Länge, die das Modell generieren wird.

  • do_sample: Aktiviert Top-P / Top-K-Generierung. Wenn auf true gesetzt, verwendet die Generierung die konfigurierten Werte für top_p und top_k. Wenn auf false gesetzt, verwendet die Generierung Beam Search oder Greedy Search.

  • num_beams: Die Anzahl der zu berücksichtigenden Strahlen (Beams) bei der Generierung der Ausgabesequenz mit Beam Search. Wenn num_beams=1, wird die Generierung mit Greedy Search durchgeführt. Wenn num_beans > 1, wird die Generierung mit Beam Search durchgeführt.

  • early_stopping: Ob die Beam Search gestoppt werden soll, wenn pro Batch mindestens num_beams Sätze fertiggestellt sind oder nicht. Standardmäßig false.

  • num_return_sequences: Die Anzahl der zu generierenden Sequenzen. Gibt die Sequenzen mit den höchsten Punktzahlen in Reihenfolge zurück.

  • top_k: Berücksichtigt nur Tokens, die innerhalb der Liste der K wahrscheinlichsten Tokens liegen. Bereich ist 1 bis zur Vokabulargröße.

  • top_p: Berücksichtigt nur die wahrscheinlichsten Tokens, deren Wahrscheinlichkeiten sich zu P oder höher aufaddieren. Standardmäßig 1, was alle Tokens einschließt. Bereich ist 0 bis 1, exklusiv 0.

  • temperature: Der Temperaturwert skaliert die Punktzahlen jedes Tokens, sodass ein niedrigerer Temperaturwert zu einer schärferen Verteilung führt.

  • repetition_penalty: Rabattiert die Punktzahlen zuvor generierter Tokens, wenn auf einen Wert größer als 1 gesetzt. Standardmäßig 1.

  • length_penalty: Steuert die Länge der generierten Ausgabe. Ein Wert kleiner als 1 regt die Generierung kürzerer Sequenzen an. Werte größer als 1 regen längere Sequenzen an. Standardmäßig 1.

  • diversity_penalty: Nicht unterstützt.

  • no_repeat_ngram_size: Nicht unterstützt.

  • past_present_share_buffer: Wenn auf true gesetzt, werden der Past- und Present-Buffer aus Effizienzgründen geteilt.

Suchkombinationen

  1. Beam Search

    • num beams > 1
    • do_sample = False
  2. Greedy Search

    • num_beams = 1
    • do_sample = False
  3. Top P / Top K

    • do_sample = True