→ العودة إلى المدونة
Developer Tools

ShadowPEFT في PEFT: خريطة قرار تصدير المهايئ

يستخدم ShadowPEFT واجهة التدريب المألوفة في PEFT، لكنه لا يستطيع الدمج داخل أوزان الأساس. يفصل دليل النشر هذا بين الاستدلال المتصل وتصدير نموذج اللغة المنفصل، ويشرح copy=True، ويحدد ما يجب قياسه قبل شحن أي من الأثرين.

بقلم Hamza Diaz
15 سبتمبر 202610 دقيقة قراءة11 مشاهدة

واجهة get_peft_model نفسها، لكن عقد نشر مختلف

لا يزال التدريب يبدأ باستخدام get_peft_model. هذا الألفة مفيدة، لكنها قد تخفي أيضا سؤال النشر الأهم: ما الشيء الذي ستشحنه بالضبط؟

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

ما الذي يغيره تكامل 15 سبتمبر

يفيد إعلان التكامل في 15 سبتمبر 2026 الصادر عن المؤلفين بأن ShadowPEFT دُمج في الفرع الرئيسي من PEFT. تقدم ورقة أبريل خلفية مفيدة، لكنها ليست ورقة جديدة في سبتمبر. وقت الإعلان، كانت تجربة التكامل تعني تثبيت PEFT من المصدر؛ وتفصل الوثائق الرئيسية هذا المسار عن الحزمة المستقرة. تاريخ الإعلان ليس دليلا مستقلا على تاريخ الدمج الدقيق.

ثبّت مراجعات PEFT و Transformers التي اختبرتها. وثبّت أيضا مراجعات النموذج الأساسي ونموذج الظل. تثبيت غير مثبت من الفرع الرئيسي ليس خطة إصدار قابلة لإعادة الإنتاج.

يشرح الإعلان الطريقة ويعرض تجارب. وتوثق مرجعية API العمليات. يربط هذا المقال تلك الأجزاء بقرار نشر: أي أثر موجود، وأي تبعيات يجب أن تكون حاضرة، وما الدليل الذي يثبت أن الأثر صالح للشحن. إنه دليل تخطيط، وليس إعادة إنتاج من Optijara لنتائج المؤلفين.

لماذا لا يمكن دمج مسار الظل داخل أوزان الأساس

تصف وثائق ShadowPEFT عمودا فقريا صغيرا ينتج حالة ظل أولية. عبر كتل فك ترميز متجاورة، يمر الفرق h-s عبر تصحيح منخفض الرتبة إلى دخل الأساس. ثم تدفع التحديثات المبوّبة حالة الظل باستخدام مخارج الكتل. يمكن أن يكون مسار مهايئ واحد فقط نشطا في كل مرة.

هذا سلوك يعتمد على الدخل. وليس فرقا ثابتا يمكن طيه داخل أوزان الأساس. ونتيجة لذلك، ترفع merge و merge_adapter و merge_and_unload أخطاء. لا تزيل طرق الحفظ والتحميل المألوفة في PEFT هذا القيد.

أبق ثلاث قوائم جرد منفصلة: المهايئ المحفوظ، وإعداد الاستدلال المتصل بالأساس مع الظل، ونقطة تفتيش نموذج اللغة المنفصل الكاملة. هذه ليست ثلاثة أسماء ملفات للشيء نفسه. إنها منتجات مختلفة.

خريطة قرار تصدير المهايئ: اختر الأثر قبل التدريب

أربعة مسارات نشر وأدلة قبولها

خريطة قرار تصدير المهايئ من Optijara أداة تخطيط أصلية لهذا المقال، وليست معيارا من مورّد. ابدأ بالمسار الذي تحتاجه في الإنتاج، ثم اختر خطوات التدريب والتصدير والتحقق التي يمكنها إنتاجه فعلا.

المسارالأثر المشحونتبعية الأساسالعملية المدعومةدليل القبول
دمج LoRA، حيث يكون مدعومانقطة تفتيش أساس بتحديثات مدمجةتبقى أوزان الأساس في الأثر المدمجدمج متوافق مع التكوينإعادة التحميل ومقارنة مخرجات المهمة المدمجة
Shadow متصلمهايئ، وتكوين، وأساس مطابقمطلوبة أثناء الاستدلالتحميل المهايئ والتوليد المتصلاختبارات جودة الأساس مع الظل، والتخزين المؤقت، وزمن التشغيل
نموذج لغة Transformers منفصل من Shadowعمود فقري، وإسقاط، وتضمينات، ورأس، ومجزئ رموز، وتكوينلا يلزم أساس مقيم عند التصدير الكاملunload_shadow(copy=True)إعادة تحميل مستقلة وتقييم منفصل للمهمة
مزيل ضوضاء Diffusers مستقل من Shadowلا يوجد تصدير مستقل مدعوميبقى مسار الانتشار المتصل منفصلايرفع التفريغ NotImplementedErrorلا تقبل هذا كمسار تصدير مدعوم

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

