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

Такая несерьезная мысль пришла мне после прочтения несколько сообщения что ChatGPT успешно решает типичные задачи собеседования. Однако известно, что ChatGPT имеет несколько особенностей:

  • ответ содержит элемент случайности. На один и тот же вопрос могут быть правильные и неправильные ответы.

  • ChatGPT формируется на информации из Интернета, опубликованной до сентября 2021 года. Если статус проблемы и ее решение стали доступны до этой даты, то проблема, вероятно, упрощена

Мне было любопытно, в какой степени результаты ChatGPT были «алгоритмической способностью решать проблемы» и насколько случайными или «запоминать решение».

Изложение моего опыта (кратко)

Я решил отобрать несколько десятков заданий с литкодом по двум независимым критериям: легко/сложно и опубликовано до/после сентября 2021 года. Я случайным образом выбрал по 13 заданий в каждой категории, всего 52 задания. Условие каждой задачи было дано при входе в ChatGPT-4 с пояснениями, соответствующими ситуации «алгоритмического интервью». Из сети я ждал кода Python, который проходит автоматические тесты для задачи. Если код не проходил тесты, я делал разовую попытку внести исправления в код.

Результаты

Мой опыт оказался следующим ЧТОeptance rate (т.е. процент правильных решений) с учетом дополнительной попытки:

Легкие

Сложный

До сентября 2021 г.

50%

23%

После сентября 2021 г.

36%

0%

Все это время

42%

12%

Только в одном из 25 неправильных ответов ChatGPT смог действительно улучшить решение, то есть исправить код, который работал неправильно. Непонятно, почему правильный ответ не был получен сразу, так как запрос на улучшение решения не содержал никакой дополнительной информации (кроме того, что ранее предложенное решение не работает).

ЧИТАТЬ   Подключен и подключен: история Интернета в кино и на телевидении

Интерпретация результатов

Результаты можно было бы описать как ожидаемые, если бы речь шла о человеке: простые задачи решать легче, чем сложные (ауф); и увиденные ранее легче, чем новые. Интуитивно кажется, что это объяснение должно быть верным и для результатов языковой модели.

Полученный результат кажется довольно скромным для реального живого кодирования. Представим, что на собеседовании в вымышленную компанию дается два простых задания, которые могут соответствовать вакансиям джуниора или стажера. Шанс, что ChatGPT-4 пройдет собеседование в этом случае, составляет около 18%. Если собеседование состоит из одного простого и одного сложного задания, шансы падают до 5%.

С другой стороны, этот результат выглядит невероятно круто для модели языка общего назначения, которая никогда специально не обучалась написанию кода. Вероятно, в самое ближайшее время мы увидим различные специальные модели, которые значительно превзойдут ChatGPT-4 в живом кодировании.

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

Соединения

Сводная таблица с результатами моего эксперимента

Текстовые результаты и более подробная информация о дизайне эксперимента

Source

От admin