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

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

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

стена текста с обсуждением некоторых аспектов новой политики Rust в отношении LLM
стена текста с обсуждением некоторых аспектов новой политики Rust в отношении LLM

Неудивительно, что они ввели столь жёсткие ограничения на использование LLM.

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

Допускается лишь личное применение. Задавать вопросы LLM о кодовой базе можно без раскрытия, как и проверять свой код для себя, составлять краткие изложения PR или создавать личные инструменты разработки с помощью LLM.

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

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

Jynn Nelson, автор первоначальной политики, которую сейчас принял проект, завершил анонс словами:

Это не конец истории. Одна из целей политики заключается в том, чтобы помочь собрать данные: используют ли люди LLM для интересных и полезных задач? Учатся ли они? Делают ли повторный вклад? Ответы на эти вопросы помогут определить дальнейшее развитие политики.

Аналогичный шаг в другом проекте

NetworkManager, сетевой демон по умолчанию в большинстве популярных дистрибутивов Linux, также принял собственную политику в отношении ИИ-ассистентов кодирования, недавно добавив новый раздел в файл CONTRIBUTING.md.

Вот его содержание:

Авторы несут 100% ответственность за отправляемый код. Не отправляйте патч, который не можете объяснить, и не отправляйте тот, который не собрали и не протестировали самостоятельно. Пишите сообщения коммитов и описания запросов на слияние самостоятельно.

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

Всё, что указано в разделе Legal, применяется без изменений. Именно вы подтверждаете, что вклад может быть выпущен под лицензией LGPL-2.1 или более поздней. Инструмент не может сделать это за вас.

Большие машинно-сгенерированные запросы на слияние, которые не были построчно проверены человеком, будут закрыты.

Josephine Pfeiffer из Red Hat подготовила изменения и самостоятельно влила их 7 августа после одобрения мейнтейнера. Как видно, вариант NetworkManager значительно проще многоуровневой системы Rust. В настоящее время он ближе к подходу human-in-the-loop (человек в цикле), который мы уже видели в политике LLVM.

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

Вновь и вновь появляются свидетельства того, что бесконтрольное применение ИИ способно быстро подорвать работу по сопровождению и инфраструктуру. Как обычно, экосистема открытого ПО продолжит развиваться в соответствии с тем, что диктует использование ИИ.