Проект Rust принял новую политику, регулирующую использование больших языковых моделей при внесении изменений в основной репозиторий rust-lang/rust. Это превратило обсуждавшееся ранее в этом году предложение в действующие правила для нескольких ключевых команд разработчиков.

Политика сознательно ограничена по охвату: она применяется только к изменениям, которые обрабатываются этими командами в репозитории rust-lang/rust, а не является универсальной позицией по ИИ для всего проекта Rust или более широкой экосистемы Rust. Другие репозитории Rust, независимые крейты и команды, не принявшие этот документ, автоматически не подпадают под её действие.

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

Участники по-прежнему могут свободно использовать ИИ-помощника в частном порядке для изучения кодовой базы, поиска решений или проверки своей работы. Они обязаны понимать проблему, проверять результат и нести полную ответственность за то, что они отправляют.

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

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

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

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

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

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

Что можно сказать в итоге? Посыл для разработчиков прост: использовать ИИ для понимания Rust, поиска идей или приватной проверки работы по-прежнему допустимо. Использовать его для создания публичных правок без раскрытия, понимания и без человеческой ответственности недопустимо.

Подробнее в официальном анонсе.