PEFT documentation

طرق مساعدة

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

and get access to the augmented documentation experience

to get started

طرق مساعدة

مجموعة من الدوال المساعدة لـ PEFT.

التحقق مما إذا كان النموذج نموذج PEFT

peft.helpers.check_if_peft_model

< >

( model_name_or_path: str ) → bool

المعاملات

  • model_name_or_path (str) — معرّف النموذج الذي يجب التحقق منه، ويمكن أن يكون محليًا أو على Hugging Face Hub.

يعيد

bool

True إذا كان النموذج نموذج PEFT، وإلا False.

تحقق مما إذا كان النموذج نموذج PEFT.

إعادة تحجيم مقياس المحوّل مؤقتًا في وحدات LoraLayer

peft.helpers.rescale_adapter_scale

< >

( model: Modulemultiplier: float | int )

المعاملات

  • model — النموذج الذي يحتوي على وحدات LoraLayer التي سيتم ضبط معامل التوسع الخاص بها.
  • multiplier (float or int) — المضاعِف الذي يعيد تحجيم خاصية scaling. يجب أن يكون من النوع float أو int.

يرفع

ValueError

  • ValueError — إذا لم يحتوي النموذج على أي من حالات LoraLayer، مما يشير إلى أن النموذج لا يدعم التوسيع.

مدير سياق لإعادة مقياس مقياس مُكيّف LoRA مؤقتًا في نموذج.

تُستعاد قيم التوسيع الأصلية عند خروج مدير السياق. يعمل مدير السياق هذا مع نماذج transformers وdiffusers التي تم تحميل مُكيّفات LoRA فيها مباشرةً.

في حالة LoRA، فإن تطبيق مدير السياق هذا مع مُضاعِف ضمن المجال [0, 1] مكافئ تمامًا لتطبيق wise-ft (راجع #1940 للتفاصيل). يمكن أن يحسّن أداء النموذج إذا كان هناك انزياح في التوزيع بين بيانات التدريب المستخدمة للضبط الدقيق، وبيانات الاختبار المستخدمة أثناء الاستدلال.

تحذير: تم الإبلاغ عن أنه عند استخدام واجهة MPS من Apple لـ PyTorch، من الضروري إضافة فترة نوم قصيرة بعد الخروج من السياق قبل أن تُستعاد المقاييس بالكامل.

مثال:

>>> model = ModelWithLoraLayer()
>>> multiplier = 0.5
>>> with rescale_adapter_scale(model, multiplier):
...     outputs = model(**inputs)  # Perform operations with the scaled model
>>> outputs = model(**inputs)  # The original scaling values are restored here

مدير سياق لتعطيل تحويل نوع البيانات المدخلة في الطريقة الأمامية لطبقات LoRA

peft.helpers.disable_input_dtype_casting

< >

( model: Moduleactive: bool = True )

المعاملات

  • model (nn.Module) — النموذج الذي يحتوي على وحدات PEFT التي يجب تعديل تحويل نوع مدخلاتها (input dtype).
  • active (bool) — ما إذا كان مُدير السياق نشطًا (الافتراضي) أو غير نشط.

تعطّل مُدير السياق (Context manager) تحويل نوع البيانات المدخلة إلى نوع بيانات الوزن.

مدير سياق لتفعيل تخزين DoRA مؤقتًا (أسرع وقت الاستدلال لكنه يتطلب ذاكرة أكثر)

فئة peft.helpers.DoraCaching

< >

( enabled: bool = True )

مدير سياق لتفعيل تخزين مؤقت لـ DoRA، مما يحسّن سرعة استنتاج DoRA على حساب الذاكرة.

مع التخزين المؤقت النشط، يتم تخزين وزن LoRA المادي (B @ A) ومعايير الوزن (الوزن الأساسي + وزن LoRA) في ذاكرة التخزين المؤقت.

حتى في سياق التخزين المؤقت، إذا كان النموذج في وضع التدريب، يتم تعطيل التخزين المؤقت. عند تحويل النموذج إلى وضع التدريب، سيتم مسح ذاكرة التخزين المؤقت.

مثال:

>>> from peft.helpers import DoraCaching

>>> model.eval()  # put in eval model for caching to work

>>> with DoraCaching():  # use as a context manager
...     output = model(inputs)

>>> dora_caching = DoraCaching()
>>> dora_caching(enabled=True)  # permanently enable caching
>>> output = model(inputs)
>>> dora_caching(enabled=False)  # permanently disable caching
>>> output = model(inputs)

اختيار الهدف في KappaTune

KappaTuneSelector وfind_kappa_target_modules تنفّذان عملية اختيار عامة للأهداف من ورقة KappaTune.

تحديد الطريقة الوحدات ذات المرونة الأعلى (أعلى إنتروبيا تفاضلية للمخرجات) والتخصص الأدنى (حساسية أقل تجاه اتجاهات مدخلات محددة).

تجعل هذه الخصائص الوحدات المختارة مرشّحة جيدة للتخفيف من النسيان الكارثي في أي طريقة تكيّف تضيف معاملات قابلة للتدريب، بما في ذلك LoRA وDoRA وLoHa وAdaLoRA، وحتى الضبط الدقيق المباشر للأوزان الأصلية.

فئة peft.helpers.KappaTuneSelector

< >

( model: Modulemax_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )

أداة خفيفة الوزن لحساب أرقام الحالة لكل وحدة / لكل معامل وإرجاع أفضل أهداف LoRA.

يدعم:

  • وحدات nn.Linear التقليدية (معاملات target_modules في LoraConfig)
  • أوزان MoE المدمجة الحديثة المخزنة على شكل nn.Parameter ثلاثي الأبعاد (gate_up_proj / down_proj، gate_proj / up_proj، إلخ) المستخدمة في Llama-4 وQwen2_MoE وQwen3_MoE وMixtral وOLMoE ونماذج مشابهة. تُعاد هذه الأوزان عبر target_parameters.

ملاحظات:

  • يتطلب حساب رقم الشرط تشغيل تحليل القيم المفردة (SVD) وقد يستغرق عدة دقائق على النماذج الكبيرة جداً. يمكن إظهار شريط التقدم أو تعطيله عبر show_progress.

peft.find_kappa_target_modules

< >

( model: Moduletop_p: float = 0.2max_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )

المعاملات

  • model (nn.Module) — النموذج الأساسي الذي سيتم تحليل أوزانه من حيث أرقام الحالة.
  • top_p (float, اختياري) — اختر النسبة الأعلى من الوحدات/المعاملات المرشحة ذات أرقام الحالة الأدنى.
  • max_dim_size_to_analyze (int, اختياري) — الحد الأعلى لأقصى بُعد للمصفوفة التي يتم تحليلها عبر SVD. القيمة الافتراضية هي 16384.
  • moe_param_suffixes (Optional[tuple[str, …]], optional) — لاحقات أسماء المعلمات المستخدمة لتحديد متجهات MoE المدمجة التي يجب إرجاعها عبر target_parameters. إذا كانت القيمة None، تُستخدم قيم افتراضية مناسبة.
  • show_progress (bool, optional) — ما إذا كان يجب عرض شريط تقدّم أثناء حساب أرقام الحالة (المبنية على SVD) عبر المرشّحات/وحدات المرشّحات. عطّلها في بيئات CI أو البيئات غير التفاعلية الأخرى. القيمة الافتراضية هي True.

دالة مريحة من سطر واحد لاختيار هدف KappaTune. تُرجع كلًا من target_modules و target_parameters.

Update on GitHub