主页
OpenAI 10 月 19 日的评测怎么设计、数字怎么读、你能借走什么。
How OpenAI's October 19 evals are built, how to read the numbers, and what you can borrow.
10 月 19 日 OpenAI 发了一篇讲“低资源编程语言”的文章,里面有两个评测。一个是让模型用 20 种语言各写一个兼容 SQLite 的数据库;一个是把 COBOL 程序迁移到别的语言,而且要求输出逐字节一致。
数字很夸张:COBOL 迁移准确率,GPT-5.6 Sol 是 5.4%,GPT-6.1 Sol 低推理强度下 86.6%,高推理强度 97.9%。但这些都是 OpenAI 自己报的。我觉得更值得学的是评测的设计:它不看代码像不像,只看“隐藏测试下行为是否完全一样”。你自己给 Agent 派迁移、重构任务时,可以照这个思路搭验收。
On October 19, OpenAI published a post about "low-resource programming languages" with two evals. One asks a model to write a SQLite-compatible database in each of 20 languages. The other migrates COBOL programs to other languages and requires byte-for-byte identical output.
The numbers are big. On COBOL migration, GPT-5.6 Sol scores 5.4%, GPT-6.1 Sol scores 86.6% at low reasoning effort and 97.9% at higher effort. All of these are OpenAI's own figures. What I think is more useful is the eval design: it doesn't ask whether the code looks right, only whether behavior under hidden tests is exactly the same. If you hand migration or refactoring jobs to an agent, you can build your acceptance checks the same way.
“低资源语言”指训练数据和文档少的语言,比如 COBOL、Fortran、Visual Basic、OCaml。文章提到它们支撑着银行、天气预报这类关键系统。
评测一:MultiLangBench(从零写软件)。任务是用 20 种语言各实现一个兼容 SQLite 的数据库引擎。每个实现拿到一个初始数据库和一条 SQL,输出的数据库用真正的 SQLite 做对照检查;测试改自 SQLite 自己的测试套件。指标是通过率和 API 成本。
评测二:COBOL 迁移(保持行为)。把 COBOL 程序迁移到 C++、Java、Kotlin、Python 或 Rust。隐藏测试要求可观察的输出逐字节一致,所有测试都过才算成功。文章特别提到 COBOL 的定点数舍入这类细节容易出错。
"Low-resource" here means languages with little training code and documentation, such as COBOL, Fortran, Visual Basic and OCaml. The post notes they underpin critical systems like banking and weather forecasting.
Eval 1: MultiLangBench (build software from scratch). The task is to implement a SQLite-compatible database engine in each of 20 languages. Each implementation gets an initial database and a SQL query, and its output database is checked against a reference SQLite. The tests are adapted from SQLite's own test suite. Metrics are pass rate and API cost.
Eval 2: COBOL migration (preserve behavior). Migrate COBOL programs to C++, Java, Kotlin, Python or Rust. Hidden tests require byte-for-byte identical observable output, and a migration counts only if every test passes. The post calls out details such as COBOL's fixed-point rounding as a risk.
迁移评测的关键是“拿旧程序当标准答案”:同一批隐藏测试先在旧程序上跑一遍,记下输出;再在 Agent 迁移出来的新程序上跑,逐字节对比。只要有一个测试不同,整个迁移算失败。
这比“让另一个模型看代码对不对”可靠得多,因为它不依赖谁的判断,只依赖输出。代价是你得先有一批能覆盖业务规则的测试。OpenAI 也在文章里说,迁移真实生产系统仍要专家评审,并按业务规则和依赖做测试。
The key idea in a migration eval is to treat the old program as the answer key. The same hidden tests run on the old program first and the output is recorded. Then they run on the program the agent produced, and outputs are compared byte for byte. One differing test fails the whole migration.
That is far more reliable than asking another model whether the code looks right, because it doesn't depend on anyone's judgment, only on output. The cost is that you need tests that cover the business rules first. OpenAI also says in the post that migrating real production systems still needs expert review and tests against the system's business rules and dependencies.
文章给出的数字(都是 OpenAI 自己的结果,我没找到独立复现):
我的看法:从 5.4% 到 86.6% 是一次大跳跃,但“接近做满”也意味着这个评测可能快没有区分度了。这点是我的推测,文章没这么说。
Numbers from the post (all OpenAI's own results; I found no independent reproduction):
My take: going from 5.4% to 86.6% is a big jump, but "close to saturating" also means the eval may soon stop telling models apart. That is my speculation; the post doesn't say it.
仓库是 openai/MultiLangBench(Apache-2.0)。README 的要点:
initial_database、user_query、validation_query。验证查询在真正的 SQLite 3.40.1 上跑,输出必须与期望字符串完全一致。scripts/remove_sqlite.sh,README 要求你自己再验证)、断网。README 没写具体的运行命令,也没列出 20 种语言的名字,所以想复现要自己搭运行脚本。这点我没法替它补。
The repo is openai/MultiLangBench (Apache-2.0). Key points from the README:
initial_database, user_query and validation_query. The validation query runs on real SQLite 3.40.1, and the output must match the expected string exactly.scripts/remove_sqlite.sh, and the README tells you to verify it yourself), and block internet access.The README gives no run commands and doesn't name the 20 languages, so reproducing it means writing your own runner. I can't fill that gap for it.
以上是我从评测设计里总结的做法,不是 OpenAI 的官方建议。
These are my takeaways from the eval design, not official OpenAI advice.
文章没有公开 COBOL 迁移评测本身(只说了 MultiLangBench 的评测在 GitHub 上);所以 86.6% 和 97.9% 没法自己复现。测试集里的 COBOL 程序有多大、多复杂,我也没看到。
还有一点:评测的是“输出一致”,不是“代码好维护”。迁移出来的 Java 能不能让团队接手,是另一个问题。这篇文章没覆盖。
The post doesn't release the COBOL migration eval itself (only MultiLangBench is on GitHub), so the 86.6% and 97.9% figures can't be reproduced by you. I also didn't see how large or complex the COBOL programs in the test set are.
One more thing: the eval measures matching output, not maintainable code. Whether a team can take over the migrated Java is a separate question this post doesn't cover.
文中数字均来自这两个页面,是 OpenAI 自己的结果。我没有找到独立复现。以原文为准。
All numbers come from these two pages and are OpenAI's own results. I found no independent reproduction. Defer to the originals.