مصفوفة قياس الأداء PyTorch 2.13: ما الذي يجب اختباره قبل ترقيات FlexAttention وCuTeDSL وtorchcomms وFSDP2
يغير PyTorch 2.13 العديد من المسارات التي يعتمد عليها المشغلون: الانتباه، وسلوك المترجم، والنواة المخصصة، واستخدام الذاكرة، والتدريب الموزع. يحول هذا الدليل الإصدار إلى مصفوفة قياس أداء عملية عبر الأنظمة الأساسية لقرارات اعتماد Apple Silicon MPS وCUDA وROCm وCPU وtorchcomms وFSDP2.
PyTorch 2.13 هو نوع الإصدار الذي يمكن أن يجعل الفريق يشعر بالتخلف قبل أن يقوم بمهمة واحدة. يحظى FlexAttention بمزيد من الاهتمام، وتهتم Apple Silicon MPS أكثر بالتطوير المحلي، ويشير CuTeDSL إلى عمل kernel ذي المستوى الأدنى، وتغيير torchcomms وFSDP2 محادثات التدريب الموزعة، ويستمر عمل الذاكرة حول طبقات مثل nn.LinearCrossEntropyLoss.
تلك القائمة مفيدة. إنها ليست خطة ترقية.
تمثل مدونة إصدار PyTorch الرسمية وملاحظات إصدار GitHub خريطة لما تغير. إنها ليست دليلاً على أن عبء العمل الخاص بك يجب أن يتحرك هذا الأسبوع. تعامل مع كل شخصية جذابة ذات سرعة أو ذاكرة كهدف استنساخ محلي. إذا كانت البرامج النصية والأجهزة وشرائح البيانات واختيارات الدقة ومسار التراجع الخاصة بك لا تدعم المطالبة، فستكون المطالبة مجرد نتيجة لشخص آخر.
وينطبق نفس الانضباط على الفرق التي تفكر بالفعل في تقديم التغييرات، كما هو الحال في LLM تقديم خطط الترحيل. عزل التغيير، وقياسه، وجعل التراجع مملاً. عادة الأدلة من [مقاعد اختبار الذكاء الاصطناعي للمستند] (/en/blog/mistral-ocr-4-evidence-preserving-document-ai-test-bench-2026) تنتمي أيضًا إلى هنا: كل نتيجة مرجعية تحتاج إلى مصدر، ومعرف تشغيل، وبيئة، وأمر، وقرار.
السؤال ليس ما إذا كان الإصدار 2.13 أسرع
نادرًا ما تفشل ترقية إطار العمل لأن الميزة الرئيسية مزيفة. لقد فشل لأن الفريق يختبر مسارًا ويشحن إلى مسار آخر.
قد يبدو معيار اهتمام CUDA جيدًا، بينما يفشل التصدير في وقت التشغيل النهائي. قد تقوم MPS بتشغيل العرض التوضيحي، بينما يتراجع النمط المتناثر الحقيقي أو تنفد الذاكرة. قد تظهر المهمة الموزعة خطوة أسرع، بينما يصبح من الصعب الثقة في استرداد نقطة التفتيش. قد يتم التعامل مع وحدة المعالجة المركزية كإجراء احتياطي ممل، ثم يقوم CI بحظر الإصدار بسبب تغيير مسار عامل صغير.
إليكم النسخة الواضحة: المعيار الذي لا يمكن أن يؤدي إلى التراجع هو مجرد مخطط.
يجب اختبار PyTorch 2.13 كتغيير للنظام الأساسي. وهذا يعني نفس عبء العمل، وليس عبء عمل أجمل، عبر الواجهات الخلفية التي يستخدمها الفريق بالفعل. لا تفشل أجهزة الكمبيوتر المحمولة Apple Silicon وخوادم CUDA وعمال ROCm ووظائف CPU CI والمجموعات الموزعة بنفس الطريقة. تقبل مصفوفة الاختبار المفيدة ذلك مقدمًا.
مصفوفة اختبار PyTorch 2.13 عبر الأنظمة الأساسية
| يجب أن تجيب المصفوفة على سؤال اعتماد واحد في كل صف. كل صف عبارة عن عبء عمل أو نظام فرعي. كل عمود عبارة عن بوابة يمكنها الموافقة على التغيير أو عزله أو تأجيله أو التراجع عنه. الهدف ليس رقم الكأس. الهدف هو اتخاذ قرار يمكن للمشغل الدفاع عنه بعد أسبوعين. | المنطقة | ما الذي يجب اختباره | قارن ضد | ضغط القرار |
|---|---|---|---|---|
| انتبه | FlexAttention، SDPA، مسار الانتباه الموجود | نفس النموذج، الأقنعة، أطوال التسلسل، الدقة | هل يحافظ المسار الجديد على الدقة والذاكرة مع تحسين الأجزاء المهمة؟ | |
| أبل السيليكون | اهتمام MPS والتدريب المحلي أو وظائف الاستدلال | خط الأساس MPS الحالي بالإضافة إلى مرجع وحدة المعالجة المركزية أو CUDA حيثما أمكن ذلك | هل يمكن رؤية التراجعات والدقة المختلطة وضغط الذاكرة قبل اعتمادها؟ | |
| تدريب كودا | إلى الأمام، إلى الخلف، التكرارات المصنفة، الإعدادات الحتمية | مسار CUDA الحالي مقابل PyTorch 2.13 | هل تبقى التدرجات والنتائج ضمن التسامح المتفق عليه؟ | |
| تدريب حساس للذاكرة | nn.LinearCrossEntropyLoss ومسارات الخسارة ذات الصلة | تنفيذ الخسارة الحالية ومسار PyTorch 2.13 | هل تنخفض ذاكرة الذروة دون تغيير التعامل مع السجلات أو إشارات التقارب؟ | |
| مترجم وتصدير | حريصة، torch.compile، مسار التصدير | إعدادات الترجمة الحالية مقابل 2.13 | هل فواصل الرسم البياني ووقت الترجمة والأشكال الديناميكية وقيود التصدير مقبولة؟ | |
| وزعت | torchcomms، تداخل FSDP2، نقاط التفتيش | الإطلاق الحالي وإعداد المشاركة | هل يقلل التداخل من الانتظار دون أن يجعل التعافي هشا؟ | |
| الإحتياطيات | وظائف ROCm ووحدة المعالجة المركزية | مسارات CI والدخان والتطوير الموجودة | هل تظل المسارات غير الأساسية قابلة للاستخدام بدرجة كافية للثقة؟ |
| قرار | استخدم عندما | الأدلة المطلوبة |
|---|---|---|
| اعتمد | الواجهات الخلفية المطلوبة تمر عبر البوابات الحرجة | عمليات تشغيل قابلة للمقارنة، وفحوصات الدقة، وبروفة التراجع |
| عزل | يمر نظام فرعي واحد لكن المكدس الكامل لا | علامة الميزة، نطاق عبء العمل الضيق، المالك المسمى |
| تأجيل | الفوائد غير واضحة أو الدعم غير جاهز لمسارك | البوابات الفاشلة الموثقة بمعرفات المصدر والتشغيل |
| التراجع | فواصل التصحيح أو الذاكرة أو التصدير أو الاسترداد | فشل متكرر بالإضافة إلى مسار الرجوع إلى إصدار أقدم الذي تم اختباره |
{
"matrix": "optijara-cross-platform-pytorch-2-13",
"versions": ["current_baseline", "pytorch_2_13"],
"backends": ["mps", "cuda", "rocm", "cpu", "distributed"],
"gates": ["correctness", "latency", "throughput", "peak_memory", "determinism", "compile_export", "rollback"],
"decisions": ["adopt", "isolate", "defer", "rollback"]
}ابدأ بالتحكم
تشغيل التحكم هو المكان الذي تنقطع فيه العديد من البرامج المعيارية بهدوء.
قم بتجميد إصدار PyTorch الحالي، والالتزام بالنموذج، وشريحة مجموعة البيانات، وإصدار الرمز المميز أو المعالجة المسبقة، وسياسة البذور، ووضع الدقة، وشكل الدُفعة، وطول التسلسل، وقناع الانتباه. قم بتسجيل طراز الجهاز، والواجهة الخلفية للمسرع، وإصدارات برنامج التشغيل أو وقت التشغيل، والمشغل الموزع، وإعدادات برنامج التحويل البرمجي، ومتغيرات البيئة. إذا كان عبء العمل يحتوي على وضعي التدريب والاستدلال، فقم بوضع خط الأساس لكليهما.
ثم حافظ على الأجزاء المملة متطابقة. نفس النصوص. نفس المدخلات. نفس سياسة الاحماء. نفس نافذة القياس لا تقارن تشغيل PyTorch 2.13 الذي تم ضبطه بعناية مع خط أساس قديم لم يلمسه أحد منذ أشهر.
فصل عملية الاحماء عن قياس الحالة المستقرة. التقط زمن الوصول p50 وp95 عندما يكون زمن الوصول مهمًا، أو الرموز المميزة أو العينات في الثانية حيث تكون الإنتاجية مهمة، وذاكرة الذروة، والانحراف الرقمي، ووقت الترجمة، وفواصل الرسم البياني، وتكلفة إعادة التشغيل، ووضع الفشل. تظهر نفس قاعدة تجميد عبء العمل في اختبار الذكاء الاصطناعي متعدد الوسائط في الوقت الفعلي: إذا تغير الاختبار أثناء التقييم، يصبح من الصعب الوثوق بالنتيجة.
FlexAttention على MPS وCUDAيستحق FlexAttention اختبارات مبنية على أنماط الاهتمام الحقيقية للفريق. لا يكون الاهتمام المكثف كافيًا إذا كان الدافع وراء الترحيل هو سلوك متناثر أو طويل السياق. قم بتضمين الأقنعة السببية، وأنماط النوافذ المنزلقة، وأنماط الكتل المتناثرة، وأطوال التسلسل الطويلة، والدقة المختلطة، والتمريرات الخلفية. تحدد مستندات FlexAttention الرسمية سطح واجهة برمجة التطبيقات (API). يساعد دليل ملفات تعريف Hugging Face الفرق على قراءة آثار الانتباه بدلاً من الثقة في رقم إنتاجية إجمالي واحد.
في Apple Silicon، يجب أن يتجاوز اختبار MPS نجاح الاستيراد. قم بتشغيل نفس النمط المتفرق والقناع وشكل الدُفعة وطول التسلسل المخطط للعمل الفعلي. قارن مع خط الأساس MPS السابق، ومرجع CUDA أو وحدة المعالجة المركزية (CPU)، حيثما أمكن، للتأكد من صحته. انتبه للمشغلين غير المدعومين، والتراجع الصامت، وطفرات الذاكرة، والانجراف المختلط الدقة.
في CUDA، قم بإضافة عمليات التحقق العكسية الحتمية. كرر أشواط المصنفة. قارن التدرجات مع التفاوتات المتفق عليها. احتفظ بمسار SDPA القديم أو مسار الاهتمام المخصص بجانب FlexAttention حتى يأخذ المسار الجديد مكانه. إذا كان السلوك الحتمي جزءًا من متطلبات الإطلاق، فإن البوابة ليست ذات سرعة متوسطة. البوابة قابلة للتكرار تحت نفس إعدادات البذرة والدقة والواجهة الخلفية.
بوابات النواة والذاكرة والمترجم
يجب أن يجلس برنامج CuTeDSL في مسار النموذج الأولي ما لم يكن الفريق يمتلك بالفعل صيانة مخصصة للنواة. الاختبار ليس السرعة فقط. إنها ملكية. من يقوم بتصحيح الكود؟ ما هي الأجهزة المطلوبة؟ كيف سيقارنه الفريق بسلوك PyTorch القياسي؟ ما مدى سرعة تعطيله عند تغيير وضع التشغيل أو الشكل أو الدقة؟
ينتمي nn.LinearCrossEntropyLoss إلى مسار الذاكرة والصحة. قارن ذاكرة الذروة ووقت الخطوة وسلوك اللوجيستيات وسلوك الدقة المختلط وإشارات التقارب والتوافق مع مكدس التدريب. يكون فوز الذاكرة ذا قيمة فقط إذا كان مسار الخسارة لا يزال يدرب النموذج المقصود ولا ينشئ عمل تكامل جديد.
بالنسبة إلى torch.compile والتصدير، استخدم البوابات بدلاً من التفاؤل. حساب فواصل الرسم البياني. سجل ترجمة النفقات العامة. اختبر الأشكال الديناميكية الحقيقية، وليس فقط عرضًا توضيحيًا نظيفًا ذو شكل ثابت. تحقق من التصدير عندما يترك النموذج لغة Python لوقت تشغيل آخر. يعد منشور التطبيع والاندماج في 10 يوليو سياقًا معماريًا مفيدًا لأن الاندماج يمكن أن يغير حركة مرور الذاكرة وبنية النواة. لا يزال لا يلغي الحاجة إلى إثبات خاص بعبء العمل. للحصول على عدسة أوسع لقابلية النقل، قارن ذلك مع اختبار قابلية نقل الحوسبة بالذكاء الاصطناعي، حيث يجب إثبات اختيار الواجهة الخلفية في ظل قيود عملية.
الاختبارات الموزعة والاحتياطية
يحتاج تداخل torchcomms وFSDP2 إلى اختبارات النظام الموزع، وليس اختبارات مربعات الاختيار. بالنسبة إلى torchcomms، قم بقياس السلوك الجماعي وزمن الوصول وعرض النطاق الترددي ومعالجة الفشل وتوافر الواجهة الخلفية والتوافق مع أدوات الإطلاق الحالية. تأكد من أن المراقبة لا تزال تشرح ما يحدث عندما تتباطأ المهمة.
بالنسبة لتداخل FSDP2، قم بقياس وقت الخطوة، وانتظار الاتصال، وذاكرة الذروة، وحفظ نقطة التفتيش وتحميلها، ومعالجة حالة المحسن، والقياس عبر أعداد العقد التي يتم التحكم فيها. لا توافق على التداخل من خطوة واحدة سريعة. المسار الأفضل هو الذي يقوم بالتدريب، ونقاط التفتيش، والتعافي، ويترك ما يكفي من الأدلة للمشغلين لتصحيح الفشل التالي.تحافظ فحوصات ROCm ووحدة المعالجة المركزية على سلامة المسارات الاحتياطية. قد لا يقوم الفريق بتدريب أكبر نموذج له على وحدة المعالجة المركزية، ولكن وظائف وحدة المعالجة المركزية غالبًا ما تحمي اختبارات CI والتطوير المحلي واختبارات الدخان. قد تجلس ROCm في أسطول مختلط. يجب ألا يوافق نجاح CUDA فقط على أسطول يعتمد أيضًا على أجهزة الكمبيوتر المحمولة Apple Silicon، أو عمال ROCm، أو وحدة المعالجة المركزية الاحتياطية.
أخطاء ومحاذير شائعة
الخطأ الأكثر شيوعًا هو تغيير عبء العمل أثناء تغيير إطار العمل، ثم إعطاء إطار العمل الفضل في النتيجة. حافظ على عبء العمل ثابتًا. خطأ آخر هو اختبار CUDA للمسار السعيد مع تجاهل أجهزة الكمبيوتر المحمولة MPS وعمال ROCm ووظائف التصدير ووحدة المعالجة المركزية CPU. والثالث هو التعامل مع الانجراف العددي كفكرة لاحقة بسبب تحسن الإنتاجية.
الفخاخ الأخرى أقل بريقًا. تحسب الفرق عملية الإحماء على أنها سرعة الحالة الثابتة. يبلغون عن متوسط الإنتاجية لكنهم يفتقدون ذاكرة الذروة. إنهم يختبرون أطوال تسلسلية أقصر من استخدامات الإنتاج. إنهم يكررون مطالبات مذكرة الإصدار كما لو كانت تلك المطالبات ضمانات. إنهم يتخطون التراجع لأن المعيار بدا نظيفًا.
يجب كتابة التحذيرات قبل بدء التشغيل. تكلفة التنفيذ يمكن أن تفوق مكاسب معيارية صغيرة. يمكن للأجهزة وبرنامج التشغيل والدقة وشكل عبء العمل تغيير الإجابة. قد تحتاج البيانات المعيارية إلى عناصر تحكم في الخصوصية إذا كانت المطالبات أو التصنيفات أو العينات حساسة. يمكن لسلوك ذاكرة التخزين المؤقت أن يجعل عمليات التشغيل المتكررة تبدو أفضل من عملية التشغيل لأول مرة. تحدد جودة التقييم ما إذا كان انحراف الدقة مرئيًا أم لا. يمكن لواجهات برمجة التطبيقات النموذجية ومسارات kernel المخصصة إضافة أعمال صيانة لا يظهرها رقم السرعة.
قم بتأجيل اعتماد PyTorch 2.13 عندما لا يتم اختبار الأنماط المتفرقة الحرجة، أو تفشل عمليات التحقق العكسي الحتمية، أو تكون مسارات التصدير غير مدعومة، أو يكون الاسترداد الموزع هشًا، أو يتم تجاوز ميزانيات الذاكرة، أو يعتمد التراجع على البطولات اليدوية. العزلة ليست الفشل. غالبا ما يكون الجواب الكبار.
قائمة مراجعة التنفيذ وخطة القياس
استخدم نافذة قياس الأداء لمدة أسبوعين إذا كان التغيير يمس التدريب على الإنتاج، أو تطوير النموذج، أو تبعيات الخدمة. يجب أن يغطي الأسبوع الأول مراجعة المصدر والتقاط خط الأساس وتجميد البيئة واختبارات العقدة الواحدة. يجب أن يغطي الأسبوع الثاني الاختبارات الموزعة، وبوابات التحويل البرمجي والتصدير، وبروفة التراجع، وقرار الكناري.
| خطوة | دليل على إنتاج | حالة النجاح |
|---|---|---|
| مراجعة المصدر | مدونة PyTorch، ملاحظات الإصدار، المستندات، واجهات برمجة التطبيقات المتأثرة | التغييرات ذات الصلة المعينة لأعباء العمل |
| التقاط خط الأساس | النتائج الحالية والبيانات الوصفية للبيئة | يوجد تشغيل تحكم متكرر |
| اختبارات الانتباه | تقارير FlexAttention وSDPA وMPS وCUDA | الدقة والذاكرة تبقى داخل البوابات |
| اختبارات المترجم | حريصة، وتجميع، وتصدير التقارير | لا يوجد رسم بياني محظور أو فشل في الترجمة أو التصدير |
| الاختبارات الموزعة | تقارير تداخل torchcomms وFSDP2 | تمر الخطوة والذاكرة ونقطة التفتيش وبوابات الاسترداد |
| الاختبارات الاحتياطية | يعمل ROCm ودخان وحدة المعالجة المركزية أو CI | تظل المسارات غير الأساسية قابلة للاستخدام |
| بروفة التراجع | الرجوع إلى إصدار سابق أو إثبات علامة الميزة | يتم توثيق التعافي وتوقيته |
يجب أن تسجل خطة القياس زمن الوصول p50 وp95، والإنتاجية، وذاكرة الذروة، ووقت التجميع، وفواصل الرسم البياني، والانحراف الرقمي، والتكرار الحتمي، وسلوك نقطة التفتيش، ومدة التراجع. قم بتخزين معرفات التشغيل وتفاصيل الأجهزة وإصدارات البرامج والأوامر ومعرفات شريحة مجموعة البيانات وعناوين URL المصدر وبوابات النجاح أو الفشل وملاحظات الاستنساخ.تعيين الحدود قبل إجراء الاختبارات. يجب ألا يشترك دفتر الأبحاث، والتدريب الليلي، وخدمة الاستدلال التي تواجه العملاء، ومهمة الضبط الدقيق الموزعة في عتبة واحدة. قرر ما الذي يبرر الاعتماد قبل وجود المخططات. وإلا فإن المعيار يصبح تفاوضا بعد وقوعه.
إذا كان الفريق بحاجة إلى مساعدة في تحويل ملاحظات الإصدار إلى اختبارات بنية أساسية قابلة للتكرار للذكاء الاصطناعي، فيمكن لـ Optijara المساعدة في تصميم المصفوفة، وأتمتة التقاط الأدلة، وتحويل ترقيات الإطار إلى خطط اعتماد مُقاسة. يجب أن يكسب PyTorch 2.13 عبء عمل التبني حسب عبء العمل، والواجهة الخلفية بعد الواجهة الخلفية.
النقاط الرئيسية
- 1تعامل مع مطالبات أداء PyTorch 2.13 كأهداف إعادة إنتاج محلية، وليست نتائج مضمونة.
- 2قياس أداء FlexAttention باستخدام الأنماط المتفرقة الدقيقة، وأطوال التسلسل، والأقنعة، وأوضاع الدقة، والواجهات الخلفية التي يستخدمها عبء العمل لديك.
- 3التقاط خط أساسي منفصل، وتجميع عملية الإحماء، وقياس الحالة الثابتة، والتحقق من الصحة، وبروفة التراجع.
- 4يجب أن يبدأ برنامج CuTeDSL في اختبارات النموذج الأولي المعزولة ما لم يكن الفريق يمتلك بالفعل صيانة مخصصة للنواة.
- 5يحتاج تداخل torchcomms وFSDP2 إلى أدلة النظام الموزع: وقت الخطوة، والذاكرة، ونقاط التفتيش، والاسترداد، والمراقبة.
- 6لا توافق على نتيجة CUDA فقط لأسطول يعتمد أيضًا على مسارات MPS أو ROCm أو CPU أو التصدير أو CI.
الخلاصة
يستحق PyTorch 2.13 الاختبار لأنه يلامس الانتباه والمترجم والنواة والذاكرة ومسارات التدريب الموزعة التي يمكنها تغيير أعباء العمل الحقيقية. يجب أن يستمر اعتماده من خلال عمليات التشغيل المحلية المماثلة والبوابات الصريحة وإثبات التراجع عبر الواجهات الخلفية التي يستخدمها الفريق.
الأسئلة الشائعة
هل يجب على الفرق الترقية إلى PyTorch 2.13 فورًا لبرنامج FlexAttention؟
لا. يجب على الفرق أولاً قياس أنماط الاهتمام الدقيقة، وأطوال التسلسل، وأنماط الدقة، والواجهات الخلفية المستهدفة مقابل تنفيذها الحالي.
كيف ينبغي اختبار Apple Silicon MPS لأحمال عمل PyTorch 2.13؟
استخدم نفس أشكال النماذج والأنماط المتفرقة والأقنعة وإعدادات الدقة وفحوصات الدقة المخطط لها للعمل الحقيقي، ثم قارن سلوك MPS بخط الأساس السابق ومرجع CUDA أو وحدة المعالجة المركزية حيثما كان ذلك متاحًا.
ما الذي يغيره برنامج CuTeDSL لمشغلي PyTorch؟
يجب التعامل مع CuTeDSL كنموذج أولي ومنطقة استعداد للنواة المخصصة. يجب على المشغلين عزل الاختبارات، والتحقق من قابلية الصيانة، وتجنب جعلها تبعية واسعة النطاق دون فحوصات الدعم.
ما الذي يجب قياسه عند تداخل اختبار torchcomms وFSDP2؟
قياس وقت الخطوة، وانتظار الاتصال، والذاكرة، وسلوك نقطة التفتيش، وسلوك القياس، واسترداد الفشل، والتوافق مع مجموعة الإطلاق والمراقبة الموزعة للفريق.
متى يجب على الفريق تأجيل ترقية PyTorch 2.13؟
قم بالتأجيل عندما تفشل أنماط الانتباه المتفرقة الحرجة، أو مسارات التصدير، أو عمليات التحقق العكسي الحتمية، أو الاسترداد الموزع، أو ميزانيات الذاكرة، أو إجراءات التراجع في بوابات القبول.
المصادر
- https://pytorch.org/blog/pytorch-2-13-release-blog/
- https://github.com/pytorch/pytorch/releases/tag/v2.13.0
- https://huggingface.co/blog/torch-attention-profile
- https://docs.pytorch.org/docs/2.13/nn.attention.flex_attention.html
- https://docs.pytorch.org/docs/2.13/notes/mps.html
- https://docs.pytorch.org/docs/2.13/distributed.html
- https://docs.pytorch.org/docs/2.13/user_guide/torch_compiler/torch.compiler.html
- https://pytorch.org/blog/towards-free-normalization-fusing-normalization-into-gemm-and-attention-kernels/
بقلم
Hamza Diazحمزة دياز هو مؤسس Optijara، حيث يبني وكلاء ذكاء اصطناعي عمليين، وأنظمة أتمتة، وسير عمل Copilot للشركات الخدمية. يكتب عن تشغيل الذكاء الاصطناعي، واستراتيجية الوكلاء، والتطبيق الواقعي للفرق التي تريد أنظمة مفيدة بدلًا من الضجيج.
