تبدیل مدل‌های PyTorch GenAI برای استنتاج روی دستگاه

رابط برنامه‌نویسی کاربردی مولد LiteRT Torch یک کتابخانه با کارایی بالا است که برای نوشتن و تبدیل مدل‌های PyTorch مبتنی بر Transformer به فرمت LiteRT/LiteRT-LM طراحی شده است. این امر توسعه‌دهندگان را قادر می‌سازد تا مدل‌های هوش مصنوعی مولد، به‌ویژه مدل‌های زبان بزرگ (LLM)، را برای تولید متن و تصویر روی دستگاه، به راحتی و بدون مشکل پیاده‌سازی کنند.

Torch Generative API از تبدیل مدل برای CPU، GPU و NPU پشتیبانی می‌کند. با جفت کردن Torch Generative API با LiteRT-LM ، می‌توانید برنامه‌های واکنش‌گرا و متمرکز بر حریم خصوصی بسازید که مدل‌های مولد را کاملاً روی دستگاه اجرا می‌کنند.

تبدیل از کتابخانه تبدیل چهره در آغوش گرفته

افزونه LiteRT Torch Hugging Face Export مسیری ساده برای تبدیل مدل‌های هوش مصنوعی مولد مستقیماً از کتابخانه Hugging Face Transformers به ​​فرمت LiteRT-LM فراهم می‌کند. در مقایسه با APIهای مولد LiteRT Torch که بلوک‌های سازنده پای‌تورچ را برای ساخت و بهینه‌سازی مدل‌های سفارشی در اختیار شما قرار می‌دهند، این ابزار پیچیدگی‌های دانلود وزن‌ها، ترجمه معماری‌های مدل پای‌تورچ و اعمال تکنیک‌های بهینه‌سازی مانند بهینه‌سازی گراف و کوانتیزاسیون را در یک گردش کار واحد مدیریت می‌کند. این ابزار یک فایل .litertlm را خروجی می‌دهد که برای استنتاج روی دستگاه در CPU، GPU و NPU با استفاده از زمان اجرای LiteRT-LM بهینه شده است.

پیش‌نیازها

قبل از استفاده از افزونه export، مطمئن شوید که تنظیمات زیر را انجام داده‌اید:

  • بسته پایتون LiteRT Torch را نصب کنید. افزونه 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 از مکانیسم‌های استاندارد احراز هویت ترانسفورماتورها مانند 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

کاربرد اولیه

شما می‌توانید export_hf با استفاده از خط فرمان یا API پایتون استفاده کنید. این ابزار به طور خودکار مدل را از Hugging Face دانلود می‌کند یا مدل را از مسیر محلی ارائه شده بارگذاری می‌کند، آن را ردیابی می‌کند، بهینه‌سازی‌های پیش‌فرض را اعمال می‌کند و آن را به یک فایل .litertlm سازگار با استنتاج CPU و GPU تبدیل می‌کند.

رابط خط فرمان (CLI)

از دستور litert-torch export_hf استفاده کنید. شما باید شناسه مدل چهره در حال آغوش گرفتن و دایرکتوری خروجی انتخاب شده را ارائه دهید.

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

رابط برنامه‌نویسی پایتون

برای ادغام در اسکریپت‌ها یا نوت‌بوک‌های پایتون، ماژول 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 معماری‌های مدل Transformers زیر را تأیید می‌کند. این موضوع را می‌توان با بررسی فیلد model_type در config.json تأیید کرد.

  • جما ۳ ( Gemma3ForCausalLM )
  • Gemma 3n ( Gemma3nForCausalLM )
  • جما ۴ ( Gemma4ForCausalLM )
  • لاما ( LlamaForCausalLM )
  • میسترال ( MistralForCausalLM )
  • کوئن ۲/۲.۵ ( Qwen2ForCausalLM )
  • کوئن ۳ ( Qwen3ForCausalLM )
  • اسمول‌ال‌ام ۳ ( SmolLM3ForCausalLM )

تنظیمات پیشرفته

در حالی که می‌توانید گزینه‌های پیشرفته موجود در پرچم‌های افزونه را بررسی کنید، موارد زیر برخی از دکمه‌های رایجی هستند که می‌توانید امتحان کنید.

مدل‌های زبان بینایی

برای مدل‌های پشتیبانی‌شده، می‌توانید --task=image_text_to_text ‎ و --export_vision_encoder ‎ را برای بارگذاری و خروجی گرفتن از مدل رمزگذار بینایی تنظیم کنید.

معماری‌های پشتیبانی‌شده:

  • جما ۳ ( Gemma3ForConditionalGeneration )
  • جما ۴ ( Gemma4ForConditionalGeneration )

پیکربندی کوانتیزاسیون

مدل‌های هوش مصنوعی مولد اغلب برای اجرای کارآمد روی دستگاه‌های لبه‌ای بدون بهینه‌سازی، بسیار بزرگ هستند. به طور پیش‌فرض، export_hf دستورالعمل کوانتیزاسیون dynamic_wi8_afp32 را با استفاده از AI Edge Quantizer اعمال می‌کند، که وزن‌ها را برای هر کانال INT8 کوانتیزه می‌کند و در عین حال فعال‌سازی‌ها را در FP32 نگه می‌دارد.

شما می‌توانید این رفتار پیش‌فرض را با استفاده از فلگ --quantization_recipe (یا پارامتر 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 که با مدل transformers ارائه می‌شود ممکن است با 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 SDK را دنبال کنید.

برای خروجی گرفتن از LLMهایی که TPUهای Google Tensor را هدف قرار می‌دهند، از مثال مربوط به پرچم‌های اضافی مورد نیاز برای کامپایل 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 مراجعه کنید.

زمان اجرای هوش مصنوعی کوالکام:

پیش‌نیازها: برای دستورالعمل‌های راه‌اندازی SDK و دستگاه‌های پشتیبانی‌شده ، LiteRT Qualcomm Integration را دنبال کنید.

مثال:

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

مدیاتک نوروپایلوت:

پیش‌نیازها: برای دستورالعمل‌های راه‌اندازی SDK و دستگاه‌های پشتیبانی‌شده ، LiteRT MediaTek Integration را دنبال کنید.

مثال:

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

اینتل اوپن وینو

پیش‌نیازها: برای دستورالعمل‌های راه‌اندازی SDK و دستگاه‌های پشتیبانی‌شده، LiteRT Intel OpenVINO Integration را دنبال کنید.

مثال:

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 همچنین بلوک‌های سازنده‌ای را برای ساخت و بهینه‌سازی مدل‌های سفارشی PyTorch، از جمله اما نه محدود به لایه‌های نرمال‌ساز، توجه‌ها و سایر ماژول‌های پایه، فراهم می‌کند. اگر مدل شما تحت پوشش افزونه LiteRT Torch Hugging Face Export نیست، می‌توانید مدل‌های خود را طوری بسازید که با LiteRT و LiteRT-LM سازگار باشند.

نمونه‌های مدل شامل LLMها، مدل‌های انتشار و مدل‌های ASR وجود دارد. می‌توانید آنها را بررسی کنید و مدل خودتان را پیاده‌سازی کنید.

برای اطلاعات بیشتر، به مخزن GitHub API Generative Torch مراجعه کنید.