LiteRT Torch Generative API는 변환기 기반 PyTorch 모델을 LiteRT/LiteRT-LM 형식으로 작성하고 변환하도록 설계된 고성능 라이브러리입니다. 이를 통해 개발자는 생성형 AI 모델, 특히 대규모 언어 모델 (LLM)을 기기 내 텍스트 및 이미지 생성을 위해 손쉽게 배포할 수 있습니다.
Torch Generative API는 CPU, GPU, NPU의 모델 변환을 지원합니다. Torch Generative API를 LiteRT-LM과 페어링하면 생성형 모델을 완전히 기기에서 실행하는 반응형의 개인 정보 보호 중심 애플리케이션을 빌드할 수 있습니다.
Hugging Face Transformer 라이브러리에서 변환
LiteRT Torch Hugging Face Export 확장 프로그램은 생성형 AI 모델을 Hugging Face Transformers 라이브러리에서 LiteRT-LM 형식으로 직접 변환하는 간소화된 경로를 제공합니다. 커스텀 모델을 빌드하고 최적화하기 위한 PyTorch 빌딩 블록을 제공하는 LiteRT Torch Generative API와 비교할 때 이 도구는 가중치 다운로드, PyTorch 모델 아키텍처 변환, 단일 워크플로에서 그래프 최적화 및 양자화와 같은 최적화 기술 적용의 복잡성을 처리합니다. LiteRT-LM 런타임을 사용하여 CPU, GPU, NPU에서 기기 내 추론에 최적화된 .litertlm 파일을 출력합니다.
기본 요건
내보내기 확장 프로그램을 사용하기 전에 다음 설정이 되어 있는지 확인하세요.
- LiteRT Torch Python 패키지를 설치합니다. Hugging Face 내보내기 확장 프로그램은
litert-torch패키지에 직접 빌드됩니다. - (선택사항) NPU 컴파일의 경우
pip install ai-edge-litert[npu-sdk]를 사용하여 LiteRT NPU SDK 확장 프로그램을 설치합니다. 자세한 내용은 LiteRT NPU AOT 컴파일 Colab을 참고하세요. - Hugging Face 허브에서 직접 로드하려는 경우 Hugging Face 환경이 설정됩니다. export_hf 도구는
HF_TOKEN또는 CLI와 같은 표준 변환기 인증 메커니즘을 사용합니다. 예:
게이트된 모델 (예: Gemma 또는 Llama)을 다운로드하려면 CLI 또는 환경 변수를 사용하여 Hugging Face로 인증해야 합니다.
# 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
기본 사용법
명령줄 또는 Python API를 사용하여 export_hf를 사용할 수 있습니다. 이 도구는
Hugging Face에서 모델을 자동으로 다운로드하거나 제공된 로컬
경로에서 모델을 로드하고, 추적하고, 기본 최적화를 적용하고, CPU 및 GPU 추론과 호환되는 .litertlm 파일로 변환합니다.
명령줄 인터페이스 (CLI)
litert-torch export_hf 명령어를 사용합니다. Hugging Face
모델 ID와 선택한 출력 디렉터리를 제공해야 합니다.
litert-torch export_hf \
--model=google/gemma-3-270m-it \
--output_dir=/tmp/gemma3-270m-it-litertlm
로컬 또는 커스텀 모델을 내보내려면 safetensor 체크포인트의 경로를 전달할 수도 있습니다.
litert-torch export_hf \
--model=/path/to/safetensor/dir \
--output_dir=/my_custom_litertlm
Python API
Python 스크립트 또는 노트북에 통합하려면 export 모듈
을 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',
)
LiteRT-LM을 사용한 기기 내 배포
모델을 .litertlm 파일로 내보낸 후에는
LiteRT-LM을 사용하여 CPU와 GPU 모두에서 고성능 실행을 위해
기기 내에 직접 배포할 수 있습니다. LiteRT-LM API 사용 방법에 관한 세부정보를 참고하세요. NPU 가속의 경우 NPU AOT 컴파일 가이드를 참고하세요.
지원되는 아키텍처
export_hf 도구는 다음 변환기 모델 아키텍처를 확인합니다.
config.json에서 model_type 필드를 확인하여 이를 확인할 수 있습니다.
- Gemma 3 (
Gemma3ForCausalLM) - Gemma 3n (
Gemma3nForCausalLM) - Gemma 4 (
Gemma4ForCausalLM) - Llama (
LlamaForCausalLM) - Mistral (
MistralForCausalLM) - Qwen 2/2.5 (
Qwen2ForCausalLM) - Qwen 3 (
Qwen3ForCausalLM) - SmolLM 3 (
SmolLM3ForCausalLM)
고급 설정
확장 프로그램 플래그에서 사용할 수 있는 고급 옵션을 살펴볼 수 있지만, 다음과 같은 일반적인 노브를 사용해 볼 수 있습니다.
비전 언어 모델
지원되는 모델의 경우 --task=image_text_to_text 및 --export_vision_encoder를 설정하여 비전 인코더 모델을 로드하고 내보낼 수 있습니다.
지원되는 아키텍처:
- Gemma 3 (
Gemma3ForConditionalGeneration) - Gemma 4 (
Gemma4ForConditionalGeneration)
양자화 구성
생성형 AI 모델은 최적화 없이 에지 기기에서 효율적으로 실행하기에는 너무 큰 경우가 많습니다. 기본적으로 export_hf는 dynamic_wi8_afp32
AI Edge Quantizer를 사용하여
dynamic_wi8_afp32 양자화 레시피를 적용합니다. 이 레시피는 활성화를 FP32로 유지하면서 가중치를 채널당 INT8로 양자화합니다.
--quantization_recipe 플래그
(또는 Python의 quantization_recipe 매개변수)를 사용하여 이 기본 동작을 재정의할 수 있습니다.
AI Edge Quantizer에서 기본 제공 레시피의 이름을 제공하거나 커스텀 JSON
레시피의 경로를 지정할 수 있습니다.
예:
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
Jinja 템플릿 재정의
변환기 모델과 함께 제공되는 Jinja 템플릿이 LiteRT-LM (예: Gemma4 모델)과 호환되지 않을 수 있습니다. use_jinja_template 플래그를 False로 설정하거나 jinja_chat_template_override 옵션을 사용하여 템플릿을 재정의할 수 있습니다.
예:
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
NPU AOT 컴파일
CPU 및 GPU 외에도 NPU 관련 옵션을 제공하여 모델을 내보낼 때 지원되는 NPU 가속기를 타겟팅할 수도 있습니다.
Google Tensor
기본 요건: 개발 환경 설정은 Google Tensor SDK 페이지 를 참고하세요.
Google Tensor TPU를 타겟팅하는 LLM을 내보내려면 TPU 컴파일에 필요한 추가 플래그의 예를 참고하세요.
예:
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}'
자세한 내용은 Google Tensor SDK로 모델 컴파일을 참고하세요.
Qualcomm AI 런타임:
기본 요건: SDK 설정 안내 및 지원되는 기기는 LiteRT Qualcomm 통합을 참고하세요.
예:
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:
기본 요건: SDK 설정 안내 및 지원되는 기기는 LiteRT MediaTek 통합을 참고하세요.
예:
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
기본 요건: SDK 설정 안내 및 지원되는 기기는 LiteRT Intel OpenVINO 통합을 참고하세요.
예:
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
LiteRT Torch Generative API를 사용하여 다시 작성 및 변환
LiteRT Torch Generative API는 정규화 레이어, 어텐션, 기타 기본 모듈을 비롯한 커스텀 PyTorch 모델을 빌드하고 최적화하기 위한 빌딩 블록도 제공합니다. 모델이 LiteRT Torch Hugging Face 내보내기 확장 프로그램으로 처리되지 않는 경우 LiteRT 및 LiteRT-LM과 호환되는 자체 모델을 빌드할 수 있습니다.
LLM, 확산 모델, ASR 모델을 비롯한 모델 예가 있습니다. 자유롭게 확인하고 자체 모델을 배포하세요.
자세한 내용은 Generative Torch API GitHub 저장소를 참고하세요.