Trình tạo tệp LiteRT-LM

Gói litert-lm-builder cung cấp các công cụ Python và Giao diện dòng lệnh (CLI) để tạo, kiểm tra và giải nén các tệp vùng chứa LiteRT-LM (.litertlm).

Tệp .litertlm là một vùng chứa hợp nhất duy nhất đóng gói các mô hình TFLite, tệp mã hoá từ, trọng số bên ngoài và siêu dữ liệu mô hình được liên kết để chúng có thể được phân phối và tải bởi thời gian chạy LiteRT-LM.

Cài đặt

Cài đặt gói litert-lm-builder từ PyPI.

Phương pháp 1: uvx (Nên dùng để thực hiện nhanh)

Chạy các CLI ngay lập tức mà không cần cài đặt vĩnh viễn. Yêu cầu uv.

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

Phương thức 2: pip

Cài đặt tiêu chuẩn trong môi trường ảo:

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

Tạo tệp .litertlm: litert-lm-builder

Sử dụng CLI litert-lm-builder để đóng gói các thành phần mô hình. Bạn có thể thực hiện việc này bằng cách sử dụng tệp cấu hình hoặc bằng cách liên kết các đối số dòng lệnh.

Cách sử dụng

Bạn có thể dùng các phương thức sau để chuẩn bị tệp .litertlm bằng trình tạo.

Cách 1: Tạo bằng cấu hình TOML (Nên dùng)

Chỉ định tất cả thành phần, đường dẫn và siêu dữ liệu trong tệp cấu hình TOML, sau đó chạy trình tạo:

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

Ví dụ 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" }
]

Cách 2: Tạo bằng đối số dòng lệnh

Bạn có thể tạo vùng chứa một cách linh hoạt bằng cách xâu chuỗi các lệnh phụ trong thiết bị đầu cuối. Thứ tự của các lệnh con sẽ xác định thứ tự của các mục trong tệp được tạo.

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

Tài liệu tham khảo về các lựa chọn CLI

CLI litert-lm-builder hỗ trợ các lệnh con sau:

  • output (Bắt buộc): Chỉ định đường dẫn đầu ra.
    • --path PATH: Đường dẫn để lưu tệp .litertlm đã tạo.
  • toml: Tải cấu hình từ tệp TOML.
    • --path PATH: Đường dẫn đến tệp .toml.
  • system_metadata: Thêm siêu dữ liệu hệ thống chung.
    • --str KEY VALUE: Thêm một cặp khoá-giá trị chuỗi (có thể được chỉ định nhiều lần).
    • --int KEY VALUE: Thêm một cặp khoá-giá trị số nguyên (có thể chỉ định nhiều lần).
    • Lưu ý: Trình tạo sẽ tự động tạo và thêm một uuidcreation_timestamp duy nhất (ở định dạng ISO 8601 theo giờ UTC) vào siêu dữ liệu hệ thống. Đừng chỉ định các khoá này theo cách thủ công. Thời gian chạy dùng các trường này để xác định duy nhất bản dựng mô hình và quản lý việc vô hiệu hoá bộ nhớ đệm đã biên dịch.
  • llm_metadata: Thêm cấu hình dành riêng cho LLM.
    • --path PATH: Đường dẫn đến siêu dữ liệu LLM (văn bản hoặc proto nhị phân).
  • tflite_model: Thêm một mô hình TFLite.
    • --path PATH: Đường dẫn đến tệp .tflite.
    • --model_type TYPE: Một trong các giá trị: embedder, prefill_decode (đại diện cho cả tính năng điền sẵn và giải mã), prefill, decode.
    • --backend_constraint BACKEND: (Không bắt buộc) Ràng buộc phụ trợ (ví dụ: gpu, cpu, npu).
    • --prefer_activation_type TYPE: (Không bắt buộc) Loại kích hoạt ưu tiên (fp16, fp32, fp32_fp16).
    • --str_metadata KEY VALUE: (Không bắt buộc) Siêu dữ liệu chuỗi cho phần mô hình này.
  • sp_tokenizer: Thêm một trình mã hoá từ SentencePiece.
    • --path PATH: Đường dẫn đến tệp .model.
    • --str_metadata KEY VALUE: (Không bắt buộc) Siêu dữ liệu chuỗi.
  • hf_tokenizer: Thêm một mã hoá từ của Hugging Face.
    • --path PATH: Đường dẫn đến tệp tokenizer.json.
    • --str_metadata KEY VALUE: (Không bắt buộc) Siêu dữ liệu chuỗi.

Kiểm tra và giải nén tệp .litertlm: litert-lm-peek

Sử dụng CLI litert-lm-peek để kiểm tra một vùng chứa .litertlm hoặc giải nén các thành phần được nhúng của vùng chứa đó. Khi chạy, lệnh này sẽ hiển thị cấu trúc vùng chứa đầy đủ, tất cả các phần được đóng gói và siêu dữ liệu hệ thống được tạo tự động (chẳng hạn như uuidcreation_timestamp).

Cách sử dụng

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

Tài liệu tham khảo về các lựa chọn CLI

  • --litertlm_file PATH (Bắt buộc): Đường dẫn đến tệp .litertlm cần kiểm tra.
  • --dump_files_dir PATH (Không bắt buộc): Thư mục nơi tất cả các tệp được đóng gói (mô hình, bộ mã hóa từ, trọng số, siêu dữ liệu) sẽ được trích xuất/giải nén. Nếu không được cung cấp, công cụ sẽ chỉ in siêu dữ liệu và cấu trúc phần vào bảng điều khiển mà không trích xuất tệp.