はじめに
先日、コードゴルフコンペに参加し、15位チーム銀メダルを獲得しました!
こちらのコンペでは、ARC-AGIデータセット400問の解をどれだけ短く書けるかを競いました。
この記事では、コンペ終了時に我々のチームが持っていたShortestコードデータセットをベースに、そこからの短縮バイト数を指標とする非公式ベンチマーク"CodeGolfBench"を開発した話を共有します。
自分が慣れ親しんだベンチマークを用意することで、新しいAIモデルが登場するたびに、自前で評価をできるようになれば良いなと考え開発しました。
非公式ベンチマーク"CodeGolfBench"について
内容
- コンペ終了時に我々のチームが持っていたShortestコードデータセットをベースに、そこからの短縮バイト数を指標とします
- LB=Σ(2500-コードiのバイト数)
- 短縮なしの場合は、LB=950,770
- 圧縮アルゴリズムは不使用
- Kaggleコードゴルフコンペにlateサブミッションを行うことで予測値の有効性を評価します
- Kaggleプラットフォームで評価することで、主なハックを防止
- 実行時間制限は1h
作成したベンチマークは以下の通りです(Kaggleノートブックの形式)
使い方
- 上記のノートブックをフォーク
-
SAMPLE_SIZEを指定(1~400) -
MODELを指定 - Kaggle Secrets経由でLLM APIキーを保存
- サブミッションボタンを押す
ベースにしているShortestコードデータセットですが、すでにGPT-5 Proでは短縮が難しいほどにはコードゴルフ済みです。1バイトでも短くなれば凄いです。
参考までに、GPT-5 miniの結果は、SAMPLE_SIZE=400の内で、369件が短縮不可、31件が動作不良でした。つまり、短縮バイト数は0です。
ベンチマークの実装方法について
あまり知られていないですが、KaggleにはBenchmarksという機能があり、こちらから主なベンチマークを確認することができます。
上記のBenchmarksの内で、MATH-500を参考にしました。実装コードをフォークし、必要な部分を変更することで実装しました。
LLM APIを用いたコードゴルフ部分については、すでにチーム内で開発したコードがあったので、そちらを一部改編の上で実装しています。
まとめ
非公式ベンチマーク"CodeGolfBench"を開発しました。
これまで新しいAIモデルが登場した際は、テクニカルレポートや感覚的な評価に頼っていましたが、自前で定量的に評価できる手段が増えて嬉しいです。新しく登場したAIモデルは、すでに十分コードゴルフされたベースラインを超えることができるのか気になっています。
今後の予定としては、コードゴルフコンペの開催時期には無かった、GPT-5.1とGemini 3の評価ができればと考えています。
