Недавно прошёл Хакатон ЕВРАЗа 3.0, на котором участникам поставили задачу упростить и ускорить важный процесс разработки — code review. Эта сложная и трудоемкая часть работы программистов, которая требует предельной концентрации и широкого опыта специалистов.
Хакатон предоставил возможность не только найти новые идеи для автоматизации, но и продемонстрировать потенциал ИИ для повышения качества кода. Если тема цифровых технологий в металлургической промышленности интересует и вас, приглашаем поближе познакомиться с решениями победителей.
Хакатон и цифры
Третий хакатон ЕВРАЗа собрал более 320 участников: от начинающих до опытных разработчиков. Они объединились в 130 команд, которые за 40 часов интенсивной работы предложили инновационные решения для автоматизации ревизии кода с помощью искусственного интеллекта. Мероприятие проходило в гибридном формате: чек-поинты и защита проектов проводились онлайн, а финалисты из Москвы собрались на церемонию награждения в студии.
Подробнее о задаче
Code review — важная часть процесса разработки программного обеспечения, которая помогает выявить ошибки, улучшить качество кода и сократить стоимость поддержки созданного продукта. В процессе code review обычно задействованы опытные программисты, чей труд можно направить на иные плодотворные задачи.
Этот этап разработки трудоемкий и занимает значительное количество времени. Особенно это актуально в крупных проектах, где количество строк кода и сложность архитектуры замедляют скорость проверки, поэтому в последние годы наблюдается рост интереса к использованию технологий искусственного интеллекта для автоматизации этого процесса. Компании тратят большие ресурсы на создание решений, которые используют алгоритмы машинного обучения для анализа кода, выявления потенциальных ошибок и предложений по улучшению.
Задача глазами участников
Участникам хакатона предстояло осилить передовую задачу, которую еще никто не пытался решить, опираясь на опыт и компетенции. На протяжении 40 часов они создавали программы с использованием технологий искусственного интеллекта. Команды состояли из разработчиков, аналитиков и специалистов по машинному обучению, которые объединили свои усилия, чтобы создать эффективное и точное решение.
В процессе разработки участники применяли различные подходы: методы обработки естественного языка (NLP), LLM модели, фреймворки TensorFlow и PyTorch. Кроме того, команды активно обсуждали идеи по интеграции системы в существующие инструменты разработки, такие как GitHub и GitLab, чтобы обеспечить плавный процесс проверки кода на всех этапах разработки.
Участникам пришлось разрабатывать решение в условиях ограниченности обучающего датасета под разные языки программирования: TypeScript, C# и Python. В итоге, участники хакатона представили проработанные решения, которые продемонстрировали потенциал автоматизации процесса code review.
Перейдем к победителям
По итогам хакатона жюри определило победителей:
3-е место заняла команда «Крутые Бобры», чье решение было отмечено за удобный и легкий UI-интерфейс, интеграцию с Telegram и информативность отчета. Эти решения помогут ускорить анализ кода.
Описание проекта: команда решила сосредоточиться исключительно на анализе кода на языке Python, что позволило им погрузиться в специфику этого языка и его особенности. В результате их работы была достигнута детальная проверка по двум ключевым направлениям: архитектурное соответствие и оценка зависимостей проекта, включая непрямые зависимости. Жюри отметило, что точность работы решения команды в этих областях была крайне высокой, а подход достаточно надежным.
Кроме того, стоит отметить решение, поскольку оно демонстрирует высокую скорость обработки информации — на ревью крупного проекта уходит всего около 10 минут, что может существенно сэкономить время и ресурсы компании, позволяя разработчикам сосредоточиться на более важных аспектах своей работы. Также проект выделяется удобным и интуитивно понятным пользовательским интерфейсом.
Основное внимание было уделено интеграции с Telegram, что позволяет пользователям получать уведомления и отчеты в реальном времени в мессенджере. Решение команды предоставляет информативные отчеты, которые помогают разработчикам быстро понимать состояние их кода. Удобство использования и функциональность решения делают его привлекательным для легкого внедрения в существующие бизнес-процессы.
2-е место у команды «оverbuffed», которая предложила функциональную систему с четкими и детализированными отчетами, продемонстрировав высокий уровень понимания поставленной задачи.
Описание проекта: команда применила инновационный подход с системой RAG, который заключается в том, что помимо преобразования содержимого файлов в эмбеддинги, также учитывается их структурное представление в проекте.
Выбранный командой концепт динамически расширяет требования к коду, что делает процесс более гибким и адаптивным. Команда разработала одни из лучших отчетов, которые не только детально описывают выявленные ошибки, но и предлагают конкретные рекомендации по их исправлению.
В ходе работы они провели обширные исследования различных методов, таких как промптинг, дообучение и RAG, что позволило им интегрировать эти подходы в работу. Основной акцент был сделан на языке Python, но команда смогла охватить все направления, что свидетельствует о широте профессиональных навыков. Итоговое решение предоставляет пользователям четкие и детализированные отчеты в связке с интуитивно понятным интерфейсом, что облегчает взаимодействие с системой.
Победителем стала команда «Мастер на GPT-унами», которая подошла к задаче творчески, предложив нестандартную архитектуру на основе мультиагентной системы и продуманную логику решения.
Описание проекта: Команда разработала уникальное решение, основанное на собственной модели QWen 2.5 Coder 32b с квантизацией fp8 и инновационном подходе к выделению признаков из требований к коду с использованием Pixtral-12b. Это сочетание значительно повысило эффективность работы системы, превзойдя по производительности и скорости выполнения задач многие альтернативные решения, представленных на хакатоне ЕВРАЗа.
Только эта команда внедрила завершенную мультиагентную архитектуру, что позволило обеспечить более глубокий и комплексный анализ кода. В результате, предоставленные отчеты обладают высокой точностью и информативностью, позволяя выявлять практически все ошибки в коде. Более того, решение команды способно обнаруживать даже те ошибки, которые могли быть упущены в процессе ручного ревью.
Участники команды тщательно проработали архитектуру своей системы, что позволило охватить все три основных направления ревью: Python, C# и Typescript. Поэтому решение не только впечатлило судей, но и принесло команде заслуженное 1 место!
Победители разделили между собой призовой фонд в 500 000 рублей. А призеры специальных номинаций получили фирменный мерч компании.
Участники отметили высокий уровень организации, интересную задачу и нестандартный формат онлайн-трансляций. Эксперты оценили высокий уровень решений и необычные активности.