AISubHub/أخبار الذكاء الاصطناعي
المطورون

تحليل معمق · قراءة نحو 6 دقائق

PyTorch MPS: فك الترميز وصحة النتائج وذاكرة برنامج التشغيل تحتاج إلى قياسات منفصلة

يشرح فريق PyTorch في Hugging Face تغييرات MPS للنسخة المرشحة 2.15، مع أدلة منفصلة لفك الترميز المجمّع وتخزين FP8 والحشو والعمل المستقبلي في 2.16.

نُشر هنا
تاريخ المصدر
تم التحقق من المصدر

يشرح مقال تقني نشره مساهمو PyTorch في Hugging Face يوم 20 أكتوبر كيف تغيّر نوى Metal المخصصة العمل الذي تنفذه الواجهة الخلفية MPS على Apple silicon. ويقدم مسار تثبيت للنسخة المرشحة من PyTorch 2.15، مع معاينة مستقلة لـ2.16. وتكمن فائدته في تحديد اختناقات وقياسات بعينها، لا في معامل تسريع واحد ينطبق على كل مهام Mac.

استمع إلى الأخبار

استمع إلى هذا المقال أو تابع تشغيل الأخبار.

PyTorch MPS: فك الترميز وصحة النتائج وذاكرة برنامج التشغيل تحتاج إلى قياسات منفصلة

جارٍ تجهيز القراءة…

صوت الجهاز

يتولى المتصفح أو الجهاز معالجة النطق. لا يرسل AISubHub النص إلى واجهة صوتية. تختلف الأصوات والتشغيل مع قفل الشاشة حسب الجهاز.

قد تتكرر عبارة قصيرة عند المتابعة.

لمحة سريعة

  • تتطلب البيئة الموثقة Apple silicon وmacOS 15 أو أحدث وPython 3.11 أو أحدث. يعرض المقال 2.15 بوصفها نسخة مرشحة للإصدار ويفصل عنها أعمال 2.16 المتاحة في البنى الليلية أو التي لا تزال قيد المراجعة.
  • يوفر مسار متخصص لفك الترميز في ضرب المصفوفات المجمّع إنتاجية تقارب 1.3 ضعف في التجارب المعروضة على M3 Ultra مع torch.compile. ويقيس رسم softmax منفصل زمن عملية واحدة بالميكروثانية، لا زمن استجابة كاملة.
  • في عملية واحدة لفك ترميز VAE من Wan2.2 مكوّنة من 28 بلاطة، تنخفض الذروة المعلنة لإجمالي ذاكرة برنامج التشغيل من 270.135 إلى 8.108 GiB، بينما تبقى ذروة الذاكرة التي يحجزها المخصص عند 8.070 GiB. وهذه مقاييس مختلفة للذاكرة.

1. ابدأ بالإصدار وبالجزء الذي يتغير من التنفيذ

يعرّف المؤلفون أنفسهم بأنهم فريق PyTorch في Hugging Face، ويعملون في المشروع الأصلي مع مسؤولي صيانة PyTorch ومساهميه. ويركز شرحهم على استبدال مسارات مختارة من MPSGraph بنوى Metal مخصصة. هذه هندسة للواجهة الخلفية: قد تستفيد النماذج منها من دون أن تكون إصدارات نماذج جديدة، ولا تثبت النواة الأسرع أن إجابات النموذج أفضل. وتتطلب الإعدادات المذكورة جهاز Mac بمعالج Apple silicon، وmacOS 15 أو أحدث، وPython 3.11 أو أحدث.

يدعو المقال صراحة إلى تجربة النسخة المرشحة 2.15 في بيئة منفصلة. وتتناول الأقسام اللاحقة تغييرات 2.16 التي قد تكون ضمن البنى الليلية أو لا تزال قيد المراجعة. ولم يتحقق AISubHub مستقلاً من حالة الإصدارات المستقرة اللاحقة. ولإجراء مقارنة قابلة للتكرار، ينبغي تسجيل البناء الدقيق والجهاز ونوع البيانات dtype وإعداد المترجم وحمل العمل قبل الانتقال بين هذه الأقسام. وإلا فقد يُفهم تحسين مستقبلي بسهولة على أنه ميزة في الإصدار الذي اختُبر.

2. تخصص فك الترميز يغيّر عملية صغيرة متكررة

خلال الملء المسبق، يعالج النموذج كتلة من المدخلات؛ وخلال فك الترميز، يعالج مدخلاً صغيراً مراراً لإنتاج الرمز التالي. يربط المقال F.linear بنوى ضرب المصفوفة في المتجه الموجودة مسبقاً، مع دمج إضافات الانحياز عندما تكون مؤهلة لذلك. ويذكر تسريعاً بمتوسط هندسي يبلغ 1.23 ضعف عبر 96 شكلاً من طبقات BF16. تستفيد الإسقاطات الصغيرة أكثر، بينما تبقى الطبقات الكبيرة القريبة أصلاً من حد عرض النطاق قرب معامل واحد. هذه مجموعة قياسات على مستوى الطبقات، وليست متوسطاً لنموذج كامل.

في تنفيذ مزيج الخبراء، يقرأ الضرب المصفوفي المجمّع الأصلي إزاحات المجموعات على GPU بدلاً من نسخها إلى CPU والدوران على المجموعات. يستخدم الرسم المعروض لمسار فك الترميز المتخصص جهاز M3 Ultra مع torch.compile: يرتفع Qwen3.6-35B-A3B من 38.7 إلى 51.7 رمزاً في الثانية عند سياق 512، ومن 36.8 إلى 48.7 عند سياق 2048. ويعرض المقال على نحو منفصل فروقاً أكبر بين إصدارات كاملة مقارنة بـ2.14. تلك المقارنات، ومقارنة النواة البالغة نحو 1.3 ضعف، وقياسات 2.16 اللاحقة لها خطوط أساس مختلفة؛ فلا يجوز جمعها في نتيجة واحدة أو ضرب معاملاتها.

