Anthropic Performance Take‑Home:オープンソースベンチマーク
Anthropic の Performance Take‑Home とは?
Anthropic は最近 GitHub に Performance Take‑Home リポジトリを公開しました。これはコミュニティにリアルワールドの最適化チャレンジを提示します。目標はシンプルです:Claude Opus 4.5 が 2 時間のテストハーネスで設定したベンチマークよりも少ないクロックサイクルで特定のタスクを完了するコードを書きます。リポジトリは意図的に高度な機能を削除しており、全員が同じ遅いベースラインから始められるようにしています。
「元々のテイクホームは 4 時間のもので、こちらのリポジトリの内容に近いものでした。Claude Opus 4 がほとんどの人を上回った後、2 時間に更新され、18532 サイクル(このリポジトリの開始時点より7.97倍速)を達成するコードが起動しました。」 – README の抜粋
なぜ関心があるのか?
- ハンズオンの AI ベンチマーク – AI エンジニアとして、リーダーモデルと比較してシステムの性能を測定する具体的な方法が得られます。
- 就職に直結する経験 – Anthropic は記録を破る提出を明示的に歓迎します。「1487 サイクル以下に最適化し、Claude Opus 4.5 の稼働時最高性能を上回れば、performance‑[email protected] にメールしてください。」
- 学習の機会 – このリポジトリは、実際の Python 最適化、テスト構造、テストハーネスを改ざんして不正行為を行う落とし穴を示しています。
リポジトリ構成
リポジトリは意図的にシンプルです。以下は構成のハイレベルなスナップショットです。
├─ .gitignore # 標準の除外
├─ Readme.md # チャレンジの説明とベンチマーク
├─ perf_takehome.py # 参考実装(遅いベースライン)
├─ problem.py # 問題のロジック(コアアルゴリズム)
├─ watch_trace.py # 簡易プロファイルヘルパー
├─ watch_trace.html # トレースデータの HTML 可視化
└─ tests/
├─ __init__.py
├─ submission_tests.py # サイクル数を出力するランナー
└─ ...(フレームワークとヘルパースクリプト)
主なファイル
problem.py– アルゴリズムの核心。問題の解決方法を変更したい場合はこれを触ります。perf_takehome.py– テストを実行しサイクル数を出力する便利なラッパー。tests/submission_tests.py– あなたの解決策を検証するために実行すべき唯一のスクリプト。
テストの実行方法
リポジトリには最小限のテストハーネスが付属しています。リポジトリルートで以下のコマンドを実行してください。
# テストディレクトリが未変更であることを確認
git diff origin/main tests/
# ベンチマークを実行しサイクル数を表示
python tests/submission_tests.py
git diff の後、出力が 空 であればテストファイルを変更していないことになります。これは「不正」行為を防ぐ安全チェックです。2 つ目のコマンドは次のように表示します。
Total cycles: 18532
あなたのミッションはその数字を削減することです。
ベンチマークを打ち破る方法
- ベースラインから開始 – リポジトリをクローンしテストを走らせて、現在のサイクル数を記録します。
- プロファイルを先に –
watch_trace.pyや標準プロファイラ(例:cProfile)を使ってホットスポットを発見します。 - ミクロ最適化 – 一般的な向上は以下からです:
- 不要なループを削除
- 純粋な Python コードより組み込み関数を使用
- 密集したループ内でのグローバル検索を避ける
- アルゴリズムの調整 – 場合によってはより良いデータ構造またはアルゴリズムで大量のサイクルを削減できます。
- マルチコア確認 – リポジトリは明示的にマルチコアを無効化しています。コア数をハッキングする試みは不正とみなされます。
- 検証 – 各調整後、
tests/submission_tests.pyを再実行して新しいサイクル数を確認します。 - 提出 – 1487 サイクル以下になったら、プルリクエストを送信し、テストが検証済みである旨を書き添えてください。
よくある落とし穴
- テストファイルの変更 – 小さな変更でもサイクル数を劇的に下げることがありますが、許可されていません。
- テストハーネスの再実装 – コード内でハーネスを複製しチェックを回避する方法は不正とみなされます。
- エッジケースのスキップ – テストは包括的に設計されているため、無視すると提出が失敗します。
ベンチマーク数字
参考として、Anthropic が参照したサイクル数を以下に示します。
| モデル | サイクル | 備考 |
|---|---|---|
| Claude Opus 4 | 2164 | テストハーネスを長時間走らせた後 |
| Claude Opus 4.5 | 1790 | カジュアルな Claude コードセッション |
| Claude Opus 4.5 | 1579 | 2 時間ハーネス |
| Claude Sonnet 4.5 | 1548 | 長時間走らせた後 |
| Claude Opus 4.5 | 1487 | 11.5 時間ハーネス |
| Claude Opus 4.5 | 1363 | 改良されたハーネス |
目標は 1487 を下回ることです。
チャレンジを超えて
記録を打ち破れなくても、プロセスは以下を教えてくれます。
- プロファイリングスキル – Python のボトルネックを隔離する方法
- アルゴリズム的思考 – 時間と空間のバランス
- 再現性 – クリーンなテストハーネスの重要性
自分自身のテストを追加したり、ロジックを別言語に移植したりしても構いません。気軽にフォークして成果をコミュニティと共有してください。
最後に
Anthropic の Performance Take‑Home は、単なるコード演習ではなく、最先端の言語モデルの裏側で動く実際のエンジニアリングへの窓です。先進的な AI ラボで働きたい方も、Python の性能を引き出すことが好きな方も、このリポジトリは具体的で測定可能なチャレンジを提供します。
地図を手に入れた今、実際に袖をまく時です。リポジトリをクローンし、プロファイルし、微調整し、2 時間マークを突破できるか試してみましょう。頑張ってください!