بالنسبة إلى Diffusers، تفصل الوثائق بين خلفية بنية Flux2 المسجلة وبين بديل MLP باقٍ على مستوى الرموز للبنى المتوافقة. لا يدعم أي من المسارين التفريغ المستقل. ينطبق هذا القيد على نماذج Diffusers عموما، وليس فقط على البنى التي لا تملك خلفية مسجلة.

التدريب والاستدلال المتصل والتصدير المنفصل فروع مختلفة

تعرض الفروع أدناه قرارات ShadowPEFT والفحوص المرتبطة بها. فرع Diffusers غير مدعوم صراحة. وهي لا تصف موجها منفذا بين الحافة والسحابة.

flowchart TD A[اختر مسار نشر ShadowPEFT] --> B[درّب الأساس مع الظل] B --> C[استدلال متصل بالأساس مع الظل] B --> D[تصدير مستقل لنموذج لغة Transformers] B --> E[تصدير Diffusers مستقل غير مدعوم] C --> F[قياس الجودة المتصلة والتخزين المؤقت المزدوج] D --> G[نسخ العمود الفقري والإسقاط والتضمينات والرأس] G --> H[إعادة تحميل باردة وتقييم الجودة المنفصلة]

هذا الملخص الموجز JSON وصفي. إنه ليس تكوين PEFT ولا ينفذ فحوص توافق.

{
  "framework": "Adapter Export Decision Map",
  "shadow_merge_supported": false,
  "attached_requires_base": true,
  "detached_lm_requires_separate_evaluation": true,
  "independent_export_copy": true,
  "diffusers_standalone_supported": false
}

صدّر نموذج لغة منفصلا دون فقدان عقد الأثر

درّب المسار المستقل عمدا

الحساب المنفصل الموثق في Transformers هو head(projection(backbone(x))). إنه ليس حالة الظل النهائية عبر الطبقات sL، لأن sL تعتمد على التفاعلات مع مفكك ترميز الأساس. لذلك لا تثبت النتائج المتصلة القوية جودة المهمة في المسار المنفصل.

تعامل مع جودة المتنبئ كسؤال قبول منفصل. يمكن أن يكون التصدير صالحا تقنيا ومع ذلك يكون المتنبئ الخطأ للمهمة. لا يحسم الحفظ الناجح هذا السؤال.

تشرف خسارة المهمة المساعدة على حالة الظل الأولية s0، وهي المسار المتاح من دون تلك التفاعلات مع الأساس. توثق التكوين أن auxiliary_loss_weight=0.05 هي القيمة الافتراضية، مع إضافة الخسارة عند توفير التسميات. تحقق من أن مهمة التدريب توفر التسميات وتتعامل مع رأس المهمة كما هو مقصود. ضبط قيمة في التكوين ليس مثل التحقق من مسار الخسارة.

بالنسبة إلى نمذجة اللغة السببية، يعاد استخدام رأس إخراج الأساس. أدرج modules_to_save=['lm_head'] عندما يجب تدريب ذلك الرأس وحفظه عبر PEFT. لا تجعل تدريب الرأس رد فعل تلقائيا. سجّل حجم مفردات الرأس وعلاقته بمجزئ الرموز وجدول التضمين.

استخدم unload_shadow(copy=True) للتصدير المستقل

يتبع المقتطف التالي واجهة التصدير الموثقة. إنه توضيحي ولم ينفذ هنا. يعني peft_model نموذج PEFT متوافقا ومدربا مسبقا في Transformers، وليس خط أنابيب Diffusers عشوائيا.

# توضيحي فقط: لم ينفذ لهذا المقال.
detached_model = peft_model.base_model.unload_shadow(copy=True)
detached_model.save_pretrained("standalone-shadow")

