Transformers documentation

استيراد أدوات مساعدة

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

استيراد أدوات مساعدة

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

The transformers toolkit is not made to error-out on import of a model that has a specific dependency; instead, an object for which you are lacking a dependency will error-out when calling any method on it. As an example, if torchvision isn’t installed, the fast image processors will not be available.

لا يزال هذا الكائن قابلاً للاستيراد:

>>> from transformers import DetrImageProcessor
>>> print(DetrImageProcessor)
<class 'transformers.models.detr.image_processing_detr.DetrImageProcessor'>

ومع ذلك، تتحقق الدوال على ذلك الكائن من تبعياتها الاختيارية عند استدعائها. على سبيل المثال، إذا كان torchvision غير متاح، فسيؤدي هذا الاستدعاء إلى رفع ImportError:

>>> DetrImageProcessor.from_pretrained("facebook/detr-resnet-50")
ImportError:
DetrImageProcessor requires the Torchvision library but it was not found in your environment. Check out the instructions on the
installation page: https://pytorch.org/get-started/locally/ and follow the ones that match your environment.
Please note that you may need to restart your runtime after installation.

لننظر في كيفية تحديد تبعيات كائنات محددة.

تحديد تبعيات الكائن

بناءً على اسم الملف

جميع الكائنات الموجودة تحت اسم ملف معيّن لها اعتماد تلقائي على الأداة المرتبطة باسم الملف

PyTorch: جميع الملفات التي تبدأ بـ modeling_ تعتمد تلقائياً على PyTorch

مُقسِّمات الرموز: جميع الملفات التي تبدأ بـ tokenization_ وتنتهي بـ _fast لها اعتماد تلقائي على tokenizers

الرؤية: جميع الملفات التي تبدأ بـ image_processing_ لها اعتماد تلقائي على مجموعة الاعتمادات vision؛ وحتى وقت الكتابة، تحتوي هذه المجموعة فقط على اعتماد pillow.

الرؤية + Torch + Torchvision: جميع الملفات التي تبدأ بـ image_processing_ وتنتهي بـ _fast لها اعتماد تلقائي على vision وtorch وtorchvision.

تُضاف جميع هذه التبعيات التلقائية فوق التبعيات الصريحة المفصّلة أدناه.

التبعيات الصريحة للكائنات

نضيف طريقة تُسمى requires تُستخدم لتحديد تبعيات كائن معين بشكل صريح. كمثال، تحتوي فئة Trainer على تبعيتين أساسيتين: torch وaccelerate. فيما يلي كيفية تحديد هذه التبعيات المطلوبة:

from .utils.import_utils import requires

@requires(backends=("torch", "accelerate"))
class Trainer:
    ...

جميع الواجهات الخلفية التي يمكن إضافتها هنا هي الواجهات الخلفية المتاحة في وحدة import_utils.py.

بالإضافة إلى ذلك، يمكن تحديد إصدارات محددة في كل إطار عمل. على سبيل المثال، هذه هي الطريقة التي تحدد بها متطلبًا على torch>=2.6 في فئة Trainer:

from .utils.import_utils import requires

@requires(backends=("torch>=2.6", "accelerate"))
class Trainer:
    ...

يمكنك تحديد العمليات التالية: ==، >، >=، <، <=، !=.

الطرق

transformers.utils.import_utils.define_import_structure

( module_path: strprefix: str | None = None )

تستقبل هذه الطريقة module_path كمدخل وتُنشئ بنية استيراد يمكن لـ _LazyModule فهمها ومعالجتها.

فيما يلي مثال على بنية استيراد المخرجات على مستوى src.transformers.models:

{ frozenset({‘tokenizers’}): { ‘albert.tokenization_albert_fast’: {‘AlbertTokenizer’} }, frozenset(): { ‘albert.configuration_albert’: {‘AlbertConfig’}, ‘align.processing_align’: {‘AlignProcessor’}, ‘align.configuration_align’: {‘AlignConfig’, ‘AlignTextConfig’, ‘AlignVisionConfig’}, ‘altclip.configuration_altclip’: {‘AltCLIPConfig’, ‘AltCLIPTextConfig’, ‘AltCLIPVisionConfig’}, ‘altclip.processing_altclip’: {‘AltCLIPProcessor’} } }

هيكل الاستيراد هو قاموس (dict) مُعرَّف بمجموعات مجمّدة (frozensets) كمفاتيح، وبقواميس (dicts) من السلاسل النصية إلى مجموعات من الكائنات.

إذا لم يكن prefix قيمة None، فسيتم إضافة ذلك البادئة إلى جميع المفاتيح في القاموس المُعاد.

transformers.utils.import_utils.requires

< >

( backends = () )

يتيح هذا المُزيّن أمرين:

  • إرفاق مجموعة __backends إلى كائن لمعرفة الخلفيات اللازمة لتنفيذه بشكل صحيح دون إنشاء مثيل له
  • يُستخدم نص ‘@requires’ لاستيراد الكائنات بشكل ديناميكي

transformers.requires_backends

< >

( objbackends )

المعاملات

  • obj — الكائن الذي سيتم فحصه
  • backends — قائمة أو مجموعة من الخوادم الخلفية (backends) للتحقق منها.

طريقة ترفع استثناءً تلقائيًا في حال عدم توفر الخوادم الخلفية المحددة. تُستخدم غالبًا أثناء

التهيئة للتأكد من تثبيت التبعيات المطلوبة:

requires_backends(self, ["torch"])

يجب تعريف الخوادم الخلفية في BACKEND_MAPPING المُعرّف في transformers.utils.import_utils.

Update on GitHub