LiteRT-LM File Builder

Das litert-lm-builder-Paket bietet Python-Tools und Befehlszeilenschnittstellen (CLIs) zum Erstellen, Untersuchen und Entpacken von LiteRT-LM-Containerdateien (.litertlm).

Eine .litertlm-Datei ist ein einzelner einheitlicher Container, in dem Ihre TFLite-Modelle, Tokenizer-Dateien, externen Gewichte und zugehörigen Modellmetadaten verpackt sind, damit sie von der LiteRT-LM-Laufzeit verteilt und geladen werden können.

Installation

Installieren Sie das litert-lm-builder-Paket von PyPI mit pip in einer virtuellen Umgebung:

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade litert-lm-builder

.litertlm-Datei erstellen: litert-lm-builder

Verwenden Sie die litert-lm-builder-CLI, um Ihre Modellkomponenten zu verpacken. Sie können dies entweder über eine Konfigurationsdatei oder durch Verketten von Befehlszeilenargumenten tun.

Nutzung

Mit den folgenden Methoden kann die .litertlm-Datei mit dem Builder vorbereitet werden.

Methode 1: Mit TOML-Konfiguration erstellen (empfohlen)

Geben Sie alle Komponenten, Pfade und Metadaten in einer TOML-Konfigurationsdatei an und führen Sie dann den Builder aus:

litert-lm-builder toml --path config.toml output --path model.litertlm

Beispiel config.toml:

[system_metadata]
entries = [
  { key = "author", value_type = "String", value = "Authors" }
]

[[section]]
section_type = "LlmMetadata"
data_path = "path/to/llm_metadata.pb"

[[section]]
section_type = "SP_Tokenizer"
data_path = "path/to/sp.model"

[[section]]
section_type = "TFLiteModel"
model_type = "PREFILL_DECODE"
data_path = "path/to/model.tflite"
additional_metadata = [
  { key = "model_version", value_type = "String", value = "1.0.1" }
]

Methode 2: Mit Befehlszeilenargumenten erstellen

Sie können den Container dynamisch erstellen, indem Sie Unterbefehle in Ihrem Terminal verketten. Die Reihenfolge der Unterbefehle bestimmt die Reihenfolge der Abschnitte in der generierten Datei.

litert-lm-builder \
  system_metadata --str author "Authors" \
  llm_metadata --path path/to/llm_metadata.pb \
  sp_tokenizer --path path/to/sp.model \
  tflite_model --path path/to/model.tflite --model_type prefill_decode --str_metadata model_version "1.0.1" \
  output --path model.litertlm

Referenz zu Befehlszeilenoptionen

Die litert-lm-builder-Befehlszeile unterstützt die folgenden Unterbefehle:

  • output (erforderlich): Gibt den Ausgabepfad an.
    • --path PATH: Pfad zum Speichern der erstellten Datei .litertlm.
  • toml: Konfiguration aus einer TOML-Datei laden.
    • --path PATH: Pfad zur Datei .toml.
  • system_metadata: Globale Systemmetadaten hinzufügen.
    • --str KEY VALUE: Fügt ein Schlüssel/Wert-Paar vom Typ „String“ hinzu (kann mehrmals angegeben werden).
    • --int KEY VALUE: Fügt ein Schlüssel/Wert-Paar mit einem Ganzzahlwert hinzu (kann mehrmals angegeben werden).
    • Hinweis: Der Builder generiert automatisch eine eindeutige uuid und creation_timestamp (im UTC-ISO 8601-Format) und fügt sie den Systemmetadaten hinzu. Geben Sie diese Schlüssel nicht manuell an. Diese Felder werden von der Laufzeit verwendet, um den Modell-Build eindeutig zu identifizieren und die Invalidierung des kompilierten Cache zu verwalten.
  • llm_metadata: LLM-spezifische Konfiguration hinzufügen.
    • --path PATH: Pfad zu den LLM-Metadaten (Text- oder binäres Proto).
  • tflite_model: TFLite-Modell hinzufügen.
    • --path PATH: Pfad zur Datei .tflite.
    • --model_type TYPE: Einer der folgenden Werte: embedder, prefill_decode (für Vorabfüllen und Decodieren), prefill, decode.
    • --backend_constraint BACKEND: (Optional) Back-End-Einschränkung (z.B. gpu, cpu, npu).
    • --prefer_activation_type TYPE: (Optional) Bevorzugter Aktivierungstyp (fp16, fp32, fp32_fp16).
    • --str_metadata KEY VALUE: (Optional) String-Metadaten für diesen Modellabschnitt.
  • sp_tokenizer: SentencePiece-Tokenizer hinzufügen.
    • --path PATH: Pfad zur Datei .model.
    • --str_metadata KEY VALUE: (Optional) String-Metadaten.
  • hf_tokenizer: Hugging Face-Tokenizer hinzufügen.
    • --path PATH: Pfad zur Datei tokenizer.json.
    • --str_metadata KEY VALUE: (Optional) String-Metadaten.

.litertlm-Datei prüfen und entpacken: litert-lm-peek

Mit der litert-lm-peek-Befehlszeile können Sie einen .litertlm-Container untersuchen oder seine eingebetteten Komponenten entpacken. Wenn Sie den Befehl ausführen, wird die vollständige Containerstruktur, alle verpackten Abschnitte und die automatisch generierten Systemmetadaten (z. B. uuid und creation_timestamp) angezeigt.

Nutzung

litert-lm-peek --litertlm_file model.litertlm [options]

Referenz zu Befehlszeilenoptionen

  • --litertlm_file PATH (erforderlich): Der Pfad zur zu untersuchenden .litertlm-Datei.
  • --dump_files_dir PATH (optional): Das Verzeichnis, in dem alle gepackten Dateien (Modelle, Tokenizer, Gewichte, Metadaten) extrahiert/entpackt werden sollen. Wenn nicht angegeben, gibt das Tool nur die Metadaten und die Abschnittsstruktur in der Konsole aus, ohne Dateien zu extrahieren.