3. تخزين FP8 وزمن softmax يجيبان عن سؤالين مختلفين

إضافة FP8 هي دعم موترات torch.float8_e4m3fn، ببايت واحد لكل قيمة بدلاً من بايتين في FP16 أو BF16. ويدعم F.scaled_mm التحجيم على مستوى الموتر وعلى مستوى الصف. قد يقلل ذلك مساحة تخزين الموترات المؤهلة، لكنه لا يخفض ذاكرة التطبيق كله إلى النصف: تظل الموترات الأخرى ومخازن العمل المؤقتة وتخصيصات بيئة التشغيل موجودة. كما يؤثر التكميم ونوع بيانات المخرجات في المثال على السلوك العددي. ويناقش المقال ضرب المصفوفات FP8 الأصلي بوصفه تمهيداً لعمل مستقبلي على مظللات Metal، لذا لا ينبغي مساواة دعم التخزين الحالي بادعاء عام لتسريع العتاد.

رسم softmax تجربة أخرى مستقلة. ففي صف واحد من logits بدقة FP32 وحجم مفردات 128,256، يعرض 57.4 ميكروثانية مع MPSGraph و7.1 مع نواة Metal؛ ويقرب النص الرقمين إلى 57 و7. وقد تختصر softmax الأسرع بنحو ثمانية أضعاف خطوة واحدة في أخذ عينات الرموز، لكن الأعمال الأخرى تظل تحدد زمن التوليد الكلي. تحليل AISubHub: قِس المسار الكامل إلى جانب العملية المكلفة، واحتفظ بالوحدات كي لا تتحول الميكروثواني لكل استدعاء إلى ادعاء غير مسند عن ثوانٍ لكل استجابة.

4. الحشو يكشف ذاكرة خارج مخصص الموترات

يتعلق مثال Wan2.2 تحديداً بـWan-AI/Wan2.2-TI2V-5B-Diffusers، مع 8,764 استدعاء للحشو الثابت أثناء فك ترميز VAE من 28 بلاطة. ويغير نقل الحشو إلى Metal الذروة المعلنة لإجمالي ذاكرة برنامج التشغيل من 270.135 إلى 8.108 GiB. مع ذلك، تبلغ ذروة الذاكرة المحجوزة بواسطة المخصص 8.070 GiB في الإعدادين، ولا تتغير ذروة تخصيص الموترات الحالية إلا من 4.422 إلى 4.095 GiB. لذا فإن قياس مخصص الموترات وحده يفوّت معظم هذه المشكلة المحددة. ولا تعني النتيجة أن كل نموذج فيديو أصبح يحتاج إلى ثمانية GiB فقط.

صحة النتائج فائدة منفصلة. ففي دورة ترميز ثم فك ترميز لـVAE من Qwen-Image-2.1، يذكر المؤلفون أن التطابق مع مرجع CPU يرتفع من 10.06 إلى 29.95 dB وفق PSNR بعد إصلاح الحشو. ويتعلق ذلك بسير عمل إعادة البناء الذي اختُبر، وليس بدرجة عامة لجودة توليد الصور. وتشمل التغييرات الأخرى المذكورة الجبر الخطي بالقيم المركبة ومسارات الحساب العكسي وبث أبعاد الانتباه. لذا ينبغي أن يشمل فحص الترقية المفيد المخرجات العددية وذروة ذاكرة برنامج التشغيل إلى جانب الإنتاجية، مع النموذج نفسه وأشكال العمليات نفسها.

5. أبقِ العمل المستقبلي والتحقق المحلي واضحين

تتضمن معاينة 2.16 تغييرات في إرسال مخازن الأوامر، وتشغيل الانتباه بالكامل على Metal، ومزيداً من عمليات النقل من MPSGraph. ويحذر المؤلفون من أن بعض العمل لا يزال قيد المراجعة. كما تستخدم أمثلة الانتباه المستقبلية M5 Pro وأبعاد رؤوس محددة، بخلاف رسم فك الترميز على M3 Ultra. فلا هذه الأرقام ولا تقليص حجم مكتبة مرفقة ينبغي عرضها كفائدة مقاسة لتثبيت النسخة المرشحة 2.15 على أي Mac.

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

لماذا يهم

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

القيود والتوافر

تُنسب جميع القياسات إلى مساهمي PyTorch في Hugging Face وإعداداتهم المذكورة. يصف المقال نسخة 2.15 مرشحة ويميّز عنها عمل 2.16؛ ولم يُتحقق مستقلاً من التوافر المستقر اللاحق. لم يثبت AISubHub البرنامج أو ينفذه، ولم يكرر الاختبارات المعيارية أو يفحص التطبيقات المرتبطة. ولا يترتب على ذلك ضمان عام للسرعة أو الملاءمة للذاكرة أو الجودة العددية.

المصادر والأدلة

Hugging Face PyTorch team: MPS in PyTorch 2.15

تاريخ المصدر: · تم التحقق من المصدر:

مقالات تحريرية بمساعدة الذكاء الاصطناعي تُراجع مقابل المصادر الأولية المذكورة. تُنسب ادعاءات الشركات إليها، والإدراج لا يعني التوصية.