【チェーン・オブ・コード】
Chain of Code とは?
最終更新:
💡 計算はコード、意味の判断はAI。組み合わせて答えを考える
Chain of Code(CoC)とは、言語モデルが問題をコードや疑似コードの形に分解し、実際のコード実行と、言語モデルによる実行の模擬を組み合わせる推論手法。計算と意味の判断を同じ処理の中で扱う。
📌 このページのポイント
- まず言語モデルが、問題を解くためのコードや疑似コードを生成する
- 実行できる部分はインタープリタで処理し、実行できない部分はLMulatorで模擬する
- 処理の途中の状態を更新しながら、計算と意味の判断を組み合わせる
- 研究の評価条件では改善が報告されているが、生成コードや判断の正しさを保証する手法ではない
Chain of Codeって何?
計算だけなら、普通のプログラムでよくない?
そうだね。この手法の特徴は、計算と意味の判断を混ぜられることなんだ。たとえば「一覧にある果物はいくつ?」なら、何を果物と見なすかの判断と、個数の足し算を分けて扱えるよ。
その判断の部分は、どう動かすの?
未定義の関数など、コードとして実行できない部分を言語モデルが模擬するよ。この役割をLMulatorと呼ぶんだ。その出力で途中の変数などの状態を更新し、コードの実行を続ける仕組みだよ。
Chain of Thoughtと何が違うの?
Chain of Thoughtは推論の途中を文章で表すよ。Chain of Codeはコードの構造を使い、実行と模擬を組み合わせるんだ。単にコードを生成して最後まで実行する手法とも、その点が違うよ。
実行結果があれば、必ず正解になる?
そうとは限らないよ。生成したコードの条件が間違うことも、意味の判断を誤ることもあるんだ。論文では推論ベンチマークなどで改善を報告しているけれど、すべての問題に効くという保証ではないよ。生成コードを動かす場合は、実行環境や権限も管理しよう。
まとめ:ざっくりこれだけ覚えればOK!
「Chain of Code」って出てきたら「コードの実行とAIの判断を組み合わせて問題を解く手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Chain of Code」 = コードの連鎖
💬 Chain of Thoughtが文章で推論の途中の手順を表すのに対し、コードの構造を使って問題を分解する手法だよ。Google DeepMind、スタンフォード大学などの研究者らが提案し、2024年のICMLで発表したよ。