StableHLO là một tập hợp thao tác dành cho các thao tác cấp cao (HLO) trong mô hình học máy (ML). Về cơ bản, đây là một lớp khả năng di chuyển giữa các khung ML và trình biên dịch ML khác nhau: các khung ML tạo ra chương trình StableHLO tương thích với các trình biên dịch ML sử dụng chương trình StableHLO.
Mục tiêu của chúng tôi là đơn giản hoá và đẩy nhanh quá trình phát triển công nghệ học máy bằng cách tạo ra khả năng tương tác nhiều hơn giữa các khung học máy (chẳng hạn như TensorFlow, JAX và PyTorch) và trình biên dịch học máy (chẳng hạn như XLA và IREE).
StableHLO dựa trên phương ngữ MHLO và nâng cao phương ngữ này bằng chức năng bổ sung, bao gồm chuyển đổi tuần tự và tạo phiên bản. Chúng tôi sử dụng mã byte MLIR làm định dạng chuyển đổi tuần tự và đảm bảo khả năng tương thích ngược và tương thích tiến. Điều này đảm bảo khả năng tương thích giữa các khung và trình biên dịch, ngay cả khi StableHLO tiếp tục phát triển.
Kho lưu trữ này bao gồm thông số kỹ thuật StableHLO cùng với cách triển khai dựa trên MLIR trong C++ và Python. Bạn có thể sử dụng cách triển khai này để xác định các chương trình StableHLO cho trình biên dịch sử dụng, chẳng hạn như XLA và IREE.
Hướng dẫn tạo
Hãy xem StableHLO trên GitHub để biết hướng dẫn tạo bản dựng.
Cộng đồng
Việc xây dựng một lớp khả năng di chuyển tuyệt vời giữa các khung máy học và trình biên dịch máy học yêu cầu sự cộng tác trên toàn bộ ngành máy học. Vì vậy, chúng tôi rất vui khi được bạn trợ giúp trong dự án StableHLO.
Chúng tôi đang sử dụng các vấn đề/yêu cầu gộp trên GitHub để sắp xếp quá trình phát triển và openxla-discuss để thảo luận lâu hơn. Chúng tôi cũng có một kênh #stablehlo
trên máy chủ OpenXLA Discord.