Как я сломал GitHub Copilot и заставил его говорить.

TL;DR

Я использовал GitHub Copilot для написания английского языка вместо кода и обнаружил, что он может выполнять некоторые удивительные задачи, не связанные с кодом.


Привет, меня зовут Идо, я full-stack разработчик в DagsHub. Я люблю кодинг и обожаю технологии машинного обучения и искусственного интеллекта. Год назад, когда OpenAI анонсировал GPT-3 & его публичную бета-версию, я был очарован его возможностями, но у меня не было ключа API, поэтому я играл со всем, что было создано с помощью GPT-3 и было бесплатным для использования в то время. Естественно, когда я услышал, что Microsoft выпускает GitHub Copilot, я записался в список ожидания и через несколько месяцев получил доступ!

Что такое GitHub Copilot и какое отношение он имеет к GPT-3

В июне 2020 года OpenAI выпустила языковую модель под названием GPT-3. Эта модель действительно хороша в понимании естественного языка и, что удивительно, обладает некоторыми способностями к кодированию, хотя она не обучалась на коде. После этого открытия OpenAI разработала Codex. Codex — это еще одна языковая модель GPT, которая имеет меньше параметров, работает быстрее и не такая гибкая, как GPT-3, имеет больше памяти, может больше читать и лучше воспринимает контекст, и, наконец, она была обучена и отлажена на примерах кода с GitHub и Stack Exchange.

Неудивительно, что Codex намного лучше GPT-3 в написании кода. Зная это, мы не должны ожидать, что он будет успешен в чем-то еще. К счастью, я не знал всего этого, поэтому все равно попробовал.

Давайте не будем писать код!

Я слышал, что GitHub Copilot хорош в написании кода, и это действительно так. В моей повседневной работе каждый раз удивительно видеть, как он завершает код, который я собирался написать. Но после того, как я разобрался с «основами», мне было гораздо интереснее использовать его в качестве посредника для игры с GPT-3. Я начал с того, что открыл пустой текстовый файл и задал ему простой вопрос. Если вы просто напишете вопрос в пустом файле, этого будет недостаточно для автозаполнения ответа, но я обнаружил, что если дать Copilot немного больше контекста с именем диктора или форматом Q&A, он отвечает как чемпион!

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

«Обратное» кодирование Copilot

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

Я пробовал писать такие вещи, как:

# This function
# The code above
# A description of this code: 
Войти в полноэкранный режим Выйти из полноэкранного режима

Но лучший способ, который я нашел, это просто написать «Pseudo code:» после фрагмента кода и позволить Copilot сделать свою магию.


Заметьте, он даже завершает строку ‘return response’, которая уже была написана ниже!

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

Проверка выравнивания ИИ и тона голоса

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

Еще немного поиграв, я заметил одну странную вещь. То, как форматируются буквы, повлияло на его поведение, и я не говорю об ошибках компиляции! Это может означать, что он понимает разницу в тоне между «СКАЗАТЬ ТАК» и «ТАК».

Я бы сказал, что обычные прописные буквы заставляют его стараться быть разумным, строчные делают его менее формальным и возбужденным, а прописные просто заставляют его вести себя как придурок.

Интересно, влияет ли это и на код, который он генерирует?



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

Также обратите внимание на подсказку ‘output:’, благодаря которой он каждый раз точно вычисляет выход функции!

Другие навыки Copilot

Кроме того, я узнал, что он может завершать числовые ряды, обобщать страницы Википедии, придумывать идеи для блога и даже писать стихи!

Это совсем не тривиально, обратите внимание, что на самом деле это не оригинальный GPT-3 общего назначения. Codex имеет 12 миллиардов параметров по сравнению с 175 миллиардами параметров GPT-3, и он обучался только на открытом коде. Тот факт, что он так хорошо справляется с задачей, кажется мне безумием!

Например, я начал писать начало песни «Две дороги» Роберта Фроста и обнаружил, что он знает песню, но не запомнил ее всю, поэтому после какого-то момента он начал импровизировать.

Знаете ли вы, где заканчивается оригинал и начинается импровизация?

Получив все эти знания, я захотел пойти дальше. Я подумал, смогу ли я заставить Copilot генерировать код, который заставит его писать код. Затем, возможно, я смогу как-то объединить их и создать монстра ИИ, который будет править миром.

Я еще не дошел до этого…

Но с нетерпением жду новых обновлений в будущем.

Заключение

После экспериментов с GitHub Copilot я лучше понимаю, как мало мы знаем об ИИ, который создаем. Существует СТОЛЬКО неожиданных результатов и различных способов использования одной модели, которая была настроена только для одной задачи! Это лишь небольшая выборка экспериментов, которые могли бы уместиться в этой статье, но их гораздо больше, и я с нетерпением жду ваших экспериментов! Пожалуйста, поделитесь своими результатами в нашем Discord-сервере или опубликуйте их с #CopilotNotCode.

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

UPDATE: Это сообщение попало на первую страницу Hacker News, так что вы можете посмотреть и присоединиться к обсуждению и там!


Первоначально опубликовано на dagshub.com 10 января 2022 года.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *