LiteRT-LM 文件构建工具

litert-lm-builder 软件包 提供 Python 工具和命令行界面 (CLI),用于构建、检查 和解压缩 LiteRT-LM (.litertlm) 容器文件

.litertlm 文件是一个统一的容器,用于打包 TFLite 模型、分词器文件、外部权重和关联的模型元数据,以便它们 可以由 LiteRT-LM 运行时分发和加载。

安装

从 PyPI 安装 litert-lm-builder 软件包。

方法 1:uvx(建议用于快速执行)

立即运行 CLI,无需永久安装。需要 uv

uvx litert-lm-builder --help
uvx litert-lm-peek --help

方法 2:pip

在虚拟环境中进行标准安装:

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

构建 .litertlm 文件:litert-lm-builder

使用 litert-lm-builder CLI 打包模型组件。您可以使用配置文件或通过链接命令行实参来执行此操作。

用法

可以使用以下方法通过构建器准备 .litertlm 文件。

方法 1:使用 TOML 配置进行构建(推荐)

在 TOML 配置文件中指定所有组件、路径和元数据,然后运行构建器:

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

示例 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" }
]

方法 2:使用命令行实参进行构建

您可以通过在终端中链接子命令来动态构建容器。子命令的顺序决定了生成的文件中各个部分的顺序。

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

CLI 选项参考文档

litert-lm-builder CLI 支持以下子命令:

  • output (必需):指定输出路径。
    • --path PATH:用于保存构建的 .litertlm 文件的路径。
  • toml:从 TOML 文件加载配置。
    • --path PATH.toml 文件的路径。
  • system_metadata:添加全局系统元数据。
    • --str KEY VALUE:添加字符串键值对(可以指定多次)。
    • --int KEY VALUE:添加整数键值对(可以指定多次)。
    • 注意:构建器会自动生成唯一的 uuidcreation_timestamp(采用 UTC ISO 8601 格式)并将其附加到系统 元数据。请勿手动指定这些键。运行时会使用这些字段来唯一标识模型构建并管理已编译的缓存失效。
  • llm_metadata:添加特定于 LLM 的配置。
    • --path PATH:LLM 元数据(文本或二进制 proto)的路径。
  • tflite_model:添加 TFLite 模型。
    • --path PATH.tflite 文件的路径。
    • --model_type TYPE:以下其中一项:embedderprefill_decode(表示 预填充和解码)、prefilldecode
    • --backend_constraint BACKEND:(可选)后端约束(例如 gpucpunpu)。
    • --prefer_activation_type TYPE:(可选)首选激活类型 (fp16fp32fp32_fp16)。
    • --str_metadata KEY VALUE:(可选)此模型部分的字符串元数据。
  • sp_tokenizer:添加 SentencePiece 分词器。
    • --path PATH.model 文件的路径。
    • --str_metadata KEY VALUE:(可选)字符串元数据。
  • hf_tokenizer:添加 Hugging Face 分词器。
    • --path PATHtokenizer.json 文件的路径。
    • --str_metadata KEY VALUE:(可选)字符串元数据。

检查和解压缩 .litertlm 文件:litert-lm-peek

使用 litert-lm-peek CLI 检查 .litertlm 容器或解压缩其嵌入式组件。运行该命令会显示完整的容器结构、所有打包的部分以及自动生成的系统元数据(例如 uuidcreation_timestamp)。

用法

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

CLI 选项参考文档

  • --litertlm_file PATH (必需):要检查的 .litertlm 文件的路径。
  • --dump_files_dir PATH (可选):应在其中提取/解压缩所有打包文件(模型、分词器、权重、元数据)的目录。如果未提供,该工具只会将元数据和部分结构输出到控制台,而不会提取文件。