Унапредување на програмирањето на програмски јазици со ограничени ресурси
Најновите подобрувања на нашите модели носат поголеми способности за развој и миграција на софтвер во програмски јазици со малку достапни ресурси, како COBOL, Fortran и Visual Basic. За овие јазици има помалку достапен код и документација од кои моделите можат да учат отколку за јазиците како Python и JavaScript. Сепак, врз нив се потпираат критична инфраструктура и основни услуги низ целиот свет. COBOL овозможува функционирање(се отвора во нов прозорец) на повеќе од 40% од системите за онлајн банкарство, 80% од трансакциите со кредитни картички со физичко присуство и 95% од трансакциите на банкомати, додека Fortran се користи за временска прогноза(се отвора во нов прозорец) и анализа на безбедноста на нуклеарните реактори(се отвора во нов прозорец). Подобрувањето на способноста на ВИ да работи во овие јазици би можело да им помогне на тимовите да го одржуваат и модернизираат софтверот од кој зависат основните услуги.
Оваа работа ја насочуваат повратните информации од програмерите и деловните клиенти, кои ни укажаа дека моделите за програмирање често имаат тешкотии со овие јазици. Одржувањето и модернизацијата на овој софтвер може да бидат тешки: документацијата може да е нецелосна, првичните програмери можеби ја напуштиле компанијата, а важните деловни правила може да постојат само во кодот. Без разлика дали тимовите поправаат грешки или мигрираат на друг јазик, тие треба да го зачуваат однесувањето од кое зависат нивните системи.
За да го измериме напредокот, развивме две евалуации. 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%, речиси достигнувајќи го максимумот на евалуацијата.
Заедно, овие резултати покажуваат дека нашите модели стануваат значително подобри во работата со широк спектар програмски јазици, а истовремено и поисплатливи.
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 USD по примерок, во споредба со 3,48 USD за GPT‑5.6 Sol — приближно 78% помалку.
Ги објавуваме поставката за евалуација и пакетот тестови на MultiLangBench на GitHub(се отвора во нов прозорец), заедно со резултатите за секој јазик. Програмерите можат да проверат што тестира евалуацијата, да ги разгледаат резултатите за јазиците што ги користат и да ги утврдат недостатоците што се важни за нивната работа.
Нашата втора евалуација им задава на моделите да мигрираат програми од 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 за задачи за програмирање во јазиците што ги користи вашиот тим. Вашите повратни информации за тоа што функционира, каде моделите имаат тешкотии и на кои јазици или работни текови треба да се фокусираме понатаму го насочуваат начинот на кој ги обучуваме и оценуваме моделите, за подобро да го поддржуваме софтверот од кој зависите.





