ベンチマーク · coding
Aider Polyglot
Aider Polyglot は、コーディングツール Aider によるコード編集ベンチマークで、LLM が多くのプログラミング言語で既存コードをどれだけうまく編集できるかを測ります。スコアは、編集によって正しいコードが生成され、その課題のテストに合格した課題の割合です。
詳しく見る
- 例
- 典型的な項目は、Python、Rust、Go、Java、JavaScript、C++ などの複数言語のいずれかで出される Exercism 風のコーディング演習で、モデルは与えられたソースファイルを編集して必要な関数を実装し、テストに合格させる必要があります。
- 採点方法
- 指標は解けた課題の割合です。編集後のコードがその課題のすべての自動テストに合格したときだけ、その課題は成功とみなされます。Aider は、編集が正しく適用可能な形式で返される頻度も記録します。
- 検証方法
- 結果は自動的に判定されます。編集されたファイルを各演習のユニットテスト一式に対して実行し、すべてのテストに合格した場合にのみ課題は合格となります——人による投票や完全一致の比較はありません。
- 重要な理由
- これは実際の開発者のワークフロー——ゼロから断片を書くのではなく、多くの言語で既存ファイルを編集すること——を反映しているため、モデルがコーディング支援としてどれだけ役立つかの実用的な指標になります。
解説付きの例
課題
Aider Polyglot は 6 言語にわたる Exercism の演習を用いる。モデルは問題仕様とスタブファイル(例:
def abbreviate(words): ... を含む acronym.py)を受け取り、隠された pytest テストスイートが通るように編集しなければならない。仕様例: フレーズを頭字語に変換する — 'Portable Network Graphics' → 'PNG'。空白・ハイフン・アンダースコアを区切りとみなし、その他の句読点は無視する。解答
import re
def abbreviate(words):
return "".join(w[0].upper() for w in re.findall(r"[A-Za-z']+", words))
解説
正規表現が単語トークン(英字と語中のアポストロフィ)を取り出し、各トークンの先頭文字を取って大文字化し連結するので 'Portable Network Graphics' → 'PNG' となる。採点は演習の隠れたユニットテストを実行し、全テストが通った場合のみ得点する(aider はスイート全体で pass@2 を報告)。