في وقت كتابة هذه المقالة، أصبح معيار StableHLO جاهزًا لاستبدال MHLO/HLO كواجهة compiler. يمكن إنشاء هذا النموذج باستخدام TensorFlow وJAX وPyTorch، ويمكن استخدامه من خلال XLA والعديد من الإضافات التابعة لجهات خارجية من PJRT، ويحتوي على جميع الميزات المتاحة للجميع التي يوفّرها MHLO/HLO بالإضافة إلى وظائف إضافية.
يصف هذا المستند الخطوات التالية لمشروع StableHLO، مع تصنيف العمل الجاري الذي يظهر في أداة تتبُّع المشاكل وترتيب هذا العمل في المهام المخطّط لها.
الإنجازات الحالية
تتّبع الإنجازات الحالية اتجاهَين رئيسيَّين:
- الاستفادة إلى أقصى حد من StableHLO لمجتمع OpenXLA بأكمله
- توحيد تجربة المطوّرين لجميع أعضاء OpenXLA
- إيقاف MHLO نهائيًا: في الربع الأخير من عام 2024، بدأنا في استكشاف إيقاف MHLO نهائيًا داخليًا، ونقل عمليات الفحص المفيدة، بما في ذلك عمليات التحويل إلى عنوان URL الثابت وأنماط المجلدات، إلى StableHLO. بعد أن يتبيّن لنا أنّ عملية نقل البيانات سهلة داخليًا، نخطّط لمشاركة طلب مراجعة مع الجداول الزمنية لعملية نقل البيانات الخارجية إلى StableHLO. من المرجّح أن يحدث ذلك في الربع الأول من عام 2025، ونخطّط لمنح الوقت والدعم الكافيَين للفرق من أجل نقل بياناتها إلى StableHLO في النصف الأول من عام 2025.
- نقل التحسينات المستقلة عن الأجهزة إلى StableHLO: استنادًا إلى الاتجاه أعلاه، نريد أن يكون StableHLO هو أفضل مكان لتوحيد عمليات تبسيط المخططات المستقلة عن الأجهزة، حتى تستفيد جميع الإضافات في PJRT، بما في ذلك تلك التي تحول من StableHLO إلى رمز ترجمة لبرنامج تحويل لا يستخدم XLA، من أكبر قدر ممكن من المزايا. يشمل جزء من هذا الهدف دمج الأنماط المستخدَمة في Google AI Edge، ومشروع JAX-Enzyme، وغيرها من المشاريع في مستودع StableHLO. لقد بدأ بعض هذا الدمج بالفعل، ولكن سيتم تسريع وتيرة سير عمل التطوير وإكماله في الربع الأول من عام 2025.
- تجميع مكونات OpenXLA: لقد بدأنا في إنشاء مكونات مخصّصة في openxla/xla لـ HLO تشبه إعداد مستودع StableHLO (ref)، بالإضافة إلى بدء نقل جميع الخلفيات في OpenXLA إلى مكونات إضافية في PJRT. نستثمر أيضًا في حلّ المشاكل البارزة في تجربة المستخدم التي نكتشفها في مكوّنات PJRT الإضافية هذه، بما في ذلك أمور مثل توفير معلومات دقيقة عن إصدار StableHLO في مكوّنات أضافية StableHLO، حتى يمكن استخدام الميزات الجديدة على الفور من خلال المكوّنات الإضافية الجديدة (ref).
- إتاحة مكونات معقدة تعمل من البداية إلى النهاية: في الربع الثالث من عام 2024، أضفنا مكونات معقدة إلى HLO، ما سمح بإتاحة حزمة المُجمِّع بالكامل للعمليات المجردة. في الربع الرابع من عام 2024، علّمنا أداة تضمين XLA المكونات وإضافة عمليات في HLO/StableHLO لتضمين المكونات غير المعروفة مع عمليات تقسيمها. نحن ننظر الآن في إضافة واجهتَي برمجة تطبيقات JAX مخصّصتين لإنشاء تصاميم مُركّبة من إطار العمل (تتوفّر واجهات برمجة تطبيقات PyTorch حاليًا)، بالإضافة إلى إضافة مستندات Colab حول كيفية استخدام التصاميم المُركّبة بشكلٍ صحيح، والتي سيتم إكمالها في الربع الرابع من عام 2024.
الإنجازات السابقة
في النصف الأول من عام 2024، أطلقنا StableHLO v1.0 الذي نفّذ تحسينات مهمة، بما في ذلك الانتهاء من مواصفات مجموعة العمليات العامة، والمترجم المرجعي، وتوسيع نطاق التوافق مع الإصدارات السابقة واللاحقة لدعم عمليات النشر على الجهاز من خلال اختبار وحدة التوافق، وإمكانية التوسيع من خلال العمليات المركبة، ودعم الديناميكية المحدّدة، وطرح مجموعة بيانات اختبار كاملة تتضمّن نتائج تقييم جيدة، وغيرها.