VeriContest: A Competitive-Programming Benchmark for Verifiable Code Generation
本論文は、自然言語による記述と専門家による検証済みの形式仕様および機械検証可能な証明を対応付けた、Rust と Verus による 946 題の競技プログラミング問題からなる包括的なベンチマーク「VeriContest」を導入し、現在のモデルのコーディング能力と検証可能なコード生成能力との間に顕著な性能差が存在することを明らかにする。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
すばらしいが経験の浅い建築家に家を建てさせることを想像してみてください。
標準的なコーディングベンチマークの世界では、建築家にシンプルな指示を与えます。「3 つの寝室と台所を持つ家を建ててください」と。建築家は設計図を描き、家を建て、ドアが開き電気がつくかを確認します。もしそうであれば、建築家は合格点を得ます。これは現在の AI モデルがコードを書く様子に似ています。それらは、見た目も動作も「正しく」見えるものを作るのが得意です。
しかし、ハリケーンでも決して崩壊しないことが数学的に保証された家が必要だとしたらどうでしょうか?電気がつくか確認するだけでは不十分です。構造が健全であることを証明する「形式的証明」が必要です。ここで「VeriContest」という論文が登場します。
問題:「動作するが、真実か?」
現在の AI モデルは、視覚検査に合格する家を建てられる才能ある建築家のようです。しかし、彼らはしばしば厳密な工学数学を省略します。外観は問題なさそうでも、特定の応力下でのみ表面化する基礎の隠れた欠陥を持つ家を建てるかもしれません。
この論文の著者たちは、AI をテストする新しい方法が必要だと主張しています。「コードは実行されるか?」と問うのではなく、「このコードが意図したとおりに、かつそれ以外は何もしないことを、数学的に確実証明できますか?」と問う必要があるのです。
解決策:VeriContest
チームは「VeriContest」と呼ばれる大規模な「試験」を作成しました。これは AI 建築家向けのハイステークスなコンペティションですが、3 つの厳格なルールがあります。
- 設計図(仕様): AI はまず数学的な契約書を書かねばなりません。これは単なる記述ではなく、入力と出力が「必ず」どうあるべきかを厳密に定義する一連の規則です。
- 建設(コード): AI はその規則に従う実際のコード(Rust プログラミング言語)を書かねばなりません。
- 工学証明(検証): AI はそのコードが「失敗し得ない」ことを証明する数学的証明を提供しなければなりません。屋根が落ちないことを単に願うのではなく、それを証明する数学を示すようなものです。
彼らはこれを、有名なコーディングコンペティション(LeetCode と Codeforces)から採取した 946 の難問でテストしました。これらは単純な「Hello World」タスクではなく、データ内のパターン発見や経路最適化などに関わる複雑な論理問題です。
構築プロセス
この試験の構築は困難でした。チームは AI に問題を作らせただけではなく、3 つのフェーズで構築しました。
- フェーズ 1(種): 人間の専門家が、完璧な証明を伴う 91 の完璧な例を手作業で記述しました。
- フェーズ 2(拡張): AI アシスタントを用いてさらに多くの問題を生成しましたが、人間の専門家が「編集者」として機能し、数学が正しいかを確認するために一つ一つをチェックしました。
- フェーズ 3(ストレステスト): AI を欺くように設計された「ネガティブテストケース」を作成しました。AI の証明が不完全であれば、これらのトリック問題が欠陥を露呈させます。
結果:巨大な隔たり
世界で最も賢い AI モデルをこの試験に臨ませたところ、結果は驚くほど鮮明でした。
- 「通常」の試験: 説明からコードを書くことのみが求められ(証明は不要)、最高の AI は 92% の確率で正解しました。これは熟練の建築家です。
- 「設計図」の試験: 数学的契約書(仕様)を書くことが求められた場合、スコアは 48% に低下しました。AI は規則を正確に定義することに苦労しました。
- 「証明」の試験: コードが機能することを数学的に証明することが求められた場合、スコアは 14% まで急落しました。AI は数学の重労働をこなすことができませんでした。
- 「完全な試験」(エンドツーエンド): 3 つのステップすべて(設計図+コード+証明)を一度に行うことが求められた場合、最高の AI はわずか 5.3% の成功率でした。
比喩:「完璧な家」
AI をシェフだと想像してください。
- 標準的コーディング: ハンバーガーを注文します。シェフは美味しいハンバーガーを作ります。あなたはそれを食べます。成功です!
- 検証可能なコーディング: ハンバーガーを注文しますが、同時に、肉が特定の農場から来たこと、バンが正確に 350 ドルで焼かれたこと、そしてハンバーガーに隠れたアレルゲンが「一切」含まれていないことを証明する証明書も要求します。シェフはハンバーガーを作れますが、証明書の作成や調理プロセスの背後にある数学の証明は苦手です。
結論
この論文は、AI がプログラムを実行させるための正しいコードを「推測」することに非常に優れてきている一方で、コードが正しいことを「証明」することについては依然として非常に劣っていることを結論付けています。最大のボトルネックはコードを書くことではなく、コードが安全であることを保証する形式的な規則と数学的証明を書くことです。
VeriContest は、数学的にバグフリーであることが保証されたソフトウェアを構築する信頼を得るまでに、AI がどれほど進歩する必要があるかを正確に測定するためのツールとして、研究者たちによって利用されています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。