StableHLO는 머신러닝 (ML) 모델의 고급 작업 (HLO)을 위한 작업 집합입니다. 기본적으로 StableHLO는 다양한 ML 프레임워크와 ML 컴파일러 간의 이식성 레이어입니다. StableHLO 프로그램을 생성하는 ML 프레임워크는 StableHLO 프로그램을 사용하는 ML 컴파일러와 호환됩니다.
Google의 목표는 다양한 ML 프레임워크 (예: TensorFlow, JAX, PyTorch)와 ML 컴파일러 (예: XLA, IREE) 간의 상호 운용성을 개선하여 ML 개발을 간소화하고 가속화하는 것입니다.
기능 및 시작하기
StableHLO의 현재 출시에는 다음과 같은 여러 주목할 만한 기능과 주요 기록이 포함되어 있습니다.
- 완전히 지정됨: StableHLO 사양은 검증자 및 유형 추론뿐만 아니라 동적 및 정규화 기능이 있는 모든 약 100개의 연산에 대해 정의됩니다.
- 호환성은 5년의 하위 호환성과 2년의 상위 호환성을 보장하므로 장기 서버 / 에지 배포와 연간 업데이트 주기를 지원할 수 있습니다.
- C++ 및 Python API를 비롯한 정적 및 동적 연산 지원이 있는 참조 인터프리터
- 복합 연산 및 맞춤 호출을 통한 확장성으로 빠른 실험을 지원하거나 공급업체별 작업을 모델링할 수 있습니다.
- 핵심 기능을 위한 C++/Python API와 더 쉬운 온보딩을 위한 야간 dev-wheel 파일
- 다양한 프레임워크에서 StableHLO를 추출하는 Python API와 기타 유틸리티 함수를 보여주는 Colab 튜토리얼
- 공급업체 통합 테스트, 전방 / 후방 호환성 테스트, 90% 이상의 코드 적용 범위를 위한 동적 및 정량화된 프로그램과 골드 결과를 포함하는 3,000개 테스트 파일의 Testdata 모음
- 하드웨어 독립 프로그램 단순화, 구체적인 입력 인수를 사용하여 동적으로 형식이 지정된 프로그램 미세 조정, linalg 또는 tosa와 같은 업스트림 MLIR 방언으로의 변환을 위한 프로그램 변환
- 변환을 위한 많은 생태계 참여와 opset 변경을 위한 RFC를 통해 커뮤니티 주도: 새로운 FP8 유형, collective_broadcast, 일괄 수집 / 분산 연산, 하이브리드 정규화, 인터프리터 API, CHLO 분해, StableHLO 단순화 변환 등
StableHLO 또는 XLA를 사용하여 ML 프로젝트를 컴파일하려는 모델 개발자는 ML 프레임워크의 해당 문서를 참고하세요.
StableHLO를 통합하려는 컴파일러 개발자는 튜토리얼과 개발자 세부정보를 포함하여 이 사이트의 시작 문서를 확인하세요. 온보딩 지원, 질문 또는 발생한 문제와 관련하여 이 페이지의 커뮤니티 섹션을 참고하세요.
빌드 지침
빌드 안내는 GitHub의 StableHLO를 참고하세요.
커뮤니티
ML 프레임워크와 ML 컴파일러 간에 뛰어난 이식성 레이어를 빌드하려면 전체 ML 업계의 협력이 필요하므로 StableHLO 프로젝트에 참여해 주셔서 감사합니다.
GitHub 문제 / pull 요청을 사용하여 개발을 정리하고 openxla-discuss를 사용하여 더 긴 토론을 진행합니다. OpenXLA Discord 서버에도 #stablehlo
채널이 있습니다.