بشكل افتراضي، تشارك copy=False الوحدات مع نموذج PEFT. إذا كان الظل يستخدم تضمينات دخل أساس مجمدة عبر مرجع خارج شجرة وحداته الفرعية المسجلة، فقد يحذف حفظ ذلك الكائن المنفصل جدول التضمين. توصي الوثائق باستخدام copy=True عند حفظ نموذج مستقل أو دفعه لأنها تلحق نسخة تضمين خاصة. المفاضلة هي ذاكرة إضافية أثناء التصدير.

تحل تلك الراية تبعية تسلسل واحدة. لكنها لا تثبت أن مجزئ الرموز حُفظ، أو أن المحمّل متوافق، أو أن الجودة المنفصلة تفي بمتطلبات المهمة. استخدم واجهة التحميل للتنفيذ المثبت. لا تستنتج صنف إعادة التحميل من اسم ملائم.

قائمة فحص إعادة التحميل الباردة، ولم تنفذ هنا صراحة

استخدم قائمة الفحص المستقبلية هذه قبل اعتبار التصدير قابلا للنشر. لم تدرب Optijara النموذج أو تصدره أو تعيد تحميله أو تقيمه لهذا المقال. الوثائق وفحص المصدر ليسا بديلا عن دليل اختبار تسلسل محلي.

الفحصالإجراءالدليل الواجب الاحتفاظ به
المراجعاتتثبيت مراجعات PEFT و Transformers والأساس والظلبيان البيئة والنموذج
معالجة الرأستأكيد التسميات، والخسارة المساعدة، وخيار الرأس المحفوظتكوين التدريب وفحوص الخسارة
الأثر الكاملالحفظ باستخدام copy=True؛ جرد الأوزان المطلوبةإدخالات التضمين، والإسقاط، والعمود الفقري، والرأس
مجزئ الرموز والتكوينحفظ الملفات المطابقة وإعدادات الرموز الخاصةمقارنة المفردات والتكوين
التحميل المستقلبدء عملية نظيفة باستخدام المحمّل الموثقسجل تحميل من دون كائنات أساس مقيمة
فحوص المخرجاتمقارنة مخرجات منفصلة مضبوطة قبل الحفظ وبعد إعادة التحميلمدخلات الاختبار، والإعدادات، والمخرجات، وحدود التفاوت
قبول المهمةتسجيل مجموعة محجوبة بمعزل عن الاستدلال المتصلتقرير تقييم منفصل

احتفظ بالأثر المتصل أثناء اختبار التصدير. لا ينبغي أن يحل التحميل النظيف تلقائيا محل مرشح النشر المتصل. إنه يزيل فحص التسلسل فقط. ارفض الآثار غير المكتملة قبل تفسير فروق الجودة، خاصة عندما قد تفسر إعدادات مجزئ الرموز أو الأوزان المفقودة السلوك.

قِس الاستدلال المتصل والمنفصل كمنتجين منفصلين

أربع خطوط أساس على عبء عمل محجوب واحد

خطط لمقارنة الأساس فقط، و LoRA، و Shadow المتصل، و Shadow المنفصل. استخدم المهام المحجوبة نفسها، والمطالبات، وقواعد التسجيل، وإعدادات التوليد حيث يكون ذلك منطقيا. سجّل اختلافات مجزئ الرموز، وأحجام النماذج، وميزانيات التدريب. البنية المنفصلة الأصغر ليست مطابقة للأساس، ولا ينبغي أن يتظاهر التقييم بعكس ذلك.

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

القياسالإجراءالقرار المدعوم
جودة المهمةتطبيق معيار التسجيل المحجوب نفسه على كل مسارما إذا كان الأثر المحدد يلبي احتياجات المهمة
التحميل الباردإعادة التشغيل وتحميل التبعيات المعلنة فقطما إذا كان التغليف قابلا للاستخدام بشكل مستقل
البصمةتسجيل تخزين نقطة التفتيش ومجزئ الرموز كل على حدةتخطيط التخزين والتوزيع
ذاكرة الخدمةقياس ذروة RAM/VRAM ضمن سياق وتزامن معلنينملاءمة العتاد
سلوك التخزين المؤقتفحص الذاكرة عبر أطوال التسلسل المختارةتخطيط سعة التوليد
زمن الاستجابة والإنتاجيةتسجيل البدء البارد، ووقت أول رمز، والإخراج المستمرالملاءمة للتفاعل المستهدف
التكلفةتضمين زمن التشغيل المقاس مع جهد الهندسة والتقييمما إذا كان التبني مبررا اقتصاديا

