Свежая выжимка ml и AI статей - каждый день
Современные большие языковые модели (LLMs) продемонстрировали впечатляющие результаты в различных задачах, особенно в области генерации и завершения кода. Модели, такие как OpenAI Codex и Claude, стали важными инструментами для разработчиков, позволяя им автоматизировать рутинные задачи программирования и улучшать продуктивность. Однако, несмотря на их успехи, многие из существующих оценочных метрик для кодовых LLMs сосредоточены на правильности сгенерированного кода, игнорируя важный аспект — соответствие человеческим предпочтениям.
Текущие бенчмарки для оценки производительности кодовых LLMs, такие как HumanEval и MBPP, в основном ориентированы на выполнение самодостаточных фрагментов кода и проверку их корректности. Однако эти подходы не учитывают контекст, в котором пользователи ожидают получить ответ, и не учитывают, насколько сгенерированные модели ответы соответствуют реальным человеческим предпочтениям.
Чтобы заполнить этот пробел, была разработана новая бенчмарка под названием CodeArena. Она включает 397 высококачественных примеров, охватывающих 40 категорий и 44 языка программирования, которые были тщательно отобраны из реальных пользовательских запросов. КодArena предоставляет более сложные и разнообразные задачи, отражающие реальные сценарии программирования, что позволяет лучше оценить, насколько хорошо модели соответствуют ожиданиям пользователей.
CodeArena состоит из различных задач, классифицированных по семи основным категориям. Каждая задача включает в себя запрос пользователя и ответы, сгенерированные различными моделями. Статистика показывает, что большинство задач имеют средний или высокий уровень сложности, что представляет собой значительную задачу для LLMs.
Для создания CodeArena была реализована строгая процедура аннотации, в которой участвовали опытные программисты, способные оценивать сложность и качество задач. Это гарантирует высокое качество и разнообразие задач, что является важным для оценки соответствия моделей человеческим предпочтениям.
В дополнение к CodeArena была разработана обширная синтетическая инструкция под названием SynCode-Instruct, содержащая почти 20 миллиардов токенов. Эти данные были собраны из различных веб-источников и предназначены для улучшения обучения моделей на основе синтетических данных.
Модель Qwen2.5-SynCoder, обученная на SynCode-Instruct, продемонстрировала выдающиеся результаты в тестах CodeArena, что подтверждает эффективность подхода к использованию синтетических данных для улучшения производительности кодовых LLMs.
Систематическая оценка более 40 LLMs с использованием CodeArena показала значительные различия в производительности между открытыми и закрытыми моделями. Закрытые модели, такие как Claude и OpenAI Codex, продемонстрировали более высокую степень соответствия человеческим предпочтениям по сравнению с открытыми моделями, такими как Qwen2.5-Coder. Это подчеркивает важность выравнивания моделей с человеческими ожиданиями в задачах программирования.
Для оценки производительности моделей использовались различные метрики, включая win rate и tie rate, которые измеряют, насколько часто одна модель превосходит другую в глазах пользователей. Это позволяет создать динамическую таблицу лидеров, которая помогает отслеживать прогресс различных моделей.
Результаты исследования показывают, что несмотря на значительный прогресс в области генерации кода, важно учитывать человеческие предпочтения при оценке моделей. Модели, которые просто генерируют код без объяснений или контекста, могут не удовлетворять потребности пользователей. Например, в тестах CodeArena модели, которые предоставляли более полные и детализированные ответы, получили более высокие оценки.
К примеру, в одном из запросов пользователи ожидали не только код, но и объяснение его работы, что является важным аспектом для понимания и обучения. Это подчеркивает необходимость создания более сложных и контекстуализированных задач для оценки LLMs.
В данной работе была представлена новая бенчмарка CodeArena, которая позволяет более точно оценивать соответствие кодовых LLMs человеческим предпочтениям. Создание синтетического корпуса SynCode-Instruct также продемонстрировало, что использование больших объемов синтетических данных может значительно улучшить производительность моделей. Важно продолжать исследовать и развивать методы оценки, которые учитывают не только правильность кода, но и его соответствие реальным потребностям пользователей.