3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

非公式ベンチマーク"CodeGolfBench"を開発した話

3
Last updated at Posted at 2025-12-04

はじめに

先日、コードゴルフコンペに参加し、15位チーム銀メダルを獲得しました!
こちらのコンペでは、ARC-AGIデータセット400問の解をどれだけ短く書けるかを競いました。
この記事では、コンペ終了時に我々のチームが持っていたShortestコードデータセットをベースに、そこからの短縮バイト数を指標とする非公式ベンチマーク"CodeGolfBench"を開発した話を共有します。
自分が慣れ親しんだベンチマークを用意することで、新しいAIモデルが登場するたびに、自前で評価をできるようになれば良いなと考え開発しました。

非公式ベンチマーク"CodeGolfBench"について

内容

  • コンペ終了時に我々のチームが持っていたShortestコードデータセットをベースに、そこからの短縮バイト数を指標とします
    • LB=Σ(2500-コードiのバイト数)
    • 短縮なしの場合は、LB=950,770
      • 圧縮アルゴリズムは不使用
  • Kaggleコードゴルフコンペにlateサブミッションを行うことで予測値の有効性を評価します
    • Kaggleプラットフォームで評価することで、主なハックを防止
    • 実行時間制限は1h

作成したベンチマークは以下の通りです(Kaggleノートブックの形式)

使い方

  1. 上記のノートブックをフォーク
  2. SAMPLE_SIZEを指定(1~400)
  3. MODELを指定
  4. Kaggle Secrets経由でLLM APIキーを保存
  5. サブミッションボタンを押す

ベースにしているShortestコードデータセットですが、すでにGPT-5 Proでは短縮が難しいほどにはコードゴルフ済みです。1バイトでも短くなれば凄いです。
参考までに、GPT-5 miniの結果は、SAMPLE_SIZE=400の内で、369件が短縮不可、31件が動作不良でした。つまり、短縮バイト数は0です。

ベンチマークの実装方法について

あまり知られていないですが、KaggleにはBenchmarksという機能があり、こちらから主なベンチマークを確認することができます。

image.png

上記のBenchmarksの内で、MATH-500を参考にしました。実装コードをフォークし、必要な部分を変更することで実装しました。

LLM APIを用いたコードゴルフ部分については、すでにチーム内で開発したコードがあったので、そちらを一部改編の上で実装しています。

まとめ

非公式ベンチマーク"CodeGolfBench"を開発しました。
これまで新しいAIモデルが登場した際は、テクニカルレポートや感覚的な評価に頼っていましたが、自前で定量的に評価できる手段が増えて嬉しいです。新しく登場したAIモデルは、すでに十分コードゴルフされたベースラインを超えることができるのか気になっています。
今後の予定としては、コードゴルフコンペの開催時期には無かった、GPT-5.1とGemini 3の評価ができればと考えています。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?