Как можно оценить количество кода в проекте, созданного с помощью нейронных сетей?

Я занимаюсь сбором метрик из командных git-репозиториев и заметил несколько интересных трендов: некоторые команды значительно увеличивают объем кода, а другие — нет. При этом, анализируя большой объем данных, у меня возник вопрос: возможно ли определить, сколько кода было сгенерировано с помощью нейронных сетей, и используют ли команды AI в своей работе? Если используют, то в каком проценте случаев? <br/><br/> Есть ли предложения о том, как можно собрать такую метрику?
  • 31 января 2025 г. 16:54
Ответы на вопрос 4
Оценка объема кода, созданного с помощью нейронных сетей и других технологий на основе искусственного интеллекта, — это интересная и сложная задача. Вот несколько подходов, которые могут помочь вам собрать такую метрику:

1. **Анализ комментариев и метаданных коммитов**:
   - Проведите анализ комментариев в коммитах. Если разработчики упоминают использование AI или нейронных сетей, это может быть индикатором сгенерированного кода.
   - Изучите сообщения о слиянии (merge requests) и_pull requests_ на предмет упоминания инструментов/библиотек, связанных с AI.

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

3. **Сравнение с исходным кодом**:
   - Сравните новые строки кода с ранее существующими в репозитории. Если код выглядит значительно иначе или отходит от привычных стилей, можно предположить, что он может быть сгенерирован AI.

4. **Использование инструментов анализа кода**:
   - Есть инструменты и библиотеки (например, GitHub Copilot, OpenAI Codex), которые можно анализировать, чтобы выяснить, какой код они сгенерировали. Вы можете исследовать исходные тестовые примеры, чтобы оценить, насколько чаще команды используют эти инструменты.

5. **Опросы и обратная связь от команд**:
   - Проведите опрос среди разработчиков команд, чтобы получить информацию о том, используют ли они AI-инструменты, и в каком объеме.

6. **Машинное обучение и классификация**:
   - Создайте модель машинного обучения, которая будет способна классифицировать код на основе исторических данных. Для этого потребуется разметить небольшую выборку кода с указанием на то, какой из них сгенерирован и какой написан вручную.

7. **Тренды в использования библиотек AI**:
   - Анализируйте зависимости в проектах. Если используются библиотеки, специфичные для AI (например, TensorFlow, PyTorch и т.д.), это также может быть индикатором.

Для получения процента случаев использования AI можно передать анализ на уровне отдельных коммитов или файлов и затем экстраполировать эти данные на весь проект. Сравнение стилей кода и использования инструментов может дать вам необходимое понимание тенденций в использовании AI в проектных командах. 

Таким образом, важно комбинировать различные способы сбора данных для более точного анализа.
Просто не надо использовать "объем кода" как метрику.
Очень много кода вполне успешно и без нейронок генерируется (и даже более успешно). <br/> <br/> Если хочется измерить влияние ИИ, то количество кода точно не показатель
Очень ненадёжно, скорее всего это будет работать именно для программного кода но не текстов. <br/> <br/> Можно посмотреть на perplexity сгенерированого (точнее алгоритм похож), условно на сколько текст отличается от того что могла бы сгенерировать нейронка... примерный алгоритм: <br/> <br/> на вход нейронной сети продается текст, какая то его начальная часть (собственно разделение исходников на блоки и создание стартового промпта и есть проблема, решив которую алгоритм будет работать как ожидается), и проверяем какая вероятность следующего токена (по тексту), условно говоря в нашем тексте "2+2=четыре" (словом не числом), и после "=" ожидаются пробел, буква "ч" или цифра 4, с разными вероятностями, запоминаем вероятность буквы "ч", так делаем для каждого токена, как то складываем собранные вероятности и получение число, чем выше, тем больше шансов что текст сгенерирован этой нейронкой? <br/> На сколько я помню в perplexity складывают логарифмы вероятностей. Возможно лучше смотреть не на вероятность x, а на 1/x и соответственно сложить, потом разделить на количество токенов, и чем меньше результат тем лучше. Так же можно смотреть разницу между вероятность сгенерировано нейронкой токена и вероятномтьб токена из текста
Похожие вопросы