Цифровые отпечатки ИИ-помощников в коде

Автор: Денис Аветисян


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

🚀 Квантовые новости

Подключайся к потоку квантовых мемов, теорий и откровений из параллельной вселенной.
Только сингулярные инсайты — никакой скуки.

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

Авторы статьи продемонстрировали возможность выявления ИИ-помощников по поведенческим характеристикам их pull request’ов на GitHub.

По мере все большего распространения систем искусственного интеллекта, генерирующих код, становится сложнее отслеживать авторство в проектах с открытым исходным кодом. В работе ‘Fingerprinting AI Coding Agents on GitHub’ представлено первое исследование, направленное на выявление поведенческих особенностей различных AI-агентов (OpenAI Codex, GitHub Copilot, Devin, Cursor, Claude Code) при внесении изменений в репозитории GitHub. Авторы продемонстрировали, что эти агенты оставляют уникальные «отпечатки пальцев» в структуре и содержании pull request, позволяя с точностью до 97.2% идентифицировать используемый инструмент. Возможно ли на основе этих поведенческих сигнатур разработать эффективные методы для оценки вклада AI в современные процессы разработки программного обеспечения?


Разоблачение Автора: Рождение AI-Кодировщиков

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

Определение авторства кода, созданного искусственным интеллектом, становится первостепенной задачей в современной разработке программного обеспечения. По мере того как инструменты вроде GitHub Copilot и Devin становятся всё более распространенными, возникает необходимость в надежных методах, позволяющих отличить код, написанный алгоритмами, от кода, созданного человеком. Это важно не только для корректного указания авторства и соблюдения лицензионных соглашений, но и для обеспечения высокого качества программного обеспечения, поскольку анализ и отладка кода, сгенерированного ИИ, может потребовать иного подхода, чем работа с кодом, написанным разработчиком. Точное определение авторства позволяет эффективно контролировать качество, оптимизировать процессы разработки и поддерживать доверие к программным продуктам, созданным с использованием инструментов искусственного интеллекта.

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

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

Основа Анализа: Датасет и Разработка Признаков

В качестве обучающей выборки для моделей классификации использовался датасет AIDev, содержащий запросы на внесение изменений (pull requests) от различных AI-агентов, занимающихся кодированием. Этот датасет включает в себя информацию о коде, сообщениях коммитов и структуре самих запросов на внесение изменений, собранную из публичных репозиториев. Объем выборки AIDev составляет [укажите количество pull requests или строк кода, если известно], что обеспечивает достаточное количество данных для обучения и оценки моделей. Данные были предварительно обработаны и структурированы для обеспечения совместимости с алгоритмами машинного обучения.

Для обучения моделей классификации мы разработали широкий набор признаков на основе запросов на включение изменений (pull requests). Анализ включал в себя характеристики кода, такие как длина строк, сложность циклов и использование определенных функций, а также паттерны в сообщениях коммитов, включая длину, наличие ключевых слов и использование эмодзи. Структура запросов на включение изменений также была изучена, с учетом количества измененных файлов, добавленных и удаленных строк кода, а также времени, затраченного на рассмотрение запроса.

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

Несбалансированность классов в наборе данных представляла собой значимую проблему при обучении моделей классификации. Преобладание одного класса над другим могло привести к смещению моделей в сторону наиболее представленного класса, снижая их способность точно идентифицировать примеры из менее представленных классов. Для решения этой проблемы были применены методы взвешивания классов, при которых примеры из миноритарных классов получали больший вес при расчете функции потерь. Также рассматривались техники передискретизации, такие как SMOTE (Synthetic Minority Oversampling Technique), для генерации синтетических примеров миноритарных классов и балансировки набора данных. Эффективность этих методов оценивалась с использованием метрик, чувствительных к несбалансированности классов, таких как F1-мера и AUC-ROC, для обеспечения высокой точности и надежности моделей.

Идентификация Агентов: Результаты Моделирования

Для задачи многоклассовой классификации, направленной на идентификацию AI-агентов, были реализованы модели XGBoost и Random Forest. В качестве входных данных использовались предварительно разработанные признаки, полученные из данных об изменениях в коде. Выбор данных алгоритмов обусловлен их высокой производительностью и способностью эффективно обрабатывать данные высокой размерности. Обе модели были обучены и протестированы с использованием стандартных метрик оценки качества классификации, включая точность, полноту и F1-меру, для обеспечения надежности и воспроизводимости результатов.

