Улучшение ИИ при решении задач на соревнованиях по программированию

Улучшение ИИ при решении задач на соревнованиях по программированию

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

Чтобы продемонстрировать это, компания Codium AI, базирующаяся в Израиле, создала AlphaCodium и выпустил программное обеспечение на GitHub в этом месяце. AlphaCodium сам по себе не является большой языковой моделью. Вместо этого это метод, который улучшает возможности решения проблем генеративных инструментов искусственного интеллекта, таких как GPT-4, с помощью того, что генеральный директор Итамар Фридман называет «инжинирингом потоков».

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

Затем модель начинает генерировать код, соответствующий только что описанным спецификациям. Соревнования по программированию, в которых участникам предлагается написать код по спецификации, обычно включают тесты, показывающие, что скрипт должен выводить при заданных входных данных. AlphaCodium генерирует больше таких тестовых примеров, а затем просматривает возможные решения, чтобы проверить, работает ли код должным образом.

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

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

альфакодий

Все общие шаги, которые помогают AlphaCodium создавать код для решения проблем.

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

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

«По сути, мы потратили 95 процентов нашего времени на проектирование потоков и только 5 процентов на оперативное проектирование, и мы не меняли подсказки для каждого [шага]», — добавил Фридман.

Инженеры из Codium проверили производительность своей модели на сотнях задач, использованных при проверке и тестировании частей набора данных CodeForces, собранного Google DeepMind два года назад. Они утверждают, что AlphaCodium лучше справляется с проблемами кодирования, чем модели AlphaCode и AlphaCode2 от Google DeepMind.

Результаты представлены в arXiv бумаги [PDF] AlphaCodium смог правильно ответить на 44 процента вопросов по сравнению с 24 процентами AlphaCode, при этом создав только пять решений по сравнению с десятью выбранными AlphaCode решениями для 107 задач проверки. Интересно, что разрыв сократился, когда дело дошло до 165 тестовых задач: AlphaCodium решила 29 процентов по сравнению с 28 процентами AlphaCode.

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

«Мы гораздо больше сосредоточились на всем процессе тестирования», — сказал Фридман. «Что касается Google, они проделали очень большую работу над генерацией. Они пытаются создать сотни других вариантов, а мы создаем очень мало решений, но тщательно их тестируем, чтобы улучшить код».

AlphaCodium немного лучше, чем последняя модель AlphaCode2 от Google DeepMind, которая в 10,000 XNUMX раз эффективнее своей предшественницы AlphaCode, добавил он.

альфакодий_2

Сравните AlphaCodium с другими современными моделями с точки зрения точности и эффективности

Фридман заявил, что он уверен, что производительность AlphaCodium не связана с утечкой данных, поскольку базовая модель была обучена и протестирована на тех же проблемах. Версия GPT-4, лежащая в основе AlphaCodium, обучалась на тексте, извлеченном из Интернета, вплоть до сентября 2021 года, тогда как проблемы, на которых она тестировала свою систему, были взяты из вышеупомянутого набора данных CodeForces, который был выпущен намного позже.

Однако лучшее сравнение «яблок с яблоком», которое оценивает процесс проектирования потоков, рассматривает способность GPT-4 решать те же самые вопросы с применением AlphaCodium и без него. Обычный старый GPT-4 мог правильно ответить только на 19 и 12 процентов задач в наборах проверки и тестирования соответственно, по сравнению с 44 и 29 процентами варианта на базе AlphaCodium.

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

Codium недавно выпустила новый инструмент для поддержки разработчиков Python, которые теперь могут вызывать AlphaCodium для непосредственного решения проблемы кодирования в своей IDE. Вы можете играть с ним Вот. ®

Отметка времени:

Больше от Регистр