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