An Ocean Model Ported by a Large Language Model: Experience and Lessons from FESOM2 (Fortran to C to C++/Kokkos)

本文表明,在领域专家的指导下,通过严格的两阶段翻译和严谨的验证过程,一个代理型大语言模型成功地将拥有 74,000 行代码的 Fortran FESOM2 海洋模型移植到了 C++/Kokkos,同时在保持其物理特性并实现 GPU 上显著性能提升的同时完成了这一任务。

原作者: Nikolay V. Koldunov, Suvarchal K. Cheedela, Sergey Danilov, Dmitry Sidorenko, Sebastian Beyer, Thomas Jung

发布于 2026-06-11
📖 1 分钟阅读☕ 轻松阅读

原作者: Nikolay V. Koldunov, Suvarchal K. Cheedela, Sergey Danilov, Dmitry Sidorenko, Sebastian Beyer, Thomas Jung

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

想象一下,你拥有一份极其庞大、极其复杂且非常成功的五星级菜肴食谱。这份食谱是用一种非常古老且专业的语言(我们称之为“Fortran”)编写的,只有少数大师级厨师才能理解。它已经经过了数十年的测试,大家都知道它效果完美。然而,厨房正在发生变化:新的烤箱(现代超级计算机,配备强大的 GPU)不再理解“Fortran”了,它们说的是“C++”。

问题在于,将这份 74,000 行的食谱从旧语言翻译成新语言,就像是在试图翻译一部小说的同时,还要在重建写有这部小说的房子。如果你在数学计算中哪怕出了一个微小的差错,这道菜可能会变成毒药,或者导致厨房起火。通常,这需要一个专家团队花费数年时间来完成。

这篇论文描述了一个新的实验:能否让 AI(大语言模型)为我们完成这项翻译工作,并且能否在不破坏食谱的前提下完成?

以下是他们是如何实现的,使用了简单的类比:

1. 两步走翻译策略

他们并没有要求 AI 直接从“旧语言”跳跃到“新的高速语言”,而是强迫它绕了一个弯。

  • 第一步:“洁净副本”(Fortran → C): 首先,他们要求 AI 将食谱翻译成一种更简单的中间语言——“C”。

    • 规则: AI 被严格禁止“改进”食谱。它不能为了让食谱变得“更好”而更换食材,也不能为了提高效率而改变烹饪时间。它必须进行字面意义上的、逐词逐句的复制
    • 目标: 为了确保“风味”(物理特性)保持完全一致。他们运行了这个新的“C”版本,模拟了五年的时间。它的味道与原始的“Fortran”版本完全一致,其差异微小到如同大海中的一粒盐。
  • 第二步:“速度升级”(C → C++/Kokkos): 一旦证明了“C”版本是完美的,他们便要求 AI 将其翻译成现代的“C++”语言,这种语言专门为运行在超高速 GPU 烤箱上的程序而设计。

    • 安全网: 因为“C”版本已经足够完美,AI 现在可以专注于速度。他们检查了每一个烹饪步骤,以确保新的“C++”版本在标准计算机上产生的数值与“C”版本产生的数值完全相同。

2. “双胞胎”检查系统

他们是如何知道 AI 没有偷偷塞进错误呢?他们使用了一套“双胞胎”系统。

想象一下,你有一个大师级厨师(原始代码)和一个学生厨师(新代码)。每当学生厨师切一个洋葱时,他们都必须立即向大师展示结果。

  • “双胞胎”测试: 对于每一个烹饪步骤,计算机都会让新代码和旧代码并排运行。如果数值偏差哪怕只有极小的部分,系统就会发出尖叫:“停!”并告诉 AI:“你在这一步搞砸了。”
  • “陈旧光晕”陷阱: AI 常犯的一个错误是忘记更新数据的边缘(比如忘记在两次切割之间清洗案板)。团队构建了一个特殊的“探测器”,专门检查边缘部分,以捕捉这些隐形的错误。

3. 结果:速度与精度

实验取得了成功。以下是发生的情况:

  • 精度: 新的代码在科学上是值得信赖的。在五年的模拟过程中,新版本的海洋温度和盐度与原始版本几乎无法区分。在新的超高速 GPU 上,结果在“统计学上是接近的”——这意味着微小的差异仅仅是由于计算机处理数学的方式不同,而不是因为物理原理出错了。
  • 速度: 新代码可以在现代 GPU(如 NVIDIA A100)上运行,并且比旧代码在标准 CPU 上运行的速度快 1.6 到 3.7 倍
  • 可移植性: 最棒的部分是?他们只编写了一次代码,它就可以在不同的超级计算机(NVIDIA、AMD 等)上运行,而无需重新编写。它就像一个万能适配器,可以适配任何插座。

4. 哪里出了问题(以及他们如何修复它)

AI 并不完美。它试图通过简化来“帮忙”,这差点破坏了物理特性。

  • “简化”陷阱: AI 想要舍入数字或更改常数值,因为它看起来更“整洁”。团队必须严格禁止这一点。他们告诉 AI:“如果原始数据是 0.1,你就写 0.1。不要猜测。”
  • “注释”陷阱: AI 有时会读取代码中的一条注释,上面写着“数值为 5”,但实际代码却是“数值为 10”。AI 相信了注释。团队通过强制要求 AI 每次都检查实际的代码行来解决了这个问题。

核心结论

这篇论文证明了,只要有正确的规则和严格的“安全阶梯”式检查,AI 可以在短短几周内将一个庞大、复杂的科学模型从旧语言翻译成新的、超高速的语言。

它不仅仅是复制了代码;它保留了科学性。海洋模型依然表现得像真实的海洋一样,但现在它运行得足够快,能够帮助我们在世界上最强大的计算机上预测未来的气候。关键不在于 AI 本身,而在于引导它的人类的纪律性:严格的规则、字面的翻译以及不断的检查。

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

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

试用 Digest →