Пользователи обнаружили в базе нейросетевого помощника программиста GitHub Copilot («второй пилот») 1170 стоп-слов, которые он блокирует при формировании кода. Среди них присутствуют такие слова, как «коммунист», «либерал», «Палестина», «Израиль» и «социалист».
![](https://habrastorage.org/getpro/habr/upload_files/fa1/547/372/fa1547372c20f46160135a30d9c20f68.jpeg)
29 июня этого года Microsoft и GitHub представили нейросетевого помощника программиста Copilot, разработанного на базе технологий компании Open AI. Система анализирует текущий код разработчика и предлагает для его доработки новые строки или функции в зависимости от контекста. По мере работы Copilot адаптируется к индивидуальным особенностям программиста-человека и начинает предлагать более продуктивные решения, ускоряя его текущие возможности.
Как указали авторы, из-за того, что проект находится на стадии разработки, он может выдавать предвзятые, дискриминационные и оскорбительные результаты. В связи с этим в систему добавили фильтры для блокировки «потенциально опасных» слов и выражений, способных вызвать негативную реакцию.
Как указывает издание Register, перед тем, как предлагать код пользователю, Copilot сравнивает указанные программистом текстовые подсказки с cобственной базой, закодированной с использованием хеш-функции. При обнаружении совпадений система не будет вносить предложения пользователю.
Пользователь Брендан Долан-Гэвитт в течение нескольких последних дней предпринимал несколько попыток для взлома закодированной базы. В конечном счёте он обнаружил её в VSCode, закодированной на JavaScript. Из базы удалось вытащить 1170 стоп-слов.
Register написало, что большинство слов слишком «ужасны», чтобы их перепечатывать. Список ориентирован только на американских пользователей и включает в себя слова с негативным окрасом, характерные для американского английского. Например, слово «retard» (тормозить) многократно повторяют Airbus при посадке. В то же время в США его употребляют в значении «тупой» или «тормоз».
В списке оказались и такие слова: Палестина, Газа, коммунист, фашист, социалист, нацист, иммигрант, иммиграция, раса, мужчина, женщина, мальчик, девочка, либерал, blm (Black Lives Matter), чернокожие, Гитлер, антифа, национальный, гей, лесбиянка и трансгендер и другие.
![Примеры стоп-слов из базы Copilot. Источник: микроблог Брендана Долан-Гэвитта Примеры стоп-слов из базы Copilot. Источник: микроблог Брендана Долан-Гэвитта](https://habrastorage.org/getpro/habr/upload_files/4e3/e49/501/4e3e4950143c32330a05440aa81011c7.png)
Как указал Долан-Гэвитт, большая часть списка выглядит разумно и может уберечь пользователя от выдачи наихудших возможных вариантов. Он также отметил, что наличие некоторых слов в базе больше похоже на попытку избежать неприятных ситуаций, чем на защиту пользователей от оскорбительного текста. В частности, слово «q rsqrt» в списке — название известной функции для вычисления обратных квадратных корней в коде игры Quake III: Arena. Copilot может дословно воспроизводить её и предлагать пользователю.
На этот недостаток системы пользователи указали ещё 5 июля. Периодически Copilot вместо нескольких строк кода генерирует цитаты и комментарии из проектов с открытым исходным кодом. Кроме того, он вытаскивает валидные ключи API из репозиториев с открытым исходным кодом разных проектов и выдаёт их пользователям.
Вероятно, список необходим для предотвращения повторения ситуации с чатботом-расистом от Microsoft. В 2016 году компания запустила в Twitter чатбот-девушку Тау, которая не смогла справиться с наплывом троллей и начала повторять за ними расистские высказывания.
Microsoft пришлось отключить бота, удалить часть твитов и доработать программу. После повторного запуска бот сразу же признался в том, что употребляет наркотики. В связи с этим компания переключила профиль бота в режим приватности и не стала перезапускать проект.