OpenAI 提升模型處理低資源程式語言的能力
Advancing Coding in Low-Resource Programming Languages
OpenAI 表示,其最新模型在低資源程式語言開發及 COBOL 遷移評測中取得進展,兩項測試分別衡量建置軟件與保留既有程式行為的能力。
文章以兩項評測呈現模型在低資源程式語言建置與 COBOL 遷移上的表現,並提供準確率及 API 成本比較。
[ COBOL ][ OCaml]
[ Fortran][ Visual Basic ]
推動資源較少的程式語言的程式設計發展
載入中…
分享
- 從零開始建置 SQLite(MultiLangBench)
我們最新模型的進展,提升了在 COBOL、Fortran 和 Visual Basic 等資源較少的程式語言中建置及遷移軟件的能力。與 Python 和 JavaScript 等語言相比,模型可供學習的這些語言程式碼和文件較少,但它們支援全球的關鍵基礎設施和重要服務。COBOL 支援(在新視窗開啟)超過 40% 的網上銀行系統、80% 的實體信用卡交易,以及 95% 的 ATM 交易;Fortran 則用於天氣預測(在新視窗開啟)和核紀錄安全分析(在新視窗開啟)。提升 AI 使用這些語言的能力,有助團隊維護及現代化重要服務所依賴的軟件。
這項工作參考了開發人員和企業客戶的意見。他們告訴我們,程式編碼模型往往難以處理這些語言。維護及現代化這些軟件可能並不容易:文件可能不完整,原開發人員可能已離開公司,而重要的業務規則可能只存在於程式碼中。無論團隊是在修正錯誤,還是遷移至另一種語言,都需要保留系統所依賴的行為。
為了衡量進展,我們開發了兩項評測。MultiLangBench 測試模型能否使用 20 種不同的程式語言,從零開始建置與 SQLite 相容的資料庫引擎。我們的 COBOL 遷移評測則測試模型能否將現有程式遷移至另一種語言,同時保留其行為。兩項評測合起來測試兩種互補的技能:建置新軟件,以及保留現有軟件的功能。
我們最新的模型在兩項評測中均有顯著進步,準確度大幅提升,成本亦有所降低。
在 MultiLangBench 中,GPT‑6 Astra 在 20 種程式語言的平均測試通過率達到 87.4%,高於 GPT‑5.6 Sol 的 26.8%,而且在所有受測語言中均有進步。GPT‑6 Luna 的表現亦優於 GPT‑5.6 Sol,達到 40.3%,預計 API 成本則低約 78%。
在我們的 COBOL 遷移評測中,GPT‑6.1 Sol 在較低推理力度下的準確度達到 86.6%,而 GPT‑5.6 Sol 僅為 5.4%,成本亦低 39%。在較高推理力度下,準確度達到 97.9%,幾乎觸及評測上限。
整體而言,這些結果顯示,我們的模型處理各種程式語言的能力大幅提升,同時成本效益亦有所提高。
1. 從零開始建置 SQLite(MultiLangBench)
MultiLangBench 要求模型使用指定的程式語言,建置與 SQLite 相容的資料庫引擎。模型必須整理程式碼庫、管理狀態、處理錯誤,並加入新功能,同時保留現有功能。 .
為了比較不同語言的實作,我們使用資料庫檔案作為共用介面。候選程式會接收初始資料庫和 SQL 查詢,然後輸出經修改的資料庫。我們使用 SQLite 參考實作,檢查結果資料庫是否包含預期內容。這樣,無論建置引擎時使用哪種語言,我們都能套用相同的測試。
我們將 SQLite 現有測試套件中的測試改編為這種格式。這項評測衡量模型在較長的編碼工作階段中能構建多少可運作的功能,並同時列出測試通過率和 API 費用。
在最高推理力度下,GPT‑6 Astra 在 20 種語言中的平均測試通過率達到 87.4%,高於 GPT‑5.6 Sol 的 26.8%。所有受測語言均有所改善,包括 COBOL(10.9% 至 72.1%)、OCaml(25.6% 至 85.8%)、Fortran(21.4% 至 83.5%)和 Visual Basic(27.5% 至 89.4%)。Astra 在 20 種語言中有 19 種的得分高於 83%,而 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,相較之下,GPT‑5.6 Sol 為 $3.48,低約 78%。
C C#C++COBOL Common Lisp Fortran Go Java JavaScript Lean OCaml PHP PowerShell Python Ruby Rust Scala Swift Visual Basic Zig
我們在 GitHub(在新視窗中開啟)發布 MultiLangBench 評測設定和測試套件,並提供各語言的結果。開發者可以查看評測測試的內容、檢視模型在自己使用的語言中的表現,並找出與自身工作相關的不足。
2. 遷移 COBOL 程式碼庫
我們的第二項評測要求模型將 COBOL 程式遷移至 C++、Java、Kotlin、Python 或 Rust,同時保留各程式的原有功能。
成功遷移需要理解程式的業務邏輯,以及 COBOL 特有的語言行為。COBOL 程式經常處理金融交易和業務紀錄,其中捨入規則和缺失紀錄的處理等細節,反映了業務要求。例如,除非明確要求捨入,否則 COBOL 的定點算術會捨棄多餘的小數位。若改寫程式將這些數值捨入,程式即使能正常執行,也可能產生不同的財務結果。
為了測試這些行為是否得以保留,我們使用隱藏測試評估模型,要求可觀察輸出逐位元組一致。只有通過所有測試,遷移才算成功。這類保留行為的能力對維護和現代化改造舊系統的團隊很有用,但若要應用於正式環境的軟件,仍須由專家審查,並根據系統的業務規則和相依項目進行測試。
在這項評測中,GPT‑6.1 Sol 在低推理力度下的準確率達到 86.6%;相比之下,GPT‑5.6 Sol 在相同設定下的準確率為 5.4%,而 GPT‑6.1 Sol 的 API 費用僅為其 61%。推理力度提高後,準確率達到 97.9%,評測結果接近飽和。這些評測結果顯示,對於正為企業賴以運作的軟件進行現代化改造的團隊而言,程式碼遷移正朝着更準確、成本更低的方向進步。
提升企業軟件方面的能力
這些評測,加上開發者和企業客戶的直接回饋,有助我們瞭解模型在哪些方面有所改善,以及仍有哪些不足。
我們的目標是協助模型將軟件工程技能應用於更多程式語言:理解陌生的程式碼庫、規劃改動、使用建置工具、執行測試,以及除錯。
你可以透過 API,使用團隊採用的程式語言,試用我們最新的模型來處理編碼任務。你對哪些做法有效、模型在哪些方面遇到困難,以及我們下一步應聚焦哪些語言或工作流程的意見,有助我們制定模型的訓練及評估方式,讓模型更好地支援你所依賴的軟件。
作者
OpenAI
來源:OpenAI News · openai.com