StableHLO, makine öğrenimi (ML) modellerindeki üst düzey işlemler (HLO) için bir işlem kümesidir. Temel olarak, farklı ML çerçeveleri ile ML derleyicileri arasında bir taşınabilirlik katmanı işlevi görür: StableHLO programları üreten ML çerçeveleri, StableHLO programlarını kullanan ML derleyicileriyle uyumludur.
Amacımız, çeşitli ML çerçeveleri (ör. TensorFlow, JAX ve PyTorch) ile ML derleyicileri (ör. XLA ve IREE) arasında daha fazla birlikte çalışabilirlik oluşturarak ML geliştirme sürecini basitleştirmek ve hızlandırmaktır.
Özellikler ve Başlangıç
StableHLO'nun mevcut sürümü birçok önemli özellik ve aşama içerir:
- Tam olarak belirtilmiş: StableHLO Spesifikasyonu, doğrulayıcılar ve tür çıkarımının yanı sıra dinamizm ve örnekleme özellikleriyle yaklaşık 100 işlem için tanımlanmıştır.
- Uyumluluk, 5 yıl geriye dönük ve 2 yıl ileriye dönük uyumluluk garantisi sunar. Bu sayede uzun süreli sunucu / uç dağıtımı ve yıllık güncelleme döngüleri sağlanır.
- C++ ve Python API'leri dahil olmak üzere statik ve dinamik işlem desteğine sahip Referans yorumlayıcı.
- Hızlı deneme yapmayı veya tedarikçiye özgü işlemleri modellemeyi sağlamak için kompozit işlemler ve özel çağrılar aracılığıyla genişletilebilirlik.
- Temel özellikler için C++/Python API'leri ve daha kolay ilk katılım için gecelik dev-wheel dosyaları.
- Çeşitli çerçevelerden StableHLO'yu çıkarmak için Python API'lerini ve diğer yardımcı işlevleri gösteren Colab eğitimleri.
- Tedarikçi entegrasyon testi, ileri / geri uyumluluk testleri ve% 90'ın üzerinde kod kapsamı için dinamik ve kesirli programlar ve altın sonuçlar içeren 3.000 test dosyasından oluşan test verileri paketi.
- Donanımdan bağımsız program basitleştirme, somut giriş bağımsız değişkenleri kullanarak dinamik olarak şekillendirilmiş programları hassaslaştırma ve linalg veya tosa gibi yayın öncesi MLIR lehçelerine dönüşümler için program dönüşümleri.
- Dönüşümler için birçok ekosistem katkısı ve opset değişiklikleri için RFC'ler ile topluluk tarafından yönlendirilen: Yeni FP8 türleri, collective_broadcast, toplu toplama / dağıtma işlemleri, karma kesirli sayılaştırma, yorumlayıcı API'leri, CHLO ayrışımları, StableHLO basitleştirme dönüşümleri ve daha fazlası.
ML projenizi derlemek için StableHLO veya XLA kullanmak isteyen model geliştiricileri, ML çerçevenizle ilgili ilgili dokümanlara bakın:
StableHLO'yu entegre etmek isteyen derleyici geliştiricileri, eğitimler ve geliştirici ayrıntıları da dahil olmak üzere bu sitedeki başlangıç dokümanlarımıza göz atabilir. İlk katılım desteği, sorular veya karşılaşılan sorunlar için bu sayfanın topluluk bölümüne göz atın.
Derleme talimatları
Derleme talimatları için GitHub'daki StableHLO sayfasına bakın.
Topluluk
ML çerçeveleri ile ML derleyicileri arasında mükemmel bir taşınabilirlik katmanı oluşturmak, tüm ML endüstrisinin işbirliğini gerektirir. Bu nedenle, StableHLO projesinde size yardımcı olmaktan memnuniyet duyuyoruz.
Geliştirmeyi düzenlemek için GitHub konularını / pull isteklerini, daha uzun tartışmalar yapmak için ise openxla-discuss'i kullanıyoruz. Ayrıca OpenXLA Discord sunucusunda bir #stablehlo
kanalımız da vardır.