StableHLO — это набор операций для операций высокого уровня (HLO) в моделях машинного обучения (ML). По сути, это уровень переносимости между различными платформами машинного обучения и компиляторами машинного обучения: платформы машинного обучения, создающие программы StableHLO, совместимы с компиляторами машинного обучения, использующими программы StableHLO.
Наша цель — упростить и ускорить разработку машинного обучения за счет большей совместимости между различными платформами машинного обучения (такими как TensorFlow, JAX и PyTorch) и компиляторами машинного обучения (такими как XLA и IREE).
Возможности и начало работы
Текущая версия StableHLO включает в себя множество примечательных функций и вех:
- Полностью специфицировано: спецификация StableHLO определена для всех примерно 100 операций с верификаторами и выводом типов, а также возможностями динамизма и квантования .
- Совместимость гарантирует 5 лет обратной совместимости и 2 года вперед, что позволяет осуществлять долгосрочное развертывание серверов/периферийных устройств и ежегодные циклы обновлений.
- Эталонный интерпретатор с поддержкой статических и динамических операций, включая API C++ и Python.
- Расширяемость посредством составных операций и пользовательских вызовов для быстрого экспериментирования или моделирования операций, специфичных для конкретного поставщика.
- API-интерфейсы C++/Python для основных функций и ежедневные файлы dev-wheel для упрощения адаптации.
- Учебные пособия Colab для демонстрации API-интерфейсов Python для извлечения StableHLO из различных платформ, а также других служебных функций.
- Набор тестовых данных размером 3 тыс. тестовых файлов, включая динамические и квантованные программы, а также золотые результаты для тестирования интеграции с поставщиками, тестов прямой/обратной совместимости и покрытия кода >90%.
- Преобразования программ для аппаратно-независимого упрощения программ , уточнения динамически формируемых программ с использованием конкретных входных аргументов и преобразований в вышестоящие диалекты MLIR, такие как linalg или tosa.
- Сообщество поддерживает множество вкладов в экосистему для преобразований, а также RFC для изменений opset: новые типы FP8, коллективное вещание, пакетные операции сбора/разброса, гибридное квантование, API-интерфейсы интерпретатора, разложение CHLO, преобразования упрощения StableHLO и многое другое!
Разработчики моделей, желающие использовать StableHLO или XLA для компиляции вашего проекта ML, обратитесь к соответствующей документации для вашей платформы ML:
Разработчики компиляторов, желающие интегрировать StableHLO, ознакомьтесь с нашей документацией по началу работы на этом сайте, включая учебные пособия и подробную информацию для разработчиков. Посетите раздел сообщества на этой странице, чтобы узнать о любой поддержке, вопросах или проблемах, с которыми вы столкнулись!
Инструкции по сборке
Инструкции по сборке см. в StableHLO на GitHub .
Сообщество
Создание потрясающего уровня переносимости между платформами машинного обучения и компиляторами машинного обучения требует сотрудничества всей отрасли машинного обучения, поэтому мы будем рады вашей помощи в проекте StableHLO.
Мы используем задачи / запросы на включение GitHub для организации разработки и openxla-discuss для более длительных обсуждений. У нас также есть канал #stablehlo
на сервере OpenXLA Discord .