Chuyển đổi các mô hình AI tạo sinh PyTorch để suy luận trên thiết bị

LiteRT Torch Generative API là một thư viện hiệu suất cao được thiết kế để tạo và chuyển đổi các mô hình PyTorch dựa trên biến đổi thành định dạng LiteRT/LiteRT-LM. Điều này giúp các nhà phát triển dễ dàng triển khai các mô hình AI tạo sinh, đặc biệt là Mô hình ngôn ngữ lớn (LLM), để tạo văn bản và hình ảnh trên thiết bị.

Torch Generative API hỗ trợ chuyển đổi mô hình cho CPU, GPU và NPU. Bằng cách ghép nối Torch Generative API với LiteRT-LM, bạn có thể tạo các ứng dụng thích ứng, tập trung vào quyền riêng tư và chạy các mô hình tạo sinh hoàn toàn trên thiết bị.

Chuyển đổi từ Thư viện Transformer của Hugging Face

Tiện ích Xuất Hugging Face của LiteRT Torch cung cấp một đường dẫn tinh giản để chuyển đổi các mô hình AI tạo sinh trực tiếp từ Thư viện Transformer của Hugging Face sang định dạng LiteRT-LM. So với LiteRT Torch Generative API cung cấp cho bạn các thành phần pytorch để xây dựng và tối ưu hoá các mô hình tuỳ chỉnh, công cụ này xử lý sự phức tạp của việc tải trọng số xuống, dịch cấu trúc mô hình PyTorch và áp dụng các kỹ thuật tối ưu hoá như tối ưu hoá đồ thị và lượng tử hoá trong một quy trình làm việc duy nhất. Thao tác này sẽ xuất ra một tệp .litertlm được tối ưu hoá để suy luận trên thiết bị trên CPU, GPU và NPU bằng cách sử dụng thời gian chạy LiteRT-LM.

Điều kiện tiên quyết

Trước khi sử dụng tiện ích xuất, hãy đảm bảo bạn đã thiết lập những thông tin sau:

  • Cài đặt gói LiteRT Torch Python. Tiện ích Hugging Face Export được tích hợp trực tiếp vào gói litert-torch.
  • (Không bắt buộc) Để biên dịch NPU, hãy cài đặt các tiện ích SDK NPU LiteRT bằng pip install ai-edge-litert[npu-sdk]. Để biết thêm thông tin, bạn có thể tham khảo LiteRT NPU AOT Compilation Colab.
  • Môi trường Hugging Face được thiết lập nếu bạn dự định tải trực tiếp từ trung tâm Hugging Face. Công cụ export_hf sử dụng các cơ chế xác thực tiêu chuẩn của trình biến đổi như HF_TOKEN hoặc CLI. Hãy xem ví dụ sau:

Để tải các mô hình có kiểm soát (chẳng hạn như Gemma hoặc Llama) xuống, bạn phải xác thực bằng Hugging Face thông qua CLI hoặc một biến môi trường:

# Set your Hugging Face token as an environment variable
export HF_TOKEN="your_hugging_face_token"

# Or use the Hugging Face CLI login
hf auth login

Cách sử dụng cơ bản

Bạn có thể sử dụng export_hf bằng dòng lệnh hoặc Python API. Công cụ này sẽ tự động tải mô hình xuống từ Hugging Face hoặc tải mô hình từ đường dẫn cục bộ được cung cấp, theo dõi mô hình đó, áp dụng các chế độ tối ưu hoá mặc định và chuyển đổi mô hình đó thành một tệp .litertlm tương thích để suy luận trên CPU và GPU.

Giao diện dòng lệnh (CLI)

Sử dụng lệnh litert-torch export_hf. Bạn cần cung cấp mã mô hình Hugging Face và thư mục đầu ra đã chọn.

litert-torch export_hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-it-litertlm

Để xuất một mô hình cục bộ hoặc tuỳ chỉnh, bạn cũng có thể truyền đường dẫn đến điểm kiểm tra safetensor:

litert-torch export_hf \
  --model=/path/to/safetensor/dir \
  --output_dir=/my_custom_litertlm

Python API

Để tích hợp vào tập lệnh hoặc sổ tay Python, hãy nhập mô-đun export từ litert_torch.generative.export_hf.

from litert_torch.generative.export_hf import export

export.export(
    model='google/gemma-3-270m-it',
    output_dir='/tmp/gemma3-270m-it-litertlm',
)

Triển khai trên thiết bị bằng LiteRT-LM

Sau khi xuất mô hình thành công sang tệp .litertlm, bạn có thể triển khai mô hình đó trực tiếp trên thiết bị bằng LiteRT-LM để thực thi hiệu suất cao trên cả CPU và GPU. Xem thông tin chi tiết về cách sử dụng LiteRT-LM API. Để biết thông tin về tính năng tăng tốc NPU, hãy tham khảo Hướng dẫn biên dịch AOT NPU.

Cấu trúc được hỗ trợ

Công cụ export_hf xác minh các cấu trúc mô hình Transformer sau đây. Bạn có thể xác minh điều này bằng cách kiểm tra trường model_type trong config.json.

  • Gemma 3 (Gemma3ForCausalLM)
  • Gemma 3n (Gemma3nForCausalLM)
  • Gemma 4 (Gemma4ForCausalLM)
  • Llama (LlamaForCausalLM)
  • Mistral (MistralForCausalLM)
  • Qwen 2/2.5 (Qwen2ForCausalLM)
  • Qwen 3 (Qwen3ForCausalLM)
  • SmolLM 3 (SmolLM3ForCausalLM)

