Автор: Денис Аветисян
Новое исследование показывает, что существующие тесты для оценки генерации кода искусственным интеллектом часто упускают из виду базовые концепции программирования, и предлагает способ создания более надежных оценок.

Оценка и повышение репрезентативности бенчмарков генерации кода с использованием концептуальных единиц знаний (Knowledge Units) языков программирования - эмпирическое исследование.
Несмотря на впечатляющие успехи больших языковых моделей (LLM) в генерации кода, существующие бенчмарки могут не отражать всего спектра необходимых навыков программирования. В работе 'Assessing and Improving the Representativeness of Code Generation Benchmarks Using Knowledge Units (KUs) of Programming Languages -- An Empirical Study' представлен эмпирический анализ репрезентативности бенчмарков, основанный на концепции "единиц знаний" (Knowledge Units) - базовых строительных блоках программирования. Исследование выявило, что популярные бенчмарки покрывают лишь половину идентифицированных единиц знаний, в то время как реальные проекты используют их все, демонстрируя более сбалансированное распределение. Можно ли создать более реалистичные бенчмарки, которые адекватно оценят возможности LLM и помогут улучшить их производительность в практических задачах?
Проверка языковых моделей: где кроются ограничения?
Современная оценка возможностей больших языковых моделей (LLM) в программировании часто опирается на наборы тестов, такие как HumanEval и MBPP. Однако эти тесты могут не в полной мере отражать весь спектр знаний, необходимых для решения реальных задач. Исследования показывают, что они охватывают лишь около половины из двадцати ключевых блоков знаний (Knowledge Units, KU) в языке Python. Расхождение между тем, что проверяют эти тесты, и тем, какие знания реально используются в разрабатываемом программном обеспечении, вызывает вопросы о достоверности оценки производительности LLM. Другими словами, успешное прохождение тестов не всегда гарантирует способность модели решать сложные, практические задачи, поскольку существующие тесты не учитывают все необходимые навыки и компетенции.

Улучшение оценки языковых моделей: расширенные тесты для более точной проверки
Для преодоления ограничений существующих методов оценки, предложен подход, основанный на расширении тестовых наборов с помощью специально разработанных синтетических задач. Эти задачи направлены на проверку навыков языковых моделей в областях, которые недостаточно представлены в стандартных тестах. Комбинируя синтетические и оригинальные тесты, создаются расширенные тестовые наборы, обеспечивающие более полное и точное измерение возможностей языковых моделей. Результаты показали значительное улучшение соответствия между распределением навыков, проверяемых тестами, и реальными потребностями: для тестов HumanEval и MBPP разница между распределениями уменьшилась на 65% и 62% соответственно, что свидетельствует о значительном повышении надежности и информативности оценки.

Загадочное снижение эффективности: как расширение данных влияет на языковые модели
Оценка больших языковых моделей (LLM) на расширенных тестовых наборах выявила неожиданную закономерность: снижение эффективности по сравнению с оценкой на исходных наборах. Этот спад, измеряемый с помощью показателей вроде Pass@K, варьировался от 12.54% до 44.82% для всех протестированных моделей, что указывает на то, что простое увеличение объема данных для обучения не гарантирует улучшения общей производительности. Для понимания причин этого разрыва в эффективности, исследователи оценили разницу в распределении данных между тестовыми наборами и реальными проектами. Оценивалось, насколько сильно отличаются темы и содержание в тестовых данных от тех, с которыми модель сталкивается в реальных задачах, позволяя выявить, что именно вызывает снижение производительности при переходе к более широкому спектру данных.

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

Исследование показывает, что существующие бенчмарки для оценки генерации кода далеко не всегда отражают реальное разнообразие задач, с которыми сталкиваются программисты. Авторы предлагают подход, основанный на концепции «единиц знаний» (Knowledge Units), чтобы более точно измерить, насколько хорошо большие языковые модели (LLM) понимают фундаментальные концепции программирования. Это напоминает о неизбежной энтропии в любой системе. Как заметил Г.Х. Харди: «Математика - это искусство делать правильные выводы из неправильных предпосылок». Подобно этому, LLM могут генерировать синтаксически верный код, но при этом упускать из виду важные семантические нюансы, если бенчмарк не охватывает достаточное количество ключевых концепций. В конечном счёте, всё, что можно задеплоить, однажды упадёт, и это исследование - попытка отсрочить этот момент, создавая более надёжные инструменты для оценки и улучшения LLM.
Что дальше?
Представленная работа, как и большинство попыток оценить «интеллект» машин, неизбежно натыкается на проблему репрезентативности. Выявление пробелов в существующих бенчмарках - это лишь первый шаг. Более вероятно, что сгенерированные на основе «единиц знаний» тестовые примеры, хоть и кажутся более полными, просто сдвинут проблему - выявится, что даже хорошо покрытые концепции взаимодействуют в неожиданных, непредсказуемых сценариях. И тогда придётся создавать бенчмарки для бенчмарков.
Вероятно, что настоящий предел точности оценки не в количестве покрытых «единиц знаний», а в сложности интеграции. Модели будут генерировать безупречный синтаксис, но реальный код всегда найдёт способ сломаться в продакшене, когда к элегантной теории добавится хаос реальных данных и требований. Если код выглядит идеально - значит, его ещё никто не деплоил.
В конечном итоге, оценка моделей генерации кода - это, скорее, игра в бесконечную оптимизацию, чем достижение какой-то абсолютной «правильности». Каждая «революционная» технология завтра станет техдолгом. И вопрос не в том, чтобы создать идеальный бенчмарк, а в том, чтобы смириться с тем, что идеальных бенчмарков не существует.
Полный обзор с формулами: denisavetisyan.com
Оригинал статьи: https://arxiv.org/pdf/2601.03780.pdf
Связаться с автором: linkedin.com/in/avetisyan