تحويل نماذج الذكاء الاصطناعي التوليدي في PyTorch للاستنتاج على الجهاز

LiteRT Torch Generative API هي مكتبة عالية الأداء مصمّمة لإنشاء نماذج PyTorch المستندة إلى المحوِّلات وتحويلها إلى تنسيق LiteRT/LiteRT-LM. ويتيح ذلك للمطوّرين نشر نماذج الذكاء الاصطناعي التوليدي، وتحديدًا النماذج اللغوية الكبيرة (LLM)، بسلاسة لإنشاء النصوص والصور على الجهاز فقط بسهولة.

تتوافق Torch Generative API مع تحويل النماذج لوحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) ووحدة المعالجة العصبية (NPU). من خلال إقران Torch Generative API مع LiteRT-LM، يمكنك إنشاء تطبيقات سريعة الاستجابة تركز على الخصوصية وتشغّل النماذج التوليدية على الجهاز فقط.

التحويل من مكتبة Hugging Face Transformer

توفّر إضافة LiteRT Torch Hugging Face Export مسارًا مبسطًا لتحويل نماذج الذكاء الاصطناعي التوليدي مباشرةً من مكتبة Hugging Face Transformers إلى تنسيق LiteRT-LM. مقارنةً بـ واجهات LiteRT Torch Generative APIs التي توفّر لك وحدات إنشاء PyTorch لإنشاء النماذج المخصّصة وتحسينها، تتعامل هذه الأداة مع تعقيدات تنزيل الأوزان وترجمة بنى نماذج PyTorch وتطبيق تقنيات التحسين، مثل تحسينات الرسم البياني والتكميم، في سير عمل واحد. وتنتج ملف ‎ .litertlm ، وهو محسّن للاستنتاج على الجهاز فقط على وحدة المعالجة المركزية ووحدة معالجة الرسومات ووحدة المعالجة العصبية باستخدام وقت تشغيل LiteRT-LM.

المتطلبات الأساسية

قبل استخدام إضافة التصدير، تأكَّد من إعداد ما يلي:

  • ثبِّت حزمة LiteRT Torch Python. تم إنشاء إضافة Hugging Face Export مباشرةً في حزمة litert-torch.
  • (اختياري) لتجميع وحدة المعالجة العصبية، ثبِّت إضافات LiteRT NPU SDK باستخدام pip install ai-edge-litert[npu-sdk]. لمزيد من التفاصيل، يمكنك اتّباع LiteRT NPU AOT Compilation Colab.
  • تم إعداد بيئة Hugging Face إذا كنت تنوي التحميل من مركز Hugging Face مباشرةً. تستخدم أداة export_hf آليات المصادقة العادية للمحوِّلات، مثل HF_TOKEN أو واجهة سطر الأوامر. ويمكنك الاطّلاع على المثال التالي:

لتنزيل النماذج المحظورة (مثل Gemma أو Llama)، عليك المصادقة باستخدام 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 من خلال سطر الأوامر أو واجهة Python API. ستنزِّل الأداة تلقائيًا النموذج من Hugging Face أو تحمِّله من المسار المحلي المقدَّم، وتتتبّعه وتطبّق التحسينات التلقائية وتحوِّله إلى ملف .litertlm متوافق مع الاستدلال على وحدة المعالجة المركزية ووحدة معالجة الرسومات.

واجهة سطر الأوامر (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 module من 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 لتنفيذه بأداء عالٍ على كل من وحدة المعالجة المركزية ووحدة معالجة الرسومات. يمكنك الاطّلاع على تفاصيل حول كيفية استخدام LiteRT-LM API. لتسريع وحدة المعالجة العصبية، يُرجى الرجوع إلى دليل تجميع وحدة المعالجة العصبية AOT.

البنى المتوافقة

تتحقّق أداة export_hf من بنى نماذج المحوِّلات التالية. يمكن التحقّق من ذلك من خلال الاطّلاع على الحقل 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)

إعدادات التكميم

غالبًا ما تكون نماذج الذكاء الاصطناعي التوليدي كبيرة جدًا بحيث لا يمكن تشغيلها بكفاءة على الأجهزة الطرفية بدون تحسينها. تلقائيًا، تطبّق 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 المرفق بنموذج المحوِّلات متوافقًا مع 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

تجميع وحدة المعالجة العصبية AOT

بالإضافة إلى وحدة المعالجة المركزية ووحدة معالجة الرسومات، يمكنك أيضًا استهداف مسرّعات وحدة المعالجة العصبية المتوافقة عند تصدير النماذج من خلال تقديم خيارات خاصة بوحدة المعالجة العصبية.

Google Tensor

المتطلبات الأساسية: اتّبِع صفحة Google Tensor SDK لإعداد بيئة التطوير.

لتصدير النماذج اللغوية الكبيرة التي تستهدف وحدات 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.

وقت تشغيل الذكاء الاصطناعي من Qualcomm:

المتطلبات الأساسية: اتّبِع LiteRT Qualcomm Integration لـ 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:

المتطلبات الأساسية: اتّبِع تعليمات إعداد حزمة 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

‫Intel OpenVINO

المتطلبات الأساسية: اتّبِع تعليمات إعداد حزمة 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 Generative API أيضًا وحدات إنشاء لإنشاء نماذج PyTorch المخصّصة وتحسينها ، بما في ذلك على سبيل المثال لا الحصر طبقات التوحيد والانتباه والوحدات الأساسية الأخرى. إذا لم تكن إضافة LiteRT Torch Hugging Face Export تغطي نموذجك، يمكنك إنشاء نماذجك الخاصة لتكون متوافقة مع LiteRT وLiteRT-LM.

تتوفّر أمثلة للنماذج، بما في ذلك النماذج اللغوية الكبيرة ونماذج الانتشار ونماذج التعرّف على الكلام. يمكنك الاطّلاع على هذه النماذج ونشر نموذجك الخاص.

لمزيد من المعلومات، يُرجى الاطّلاع على مستودع Generative Torch API على GitHub.