Transformers documentation

ExecuTorch

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ExecuTorch

ExecuTorch هو حل شامل من الطرف إلى الطرف لتمكين قدرات الاستدلال على الجهاز عبر الأجهزة المحمولة وأجهزة الحافة، بما في ذلك الأجهزة القابلة للارتداء والأجهزة المدمجة ومعالجات الميكرو. وهو جزء من منظومة PyTorch، ويدعم نشر نماذج PyTorch مع التركيز على قابلية النقل والإنتاجية والأداء.

يُقدّم ExecuTorch نقاط دخول محددة بوضوح لتنفيذ تحسينات خاصة بالنموذج أو الجهاز أو حالة الاستخدام، مثل تفويض الخلفية، وتحويلات المُجمِّع التي يعرّفها المستخدم، وتخطيط الذاكرة، وغيرها. الخطوة الأولى في تجهيز نموذج PyTorch للتنفيذ على جهاز طرفي باستخدام ExecuTorch هي تصدير النموذج. ويتم ذلك من خلال استخدام واجهة برمجة تطبيقات PyTorch تُسمى torch.export.

تكامل ExecuTorch

يتم تطوير نقطة تكامل لضمان إمكانية تصدير 🤗 Transformers باستخدام torch.export. لا يقتصر هدف هذا التكامل على تمكين التصدير فحسب، بل يمتد إلى ضمان إمكانية خفض المُنتَج المُصدَّر وتحسينه ليُنفَّذ بكفاءة في ExecuTorch، لا سيما في حالات الاستخدام على الأجهزة المحمولة والأطراف.

فئة transformers.TorchExportableModuleWithStaticCache

< >

( model: PreTrainedModelbatch_size: int | None = Nonemax_cache_len: int | None = Nonedevice: typing.Optional[torch.device] = None )

وحدة وصفات مصممة لجعل PreTrainedModel قابلة للتصدير باستخدام torch.export، وخاصةً لنماذج اللغة التي تعتمد على المُفكِّك فقط إلى StaticCache. تضمن هذه الوحدة أن النموذج المُصدَّر متوافق مع عمليات التحويل والتنفيذ اللاحقة في ExecuTorch.

ملاحظة: صُمِّم هذا الصنف خصيصًا لدعم عملية التصدير باستخدام torch.export بطريقة تضمن إمكانية خفض النموذج (lowering) وتنفيذه بكفاءة في ExecuTorch.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonecache_position: typing.Optional[torch.Tensor] = None ) → torch.Tensor

المعاملات

  • input_ids (torch.Tensor) — متجه يمثل معرّف الرمز الحالي المُدخل إلى الوحدة.
  • inputs_embeds (torch.Tensor) — متجه يمثل تضمينات الإدخال الحالية للوحدة.
  • cache_position (torch.Tensor) — متجه يمثل موضع الإدخال الحالي في ذاكرة التخزين المؤقت.

يعيد

torch.Tensor

مخرجات Logits من النموذج.

مرور أمامي للوحدة، وهو متوافق مع وقت تشغيل ExecuTorch.

يخدم هذا المُحوِّل الأمامي غرضين رئيسيين:

  1. جعل النموذج متوافقًا مع torch.export: يخفي المُكيّف (adapter) الكائنات غير المدعومة، مثل Cache، عن مدخلات ومخرجات الرسم البياني، مما يتيح تصدير النموذج باستخدام torch.export دون مواجهة أي مشكلات.

  2. ضمان التوافق مع وقت تشغيل ExecuTorch: يطابق المُكيّف توقيع الدالة الأمامية للنموذج مع التوقيع الموجود في executorch/extension/llm/runner، مما يضمن إمكانية تنفيذ النموذج المُصدَّر في ExecuTorch دون أي إعدادات مسبقة.

transformers.convert_and_export_with_cache

< >

( model: PreTrainedModelexample_input_ids: typing.Optional[torch.Tensor] = Noneexample_cache_position: typing.Optional[torch.Tensor] = Nonedynamic_shapes: dict | None = Nonestrict: bool | None = None ) → Exported program (torch.export.ExportedProgram)

المعاملات

  • model (PreTrainedModel) — النموذج المُسبَق التدريب الذي سيتم تصديره.
  • example_input_ids (Optional[torch.Tensor]) — معرّف رمز الإدخال النموذجي المستخدم بواسطة torch.export.
  • example_cache_position (Optional[torch.Tensor]) — مثال على موضع الكاش الحالي المستخدم بواسطة torch.export.
  • dynamic_shapes(Optional[dict]) — الأشكال الديناميكية المستخدمة بواسطة torch.export.
  • strict(Optional[bool]) — علم يُوجِّه torch.export إلى استخدام dynamo.

يعيد

البرنامج المُصدَّر (torch.export.ExportedProgram)

البرنامج المُصدَّر الذي تم إنشاؤه عبر torch.export.

تحويل PreTrainedModel إلى وحدة قابلة للتصدير وتصديرها باستخدام torch.export، مع ضمان توافق النموذج المُصدَّر مع ExecuTorch.

Update on GitHub