← 最新论文
💻 computer science

COBOL-Coder: Domain-Adapted Large Language Models for COBOL Code Generation and Translation

本文提出了 COBOL-Coder,一种通过自动化数据清洗流程构建高质量语料并微调而成的领域专用大语言模型,其在 COBOL 代码生成与翻译任务中显著优于通用模型,并获得了企业开发者的广泛认可。

原作者: Anh T. V. Dau, Shin Hwei Tan, Jinqiu Yang, Nghi D. Q. Bui, Anh Tuan Nguyen

发布于 2026-04-07
📖 1 分钟阅读☕ 轻松阅读

原作者: Anh T. V. Dau, Shin Hwei Tan, Jinqiu Yang, Nghi D. Q. Bui, Anh Tuan Nguyen

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文讲述了一个关于**“如何教人工智能(AI)读懂并编写古老编程语言 COBOL"**的故事。

为了让你更容易理解,我们可以把整个研究过程想象成**“招聘并培训一位专门修复古董钟表的年轻学徒”**。

1. 背景:为什么需要这位“学徒”?

想象一下,全球银行、保险公司和政府的核心系统,就像一座座巨大的**“古董钟表”。它们内部使用的零件和齿轮语言叫COBOL**。这套语言非常古老(像 1960 年代的机械图纸),但至今仍在精准运转,支撑着世界的金融命脉。

现在的 AI(大语言模型,LLM)就像一群**“精通现代智能手机和电脑编程的天才”**。它们能写出非常漂亮的现代代码(像 Python 或 Java),但一旦让它们去修那些“古董钟表”(写 COBOL),它们就完全懵了。

  • 现状:让普通 AI 写 COBOL,就像让一个只会开法拉利的赛车手去开拖拉机,或者让一个只会说英语的人去翻译古埃及象形文字。它们要么写不出能运行的代码,要么写出来的东西全是乱码。
  • 问题:因为 COBOL 太老了,网上公开的“教科书”和“练习题”(训练数据)非常少,而且很多都在大公司的保险柜里,AI 根本学不到。

2. 解决方案:打造“COBOL-Coder"

为了解决这个问题,作者们开发了一个叫COBOL-Coder的专用 AI。他们并没有发明新的 AI 大脑,而是给现有的 AI 大脑进行了一次**“特种部队式的特训”**。

他们的特训过程分为三步,就像给学徒准备教材:

第一步:去“废品站”淘金并修复(数据清洗)

  • 做法:他们在 GitHub(代码仓库)上搜集了成千上万个 COBOL 文件。
  • 挑战:很多文件是坏的、缺零件的,或者语法错误的(就像从废品站捡回来的钟表,有的缺齿轮,有的生锈了)。
  • 修复:他们让 AI 充当“老工匠”,利用编译器(就像钟表检测机)的报错信息,自动把坏代码修好。如果修不好,就反复修,直到钟表能走字为止。
  • 结果:得到了 3 万多份**“完好无损、能直接运行”**的 COBOL 代码。

第二步:制造“模拟练习题”(合成数据)

  • 挑战:即使修好了,数量还是不够多,不够 AI 练手。
  • 做法:他们利用 AI 强大的翻译能力,把现代语言(Java)写的程序,“翻译”成 COBOL。
  • 验证:翻译过来的东西可能“形似神不似”。所以,他们设计了一套**“双向翻译测试”**:把 Java 翻译成 COBOL,再把 COBOL 翻回 Java,对比前后是否一致。只有那些“翻来翻去意思都没变”的高质量数据,才被留下来作为教材。
  • 结果:通过这种方法,他们“无中生有”地制造了数十万条高质量的 COBOL 练习题。

第三步:编写“教科书”(指令微调)

  • 做法:光有代码不行,还得有题目。他们让 AI 根据代码生成自然语言的题目(比如:“请写一个程序计算存款利息”),并配上标准答案。
  • 结果:这就形成了一套完整的**“COBOL 编程特训营”**,包含题目、答案和详细的解题思路。

3. 实战演练:效果如何?

他们把这位经过特训的COBOL-Coder(学徒)和那些**“普通 AI 天才”**(通用大模型,如 GPT-4)放在一起考试。

  • 考试一:写代码(生成任务)

    • 普通 AI:大部分直接交白卷,或者写出一堆编译不过的乱码。GPT-4o 稍微好点,但也只有一半能跑通。
    • COBOL-Coder:表现惊人!它写出的代码74% 都能直接编译运行,而且逻辑正确率接近 50%。它就像那个真正懂古董钟表结构的学徒,一出手就是能用的零件。
  • 考试二:翻译代码(双向翻译)

    • COBOL 转 Java:大家都能做,但 COBOL-Coder 做得更地道。
    • Java 转 COBOL(最难): 这是“把现代汽车图纸画成古代马车图纸”。普通 AI 几乎全败,写出来的东西完全不符合 COBOL 的规矩。而 COBOL-Coder 却能成功翻译出**72%**的可运行代码。
    • 比喻:普通 AI 试图把汽车引擎硬塞进马车里,而 COBOL-Coder 懂得如何把引擎拆解,重新组装成马车能接受的传动结构。

4. 专家点评:老工匠怎么看?

作者们还找来了3 位真正的 COBOL 老工程师(就像钟表行里的资深师傅)来盲测这些代码。

  • 老工匠的评价
    • 普通 AI:写出来的代码虽然看起来像那么回事,但结构松散,不符合行业规范,甚至有些地方根本没法在老系统上跑。就像学徒画了个很漂亮的钟表,但装不上发条。
    • COBOL-Coder:写出来的代码**“很有老派风格”。它懂得怎么组织代码结构,怎么处理文件,怎么符合大公司的规范。老工匠们觉得它更像是一个“有经验的初级工程师”**,写出的草稿可以直接拿来修改使用,大大减轻了他们的脑力负担。

5. 核心启示

这篇论文告诉我们一个深刻的道理:
在老旧、稀缺的领域,单纯把 AI 的“个头”(参数量)变大是没有用的。
就像你想修古董钟表,给一个只会造火箭的博士(大参数通用模型)看图纸,他可能还不如一个专门研究钟表的小学徒(小参数但经过专业特训的模型)管用。

关键不在于“谁更聪明”,而在于“谁更懂行”。
通过精心收集数据、修复数据、针对性训练,我们完全可以让 AI 在古老的领域里焕发新生,帮助人类完成那些看似不可能的“系统现代化”任务。

总结

这就好比:

  • 以前的 AI:是一个博学但不懂行情的“通才”,面对古董钟表只能瞎猜。
  • 现在的 COBOL-Coder:是一个拿着专门教材、经过严格特训的“专才”,虽然个头不大,但能精准地修好每一块古董表,还能把现代设计图翻译成老式图纸。

这项研究不仅拯救了古老的 COBOL 代码,也为未来处理其他冷门、老旧的编程语言提供了完美的**“特训模板”**。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →