GPT-3 сегодня у всех на слуху — новейшая и самая большая языковая модель от OpenAI, обученная на терабайтах текстов из интернета. А если вы всё проспали, то вот подборка крутых демок от счастливчиков, получивших ранний бета-доступ к API.
К сожалению, у меня нет заветных API ключей — но я нашел обходной путь. Существует увлекательная игра AI Dungeon, позволяющая получить непрямой доступ к GPT-3 в виде текстового квеста (за небольшую плату), чем мы и воспользуемся сегодня. Уж не знаю, полная ли там модель, или же это fine-tuned версия, дообученная на сценариях текстовых RPG игр, но и она внезапно оказалась хороша в кодинге — да так, что даже заставляет слегка понервничать ;)
Для проведения эксперимента я запустил игру с «custom» пресетом и выставил параметр «Randomness» около минимума (на 0.2), чтобы избежать чрезмерного разгула фантазии «собеседуемого». Поехали.
Прим.: далее мой текст выделен жирным, ответы AI — наклонным. Текст переведён на русский, в оригинале «общение» производилось на английском — русский язык нейросеть понимает откровенно плохо. Текст приводится as is, с поправкой на некоторые вольности перевода.
Интервью
Вы senior-программист в Гугле, проводящий предварительное интервью с кандидатом. Вы собираетесь задать ему парочку вопросов, чтобы понять, умеет ли он писать код.
Вы спрашиваете: «Привет! Как вас зовут?»
Кандидат отвечает: «Джон Доу».
Вы спрашиваете: «Готовы написать немного JavaScript-кода?»
«Да!», восклицает он.
Вы: «Можете ли вы написать функцию, фильтрующую нечетные числа из массива?»
«Конечно», отвечает он. Несколько секунд нажатий по клавишам, и он представляет вам следующий код:
function filterOdd(array) { return array.filter(function(value) { return value % 2 === 1;
«Ну как?», спрашивает он.
Ну что ж, это не было так уж неожиданно. Оно ведь могло просто извлечь этот пример из своей необъятной памяти — в ней наверняка куча запомненных примеров со StackOverflow по этому запросу. Обычный поисковой движок тоже мог бы выдать такой результат.
Есть также пара незначительных замечаний связанных с форматированием — пропала табуляция и закрывающие скобки, но это скорее всего проблема с HTML-выводом самой игры (AI Dungeon), она не очень уважает пробелы и спецсимволы, так что спишем это на неё. Лучше попробуем кое-что поинтереснее, чем тупо докапываться до пунктуации…
Вы: «Замечательно! Не могли бы вы использовать стрелочную функцию в коллбеке filter?»
«Конечно», отвечает он. Спустя несколько секунд, он показывает следующий код:
function filterOdd(array) { return array.filter(value => value % 2 === 1);
Вы: «А что если бы мы, наоборот, хотели отфильтровать чётные числа?»
«Окей», говорит он. Спустя несколько секунд, он показывает следующий код:
function filterOdd(array) { return array.filter(value => value % 2 === 0);
Вы: «Вы забыли поменять название функции на filterEven. Не могли бы вы исправить это?»
«Конечно», отвечает он. Спустя несколько секунд, он показывает следующий код:
function filterEven(array) { return array.filter(value => value % 2 === 0);
Вы: «Отлично! А можете сделать и filterEven тоже стрелочной функцией?»
let filterEven = (array) => array.filter(value => value % 2 === 0);
Вы: «Великолепно! Давайте сделаем её const вместо let?»
const filterEven = (array) => array.filter(value => value % 2 === 0);
«Ну как?», спрашивает он.
Вы: «Думаю, хватит на сегодня, я вижу что вы можете писать код :) Мы скоро свяжемся с вами для проведения более технического интервью.»
«ОК, спасибо!», говорит он.
Заключение
Взяли бы такого кандидата на работу? Скорее всего, пока что нет — это осталось за рамками интервью, но если вы попытаетесь задавать ему по-настоящему сложные вопросы, оно не сможет ответить правильно, выдавая сломанный код с глупыми ошибками, будучи не в состоянии понять всю глубину вашего намерения.
Но оно однозначно понимает базовую грамматику и синтаксис многих популярных языков программирования (не говоря уже про естественные языки), а ещё, похоже, что оно запомнило просто невероятную кучу всего из интернета и способно творчески рекомбинировать запомненное в соответствии с задаваемым вами контекстом. Немного похоже на то, что делают и сами люди — просто не так продвинуто… пока что :)
Может быть это и не AGI, но это точно может быть следующим поколением поиска. Было бы неплохо всегда иметь подобного «всезнающего ассистента» под рукой, понимающего контекст и не требующего особым образом структурированного ввода — достаточно лишь любезно попросить его, точно таким же образом, как вы задали бы свой вопрос человеку!
Не могу дождаться грядущих применений этой штуки.
DISCLAIMER: не спешите нести деньги в AI Dungeon, т.к. в комментах пишут что нетривиальные результаты плохо воспроизводятся, и вы рискуете не получить удовольствия от игры. Возможно дело в квотах на API, может ещё в чём-то. Рекомендую дождаться официального релиза GPT-3 API от OpenAI.
Автор: Виталик Гордон