Исследователи проанализировали природу программных дефектов во фронтендах компиляторов для глубокого обучения, используя возможности больших языковых моделей для классификации и анализа багов. Работа выявляет закономерности возникновения ошибок в таких критических компонентах, как графовые оптимизаторы и конвертеры промежуточных представлений, предлагая новые подходы к повышению надежности инфраструктуры машинного обучения через автоматизированную диагностику и типизацию проблем.
Компиляторы глубокого обучения играют ключевую роль в трансляции высокоуровневых описаний нейронных сетей в эффективный машинный код для различных аппаратных ускорителей. Однако сложность современных фреймворков приводит к появлению трудноуловимых багов, которые сложно обнаружить традиционными методами тестирования. Использование LLM позволило исследователям систематизировать тысячи отчетов об ошибках из популярных репозиториев, выделив наиболее уязвимые участки кода и типичные сценарии сбоев.
Авторы работы подчеркивают, что автоматизация анализа ошибок с помощью специализированных моделей позволяет не только быстрее находить причины неисправностей, но и предотвращать их появление на этапе проектирования архитектуры компилятора. Полученные данные помогают разработчикам инструментов для ИИ лучше понимать, какие именно абстракции в графах вычислений чаще всего приводят к некорректной генерации кода или падениям системы при компиляции моделей.
Ключевые факты
- Исследование сфокусировано на анализе фронтендов компиляторов, отвечающих за преобразование высокоуровневых графов нейросетей.
- Применен метод LLM-aided эмпирического анализа для классификации типов багов, что позволило обработать большой массив данных из открытых репозиториев.
- Выявлены критические узлы в архитектуре компиляторов, где вероятность возникновения логических ошибок и проблем с типизацией данных наиболее высока.
- Результаты работы предоставляют практические рекомендации по улучшению процессов тестирования и верификации кода в инфраструктурных проектах машинного обучения.