Eloレーティングとは
Elo Rating
対戦結果の勝敗から、相対的な強さを1つの数値で表すレーティングシステム
ひとことで言うと
チェスの強さを測る仕組みを応用し、AI同士の対戦成績から実力を数字で表す方法。
概要
Eloレーティングは、元々チェスプレイヤーの相対的な実力を数値化するために考案されたレーティングシステムで、2者の対戦結果(勝ち・負け・引き分け)の積み重ねから、それぞれの相対的な強さを1つの数値として算出する。 各対戦の前に両者のレーティング差から期待勝率を計算し、実際の対戦結果が期待勝率からどれだけ乖離したかに応じてレーティングを上下させる仕組みを持つ。 このため格上に勝てば大きくレーティングが上がり、格下に勝ってもわずかしか上がらない。 このように、対戦相手の強さを考慮した評価ができる。 Chatbot Arenaでは、人間の評価者が2つのLLMの応答を比較して好みを投票し、その大量の対戦結果からEloレーティングを算出することで、多数のLLM同士の相対的な性能を1つのランキングとして表現している。 絶対的な正解が存在しない自由記述の応答品質を、人間同士の相対比較の積み重ねによって間接的にランキング化できる点が、選択式ベンチマークにはない特徴として評価されている。
背景
チェスのような対戦競技では、単純な勝率だけでは対戦相手の強さを考慮した実力比較ができない。 Eloレーティングは、対戦相手の強さを踏まえた期待勝率という考え方を導入することで、公平な相対的強さの指標を提供するために考案され、後にLLMの相対評価にも応用されるようになった。
歴史
1960年代: Arpad EloがチェスプレイヤーのレーティングシステムとしてEloレーティングを考案。 1970年: 国際チェス連盟(FIDE)が公式のレーティングシステムとして採用。 2023年: Chatbot ArenaがLLM同士の相対評価にEloレーティングを応用し、LLM評価の分野で広く知られるようになる。
アーキテクチャ
プレイヤー(モデル)AとBのレーティングをそれぞれRa、Rbとすると、Aの期待勝率は 1 / (1 + 10^((Rb-Ra)/400)) という式で計算される。 実際の対戦結果S(勝ち=1、引き分け=0.5、負け=0)と期待勝率の差に、レーティングの変動幅を決めるK係数を掛けた値を、対戦後のレーティングへ加算・減算することで更新する。 Chatbot Arenaでは、この基本式をブートストラップ法などで安定化させた変種を用い、多数のモデル間の対戦結果からレーティングを算出している。
ワークフロー
2つのモデルのレーティングの差から、対戦前の期待勝率を計算する。 実際の対戦結果(人間の投票による勝敗)が期待勝率をどれだけ上回った・下回ったかに応じて、両者のレーティングを増減させる。 これを大量の対戦データに対して繰り返すことで、各モデルのレーティングが実力を反映した値に収束していく。
コード例
Eloレーティングの更新計算
def expected_score(ra, rb):
return 1 / (1 + 10 ** ((rb - ra) / 400))
def update_rating(ra, rb, score_a, k=32):
ea = expected_score(ra, rb)
return ra + k * (score_a - ea)
# モデルAがモデルBに勝った場合(score_a=1)
new_ra = update_rating(1500, 1500, score_a=1)
print(new_ra) # 1516.0利点
- 対戦相手の強さを考慮した、公平感のある相対評価ができる
- 絶対的な正解が存在しない自由記述タスクでも、相対比較の積み重ねからランキングを構成できる
- 対戦データが増えるほどレーティングの精度が安定し、継続的な評価に向いている
欠点
- 十分な対戦数が集まらないと、レーティングの値が不安定になりやすい
- 評価者(投票者)の好みの偏りが、レーティングの結果に影響する
- レーティングの数値だけでは、なぜその評価になったかという具体的な理由がわからない
比較
- Chatbot Arena — Chatbot Arenaは、人間の投票結果からEloレーティングを算出してLLMをランキングするプラットフォーム
- LLM-as-a-Judge — Eloレーティングが相対比較の積み重ねでランキングを作るのに対し、LLM-as-a-Judgeは個々の応答を直接採点する
- MT-Bench — MT-BenchのLLMによる直接採点とは異なり、Eloレーティングは対戦・投票データを基にした間接的な評価方法
関連用語
よくある質問
EloレーティングとLLM-as-a-Judgeの違いは?
LLM-as-a-Judgeは個々の応答に対し直接点数を付けたり優劣を判定したりするのに対し、Eloレーティングは大量の対戦(比較)結果を積み重ね、相対的な強さを1つの数値として算出する。
なぜチェスのレーティングをLLM評価に使う?
絶対的な正解が存在しない自由記述の応答品質を、人間による相対比較の投票結果を積み重ねることで、公平感のあるランキングとして表現できるため。Chatbot Arenaがこの手法を採用している。