StableHLO مجموعه ای از عملیات برای عملیات سطح بالا (HLO) در مدل های یادگیری ماشین (ML) است. اساساً، این یک لایه قابل حمل بین چارچوبهای مختلف ML و کامپایلرهای ML است: چارچوبهای ML که برنامههای StableHLO را تولید میکنند با کامپایلرهای ML که برنامههای StableHLO را مصرف میکنند سازگار هستند.
هدف ما ساده سازی و تسریع توسعه ML با ایجاد قابلیت همکاری بیشتر بین چارچوب های مختلف ML (مانند TensorFlow، JAX و PyTorch) و کامپایلرهای ML (مانند XLA و IREE) است.
ویژگی ها و شروع به کار
نسخه فعلی StableHLO شامل بسیاری از ویژگی ها و نقاط عطف قابل توجه است:
- کاملا مشخص شده: مشخصات StableHLO برای تمام 100 عملیات با تایید کننده ها و استنتاج نوع، و همچنین قابلیت پویایی و کمی سازی تعریف شده است.
- سازگاری 5 سال به عقب و 2 سال به جلو را تضمین می کند ، که امکان استقرار طولانی مدت سرور / لبه و چرخه های به روز رسانی سالانه را فراهم می کند.
- مفسر مرجع با پشتیبانی عملیات استاتیک و پویا، از جمله C++ و APIهای پایتون.
- توسعه پذیری از طریق عملیات ترکیبی و فراخوانی های سفارشی برای فعال کردن آزمایش سریع یا برای مدل سازی عملیات خاص فروشنده.
- C++/Python API برای ویژگیهای اصلی و فایلهای شبانه dev-wheel برای نصب آسانتر.
- آموزش های Colab برای نشان دادن API های پایتون برای استخراج StableHLO از چارچوب های مختلف و همچنین سایر توابع ابزار.
- مجموعه Testdata از فایلهای آزمایشی 3k شامل برنامههای پویا و کوانتیزه و نتایج طلایی برای آزمایش یکپارچهسازی فروشنده، تستهای سازگاری رو به جلو و عقب و پوشش کد بیش از 90 درصد.
- تبدیل برنامهها برای سادهسازی برنامههای مستقل از سختافزار ، اصلاح برنامههای با شکل پویا با استفاده از آرگومانهای ورودی مشخص و تبدیل به گویشهای بالادستی MLIR مانند linalg یا tosa.
- جامعه محور با کمکهای اکوسیستم زیادی برای تبدیلها، و همچنین RFCها برای تغییرات opset: انواع جدید FP8، پخش_تجمعی، عملیات جمعآوری / پراکنده دستهای، کمیسازی ترکیبی، APIهای مفسر، تجزیههای CHLO، تبدیلهای سادهسازی StableHLO و موارد دیگر!
توسعه دهندگان مدلی که به دنبال استفاده از StableHLO یا XLA برای کامپایل پروژه ML خود هستند، به مستندات مربوطه برای چارچوب ML خود مراجعه کنید:
توسعه دهندگان کامپایلر که به دنبال ادغام StableHLO هستند، مستندات شروع ما را در این سایت، از جمله آموزش ها و جزئیات توسعه دهنده، بررسی کنید. بخش انجمن این صفحه را در رابطه با هرگونه پشتیبانی، سؤال یا مشکلی که با آن مواجه میشوید ببینید!
دستورالعمل های ساخت
برای دستورالعمل های ساخت به StableHLO در GitHub مراجعه کنید.
جامعه
ایجاد یک لایه قابل حمل شگفتانگیز بین چارچوبهای ML و کامپایلرهای ML نیازمند همکاری در کل صنعت ML است، بنابراین ما خوشحالیم که در پروژه StableHLO از کمک شما برخورداریم.
ما از مسائل / درخواست های GitHub برای سازماندهی توسعه و openxla-discuss برای بحث های طولانی تر استفاده می کنیم. ما همچنین یک کانال #stablehlo
در سرور OpenXLA Discord داریم.