- Регистрация
- 21.07.20
- Сообщения
- 40.408
- Реакции
- 1
- Репутация
- 0
You must be registered for see links
сегодня у всех на слуху — новейшая и самая большая языковая модель от OpenAI, натренированная на терабайтах текстов из интернета. А если вы всё проспали, то вот
You must be registered for see links
от счастливчиков, получивших ранний бета-доступ к API.К сожалению, у меня нет заветных API ключей — но я нашел обходной путь. Существует увлекательная игра
You must be registered for see links
, позволяющая получить непрямой доступ к GPT-3 в виде текстового квеста (за небольшую плату), чем мы и воспользуемся сегодня. Уж не знаю, полная ли там модель, или же это fine-tuned версия, натренированная на сценариях текстовых RPG игр, но и она внезапно оказалась хороша в кодинге — да так, что даже заставляет слегка понервничать Для проведения эксперимента я запустил игру с «custom» пресетом и выставил параметр «Randomness» около минимума (на 0.2), чтобы избежать чрезмерного разгула фантазии «собеседуемого». Поехали.
[SUB]Прим.: далее мой текст выделен жирным, ответы AI — наклонным. Текст переведён на русский, в оригинале «общение» производилось на английском — русский язык нейросеть понимает откровенно плохо. Текст приводится as is, с поправкой на некоторые вольности перевода.[/SUB]
Интервью
Вы senior-программист в Гугле, проводящий предварительное интервью с кандидатом. Вы собираетесь задать ему парочку вопросов, чтобы понять, умеет ли он писать код.
Вы спрашиваете: «Привет! Как вас зовут?»
Кандидат отвечает: «Джон Доу».
Вы спрашиваете: «Готовы написать немного JavaScript-кода?»
«Да!», восклицает он.
Вы: «Можете ли вы написать функцию, фильтрующую нечетные числа из массива?»
«Конечно», отвечает он. Несколько секунд нажатий по клавишам, и он представляет вам следующий код:
function filterOdd(array) {
return array.filter(function(value) {
return value % 2 === 1;
«Ну как?», спрашивает он.
Вы спрашиваете: «Привет! Как вас зовут?»
Кандидат отвечает: «Джон Доу».
Вы спрашиваете: «Готовы написать немного 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);
«Ну как?», спрашивает он.
Вы: «Думаю, хватит на сегодня, я вижу что вы можете писать код
Мы скоро свяжемся с вами для проведения более технического интервью.»
«ОК, спасибо!», говорит он.
«Конечно», отвечает он. Спустя несколько секунд, он показывает следующий код:
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);
«Ну как?», спрашивает он.
Вы: «Думаю, хватит на сегодня, я вижу что вы можете писать код
«ОК, спасибо!», говорит он.
Заключение
Взяли бы такого кандидата на работу? Скорее всего, пока что нет — это осталось за рамками интервью, но если вы попытаетесь задавать ему по-настоящему сложные вопросы, оно не сможет ответить правильно, выдавая сломанный код с глупыми ошибками, будучи не в состоянии понять всю глубину вашего намерения.
Но оно однозначно понимает базовую грамматику и синтаксис многих популярных языков программирования (не говоря уже про естественные языки), а ещё, похоже, что оно запомнило просто невероятную кучу всего из интернета и способно творчески рекомбинировать запомненное в соответствии с задаваемым вами контекстом. Немного похоже на то, что делают и сами люди — просто не так продвинуто… пока что
Может быть это и не
You must be registered for see links
, но это точно может быть следующим поколением поиска. Было бы неплохо всегда иметь подобного «всезнающего ассистента» под рукой, понимающего контекст и не требующего особым образом структурированного ввода — достаточно лишь любезно попросить его, точно таким же образом, как вы задали бы свой вопрос человеку!Не могу дождаться грядущих применений этой штуки.



