Transformers documentation
ExecuTorch
ExecuTorch
ExecuTorch هو حل شامل من الطرف إلى الطرف لتمكين قدرات الاستدلال على الجهاز عبر الأجهزة المحمولة وأجهزة الحافة، بما في ذلك الأجهزة القابلة للارتداء والأجهزة المدمجة ومعالجات الميكرو. وهو جزء من منظومة PyTorch، ويدعم نشر نماذج PyTorch مع التركيز على قابلية النقل والإنتاجية والأداء.
يُقدّم ExecuTorch نقاط دخول محددة بوضوح لتنفيذ تحسينات خاصة بالنموذج أو الجهاز أو حالة الاستخدام، مثل تفويض الخلفية، وتحويلات المُجمِّع التي يعرّفها المستخدم، وتخطيط الذاكرة، وغيرها. الخطوة الأولى في تجهيز نموذج PyTorch للتنفيذ على جهاز طرفي باستخدام ExecuTorch هي تصدير النموذج. ويتم ذلك من خلال استخدام واجهة برمجة تطبيقات PyTorch تُسمى torch.export.
تكامل ExecuTorch
يتم تطوير نقطة تكامل لضمان إمكانية تصدير 🤗 Transformers باستخدام torch.export. لا يقتصر هدف هذا التكامل على تمكين التصدير فحسب، بل يمتد إلى ضمان إمكانية خفض المُنتَج المُصدَّر وتحسينه ليُنفَّذ بكفاءة في ExecuTorch، لا سيما في حالات الاستخدام على الأجهزة المحمولة والأطراف.
فئة transformers.TorchExportableModuleWithStaticCache
< source >( 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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonecache_position: typing.Optional[torch.Tensor] = None ) → torch.Tensor
مرور أمامي للوحدة، وهو متوافق مع وقت تشغيل ExecuTorch.
يخدم هذا المُحوِّل الأمامي غرضين رئيسيين:
جعل النموذج متوافقًا مع
torch.export: يخفي المُكيّف (adapter) الكائنات غير المدعومة، مثلCache، عن مدخلات ومخرجات الرسم البياني، مما يتيح تصدير النموذج باستخدامtorch.exportدون مواجهة أي مشكلات.ضمان التوافق مع وقت تشغيل
ExecuTorch: يطابق المُكيّف توقيع الدالة الأمامية للنموذج مع التوقيع الموجود فيexecutorch/extension/llm/runner، مما يضمن إمكانية تنفيذ النموذج المُصدَّر فيExecuTorchدون أي إعدادات مسبقة.
transformers.convert_and_export_with_cache
< source >( 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.