Реми Леблон и Питер Чой из DeepMind о создании AlphaCode и будущем ИИ в IT

Yannic Kilcher 13,3 тыс. 53 мин 4 мин 02.03.2022
Главное

В интервью с Янником Кильхером ведущие инженеры DeepMind Реми Леблон и Питер Чой раскрывают внутреннюю кухню проекта AlphaCode — системы искусственного интеллекта, способной участвовать в соревнованиях по спортивному программированию на уровне среднего человека. Исследователи обсуждают методологию обучения на данных GitHub, борьбу с «галлюцинациями» кода и объясняют, почему массовое сэмплирование вариантов оказалось эффективнее попыток научить модель «рассуждать» как человек.


🚀 Реальность против хайпа: что на самом деле умеет AlphaCode 1:11

После публикации статьи в СМИ появилось множество громких заголовков, однако авторы призывают к осторожности в интерпретациях. Питер Чой отмечает, что самой распространенной ошибкой в медиа стало утверждение, будто система программирует «как средний разработчик».

На самом деле, по словам Чоя, результат AlphaCode соответствует уровню среднего участника соревнований по программированию (competitive programmer), что является гораздо более узкой и специфической метрикой.

Различия между работой инженера и AlphaCode:

🛠 Методология: от GitHub до Codeforces 5:54

Проект начался с амбициозной, почти «невыполнимой» цели — создать систему, способную решать задачи, которые она никогда не видела в обучающей выборке. Для этого команда использовала двухэтапный процесс:

  1. Предварительное обучение (Pre-training): Модель обучалась на огромном массиве данных из открытых репозиториев GitHub.
  2. Тонкая настройка (Fine-tuning): Дообучение на специфическом наборе данных из 12 000–13 000 задач по спортивному программированию.

Питер Чой подчеркивает, что проект жестко следовал конкретной метрике успеха (North Star), что помогало интегрировать новые идеи как изнутри DeepMind, так и из внешних исследований.

🎲 Сэмплирование как замена человеческой интуиции 9:25

Ключевым и самым спорным моментом архитектуры AlphaCode является подход «массового сэмплирования». В отличие от человека, который обдумывает 2–3 варианта решения, модель генерирует до 100 000 и более потенциальных решений для одной задачи.

Реми Леблон выделяет несколько важных наблюдений:

🧠 Умеет ли ИИ «рассуждать»? 10:45

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

Реми Леблон считает вероятным, что эти концепты присутствуют в латентном пространстве, так как модель успешно реализует их для решения сложных задач. Однако он признает, что эти знания «перемешаны» с огромным количеством другого шума, и выбор правильной концепции в нужный момент остается главной трудностью.

Питер Чой добавляет, что из-за авторегрессионной природы (предсказание следующего токена) модель может «осознать», какой алгоритм нужен (например, поиск в глубину DFS), только на середине процесса написания кода.

🔍 Фильтрация: как найти иголку в стоге сена 16:20

Из 100 000 сгенерированных вариантов нужно выбрать всего 10 для отправки на проверку. Команда пыталась обучить отдельную «модель-критика» (value function) для оценки правильности кода, но это не дало значимых результатов. По мнению Реми Леблона, обучение такой функции на малых данных крайне затруднительно.

В итоге AlphaCode использует элегантный метод фильтрации:

⚠️ Ложные срабатывания и «взлом» системы 40:00

На определенном этапе разработки исследователи столкнулись с кризисом: до 40–60% решений оказались «ложными срабатываниями». Модель находила способы «обмануть» тесты, не решая задачу по существу.

Причины ложных срабатываний:

Чтобы решить эту проблему, команда применила метод мутации (fuzzing): они программно генерировали новые входные данные и проверяли на них решения, написанные людьми. Это позволило снизить уровень ложноположительных результатов до приемлемых 4%.

🔮 Будущее программирования глазами авторов 47:54

Реми Леблон и Питер Чой с оптимизмом смотрят на будущее ИИ в разработке. По их мнению, подобные технологии не заменят людей, но радикально изменят процесс обучения и работы.

Прогнозы авторов:

В завершение Реми Леблон призвал научное сообщество активнее работать над этой проблемой, отметив, что для старта исследований не обязательно обладать огромными вычислительными мощностями.

💬 Цитаты

«Большая часть вашей работы как программиста — это не написание кода, а его чтение и понимание.»

Реми Леблон 04:33

«Первый шаг к тому, чтобы делать что-то правильно — это просто сделать это хоть как-то.»

Питер Чой 14:38

«Мы были охвачены несколько скептическим подходом: если результат выглядел слишком хорошим, мы искали баг.»

Реми Леблон 45:06
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
Сэмплирование
Процесс генерации множества случайных вариантов ответа из вероятностного распределения модели.
Fuzzing (фаззинг)
Метод тестирования ПО путем подачи на вход случайных или модифицированных данных для поиска ошибок.
Ложные срабатывания (False Positives)
Ситуации, когда программа проходит тесты, но на самом деле содержит неверный или неэффективный алгоритм.
Кластеризация
Группировка объектов (в данном случае программ) на основе сходства их поведения или выходных данных.
📊 Цифры
🗓 Хронология
  1. 2020 Начало проекта AlphaCode сразу после завершения AlphaStar (ориентировочно 2 года до интервью).
  2. 2022 Релиз статьи AlphaCode и широкий общественный резонанс.
⚖️ Другая сторона
Искусственный интеллект AlphaCode DeepMind Codeforces LLM спортивное программирование