COBOL撑起95%ATM交易,GPT-6迁移老代码准确率97.9%
老代码撑起关键系统
银行转账、信用卡刷卡、ATM取款,这些每天发生无数次的操作,背后是几十年前写下的COBOL代码。COBOL支撑着超过40%的在线银行系统、80%的面对面信用卡交易和95%的ATM交易。另一种老语言Fortran还在用于天气预报和核反应堆安全分析。
难点在于数据和文档太少
编码模型以前很难应付这些语言。问题出在数据稀缺。COBOL、Fortran、Visual Basic属于低资源语言。这类语言里,模型能拿来学习的代码和文档,远少于Python和JavaScript。开发者和企业客户的反馈也一样——模型经常在这些语言上碰壁。
难点不止数据。这类软件的维护和现代化同样麻烦:文档不完整、原始开发者已经离开、关键业务规则只在代码里,这三样都可能碰上。团队修复错误或迁移到另一种语言时,必须保住系统依赖的行为。
新模型强在哪里
新发布的GPT-6系列把注意力放在了这个领域。研究团队的目标,是让模型在更多语言里应用完整的软件工程技能:理解陌生代码库、规划改动、使用构建工具、运行测试、调试失败。他们为此设计了两套评估。
MultiLangBench让模型从零构建一个兼容SQLite的数据库引擎,覆盖20种编程语言。它用数据库文件当统一接口,拿SQLite参考实现来核对结果,测试则改编自SQLite现有测试套件。GPT-6 Astra在这套评估里平均通过率87.4%,GPT-5.6 Sol只有26.8%,每个语言都有提升。Astra在20种语言中的19种得分超过83%,COBOL仍然最难,72%。推理努力拉到最高后,COBOL从10.9%升到72.1%,OCaml从25.6%升到85.8%。Fortran从21.4%升到83.5%,Visual Basic从27.5%升到89.4%。
COBOL迁移评估是另一组。它要求模型把现有COBOL程序迁移到C++、Java、Kotlin、Python或Rust,同时保留每个程序的行为。GPT-6.1 Sol在低推理努力下准确率86.6%,同一设置下GPT-5.6 Sol只有5.4%。API成本则只有后者的61%。提高推理努力后,准确率达到97.9%,接近饱和。
舍入规则
COBOL的难点在于细节。它的定点算术会丢弃多余的十进制数字,除非明确要求舍入。这个行为对习惯了现代语言的人并不直观,迁移时容易被忽略,而它恰恰定义了系统如何计算。
迁移评估的标准因此定得很硬:用隐藏测试,要求可观察输出字节级一致,所有测试通过才算成功。能通过这套检验,说明模型不只是看懂了代码表面,还掌握了语言层面的行为约定。
成本降了
能力提升的同时,成本也在下降。GPT-6 Luna在MultiLangBench上的平均通过率40.3%,超过GPT-5.6 Sol的26.8%。它的估计API成本为每样本0.77美元,GPT-5.6 Sol是3.48美元。但Luna的提升幅度远比Astra小,比如COBOL从10.9%升到17.1%。想要能力还是想要省钱,是个权衡。
评估工具也已公开。MultiLangBench的评估设置和测试套件发布在GitHub,每种语言的结果一并附上。企业可以在自己关心的语言上先跑一遍,再决定是否接入。
生产应用仍有门槛
把迁移能力用于生产软件,研究团队强调仍需专家审查,并针对系统的业务规则和依赖关系做测试。研究环境里的准确率,不等于复杂大型代码库里的真实效果。眼下能做的很具体:通过API,在团队自己的语言上试跑最新模型的编码任务。
关键事实
- 低资源语言(如COBOL、Fortran、Visual Basic)的可用代码和文档比Python和JavaScript少。
- 开发者和企业客户反馈编码模型在这些语言上经常遇到困难。
- 维护和现代化这些软件可能很困难:文档可能不完整,原始开发者可能已离开公司,重要的业务规则可能只存在于代码中。
- 团队在修复错误或迁移到另一种语言时,需要保留系统依赖的行为。
- 开发了两个评估:MultiLangBench测试模型从零构建SQLite兼容数据库引擎的能力,覆盖20种编程语言;COBOL迁移评估测试模型将现有程序迁移到另一种语言同时保留行为的能力。
- 在MultiLangBench上,GPT-6 Astra在20种语言中的平均测试通过率为87.4%,而GPT-5.6 Sol为26.8%,每种语言都有改进。
- GPT-6 Luna在MultiLangBench上达到40.3%的平均测试通过率,估计API成本比GPT-5.6 Sol低约78%。
- 在COBOL迁移评估中,GPT-6.1 Sol在低推理努力下达到86.6%的准确率,而GPT-5.6 Sol仅为5.4%,成本降低39%。