ЕВРАЗ доверил ревизию кода ИИ

Недавно прошёл Хакатон ЕВРАЗа 3.0, на котором участникам поставили задачу упростить и ускорить важный процесс разработки — code review. Эта сложная и трудоемкая часть работы программистов, которая требует предельной концентрации и широкого опыта специалистов. 

Хакатон предоставил возможность не только найти новые идеи для автоматизации, но и продемонстрировать потенциал ИИ для повышения качества кода. Если тема цифровых технологий в металлургической промышленности интересует и вас, приглашаем поближе познакомиться с решениями победителей. 

42f06530516953384874c5a91b8c50b6.jpg

Хакатон и цифры

Третий хакатон ЕВРАЗа собрал более 320 участников: от начинающих до опытных разработчиков. Они объединились в 130 команд, которые за 40 часов интенсивной работы предложили инновационные решения для автоматизации ревизии кода с помощью искусственного интеллекта. Мероприятие проходило в гибридном формате: чек-поинты и защита проектов проводились онлайн, а финалисты из Москвы собрались на церемонию награждения в студии.

Подробнее о задаче

Code review — важная часть процесса разработки программного обеспечения, которая помогает выявить ошибки, улучшить качество кода и сократить стоимость поддержки созданного продукта. В процессе code review обычно задействованы опытные программисты, чей труд можно направить на иные плодотворные задачи.

Этот этап разработки трудоемкий и занимает значительное количество времени. Особенно это актуально в крупных проектах, где количество строк кода и сложность архитектуры замедляют скорость проверки, поэтому в последние годы наблюдается рост интереса к использованию технологий искусственного интеллекта для автоматизации этого процесса. Компании тратят большие ресурсы на создание решений, которые используют алгоритмы машинного обучения для анализа кода, выявления потенциальных ошибок и предложений по улучшению.

Задача глазами участников

Участникам хакатона предстояло осилить передовую задачу, которую еще никто не пытался решить, опираясь на опыт и компетенции. На протяжении 40 часов они создавали программы с использованием технологий искусственного интеллекта. Команды состояли из разработчиков, аналитиков и специалистов по машинному обучению, которые объединили свои усилия, чтобы создать эффективное и точное решение.

В процессе разработки участники применяли различные подходы: методы обработки естественного языка (NLP), LLM модели, фреймворки TensorFlow и PyTorch. Кроме того, команды активно обсуждали идеи по интеграции системы в существующие инструменты разработки, такие как GitHub и GitLab, чтобы обеспечить плавный процесс проверки кода на всех этапах разработки.

Участникам пришлось разрабатывать решение в условиях ограниченности обучающего датасета под разные языки программирования: TypeScript, C# и Python. В итоге, участники хакатона представили проработанные решения, которые продемонстрировали потенциал автоматизации процесса code review.

Перейдем к победителям

По итогам хакатона жюри определило победителей:

3-е место заняла команда «Крутые Бобры», чье решение было отмечено за удобный и легкий UI-интерфейс, интеграцию с Telegram и информативность отчета. Эти решения помогут ускорить анализ кода.

07176a3d1626f437fc70494cc0e831d1.jpg

Описание проекта: команда решила сосредоточиться исключительно на анализе кода на языке Python, что позволило им погрузиться в специфику этого языка и его особенности. В результате их работы была достигнута детальная проверка по двум ключевым направлениям: архитектурное соответствие и оценка зависимостей проекта, включая непрямые зависимости. Жюри отметило, что точность работы решения команды в этих областях была крайне высокой, а подход достаточно надежным. 

Кроме того, стоит отметить решение, поскольку оно демонстрирует высокую скорость обработки информации — на ревью крупного проекта уходит всего около 10 минут, что может существенно сэкономить время и ресурсы компании, позволяя разработчикам сосредоточиться на более важных аспектах своей работы. Также проект выделяется удобным и интуитивно понятным пользовательским интерфейсом. 

Основное внимание было уделено интеграции с Telegram, что позволяет пользователям получать уведомления и отчеты в реальном времени в мессенджере. Решение команды предоставляет информативные отчеты, которые помогают разработчикам быстро понимать состояние их кода. Удобство использования и функциональность решения делают его привлекательным для легкого внедрения в существующие бизнес-процессы.

2-е место у команды «оverbuffed», которая предложила функциональную систему с четкими и детализированными отчетами, продемонстрировав высокий уровень понимания поставленной задачи.

7ba8dfb8cbc886a94a6c5d0cfb7a3dfe.jpg

Описание проекта: команда применила инновационный подход с системой RAG, который заключается в том, что помимо преобразования содержимого файлов в эмбеддинги, также учитывается их структурное представление в проекте. 

Выбранный командой концепт динамически расширяет требования к коду, что делает процесс более гибким и адаптивным. Команда разработала одни из лучших отчетов, которые не только детально описывают выявленные ошибки, но и предлагают конкретные рекомендации по их исправлению. 

В ходе работы они провели обширные исследования различных методов, таких как промптинг, дообучение и RAG, что позволило им интегрировать эти подходы в работу. Основной акцент был сделан на языке Python, но команда смогла охватить все направления, что свидетельствует о широте профессиональных навыков. Итоговое решение предоставляет пользователям четкие и детализированные отчеты в связке с интуитивно понятным интерфейсом, что облегчает взаимодействие с системой.

7a0bd342cdb690fb714d57c7996dd223.jpg

Победителем стала команда «Мастер на GPT-унами», которая подошла к задаче творчески, предложив нестандартную архитектуру на основе мультиагентной системы и продуманную логику решения.

5281e865866e4ed2f583356ab847b9a8.jpg

Описание проекта: Команда разработала уникальное решение, основанное на собственной модели QWen 2.5 Coder 32b с квантизацией fp8 и инновационном подходе к выделению признаков из требований к коду с использованием Pixtral-12b. Это сочетание значительно повысило эффективность работы системы, превзойдя по производительности и скорости выполнения задач многие альтернативные решения, представленных на хакатоне ЕВРАЗа. 

Только эта команда внедрила завершенную мультиагентную архитектуру, что позволило обеспечить более глубокий и комплексный анализ кода. В результате, предоставленные отчеты обладают высокой точностью и информативностью, позволяя выявлять практически все ошибки в коде. Более того, решение команды способно обнаруживать даже те ошибки, которые могли быть упущены в процессе ручного ревью. 

Участники команды тщательно проработали архитектуру своей системы, что позволило охватить все три основных направления ревью: Python, C# и Typescript. Поэтому решение не только впечатлило судей, но и принесло команде заслуженное 1 место!

c98c88f9e3791351d7941d49c6d97a0c.jpg

Победители разделили между собой призовой фонд в 500 000 рублей. А призеры специальных номинаций получили фирменный мерч компании.

Участники отметили высокий уровень организации, интересную задачу и нестандартный формат онлайн-трансляций. Эксперты оценили высокий уровень решений и необычные активности.

© Habrahabr.ru