【チェーン・オブ・コード】

Chain of Code とは?

最終更新:
💡 計算はコード、意味の判断はAI。組み合わせて答えを考える

Chain of Code(CoC)とは、言語モデルが問題をコードや疑似コードの形に分解し、実際のコード実行と、言語モデルによる実行の模擬を組み合わせる推論手法。計算と意味の判断を同じ処理の中で扱う。

📌 このページのポイント
Chain of Code:実行と模擬を組み合わせる問題をコードに分解果物か判断する → 個数を足す意味の判断と計算が混ざる例実行できる部分+ 個数の計算インタープリタ実行できない部分? 果物かの判断LMulatorが模擬途中の状態を更新して処理を続けるコードもAIの判断も誤る可能性がある
2種類の処理を必要に応じて組み合わせます。実行結果や模擬の判断が、常に正解になるわけではありません。
ひよこ ひよこ
Chain of Codeって何?
ペンギン先生 ペンギン先生
AIが問題をコードや疑似コードの形に分解し、実行できる部分はプログラムとして動かす手法だよ。普通のコードでは処理しにくい意味の判断には、言語モデルによる実行の模擬も組み合わせるんだ。
ひよこ ひよこ
計算だけなら、普通のプログラムでよくない?
ペンギン先生 ペンギン先生
そうだね。この手法の特徴は、計算と意味の判断を混ぜられることなんだ。たとえば「一覧にある果物はいくつ?」なら、何を果物と見なすかの判断と、個数の足し算を分けて扱えるよ。
ひよこ ひよこ
その判断の部分は、どう動かすの?
ペンギン先生 ペンギン先生
未定義の関数など、コードとして実行できない部分を言語モデルが模擬するよ。この役割を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で発表したよ。

参考資料

← 用語集にもどる