مِخبارMIKHBAR
الذكاء الاصطناعي

Hugging Face تطلق TorchTPU لتشغيل نماذج الذكاء الاصطناعي على TPU

تتيح Hugging Face الآن للمستخدمين تشغيل نماذج الذكاء الاصطناعي على وحدات معالجة TPU من Google بشكل أصلي عبر TorchTPU، مما يزيل الحاجة إلى أدوات وسيطة.

Hugging Face تطلق TorchTPU لتشغيل نماذج الذكاء الاصطناعي على TPU

تسهيل الوصول إلى TPU في PyTorch

لطالما واجه مطورو PyTorch صعوبات في تشغيل نماذجهم على وحدات معالجة TPU، حيث كان عليهم إما نقل أكوادهم إلى torch_xla أو تعلم إطار عمل JAX. ومع إطلاق TorchTPU، أصبحت TPU مجرد جهاز آخر يمكن التعامل معه بسهولة داخل بيئة PyTorch. ويمكن الرجوع إلى Hugging Face Blog للاطلاع على التفاصيل الأصلية للمصدر.

وحدات معالجة TPU هي معالجات ذكاء اصطناعي من تصميم Google، مخصصة لتنفيذ العمليات الحسابية المصفوفية التي تستهلك معظم وقت الشبكات العصبية. وقد صممت Google هذه الرقائق على مدى العقد الماضي لتدريب وتقديم نماذجها الخاصة، بما في ذلك Gemini.

Hugging Face تطلق TorchTPU لتشغيل نماذج الذكاء الاصطناعي على TPU
صورة مرتبطة بالخبر من Hugging Face Blog · المصدر: Hugging Face Blog

إزالة الحاجة إلى Optimum TPU

كانت المشكلة الرئيسية دائماً في البرمجيات، حيث نمت بنية TPU حول TensorFlow وJAX، مما جعل الأمر أكثر صعوبة على مستخدمي PyTorch. كانت الطريقة السابقة تعتمد على PyTorch/XLA، والتي كانت تعاني من مشاكل مثل الكسل في المعالجة وإعادة تجميع الرسوم البيانية.

لجعل الأمور أسهل، طورت Hugging Face أداة Optimum TPU لدعم الاستدلال والتدريب على TPU. ومع دعم TorchTPU الأصلي، لم تعد أداة Optimum TPU مطلوبة لتشغيل نماذج Hugging Face باستخدام Transformers وDiffusers.

Hugging Face تطلق TorchTPU لتشغيل نماذج الذكاء الاصطناعي على TPU
صورة مرتبطة بالخبر من Hugging Face Blog · المصدر: Hugging Face Blog

تحميل النماذج على TPU

تم بناء Transformers v5 حول فكرة أن تكون مصدر الحقيقة لتعريفات النماذج، مما يتيح تشغيلها في أي مكان. الآن يشمل "أي مكان" وحدات TPU. لتحميل نموذج على TPU، يكفي تمرير device_map="tpu".

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

دعم Diffusers على TPU

أصبح TPU جهازاً من الدرجة الأولى في Diffusers. للنماذج الأولية أو تصحيح الأخطاء، يكفي وضع eager مع pipe.to("tpu"). للنشر، يضيف وضع compiled استدعاء compile واحد. تبقى خطوط الأنابيب والأكواد كما هي، دون الحاجة إلى فرع TPU منفصل.

عندما يكون النموذج كبيراً جداً ليلائم رقاقة واحدة، يمكن تمرير TensorParallelConfig إلى from_pretrained، مما يقسم التحويل عبر الرقائق أثناء التحميل، فلا يحتاج النموذج الكامل إلى أن يتسع في مكان واحد.

Hugging Face تطلق TorchTPU لتشغيل نماذج الذكاء الاصطناعي على TPU
صورة مرتبطة بالخبر من Hugging Face Blog · المصدر: Hugging Face Blog

تحسين الأداء عبر Kernels

توفر مكتبة Kernels نواة TPU جاهزة للاستخدام. يمكن تحميل نواة واحدة باستخدام مكتبة Kernels ومنح النموذج دفعة في السرعة. تُكتب نواة TPU بلغة Pallas، مما يمنح تحكماً منخفض المستوى في العتاد.

كلما زاد حجم الدفعة، زاد الفوز. عند حجم دفعة 64، يكون فك الترميز أسرع بـ 21.5 مرة على Qwen3-30B-A3B وأسرع بـ 12.8 مرة على Gemma 4 26B-A4B.

Hugging Face تطلق TorchTPU لتشغيل نماذج الذكاء الاصطناعي على TPU
صورة مرتبطة بالخبر من Hugging Face Blog · المصدر: Hugging Face Blog

اختبارات CI وتحسين مستمر

تعمل Hugging Face باستمرار على تحسين دعم TPU في transformers من خلال تشغيل مجموعة اختبارات المكتبة. يتم العمل على إضافة CI ليلية على TPU وجعل النتائج متاحة في لوحة معلومات transformers.

من الاختبارات التي تعمل على TPU، تمر 96.5%. كل فشل يتم اكتشافه يصبح سكريبت إعادة إنتاج صغيراً وقضية في مستودع TorchTPU. حتى الآن، تم الإبلاغ عن 34 قضية، وتم إصلاح 19 منها بالفعل.

المصادر

تابع التسلسل الزمني

تغطية الكيانات المرتبطة