حجم المهايئ ليس ذاكرة الخدمة

يستخدم التوليد المتصل تخزينين مؤقتين KV للأساس والظل. تصف مرجعية API ShadowCache بأنها غير قابلة للتجميع عمدا؛ ولا يدعم التحويل إلى الصفوف القديمة. لا تعد بدعم torch.compile أو توافق محرك الاستدلال لمجرد أن generate() يبدو مألوفا. يحدد تنفيذ النموذج بشكل منفصل مسار التصدير المستقل وقيد Diffusers الخاص به.

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

اقرأ معيار المؤلفين من دون اختصار تكلفة

يعرض معيار التكامل لدى المؤلفين نتائج تدريب MetaMathQA وتقييم GSM8K التالية ل Llama 3.2 3B على NVIDIA A100 80GB. تسمي جداولهم عمود التخزين "Checkpoint"؛ وهذه آثار تجارب مبلغ عنها، وليست صادرات مستقلة موثقة.

الطريقةدقة اختبار GSM8Kذروة الذاكرةCheckpointزمن التدريب
LoRA46.9%22.3 GB36.7 MB15 min
ShadowPEFT48.1%28.2 GB26.0 MB17 min

في تلك التجربة، لدى ShadowPEFT درجة أعلى ونقطة تفتيش أصغر، مع ذروة ذاكرة أعلى وتدريب أطول. افحص تكوين Shadow و تكوين LoRA المرتبطين. يسمي الإعلان الإعدادات افتراضية، لكن ملف Shadow يحدد auxiliary_loss_weight=0.01 و shadow_alpha=0.5، بدلا من قيم API الافتراضية 0.05 و 0.1. استخدم الملفات المرتبطة لفهم التجربة؛ ولا تفترض بحثا متساويا في المعلمات الفائقة. نتيجة واحدة مبلغ عنها من دون عدم يقين لا تثبت تفوقا واسعا. كما أنها لا تقول شيئا بحد ذاتها عن ذاكرة الخدمة المنفصلة، أو زمن الاستجابة، أو دقة الاستدلال المنفصل.

ما يجب تجنبه في نشر ShadowPEFT

معاملة كل مهايئ PEFT كأنه قابل للدمج

ما يلي أخطاء تنفيذ متوقعة، وليست حوادث من عملاء Optijara. يحتاج سكربت نشر يستدعي merge_and_unload لكل نوع مهايئ إلى فرع خاص بالطريقة. كما أن استبدال ذلك الاستدعاء بتفريغ الظل يغير المتنبئ الذي سيُشحن، لذلك لا يمكن نقل تقرير القبول القديم ببساطة.

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

الخلط بين تدريب الصور المساعد ومزيل ضوضاء قابل للفصل

لا ينشئ مسار تدريب إزالة الضوضاء المساعد منتجا مستقلا مدعوما في Diffusers. يتعلق دعم خلفية Flux2 بكيفية بناء حساب الظل. ولا يزيل NotImplementedError عند التفريغ المستقل.

يفيد المؤلفون أيضا بمقارنة لتوليد الصور باستخدام مجموعة DreamBooth صغيرة لقطة واحدة. لا تثبت تلك التجربة الخاصة بالنموذج تعميما لكل الموضوعات، أو جودة صور عامة، أو جودة مزيل ضوضاء مستقل. أبق هذه الادعاءات خارج مقترح النشر.

للفرق التي تنتقل بين أدوات الصور، لا تثبت عناصر التحكم المألوفة تكافؤ التنفيذ. ينطبق المنطق نفسه هنا. أسماء API المشتركة مفيدة من حيث سهولة الاستخدام، وليست دليلا على أن طريقتين تصدران نماذج مكافئة.

محاذير قبل اعتماد تكامل الفرع الرئيسي

التوافق، وتكلفة التنفيذ، وحدود التقييم

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

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

تبقى فحوص الخصوصية والترخيص خاصة بكل أثر

راجع شروط النموذج الأساسي، ونقطة تفتيش الظل، ومجموعة البيانات، ومجزئ الرموز، ورأس المهمة قبل التوزيع. نقطة تفتيش ظل Qwen المسقطة تكوين محدد يجب فحصه، وليست إذنا عاما لكل نشر مشتق. لا يمنح الفصل حقوق إعادة التوزيع ولا يزيل مخاوف خصوصية بيانات التدريب.

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

