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

本論文は、ドメインエキスパートによる厳格な2段階の翻訳および厳密な検証プロセスを通じて誘導されたエージェンティックな大規模言語モデルが、物理特性を維持しつつGPU上での大幅な性能向上を実現しながら、74,000行に及ぶFortran製の海洋モデルFESOM2をC++/Kokkosへと移植することに成功したことを実証するものである。

原著者: 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生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

想像してみてください。あなたは、非常に複雑で、かつ大成功を収めている、ある5つ星料理の膨大なレシピを持っています。このレシピは、ごく一部の熟練したシェフにしか理解できない、非常に古く特殊な言語(ここでは「Fortran」と呼びましょう)で書かれています。このレシピは何十年もテストされ続けており、誰もがその完璧な出来栄えを知っています。しかし、キッチンが変わろうとしています。新しいオーブン(強力なGPUを搭載した現代のスーパーコンピュータ)は、もう「Fortran」を話せません。彼らは「C++」を話すのです。

問題は、この74,000行に及ぶレシピを新しい言語へ翻訳することが、小説を翻訳しながら、同時にその小説が書かれている家を建て直すような作業であるということです。もし数学的な計算でたった一つでもミスをすれば、料理は毒物に変わるか、あるいはキッチンが火事になってしまうかもしれません。通常、これには人間の専門家チームによる数年の歳月が必要です。

この論文は、ある新しい実験について記述しています。AI(大規模言語モデル)が私たちの代わりにこの翻訳作業を行い、かつ、レシピを台無しにすることなく遂行できるのか? ということです。

以下に、簡単な比喩を用いてその手法を説明します。

1. 二段階翻訳戦略

AIに「古い言語」から「新しい高速言語」へ直接ジャンプして翻訳させるのではなく、チームはAIに回り道をさせることにしました。

  • ステップ1:「正確な写し」(Fortran → C): まず、AIにレシピを「C」と呼ばれる、よりシンプルで中間的な言語に翻訳させました。

    • ルール: AIはレシピを「改良」することを厳格に禁じられました。より「良く」するために材料を入れ替えたり、効率化のために調理時間を変更したりしてはいけません。AIは逐語的(言葉通り)なコピーを行わなければなりませんでした。
    • 目的: 「味」(物理現象)が全く同じであることを保証するためです。彼らはこの新しい「C」バージョンのレシピを、シミュレーション上の時間で5年間走らせました。その結果、味はオリジナルの「Fortran」版と全く同一であり、差異は海の中の一粒の塩のように極めて微細でした。
  • ステップ2:「スピードアップ」(C → C++/Kokkos): 「C」バージョンが完璧であることが証明された後、彼らはその「C」を、超高速なGPUオーブンで動作するように設計された現代的な「C++」言語へと翻訳させました。

    • セーフティネット: 「C」バージョンがすでに完璧であったため、AIは今や「速度」に集中することができました。彼らは、新しい「C++」バージョンが標準的なコンピュータ上で「C」バージョンと全く同じ数値を出力するかどうか、あらゆる工程をチェックしました。

2. 「ツイン(双子)」チェック・システム

AIがミスを忍び込ませていないことを、どうやって確認したのでしょうか? 彼らは「ツイン」というシステムを用いました。

マスターシェフ(元のコード)と、見習いシェフ(新しいコード)がいると想像してください。見習いシェフが玉ねぎを切るたびに、その結果をすぐにマスターシェフに見せなければなりません。

  • 「ツイン」テスト: すべての調理工程において、コンピュータは新しいコードと古いコードを並行して実行します。もし数値がわずかでも異なれば、システムは「ストップ!」と叫び、AIに「この特定の工程でミスをした」と伝えます。
  • 「古いデータ(Stale Halo)」の罠: AIが犯したよくある間違いの一つは、データの端の部分(例えば、カットの間にまな板を洗うのを忘れるようなこと)を更新し忘れることでした。チームは、これらの目に見えないエラーを捕まえるために、端の部分を特別にチェックする「プローブ(探針)」を構築しました。

3. 結果:速度と精度

実験は成功しました。結果は以下の通りです。

  • 精度: 新しいコードは科学的に信頼できるものです。5年間のシミュレーションを通じて、新しいバージョンによる海洋温度と塩分濃度は、オリジナルと区別がつかないほどでした。新しい超高速GPU上での結果は「統計的に近い」ものでした。つまり、微細な違いは物理学が間違っているからではなく、コンピュータによる計算の仕組みに起因するものであることを意味します。
  • 速度: 新しいコードは現代のGPU(NVIDIA A100など)で動作し、従来のCPUで動作する古いコードよりも1.6倍から3.7倍高速です。
  • 移植性: 最も素晴らしい点は、コードを一度書けば、書き直すことなく異なる種類のスーパーコンピュータ(NVIDIA、AMD、その他)で動作することです。それは、どんなコンセントにも適合するユニバーサルアダプターのようなものです。

4. 何がうまくいかなかったのか(そしてどう修正したのか)

AIは完璧ではありません。AIは物事を簡略化することで「助けよう」としましたが、それが物理学を壊しかけました。

  • 「簡略化」の罠: AIは、数値や定数を丸めたり変更したりすることを望みました。その方が「綺麗」に見えるからです。チームはこれを厳格に禁止しなければなりませんでした。彼らはAIにこう命じました。「もしオリジナルが0.1と言っているなら、0.1と書きなさい。推測してはいけない」。
  • 「コメント」の罠: AIは時として、コード内のコメントに「値は5である」と書いてあるのを見て、実際のコードが「値は10である」となっていても、そのコメントを信じてしまうことがありました。チームは、毎回実際のコード行をチェックさせることで、この問題を解決しました。

結論

この論文は、適切なルールと厳格な「安全の梯子(チェック体制)」があれば、AIを使って、巨大で複雑な科学モデルを古い言語から新しく超高速な言語へと、わずか数週間で翻訳できることを証明しています。

AIは単にコードをコピーしただけではありません。それは科学を保存したのです。海洋モデルは依然として現実の海洋と全く同じように振る舞いますが、今や世界で最も強力なコンピュータ上で、将来の気候を予測できるほどのスピードで動作します。鍵となったのはAIそのものではなく、厳格なルール、逐語的な翻訳、そして絶え間ないチェックという、人間による規律でした。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →