StableHLO adalah kumpulan operasi untuk operasi tingkat tinggi (HLO) dalam model machine learning (ML). Pada dasarnya, ini adalah lapisan portabilitas antara berbagai framework ML dan compiler ML: framework ML yang menghasilkan program StableHLO kompatibel dengan compiler ML yang menggunakan program StableHLO.
Sasaran kami adalah menyederhanakan dan mempercepat pengembangan ML dengan menciptakan lebih banyak interoperabilitas antara berbagai framework ML (seperti TensorFlow, JAX, dan PyTorch) serta compiler ML (seperti XLA dan IREE).
Fitur & Memulai
Rilis StableHLO saat ini mencakup banyak fitur dan pencapaian penting:
- Ditetapkan sepenuhnya: Spesifikasi StableHLO ditentukan untuk semua ~100 operasi dengan verifier dan inferensi jenis, serta kemampuan dinamisme dan kuantisasi.
- Kompatibilitas menjamin kompatibilitas mundur 5 tahun dan kompatibilitas maju 2 tahun, sehingga memungkinkan deployment server / edge jangka panjang dan siklus update tahunan.
- Penafsir referensi dengan dukungan operasi statis dan dinamis, termasuk C++ dan Python API.
- Ekstensibilitas melalui operasi gabungan dan panggilan kustom untuk memungkinkan eksperimen cepat atau untuk membuat model operasi khusus vendor.
- API C++/Python untuk fitur inti dan file nightly dev-wheel untuk orientasi yang lebih mudah.
- Tutorial Colab untuk menunjukkan Python API untuk mengekstrak StableHLO dari berbagai framework, serta fungsi utilitas lainnya.
- Rangkaian data pengujian dari 3 ribu file pengujian termasuk program dinamis dan kuantisasi serta hasil emas untuk pengujian integrasi vendor, pengujian kompatibilitas maju / mundur, dan cakupan kode >90%.
- Transformasi program untuk penyederhanaan program yang tidak bergantung pada hardware, meningkatkan kualitas program yang dibentuk secara dinamis menggunakan argumen input konkret, dan konversi ke dialek MLIR upstream seperti linalg atau tosa.
- Didorong oleh komunitas dengan banyak kontribusi ekosistem untuk transformasi, serta RFC untuk perubahan opset: Jenis FP8 baru, collective_broadcast, operasi pengumpulan / penyebaran batch, kuantisasi campuran, API penafsir, dekomposisi CHLO, transformasi penyederhanaan StableHLO, dan lainnya.
Developer model yang ingin menggunakan StableHLO atau XLA untuk mengompilasi project ML, lihat dokumentasi yang sesuai untuk framework ML Anda:
Developer compiler yang ingin mengintegrasikan StableHLO, lihat dokumentasi memulai di situs ini, termasuk tutorial dan detail developer. Lihat bagian komunitas di halaman ini terkait dukungan orientasi, pertanyaan, atau masalah yang dialami.
Petunjuk build
Lihat StableHLO di GitHub untuk mengetahui petunjuk build.
Komunitas
Membuat lapisan portabilitas yang luar biasa antara framework ML dan compiler ML memerlukan kolaborasi di seluruh industri ML, jadi kami senang mendapatkan bantuan Anda dalam project StableHLO.
Kami menggunakan masalah / permintaan pull GitHub untuk mengatur pengembangan dan
openxla-discuss
untuk melakukan diskusi yang lebih panjang. Kami juga memiliki saluran #stablehlo
di server Discord OpenXLA.