رمز الخطأ: E0102

الفئة: وقت التشغيل: عدم تطابق مخزن الإدخال المؤقت للبرنامج

يحدث هذا الخطأ عندما يرصد وقت تشغيل XLA عدم تطابق بين حجم مخزن مؤقت للذاكرة يتوقّعه برنامج مترجَم وحجم المخزن المؤقت الذي يتم توفيره فعليًا في وقت التنفيذ.

نموذج رسالة الخطأ:

XlaRuntimeError: INVALID_ARGUMENT: Executable(jit_embedding_pipeline_step_fn) expected parameter 2482 of size 5242880 (bf16[16,1280,40]{2,1,0:T(8,128)(2,1)}) but got buffer with incompatible size 1638400 (bf16[16,1280,40]{1,2,0:T(8,128)(2,1)}): while running replica 0 and partition 0 of a replicated computation (other replicas may have failed as well).

برامج XLA الخلفية: وحدة معالجة الموتّرات

نظرة عامة

تشير رسالة الخطأ إلى الأحجام المتوقّعة والفعلية، بالإضافة إلى أشكال وتنسيقات الموتر. يُرجى العِلم أنّ هذه الأخطاء قد تحدث حتى إذا كان لموترَين الشكل نفسه ولكن قد يختلف حجمهما في الذاكرة إذا كان التنسيق الفعلي لهما (طريقة تقسيم البيانات وترتيبها على الجهاز) مختلفًا.

تحدث هذه الأخطاء بشكل أساسي بسبب:

  • عدم تطابق إعدادات نقطة التحقّق وXLA: يتم تدريب نموذج وحفظ نقطة تحقّق. يتم تحديد التنسيق الفعلي للأوزان في نقطة التحقّق هذه من خلال إصدار XLA وإعداداته المحدّدة (مثل علامات XLA) في ذلك الوقت. في وقت لاحق، يتم تحميل نقطة التحقّق هذه في بيئة مختلفة تم فيها تغيير الإعدادات. يمكن أن يؤدي وضع علامة جديدة أو استخدام قيمة تلقائية مختلفة أو إجراء تغيير في نموذج/رمز XLA إلى توقّع وقت التشغيل لتنسيق مادي مختلف للأوزان. عندما يتم تمرير المخزن المؤقت القديم من نقطة التوقف إلى برنامج XLA الجديد الذي تم تجميعه، يعرض وقت التشغيل خطأ.
  • التنسيقات الخاصة بالأجهزة/البنية: يمكن لمترجم XLA اختيار تنسيقات مادية مختلفة للموترات من أجل تحسين الأداء على أجهزة مختلفة. قد يختلف التخطيط الأمثل لوحدة TPU من الإصدار 4 عن التخطيط الأمثل لوحدة TPU من الإصدار 5، أو حتى عن شرائح مختلفة من وحدة المعالجة المركزية نفسها (مثل 4x4x4 مقابل 4x8). يحدث الخطأ عند تجميع نموذج مع افتراض بشأن تصميم أحد المخططات، ولكن يتم تنفيذه في وقت التشغيل على مخطط مختلف، أو عند وجود خطأ في منطق التصميم الخاص بالمجمّع لجزء معيّن من الأجهزة.

تصحيح الأخطاء

  • ضمان اتّساق الإعداد بين عملية تصدير النموذج وعمليات إعادة التشغيل من نقاط التوقف
    • تجنَّب استخدام نقاط التحقّق القديمة مع الرمز الجديد ما لم تكن متأكدًا من عدم إجراء أي تغييرات تؤثر في التنسيق.
    • إذا كنت تشك في عدم تطابق نقطة التحقّق/الإعداد، فإنّ الحل الأكثر موثوقية هو إعادة تصدير النموذج المحفوظ باستخدام قاعدة الرموز والإعدادات نفسها (والحالية) التي تستخدمها للاستدلال أو الضبط الدقيق.
    • ابحث عن تغييرات في الإعدادات (مثل علامات XLA) بين عمليتَي التشغيل.
  • تنسيقات خاصة بالأجهزة أو البنية
    • تحقَّق من عدم تطابق إصدار الجهاز والمخطط الهيكلي في حال تبديل الأجهزة أو المخططات الهيكلية.