Cài đặt nâng cao

Mặc dù bạn có thể khám phá các lựa chọn nâng cao có trong cờ tiện ích, nhưng sau đây là một số nút phổ biến mà bạn có thể thử.

Mô hình ngôn ngữ thị giác

Đối với các mô hình được hỗ trợ, bạn có thể đặt --task=image_text_to_text--export_vision_encoder để tải và xuất mô hình bộ mã hoá hình ảnh.

Các cấu trúc được hỗ trợ:

  • Gemma 3 (Gemma3ForConditionalGeneration)
  • Gemma 4 (Gemma4ForConditionalGeneration)

Cấu hình lượng tử hoá

Các mô hình AI tạo sinh thường quá lớn để chạy hiệu quả trên các thiết bị biên mà không cần tối ưu hoá. Theo mặc định, export_hf sẽ áp dụng công thức lượng tử hoá dynamic_wi8_afp32 bằng cách sử dụng AI Edge Quantizer. Công thức này sẽ lượng tử hoá trọng số thành INT8 cho mỗi kênh trong khi vẫn giữ các lượt kích hoạt ở FP32.

Bạn có thể ghi đè hành vi mặc định này bằng cờ --quantization_recipe (hoặc tham số quantization_recipe trong Python). Bạn có thể cung cấp tên của một công thức tích hợp từ AI Edge Quantizer hoặc chỉ định đường dẫn đến một công thức JSON tuỳ chỉnh.

Ví dụ:

litert-torch export_hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-it-litertlm \
  --quantization_recipe=/path/to/my/quantization_recipe.json

Ghi đè mẫu Jinja

Mẫu jinja đi kèm với mô hình biến đổi có thể không tương thích với LiteRT-LM (ví dụ: mô hình Gemma4), bạn có thể đặt cờ use_jinja_template thành False hoặc sử dụng tuỳ chọn jinja_chat_template_override để ghi đè mẫu.

Ví dụ:

 litert-torch export_hf \
   --model=google/gemma-4-E2B-it \
  --output_dir=/tmp/gemma4_2b_litertlm \
  --externalize_embedder \
  --jinja_chat_template_override=litert-community/gemma-4-E2B-it-litert-lm

Biên dịch AOT NPU

Ngoài CPU và GPU, bạn cũng có thể nhắm đến các bộ tăng tốc NPU được hỗ trợ khi xuất mô hình bằng cách cung cấp các lựa chọn cụ thể về NPU.

Google Tensor

Điều kiện tiên quyết: Làm theo trang Google Tensor SDK để thiết lập môi trường phát triển.

Để xuất các LLM nhắm đến TPU Google Tensor, hãy làm theo ví dụ về các cờ bổ sung cần thiết để biên dịch TPU.

Ví dụ:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --prefill_lengths=128, \
  --cache_length=1280 \
  --quantization_recipe="weight_only_wi8_afp32"
  --aot_backend=GOOGLE \
  --aot_soc_model=Tensor_G5 \
  --aot_compilation_config_dict='{"google_tensor_enable_large_model_support": True}'

Để biết thêm thông tin, hãy xem phần Biên dịch các mô hình bằng Google Tensor SDK.

Thời gian chạy AI của Qualcomm:

Điều kiện tiên quyết: Làm theo hướng dẫn Tích hợp Qualcomm LiteRT để thiết lập SDK và các thiết bị được hỗ trợ.

Ví dụ:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --quantization_recipe='' \
  --aot_backend=qualcomm \
  --aot_soc_model=SM8750

MediaTek NeuroPilot:

Điều kiện tiên quyết: Làm theo hướng dẫn Tích hợp LiteRT MediaTek để thiết lập SDK và các thiết bị được hỗ trợ.

Ví dụ:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --aot_backend=mediatek \
  --aot_soc_model=MT8189

Intel OpenVINO

Điều kiện tiên quyết: Làm theo hướng dẫn Tích hợp LiteRT Intel OpenVINO để thiết lập SDK và các thiết bị được hỗ trợ.

Ví dụ:

litert-torch export-hf \
  --model=google/gemma-3-270m-it \
  --output_dir=/tmp/gemma3-270m-google-tensor-g5 \
  --split_cache \
  --externalize_embedder \
  --aot_backend=intel_openvino \
  --aot_soc_model=PTL

Viết lại và chuyển đổi bằng LiteRT Torch Generative API

LiteRT Torch Generative API cũng cung cấp các thành phần để tạo và tối ưu hoá các mô hình PyTorch tuỳ chỉnh, bao gồm nhưng không giới hạn ở các lớp chuẩn hoá, sự chú ý và các mô-đun cơ bản khác. Nếu mô hình của bạn không thuộc phạm vi của tiện ích Xuất Hugging Face LiteRT Torch, bạn có thể tạo các mô hình của riêng mình để tương thích với LiteRT và LiteRT-LM.

ví dụ về mô hình, bao gồm mô hình ngôn ngữ lớn (LLM), mô hình khuếch tán và mô hình nhận dạng giọng nói tự động (ASR). Bạn có thể xem và triển khai mô hình của riêng mình.

Để biết thêm thông tin, hãy xem kho lưu trữ GitHub của Generative Torch API.