AIコード生成の評価問題を「実行」で解決
AIが生成したコードの品質を正確に評価するのは、実は非常に難しい問題だ。コードが文法的に正しく見えても、実際に動かしてみると想定外のバグが潜んでいたり、エッジケースで失敗したりすることは珍しくない。
この課題に取り組むため、Hugging FaceのBigCodeチームはBigCodeArenaを発表した。「人間参加型(Human-in-the-Loop)」のコード生成モデル評価プラットフォームとして、これが初めての試みとなる。
従来のベンチマークの限界
これまでのコード生成評価には主に2つのアプローチがあった。
- HumanEval等のベンチマーク: あらかじめ用意されたテストケースでコードを採点するが、現実の多様なプログラミングタスクのごく一部しかカバーできない
- 人手評価: ソースコードを読んで頭の中で実行をシミュレートするのは認知負荷が高く、複雑なUIアプリや長いプログラムになるほど精度が落ちる
たとえば「レスポンシブなフォトギャラリーサイトを作って」と2つのAIに頼んだとき、両方のコードが一見正しく見えても、実際にブラウザで表示して初めて違いが分かることがある。片方は美しいグリッドレイアウトを実現し、もう片方はスタイリングのバグで崩れているかもしれない。実行なしには判断できないのだ。
BigCodeArenaの仕組み
BigCodeArenaはLMArena(Chatbot Arena)のフレームワークを拡張し、コード評価特有の機能を追加している。
リアルタイム実行とサンドボックス環境
生成されたコードはすべて、分離されたサンドボックス環境で自動実行される。Pythonスクリプト、ReactのWebアプリ、PyGameのゲーム、C++のアルゴリズムなど、ソースコードではなく実際の出力結果をユーザーが確認できる。
幅広い言語・フレームワーク対応
現在サポートされている言語・環境は以下の通り。
- 対応言語(10種): Python、JavaScript、TypeScript、HTML、C、C++、Java、Go、Rust、Markdown
- Webフレームワーク: React、Vue、バニラHTML/CSS/JS
- Pythonフレームワーク: Streamlit、Gradio、PyGame
- 図表: Mermaid
- 汎用インタープリタ: PythonおよびJavaScriptのコードインタープリタ、コンパイル言語ランナー
インタラクティブなテスト
Webアプリのボタンをクリックしたり、生成されたゲームをプレイしたり、コードを直接編集して再実行したりと、静的なコード比較では不可能なインタラクティブな検証が可能だ。
マルチターン対話
現実のプログラミング作業と同様に、要件の追加や機能変更、バグ修正の依頼といったマルチターンの対話にも対応している。
5カ月で見えてきた傾向
2025年2月の公開から約5カ月間で、500人以上のユニークユーザーから14,000件以上の会話データと4,700件以上の高品質な優劣投票が集まった。最先端LLM(大規模言語モデル)10種類が評価対象となっている。
ユーザーが持ち込むタスクの内訳は多岐にわたる。
- Webデザイン(36%): レスポンシブなWebサイト、インタラクティブなダッシュボード
- 問題解決(23%): アルゴリズム、データ構造、計算チャレンジ
- ゲーム開発(16%): ゲームロジックやUIの実装
日本の開発者コミュニティへの示唆
BigCodeArenaは誰でも無料で利用でき、コミュニティの投票結果がリーダーボードとして公開される。GitHub CopilotやCursorといったAIコーディング支援ツールを日常的に使う開発者にとって、「どのモデルが実務で最も役立つか」を判断する際の参考資料として活用できるだろう。
日本語でのコード生成評価については今後の展開が注目されるが、まずはコード評価の新たなスタンダードとなりうる取り組みとして、その動向を追っていきたい。