LiteRT Torch Generative API เป็น ไลบรารีประสิทธิภาพสูงที่ออกแบบมาสำหรับการเขียนและแปลง โมเดล PyTorch ที่อิงตาม Transformer เป็นรูปแบบ LiteRT/LiteRT-LM ซึ่งช่วยให้นักพัฒนาแอปสามารถทำให้โมเดล Generative AI โดยเฉพาะอย่างยิ่งโมเดลภาษาขนาดใหญ่ (LLM) ใช้งานได้ในอุปกรณ์สำหรับการสร้างข้อความและรูปภาพได้อย่างง่ายดาย
Torch Generative API รองรับการแปลงโมเดลสำหรับ CPU, GPU และ NPU เมื่อใช้ Torch Generative API ร่วมกับ LiteRT-LM คุณจะสร้างแอปพลิเคชันที่ปรับเปลี่ยนตามอุปกรณ์และมุ่งเน้นความเป็นส่วนตัวซึ่งเรียกใช้โมเดล Generative AI ทั้งหมดในอุปกรณ์ได้
แปลงจากไลบรารี Hugging Face Transformer
ส่วนขยาย LiteRT Torch Hugging Face Export มี เส้นทางที่คล่องตัวในการแปลงโมเดล Generative AI จาก ไลบรารี Hugging Face Transformers เป็นรูปแบบ LiteRT-LM โดยตรง เมื่อเทียบกับ LiteRT Torch Generative API ที่มีองค์ประกอบที่ใช้สร้างสรรค์ PyTorch ให้คุณสร้างและปรับแต่งโมเดลที่กำหนดเอง เครื่องมือนี้จะจัดการ ความซับซ้อนของการดาวน์โหลดน้ำหนัก การแปลสถาปัตยกรรมโมเดล PyTorch และการใช้เทคนิคการเพิ่มประสิทธิภาพ เช่น การเพิ่มประสิทธิภาพกราฟ และการหาปริมาณในเวิร์กโฟลว์เดียว โดยจะแสดงไฟล์ .litertlm ซึ่งได้รับการเพิ่มประสิทธิภาพสำหรับการอนุมานในอุปกรณ์บน CPU, GPU และ NPU โดยใช้ รันไทม์ LiteRT-LM
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าคุณได้ตั้งค่าสิ่งต่อไปนี้ก่อนใช้ส่วนขยายการส่งออก
- ติดตั้งแพ็กเกจ LiteRT Torch Python ส่วนขยาย Hugging Face Export สร้างขึ้นในแพ็กเกจ
litert-torchโดยตรง - (ไม่บังคับ) หากต้องการคอมไพล์ NPU ให้ติดตั้งส่วนขยาย LiteRT NPU SDK โดยใช้
pip install ai-edge-litert[npu-sdk]ดูรายละเอียดเพิ่มเติมได้ที่ LiteRT NPU AOT Compilation Colab - ตั้งค่าสภาพแวดล้อม Hugging Face หากคุณต้องการโหลดจากฮับ Hugging Face โดยตรง เครื่องมือ export_hf ใช้กลไกการตรวจสอบสิทธิ์ Transformer มาตรฐาน เช่น
HF_TOKENหรือ CLI ดูตัวอย่างดังนี้
หากต้องการดาวน์โหลดโมเดลที่มีการควบคุมการเข้าถึง (เช่น Gemma หรือ Llama) คุณต้องตรวจสอบสิทธิ์กับ Hugging Face โดยใช้ CLI หรือตัวแปรสภาพแวดล้อม
# 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
การใช้งานพื้นฐาน
คุณใช้ export_hf ได้โดยใช้บรรทัดคำสั่งหรือ Python API เครื่องมือจะ
ดาวน์โหลดโมเดลจาก Hugging Face หรือโหลดโมเดลจากเส้นทางในเครื่องที่ระบุ
ติดตามโมเดล ใช้การเพิ่มประสิทธิภาพเริ่มต้น และแปลงโมเดลเป็น
ไฟล์ .litertlm ที่เข้ากันได้กับการอนุมาน CPU และ GPU โดยอัตโนมัติ
อินเทอร์เฟซบรรทัดคำสั่ง (CLI)
ใช้คำสั่ง litert-torch export_hf คุณต้องระบุรหัสโมเดล Hugging Face
และไดเรกทอรีเอาต์พุตที่เลือก
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 จะตรวจสอบสถาปัตยกรรมโมเดล Transformer ต่อไปนี้
คุณตรวจสอบได้โดยดูช่อง model_type ใน 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)
การตั้งค่าขั้นสูง
แม้ว่าคุณจะสำรวจตัวเลือกขั้นสูงที่มีอยู่ในแฟล็กส่วนขยายได้ แต่ตัวเลือกทั่วไปบางอย่างที่คุณลองใช้ได้มีดังนี้
โมเดลภาษาภาพ
สำหรับโมเดลที่รองรับ คุณสามารถตั้งค่า --task=image_text_to_text และ --export_vision_encoder เพื่อโหลดและส่งออกโมเดลตัวเข้ารหัสภาพ
สถาปัตยกรรมที่รองรับ
- Gemma 3 (
Gemma3ForConditionalGeneration) - Gemma 4 (
Gemma4ForConditionalGeneration)
การกำหนดค่าการหาปริมาณ
โมเดล Generative AI มักจะมีขนาดใหญ่เกินกว่าจะทำงานได้อย่างมีประสิทธิภาพในอุปกรณ์ Edge
หากไม่มีการเพิ่มประสิทธิภาพ โดยค่าเริ่มต้น export_hf จะใช้สูตรการหาปริมาณ dynamic_wi8_afp32
โดยใช้ AI Edge Quantizer ซึ่งจะหาปริมาณน้ำหนักเป็น INT8 ต่อช่องสัญญาณในขณะที่เก็บการเปิดใช้งานไว้ใน FP32
คุณลบล้างลักษณะการทำงานเริ่มต้นนี้ได้โดยใช้แฟล็ก --quantization_recipe
(หรือพารามิเตอร์ quantization_recipe ใน Python)
คุณสามารถระบุชื่อสูตรในตัวจาก
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 ที่มาพร้อมกับโมเดล Transformer อาจไม่เข้ากันกับ 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 หน้า เพื่อตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
หากต้องการส่งออก LLM ที่กำหนดเป้าหมายเป็น Google Tensor TPU ให้ทำตามตัวอย่างสำหรับแฟล็กเพิ่มเติมที่จำเป็นสำหรับการคอมไพล์ 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
รันไทม์ AI ของ Qualcomm
ข้อกำหนดเบื้องต้น: ทำตาม การผสานรวม LiteRT Qualcomm เพื่อดูวิธีการตั้งค่า SDK และอุปกรณ์ที่รองรับ
ตัวอย่าง:
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
ข้อกำหนดเบื้องต้น: ทำตาม การผสานรวม LiteRT MediaTek เพื่อดูวิธีการตั้งค่า SDK และอุปกรณ์ที่รองรับ
ตัวอย่าง:
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
ข้อกำหนดเบื้องต้น: ทำตาม การผสานรวม LiteRT Intel OpenVINO เพื่อดูวิธีการตั้งค่า SDK และอุปกรณ์ที่รองรับ
ตัวอย่าง:
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 ที่ปรับแต่งเอง ซึ่งรวมถึงแต่ไม่จำกัดเพียงเลเยอร์ Normalizer, การใส่ใจ และโมดูลพื้นฐานอื่นๆ หากส่วนขยาย LiteRT Torch Hugging Face Export ไม่ครอบคลุมโมเดลของคุณ คุณสามารถสร้างโมเดลของคุณเองให้เข้ากันได้กับ LiteRT และ LiteRT-LM
มีตัวอย่างโมเดล เช่น LLM, โมเดลการแพร่ และ โมเดล ASR คุณสามารถดูตัวอย่างเหล่านี้และทำให้โมเดลของคุณเองใช้งานได้
ดูข้อมูลเพิ่มเติมได้ที่ ที่เก็บ GitHub ของ Generative Torch API