DeepMind научили решать несложные задачи из спортивного программирования: из условия в код

 Публичный пост

DeepMind уже обучали AlphaGo выигрывать в Го. Буквально вчера анонсировали, что теперь научили новый AlphaCode решать задачи по олимпиадному программированию (доступен препринт). Проверили на задачах с Codeforces — действительно решает, можете глянуть посылки трёх пользователей.

На входе — текст условия на английском и пара примеров. Всё как у обычных участников, только убрали форматирование условия. На выходе — готовый код решения на C++/Python. Иногда решает не с первой попытки, но и у людей на соревновании есть несколько попыток. В посте на Codeforces пишут, что модель получила бы рейтинг порядка 1300 — это в конце верхней половины всех активных за полгода участников соревнований.

Обращаю внимание, что ни о каком "среднем программисте", как пишут некоторые издания, речи и не идёт. Только про решение соревновательных задачи с чётко поставленными задачами и ограничениями. Например, вот сложная для модели (но решила), а вот простая (и решение модели). Кстати, обе эти задачи с Div. 3 раунда (самый простой) на задачах муниципального этапа Всероссийской олимпиады школьников по информатике в Саратове этого года.

По-моему, довольно круто, даже если модель в среднем решает только задачи уровня Div.2 A-B и с вероятностью 50:50. Они, конечно, для опытных спортивных программистов тривиальные и скучные, но и там есть где неправильно понять условие, не разобраться с легендой, не придумать решение, не разобрать крайний случай, придумать слишком медленное решение или просто посадить баг в коде.

Связанные посты
12 комментариев 👇
Egor Suvorov , Программист/преподаватель C++ автор 3 февраля в 11:24

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

  Развернуть 1 комментарий
Maxim Soldatenco , Учусь и Преподаю 3 февраля в 11:26

А OpenAI между тем научили сеть решать задачи с IMO.

  Развернуть 1 комментарий

@Uniphot, это крутая статья, но конкретно про задачки с олимпиад это больше пиар. Задачки они решили только две, про неравенства, с олимпиад 60х годов и для обеих задач есть программируемый алгоритм решения.

  Развернуть 1 комментарий

@undeaddy, так пишешь как будто в 60х IMO было сильно легче нынешнего :)

  Развернуть 1 комментарий

@Uniphot, я пишу, что это это крутая статья, но утверждение "научили сеть решать задачки с IMO" не очень корректное, потому что они решили две задачи, у которых есть четкое алгоритмическое решение. Это крутая статья, но про задачи с IMO это очень сильная натяжка.

  Развернуть 1 комментарий
Yury Katkov , миддл формошлёп 3 февраля в 14:02

А тут не в том ли дело, что обучающая выборка была тоже спарсенным кодфорсом и литкодом?

  Развернуть 1 комментарий

@ganqqwerty, они их всё-таки разделили (иначе это была бы очень базовая ошибка для ML-моделей). Даже довольно строго по времени: обучали на задачах до 2021-07-14, кросс-валидация на задачах между 2021-07-15 и 2021-09-20, тестирование на задачах после 2021-09-21.

А так конечно обучали на задачах с соревнований, просто на других задачах. Как и любую модель обучают на данных, близких к реальным.

  Развернуть 1 комментарий

А чему тут удивляться?

Это уже давно реализовано в Github Copilot и доступно многим.

Берете условие задачи с Leetcode, копируете его в себе в комментарий файла, добавляете сигнатуру функции и Copilot решает все за вас.

  Развернуть 1 комментарий

@qujOFXQkuV3OvXHR, >и доступно многим.

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

  Развернуть 1 комментарий

@koutsenko, ну по моим ощущениям из моих знакомых почти всем у кого не пустой Github аккаунт дали доступ.

  Развернуть 1 комментарий

@qujOFXQkuV3OvXHR, звуки зависти

  Развернуть 1 комментарий

@batazor, Я тоже завидовал первых два месяца после анонса... А теперь сижу и боюсь, чтобы он платным не стал.

  Развернуть 1 комментарий

😎

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

Что вообще здесь происходит?


Войти  или  Вступить в Клуб