Развитие возможностей программирования на языках с небольшим объёмом обучающих данных
Последние улучшения наших моделей расширяют возможности разработки и миграции программ на языках с небольшим объёмом обучающих данных, таких как COBOL, Fortran и Visual Basic. Для этих языков доступно меньше кода и документации, на которых могут учиться модели, чем для Python и JavaScript. При этом они обеспечивают работу критически важной инфраструктуры и жизненно необходимых служб по всему миру. COBOL обеспечивает работу(открывается в новом окне) более 40% систем онлайн-банкинга, 80% операций с кредитными картами при оплате на месте и 95% операций в банкоматах, а Fortran используется для прогнозирования погоды(открывается в новом окне) и анализа безопасности ядерных реакторов(открывается в новом окне). Развитие способности ИИ работать с этими языками может помочь командам поддерживать и модернизировать ПО, от которого зависят жизненно важные службы.
В этой работе мы опираемся на отзывы разработчиков и корпоративных клиентов: по их словам, модели для программирования часто испытывают трудности с этими языками. Поддерживать и модернизировать такое ПО бывает непросто: документация может быть неполной, разработчики, создавшие программы, могли уже покинуть компанию, а важные бизнес-правила могут быть зафиксированы только в коде. И при исправлении ошибок, и при переносе кода на другой язык командам необходимо сохранять то поведение программ, на которое рассчитана работа их систем.
Чтобы измерить прогресс, мы разработали две методики оценки. MultiLangBench проверяет, может ли модель с нуля создать совместимый с SQLite движок базы данных на каждом из 20 языков программирования. При оценке миграции с COBOL мы проверяем, может ли модель перенести существующие программы на другой язык, сохранив их поведение. Вместе эти методики позволяют оценить два взаимодополняющих навыка: создание нового ПО и сохранение функциональности существующего.
По обеим методикам оценки наши новейшие модели показывают значительно лучшие результаты: гораздо более высокую точность при меньших затратах.
В MultiLangBench средняя доля пройденных тестов GPT‑6 Astra по 20 языкам программирования составляет 87,4% против 26,8% у GPT‑5.6 Sol. Улучшения наблюдаются на каждом из протестированных языков. GPT‑6 Luna также превосходит GPT‑5.6 Sol: доля пройденных тестов достигает 40,3%, а расчётная стоимость использования API примерно на 78% ниже.
При оценке миграции с COBOL GPT‑6.1 Sol достигает точности 86,6% при низком уровне рассуждений против всего 5,4% у GPT‑5.6 Sol, а затраты при этом на 39% ниже. При более высоком уровне рассуждений точность достигает 97,9% — почти максимального результата в этой оценке.
В совокупности эти результаты показывают, что наши модели значительно лучше работают с широким спектром языков программирования и при этом становятся экономичнее.
В MultiLangBench модели предлагается создать совместимый с SQLite движок базы данных на заданном языке программирования. Модель должна организовать кодовую базу, управлять состоянием, обрабатывать ошибки и добавлять новые функции, сохраняя существующую функциональность.
Чтобы сравнивать реализации на разных языках, мы используем файлы баз данных как общий интерфейс. Проверяемая программа получает исходную базу данных и SQL-запрос, а затем выдаёт изменённую базу данных. С помощью эталонной реализации SQLite мы проверяем, соответствует ли содержимое полученной базы данных ожидаемому результату. Это позволяет применять одни и те же тесты независимо от языка, на котором написан движок.
Мы адаптировали тесты из существующего набора тестов SQLite под этот формат. Оценка показывает, какой объём корректно работающей функциональности модель способна реализовать за длительный сеанс программирования. При этом учитываются доля пройденных тестов и стоимость использования API.
При максимальном уровне рассуждений средняя доля пройденных тестов GPT‑6 Astra по 20 языкам составляет 87,4% против 26,8% у GPT‑5.6 Sol. Улучшения наблюдаются на всех протестированных языках, включая COBOL (с 10,9% до 72,1%), OCaml (с 25,6% до 85,8%), Fortran (с 21,4% до 83,5%) и Visual Basic (с 27,5% до 89,4%). Astra набирает более 83% на 19 из 20 языков. Самым сложным остаётся COBOL с результатом 72%.
GPT‑6 Luna — более экономичный вариант, который также превосходит GPT‑5.6 Sol на каждом из протестированных языков. При максимальном уровне рассуждений средняя доля пройденных тестов этой модели достигает 40,3%. В числе улучшений — результаты на COBOL (с 10,9% до 17,1%), OCaml (с 25,6% до 34,1%), Fortran (с 21,4% до 31,4%) и Visual Basic (с 27,5% до 41,6%). При этом расчётная средняя стоимость использования API составляет 0,77 $ за попытку против 3,48 $ у GPT‑5.6 Sol — примерно на 78% меньше.
Мы публикуем инструменты для проведения оценки MultiLangBench и набор тестов на GitHub(открывается в новом окне) вместе с результатами для каждого языка. Разработчики могут изучить, что именно проверяет MultiLangBench, посмотреть результаты для используемых ими языков и выявить недостатки, важные для их работы.
В рамках второй методики оценки моделям предлагается перенести программы с COBOL на C++, Java, Kotlin, Python или Rust, сохранив функциональность каждой программы.
Для успешной миграции необходимо понимать как бизнес-логику программы, так и особенности поведения языка COBOL. Программы на COBOL часто обрабатывают финансовые операции и бизнес-данные. При этом такие детали, как правила округления и обработка отсутствующих записей, отражают требования бизнеса. Например, при арифметических операциях с фиксированной точкой COBOL отбрасывает лишние десятичные знаки, если округление не указано явно. Переписанная программа, которая вместо этого округляет значения, может работать без ошибок, но выдавать иные финансовые результаты.
Чтобы проверить, сохраняются ли эти особенности поведения, мы оцениваем модели на скрытых тестах, которые требуют побайтового совпадения наблюдаемых выходных данных. Миграция считается успешной, только если пройдены все тесты. Способность переносить программы с сохранением их поведения полезна командам, которые поддерживают и модернизируют устаревшие системы. Однако при переносе ПО, используемого в рабочей среде, по-прежнему необходимы экспертная проверка и тестирование с учётом бизнес-правил и зависимостей системы.
В этой оценке GPT‑6.1 Sol достигает точности 86,6% при низком уровне рассуждений против 5,4% у GPT‑5.6 Sol с той же настройкой. При этом стоимость использования API составляет лишь 61% от затрат на GPT‑5.6 Sol. При более высоком уровне рассуждений точность достигает 97,9% — почти максимального результата в этой оценке. Эти результаты показывают прогресс в повышении точности и снижении стоимости миграции кода для команд, которые модернизируют ПО, необходимое их бизнесу.
Результаты этих оценок и отзывы, полученные напрямую от разработчиков и корпоративных клиентов, помогают нам понять, в чём наши модели становятся лучше, а в чём ещё не достигают нужного уровня.
Наша цель — помочь моделям применять навыки разработки ПО на большем числе языков: разбираться в незнакомых репозиториях, планировать изменения, пользоваться инструментами сборки, запускать тесты и устранять ошибки.
Вы можете опробовать наши новейшие модели через API в задачах программирования на языках, которые использует ваша команда. Расскажите, что работает хорошо, с чем модели пока не справляются и каким языкам или рабочим процессам стоит уделить внимание в дальнейшем. Эти отзывы помогают нам определять, как обучать и оценивать модели, чтобы они лучше помогали работать с ПО, от которого зависит ваша деятельность.