النقاط الرئيسية

  • 1يشارك ShadowPEFT نقطة دخول PEFT، لكنه لا يستطيع دمج مساره المعتمد على الدخل داخل أوزان الأساس.
  • 2يحتفظ الاستدلال المتصل بحساب الأساس والظل، بما في ذلك تخزينات KV المؤقتة المزدوجة.
  • 3ينبغي أن يستخدم تصدير نموذج اللغة المنفصل copy=True للحفظ المستقل، مع فحوص أثر كاملة وتقييم جودة منفصل.
  • 4التفريغ المستقل غير مدعوم لكل نماذج Diffusers في التكامل الموثق.
  • 5قارن الجودة الفعلية، وبصمة نقطة التفتيش، وذاكرة الخدمة، وزمن الاستجابة، والتكلفة بدلا من حجم المهايئ وحده.

الخلاصة

اختر مسار التصدير قبل التدريب، ثم أثبت أن الأثر يحمّل بشكل نظيف ويلبي متطلبات المهمة. يحتاج ShadowPEFT المتصل ونموذج اللغة المنفصل إلى أدلة قبول منفصلة. لا يرث أي منهما جاهزية النشر من API مألوف أو معيار أولي واحد. تواصل مع Optijara لمناقشة نطاق تقييم الضبط الدقيق وخطة النشر.

الأسئلة الشائعة

هل يمكن ل ShadowPEFT أن يندمج داخل أوزان النموذج الأساسي مثل LoRA؟

لا. يستخدم ShadowPEFT مسارا يعتمد على الدخل، وليس فرقا ثابتا في الأوزان. يرفض تنفيذه merge و merge_adapter و merge_and_unload. لا ينتقل دعم الدمج في تكوينات LoRA المتوافقة إلى ShadowPEFT.

كيف يختلف الاستدلال المتصل والمنفصل في ShadowPEFT؟

يحتفظ الاستدلال المتصل بالنموذج الأساسي، وحساب الظل، وتخزينات KV المؤقتة المزدوجة. يحسب استدلال Transformers المنفصل head(projection(backbone(x))) من دون تفاعلات مفكك ترميز الأساس على مستوى الطبقات. قيّم الجودة والذاكرة المنفصلتين بشكل مستقل؛ فالدرجات المتصلة لا تثبت الأداء المنفصل.

لماذا تستخدم unload_shadow(copy=True) لتصدير نموذج لغة مستقل؟

تنسخ copy=True الوحدات المشتركة وتتضمن تضمينات الأساس المجمدة التي قد يحذفها الحفظ باستخدام copy=False. استخدمها للحفظ المستقل، ثم تحقق من مجزئ الرموز، والتكوين، والرأس، والأوزان، وإعادة التحميل في عملية نظيفة. الراية وحدها لا تثبت جاهزية النشر.

هل يستطيع ShadowPEFT تصدير مزيل ضوضاء Diffusers مستقل؟

لا. يرفع التفريغ المستقل NotImplementedError لكل نماذج Diffusers في التكامل الموثق. لا يتيح وجود خلفية Flux2 مسجلة أو خسارة إزالة ضوضاء مساعدة التصدير المستقل.

هل يعني مهايئ ShadowPEFT الأصغر ذاكرة أو تكلفة نشر أقل؟

لا. تخزين المهايئ، وحجم نقطة التفتيش الكامل، وذاكرة الخدمة قياسات مختلفة. تسجل تجربة GSM8K التي يستشهد بها المؤلفون نقطة تفتيش ShadowPEFT أصغر مع ذروة ذاكرة أعلى وتدريب أطول مقارنة ب LoRA. وهي لا تقيس تكلفة الخدمة المنفصلة. قارن الأساس فقط، و LoRA، و Shadow المتصل، و Shadow المنفصل على الجودة المحجوبة، والتحميل المستقل، والتخزين، وذاكرة RAM/VRAM للخدمة، وسلوك التخزين المؤقت، وزمن الاستجابة، والإنتاجية، والتكلفة ضمن شروط مسجلة.

المصادر

شارك هذا المقال

Hamza Diaz

بقلم

Hamza Diaz

حمزة دياز هو مؤسس Optijara، حيث يبني وكلاء ذكاء اصطناعي عمليين، وأنظمة أتمتة، وسير عمل Copilot للشركات الخدمية. يكتب عن تشغيل الذكاء الاصطناعي، واستراتيجية الوكلاء، والتطبيق الواقعي للفرق التي تريد أنظمة مفيدة بدلًا من الضجيج.