Новости
Google выпустил AlphaCode 2 на основе Gemini
По словам Google, модель гораздо способнее своего предшественника.
Сегодня компания Google, наряду со своей моделью искусственного интеллекта Gemini, представила AlphaCode 2, улучшенную версию генератора кода AlphaCode, представленного лабораторией DeepMind компании Google около года назад.
AlphaCode 2 фактически работает на базе Gemini или, по крайней мере, ее разновидности Gemini Pro, дополненной данными конкурсов по программированию. И, по словам Google, модель гораздо способнее своего предшественника — по крайней мере, в одном бенчмарке.
По данным Google, в подмножестве соревнований по программированию, проводимых на Codeforces, платформе для проведения конкурсов по программированию, AlphaCode 2 — на языках Python, Java, C++ и Go — показал лучшие результаты, чем в среднем 85% участников. Это по сравнению с примерно 50% участников, которых его предшественнику удалось обойти на том же подмножестве.
“Мы выбрали 12 недавних конкурсов с более чем 8 000 участников, либо из дивизиона 2, либо из более сложного дивизиона «1+2». Всего получилось 77 задач”, — говорится в техническом описании AlphaCode 2. “AlphaCode 2 решает 43% задач с 10 попыток, что почти в два раза больше, чем у оригинального AlphaCode (25%)”.
AlphaCode 2 может понимать задачи программирования, связанные со «сложной» математикой и теоретической информатикой. Среди прочих достаточно сложных методов AlphaCode 2 способен выполнять динамическое программирование, объясняет научный сотрудник DeepMind Реми Леблон.
Динамическое программирование подразумевает упрощение сложной задачи путем ее разбиения на более простые подпроблемы снова и снова. Леблонд говорит, что AlphaCode 2 знает не только, когда правильно применить эту стратегию, но и где ее использовать. Это немаловажно, учитывая, что проблемы, требующие динамического программирования, были основной загвоздкой для оригинального AlphaCode.
«AlphaCode 2 должен показать некоторый уровень понимания, некоторый уровень рассуждений и проектирования решений, прежде чем он сможет перейти к фактической реализации для решения проблемы программирования», — говорит Леблонд. «И все это он делает на проблемах, с которыми никогда раньше не сталкивался».
AlphaCode 2 решает проблемы, сначала обращаясь к семейству «моделей политики», которые генерируют ряд образцов кода для каждой проблемы. Образцы кода, не соответствующие описанию проблемы, отфильтровываются, а алгоритм кластеризации группирует «семантически схожие образцы кода», чтобы избежать избыточности. Наконец, скоринговая модель в AlphaCode 2 выявляет лучшего кандидата из каждого из 10 крупнейших «кластеров» образцов кода, который и является ответом AlphaCode 2 на поставленную задачу.
Все модели искусственного интеллекта имеют недостатки, и AlphaCode 2 не является исключением. Согласно описанию, AlphaCode 2 требует большого количества проб и ошибок, что слишком дорого для масштабной работы и в значительной степени зависит от способности отсеивать очевидно плохие образцы кода. Переход на более функциональную версию Gemini, такую как Gemini Ultra, может смягчить некоторые из этих проблем, говорится в обзоре.
Что касается того, можно ли ожидать, что AlphaCode 2 когда-нибудь появится в продуктах — AlphaCode так и не был выпущен, — то на брифинге Эли Коллинз, вице-президент по продуктам DeepMind, намекнул на такую возможность.
«Одна из наиболее интересных для меня вещей в последних результатах — это то, что когда программисты сотрудничают с AlphaCode 2 на базе Gemini, определяя определенные свойства, которым должен следовать код, производительность модели становится еще выше», — сказал Коллинз. «В будущем мы увидим, как программисты будут использовать высокоэффективные модели ИИ в качестве инструментов для совместной работы, которые помогают в процессе разработки программного обеспечения — от рассуждений о проблемах до помощи в реализации».