低资源编程语言长期是企业遗留系统的底座,却因训练语料稀缺成为大模型的能力洼地。OpenAI 官方博客披露了针对 COBOL、Fortran、Visual Basic 等语言的最新评测与模型进展,并同步在 GitHub 开源 MultiLangBench 评测设置与测试套件。对开发者而言,比分数更值得关注的是两项评测的设计思路:一项测“从零构建”,一项测“行为保持”。

为什么低资源语言值得单独评测

官方资料给出了这些语言的现实权重:COBOL 支撑超过 40% 的在线银行系统、80% 的线下信用卡交易和 95% 的 ATM 交易;Fortran 用于天气预报和核反应堆安全分析。这些系统面临的共同困境是文档可能不完整、原始开发者可能已离职、关键业务规则只存在于代码中。无论修 bug 还是迁移语言,团队都需要保留系统依赖的行为。

OpenAI 表示,这项工作是依据开发者和企业客户的反馈推进的——编码模型在这些语言上经常表现不佳。因此评测目标不是通用编程能力,而是两个互补技能:构建新软件,以及保留现有软件的行为。

MultiLangBench:用数据库文件做跨语言统一接口

MultiLangBench 要求模型在指定编程语言中构建一个与 SQLite 兼容的数据库引擎。模型需要组织代码库、管理状态、处理错误,并在保留已有功能的前提下添加新特性。

其评测设计的关键在于共享接口:候选程序接收一个初始数据库文件和一条 SQL 查询,输出修改后的数据库;再用参考 SQLite 实现检查结果数据库内容是否符合预期。这样无论引擎用什么语言编写,都能套用同一套测试。测试用例改编自 SQLite 现有测试套件,评测同时报告测试通过率和 API 成本,衡量模型在长编码会话中能构建出多少可用功能。

官方公布的数据(最大推理努力下):

  • GPT-6 Astra 在 20 种语言上平均测试通过率 87.4%,GPT-5.6 Sol 为 26.8%;
  • Astra 在 19/20 种语言上超过 83%,COBOL 仍是最难的,为 72%;
  • 分语言看,COBOL 从 10.9% 提升到 72.1%,OCaml 从 25.6% 到 85.8%,Fortran 从 21.4% 到 83.5%,Visual Basic 从 27.5% 到 89.4%;
  • GPT-6 Luna 平均通过率 40.3%,每样本估计 API 成本 0.77 美元,相比 GPT-5.6 Sol 的 3.48 美元降低约 78%,且在每种测试语言上均优于 GPT-5.6 Sol。

这组数据的工程含义是:低资源语言并非不可用,但语言间差距仍然显著。COBOL 在 Astra 上仍落后平均线约 15 个百分点,说明语料稀缺带来的难度并未被完全抹平。

COBOL 迁移评测:逐字节一致才算通过

第二项评测要求模型把 COBOL 程序迁移到 C++、Java、Kotlin、Python 或 Rust,同时保留程序行为。官方指出,成功迁移需要同时理解业务逻辑和 COBOL 的语言特性。

一个被明确点名的陷阱是定点算术:COBOL 的定点运算默认丢弃多余小数位,除非显式要求舍入。如果重写时改为四舍五入,程序可以无错误运行,却会产生不同的财务结果。这类差异不会以崩溃形式暴露,只会以错误数字的形式出现。

因此评测使用隐藏测试,要求可观察输出逐字节一致,全部测试通过才算迁移成功。官方同时给出边界:这类行为保持能力对维护和现代化旧系统有用,但应用到生产软件仍需专家评审,并针对系统业务规则和依赖进行测试。

数据方面:GPT-6.1 Sol 在低推理努力下达到 86.6% 准确率,GPT-5.6 Sol 同设置下仅 5.4%,且成本为后者的 61%;提高推理努力后准确率达到 97.9%,接近评测饱和。

对迁移实践的启示

结合官方评测设计,可以提炼出几条可执行建议(属于工程分析,非官方结论):

第一,把“行为一致”作为迁移验收的第一指标,而非编译通过或运行无异常。COBOL 迁移的失败模式往往是静默的数值偏差,应建立以输入输出对为单位的回归基线,覆盖舍入、缺失记录处理等边界。

第二,优先选择可自动比对的共享接口。MultiLangBench 用数据库文件隔离语言差异,迁移项目同样可以为待迁移模块定义稳定的输入输出契约,让模型生成的代码和原系统在同一契约下对比。

第三,按语言和任务分别评估成本。官方数据显示 Luna 以约 78% 的成本降幅换取 40.3% 的平均通过率,Astra 则以更高成本换取 87.4%。对遗留系统迁移这类高风险任务,低推理努力下的高准确率(86.6%)比单纯追求最高分更具性价比,但关键模块仍应叠加专家评审。

第四,利用公开评测定位差距。MultiLangBench 的评测设置、测试套件和各语言结果已在 GitHub 发布,团队可以查看评测实际测什么、所用语言的表现如何,再判断哪些缺口与自身工作相关。

OpenAI 在文末说明,其目标是让模型在更多语言上应用软件工程技能:理解陌生仓库、规划变更、使用构建工具、运行测试、调试失败。对企业的现实建议是,把模型放进已有的构建与测试流水线中验证,而不是仅凭基准分数决定迁移策略。