Почему Gentoo и NetBSD запретили в своих репозиториях код, сгенерированный алгоритмами?
В мире открытого программного обеспечения разгорелись жаркие споры вокруг применения кода, созданного с помощью больших языковых моделей (LLM) наподобие GitHub Copilot. Ведущие open source проекты оказались по разные стороны баррикад.
Gentoo Linux стала первопроходцем, наложив полный запрет на код, «порожденный ИИ-инструментами», в своем репозитории. В середине апреля совет компании издал соответствующую политику. Затем, на этой неделе, аналогичный эдикт включили в правила коммитов разработчики проекта NetBSD.
Решение Gentoo основывалось на трех ключевых факторах: проблемах с авторскими правами, качеством кода и этическими соображениями. Опасения насчет качества, пожалуй, наиболее очевидны — инструменты на базе LLM нередко плодят крайне некачественные программы.
Два других фактора — авторские права и этика — тоньше, но именно они легли в основу запрета в NetBSD. Чтобы понять их значимость, необходимо разобраться в принципах работы так называемых «ИИ-ассистентов» вроде Copilot. Отметим, что эксперты ставят термин «ИИ» в кавычки, поскольку по-настоящему умные системы в индустрии теперь принято именовать AGI (искусственный общий интеллект).
Большие языковые модели, лежащие в основе этих систем, на самом деле интеллектом не обладают. Они создают статистические модели огромных «корпусов» текстовых данных — собраний терабайтов текста и изображений. LLM автоматически выстраивают гигантские модели взаимного расположения слов, их последовательностей и перестановок.
Затем с помощью алгоритмов под названием «трансформеры» эти модели экстраполируют закономерности слов и порождают новый текст. Идея изящна и развивает функцию автозаполнения, позволяя генерировать целые предложения и абзацы согласно выявленным паттернам.
Для построения таких моделей необходимы колоссальные вычислительные мощности и огромные объемы входных данных. Поэтому «корпусы» часто включают всю Википедию, проект Гутенберг, содержимое соцсетей, форумов и, что важно, репозиториев программного кода.
Если в обучающих данных присутствовала программа из других проектов, LLM-ассистенты будут генерировать практически идентичный код, разве что с другими названиями переменных. Это создает риск нарушения лицензий, когда код случайно мигрирует из одного проекта в другой.
Для Linux-дистрибутивов подобное чревато проблемами с авторскими правами. Если скопированный код содержит уязвимости, встает вопрос: кто должен нести ответственность — разработчик, внесший его, или оригинальный автор, не знавший о том, откуда бот черпает вдохновение?
Особенно остро этот вопрос стоит для NetBSD из-за лицензии BSD. Случайное включение GPL-кода в их базу потребует переоформления лицензий или полной переписки программы, на что у небольшого проекта может попросту не хватить ресурсов.
В отличие от Gentoo и NetBSD, в Debian пока не пришли к единому мнению о запрете LLM-генерируемого кода. В проекте признают связанные риски, однако текущий код дистрибутива версии 12 насчитывает свыше 1,3 миллиарда строк — объем, превосходящий возможности человеческого восприятия.
Сами большие языковые модели поражают воображение масштабами. Это гигантские таблицы из миллиардов или даже триллионов числовых значений, рассчитанные невообразимым количеством машин. Людям физически невозможно их прочесть, не говоря уже о понимании и редактировании.
Важно отметить, что выходные данные LLM представляют собой не более чем галлюцинации, имитирующие человеческую речь на основе паттернов в обучающих данных. Поскольку люди не создавали эти модели напрямую и не могут их инспектировать, нет способа откалибровать их, чтобы они не генерировали недостоверную информацию вовсе.
Единственные LLM, способные создавать полезный контент — это сверхбольшие модели. Маленькие могут лишь копировать простые шаблоны, не генерируя ничего содержательного.
Кроме того, LLM не обладают реальными способностями к пониманию, рассуждению или счету. Они просто имитируют паттерны из обучающих данных, создавая иллюзию осмысленности.
По мере развития этих технологий вопрос об использовании LLM-генерируемого кода будет лишь обостряться. Linux Weekly News подробно освещала дискуссии как в Gentoo, так и в Debian. Ожидается, что проблема станет все более актуальной, возможно, даже опережая темпы роста самих обучающих баз LLM.
Разбираем кейсы, делимся опытом, учимся на чужих ошибках