Для получения ранжировок важности признаков, специфичных для каждого AI-агента, использовалась стратегия One-vs-Rest (OVR) классификации. В рамках OVR, для каждого агента (OpenAI Codex, GitHub Copilot, Claude Code и т.д.) строилась отдельная бинарная модель классификации, где данный агент рассматривался как положительный класс, а все остальные — как отрицательный. Анализ важности признаков в каждой из этих моделей позволил выявить ключевые индикаторы авторства, специфичные для каждого агента. Например, для OpenAI Codex высокая важность признака «Соотношение многострочных коммитов» указывает на его склонность к более крупным изменениям кода, в то время как для GitHub Copilot характерны особенности, связанные с деталями содержания тела PR (Pull Request).

Модели, используемые для классификации кода, продемонстрировали высокую эффективность, достигнув среднего значения метрики F1-score в 97.2% при идентификации AI-агента, генерирующего код. Данный показатель отражает сбалансированную точность и полноту классификации, что свидетельствует о способности моделей эффективно различать код, созданный различными AI-инструментами. Высокое значение F1-score указывает на минимальное количество ложноположительных и ложноотрицательных результатов, подтверждая надежность системы идентификации.

Результаты проведенного исследования демонстрируют превосходство разработанного подхода над существующими методами выявления кода, сгенерированного ИИ. Достигнутая точность в 93% при различении ИИ-генерируемого кода превышает показатель, зафиксированный в работе Tian et al., что подтверждает эффективность предложенных признаков и алгоритмов классификации. Данный результат указывает на возможность более надежного определения авторства кода и, как следствие, повышения безопасности и контроля в процессе разработки программного обеспечения.

Анализ важности признаков выявил, что отношение количества многострочных коммитов к общему числу коммитов (Multiline Commit Ratio) является наиболее значимым признаком для идентификации кода, сгенерированного OpenAI Codex, составляя 67.5% от общей важности признаков. Это указывает на то, что OpenAI Codex, вероятно, чаще генерирует изменения, включающие несколько строк кода в одном коммите, в отличие от других моделей, что позволяет эффективно использовать данный показатель для его идентификации. Высокая значимость данного признака позволяет предположить, что он может служить ключевым индикатором при определении авторства кода, сгенерированного данной конкретной моделью.

Анализ важности признаков показал, что характеристики текста в теле запроса на внесение изменений (PR Body) играют ключевую роль в идентификации GitHub Copilot. Этот фактор обеспечивает 38.4% вклада в общую точность определения авторства, что свидетельствует о значительной зависимости стиля и содержания генерируемого Copilot кода от особенностей форматирования и детализации описания изменений в PR. Высокая значимость данного признака указывает на то, что GitHub Copilot склонен к созданию более подробных и структурированных описаний изменений по сравнению с другими AI-агентами, что позволяет модели эффективно его идентифицировать.

Для обеспечения надежности оценки моделей классификации, мы гарантировали достаточную статистическую мощность даже для наименее представленного класса (Claude Code). Достигнутое значение Events Per Variable (EPV) составило 11.2, что соответствует общепринятым рекомендациям для машинного обучения и позволяет минимизировать риск переобучения и получить стабильные оценки важности признаков. Высокий показатель EPV указывает на то, что для каждого признака имеется достаточное количество событий (наблюдений), что необходимо для корректной оценки его влияния на результат классификации и повышения общей достоверности модели.

Влияние и Перспективы: Новые Горизонты Анализа

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

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

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

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

Исследование демонстрирует, что даже при попытке скрыть происхождение кода, искусственный интеллект оставляет уникальный след в процессе внесения изменений, подобно отпечаткам пальцев. Это проявляется в особенностях структуры pull requests, частоте и характере правок. Как заметил Карл Фридрих Гаусс: «Математия — это царица наук, и арифметика — царица математики». Эта фраза отражает стремление к точности и вычленению ключевых закономерностей, что и демонстрируется в работе — выявление паттернов поведения ИИ-агентов, позволяющее определить их авторство даже при маскировке. Анализ показывает, что сложность не в создании кода, а в выявлении его истинного источника, и именно эта ясность и является ценностью исследования.

Что дальше?

Представленная работа выявила закономерности в поведении агентов, создающих код, — отпечатки, проявляющиеся в структуре изменений, предлагаемых в pull requests. Однако, само обнаружение — лишь первый шаг. Истинная сложность заключается не в идентификации, а в понимании причины этих отпечатков. Являются ли они неизбежным следствием алгоритмической природы, или же отражают специфические предубеждения, заложенные в процессе обучения? Ответ на этот вопрос, возможно, важнее самого факта идентификации.

Очевидное ограничение — зависимость от специфики используемых репозиториев и языков программирования. Попытки обобщить полученные результаты, расширить область применения, неизбежно столкнутся с необходимостью учитывать контекст. И это хорошо. Сложность — это тщеславие; ясность — милосердие. Универсальные решения — это иллюзия.

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


Оригинал статьи: https://arxiv.org/pdf/2601.17406.pdf

Связаться с автором: https://www.linkedin.com/in/avetisyan/

Смотрите также:

2026-01-28 00:04