[Перевод] Необычное собеседование: GPT-3 в роли кандидата

?v=1

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.

© Habrahabr.ru