Развитие возможностей программирования на редких языках

Источник: OpenAI•

Развитие возможностей программирования на редких языках

Узнайте, как OpenAI совершенствует ChatGPT для работы с редкими языками программирования с помощью новых оценок для разработки программного обеспечения, SQLite и миграции COBOL.

Наши последние достижения в области моделей открывают более широкие возможности для создания и миграции программного обеспечения на редких языках программирования, таких как COBOL, Fortran и Visual Basic. Для этих языков доступно меньше кода и документации для обучения моделей по сравнению с такими языками, как Python и JavaScript, но при этом они поддерживают критически важную инфраструктуру и важнейшие сервисы по всему миру. COBOL поддерживает⁠(opens in a new window) более 40% систем онлайн-банкинга, 80% транзакций по кредитным картам при личных расчетах и 95% транзакций в банкоматах, в то время как Fortran используется в прогнозировании погоды⁠(opens in a new window) и анализе безопасности ядерных архивов⁠(opens in a new window). Повышение способности ИИ работать с этими языками может помочь командам поддерживать и модернизировать программное обеспечение, от которого зависят важнейшие сервисы.

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

Чтобы измерить прогресс, мы разработали два метода оценки. MultiLangBench проверяет, способна ли модель создать совместимый со SQLite движок базы данных с нуля на 20 различных языках программирования. Наша оценка миграции COBOL проверяет, может ли модель перенести существующие программы на другой язык, сохранив их поведение. Вместе они проверяют два взаимодополняющих навыка: создание нового ПО и сохранение функционала существующего.

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

В тесте MultiLangBench модель GPT‑6 Astra достигает среднего процента прохождения тестов в 87,4% на 20 языках программирования по сравнению с 26,8% у GPT‑5.6 Sol, причем улучшения наблюдаются для каждого протестированного языка. GPT‑6 Luna также превосходит GPT‑5.6 Sol, достигая 40,3% при примерно на 78% более низкой предполагаемой стоимости API.

В нашей оценке миграции COBOL модель GPT‑6.1 Sol достигает точности 86,6% при низких затратах на рассуждения по сравнению с всего лишь 5,4% у GPT‑5.6 Sol, при этом обходясь на 39% дешевле. При более высоких затратах на рассуждения точность достигает 97,9%, практически насыщая оценку.

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

1. Создание SQLite с нуля (MultiLangBench)

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

Для сравнения реализаций на разных языках мы используем файлы баз данных в качестве общего интерфейса. Программа-кандидат получает исходную базу данных и SQL-запрос, а затем выдает измененную базу данных. Мы используем эталонную реализацию SQLite, чтобы проверить, содержит ли результирующая база данных ожидаемые данные. Это позволяет нам применять одни и те же тесты независимо от языка, используемого для создания движка.

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

При максимальных затратах на рассуждения GPT‑6 Astra достигает среднего процента прохождения тестов в 87,4% на 20 языках по сравнению с 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⁠(opens in a new window) вместе с результатами для каждого языка. Разработчики могут изучить то, что проверяется в рамках оценки, ознакомиться с производительностью для используемых ими языков и выявить пробелы, имеющие значение для их собственной работы.

2. Миграция кодовой базы COBOL

Наша вторая оценка предлагает моделям перенести программы на COBOL на C++, Java, Kotlin, Python или Rust, сохранив при этом то, что делает каждая программа.

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

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

В этой оценке GPT‑6.1 Sol достигает точности 86,6% при низких затратах на рассуждения по сравнению с 5,4% у GPT‑5.6 Sol при тех же настройках и всего за 61% от стоимости API. При более высоких затратах на рассуждения точность достигает 97.9%, приближая оценку к насыщению. Эти результаты оценки демонстрируют прогресс на пути к более точной и доступной миграции кода для команд, модернизирующих программное обеспечение, от которого зависят их бизнес-процессы.

Повышение возможностей для корпоративного программного обеспечения

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

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

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

О чём эта статья

Ещё в разделе «AI и машинное обучение»

Все →

Ещё от OpenAI