SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2406.07791 · 2024

Judging the Judges: A Systematic Study of Position Bias in LLM-as-a-Judge

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 16 functions out of this paper's own repositories and ran 16 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
Slimshilin/Position-Bias-Analyzer-Demo canonical 16 of 16
FunctionStatusWhere it lives
Claude_context_window Ran Slimshilin/Position-Bias-Analyzer-Demo/subeval/chat_api/claude.py
pointer only (licence: NONE) · get_code("b3186cda66ba698e")
GPT_context_window Ran Slimshilin/Position-Bias-Analyzer-Demo/subeval/chat_api/gpt.py
pointer only (licence: NONE) · get_code("acd86dcb3b21fb02")
Gemini_context_window Ran Slimshilin/Position-Bias-Analyzer-Demo/subeval/chat_api/gemini.py
pointer only (licence: NONE) · get_code("4edd4f61d223fe52")
aggregate_judge_data Ran Slimshilin/Position-Bias-Analyzer-Demo/position_bias_analyzer/calculate_consistency_and_preference/consistency_preference_util.py
pointer only (licence: NONE) · get_code("6a696ae76c55b5e2")
augment_length_stats Ran Slimshilin/Position-Bias-Analyzer-Demo/position_bias_analyzer/position_bias_vs_factors/position_bias_vs_lengths/calculate_length_stats.py
pointer only (licence: NONE) · get_code("bffbd3fb4e1ab9a6")
augment_results_with_overall_winrates Ran Slimshilin/Position-Bias-Analyzer-Demo/position_bias_analyzer/position_bias_vs_factors/position_bias_vs_winrates/calculate_overall_winrate.py
pointer only (licence: NONE) · get_code("ff69251cef4fa95a")
calculate_length_stats Ran Slimshilin/Position-Bias-Analyzer-Demo/position_bias_analyzer/position_bias_vs_factors/position_bias_vs_lengths/calculate_length_stats.py
pointer only (licence: NONE) · get_code("390a970b1fdce16c")
calculate_overall_winrate Ran Slimshilin/Position-Bias-Analyzer-Demo/position_bias_analyzer/position_bias_vs_factors/position_bias_vs_winrates/calculate_overall_winrate.py
pointer only (licence: NONE) · get_code("1ec9bc4d7069a870")
calculate_positional_consistency_and_preference_score Ran Slimshilin/Position-Bias-Analyzer-Demo/position_bias_analyzer/calculate_consistency_and_preference/consistency_preference_calculation.py
pointer only (licence: NONE) · get_code("2a367c5cad3f8101")
cn_string Ran Slimshilin/Position-Bias-Analyzer-Demo/subeval/smp.py
pointer only (licence: NONE) · get_code("e8277b4e02292cbe")
extract_answer Ran Slimshilin/Position-Bias-Analyzer-Demo/position_bias_analyzer/calculate_consistency_and_preference/consistency_preference_util.py
pointer only (licence: NONE) · get_code("726da9cc7c6c575a")
match_answer Ran Slimshilin/Position-Bias-Analyzer-Demo/position_bias_analyzer/calculate_consistency_and_preference/consistency_preference_util.py
pointer only (licence: NONE) · get_code("ecf4b23852cb6c61")
match_answer Ran Slimshilin/Position-Bias-Analyzer-Demo/subeval/subjective/analyze_util.py
pointer only (licence: NONE) · get_code("1f3d4cff9e4b57fd")
proc_task Ran Slimshilin/Position-Bias-Analyzer-Demo/subeval/subjective/analyze_util.py
pointer only (licence: NONE) · get_code("9f7a492d259f95bd")
splitlen Ran Slimshilin/Position-Bias-Analyzer-Demo/subeval/smp.py
pointer only (licence: NONE) · get_code("046fc285c89d080d")
timestr Ran Slimshilin/Position-Bias-Analyzer-Demo/subeval/smp.py
pointer only (licence: NONE) · get_code("b893e74b04f04876")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

LLM-as-a-Judge has emerged as a promising alternative to human evaluators across various tasks, yet inherent biases - particularly position bias, the tendency to favor solutions based on their position within the prompt - compromise its reliability. This exploratory study evaluates position bias in LLM judges across pairwise and list-wise comparison settings, introducing three metrics: repetition stability, position consistency, and preference fairness. Our experiments, involving 15 LLM judges across MTBench and DevBench with 22 tasks and approximately 40 solution-generating models, result in over 150,000 evaluation instances. We identify Judge-Level, Candidate-Level, and Task-Level factors contributing to bias. The findings confirm that position bias is not due to random chance and varies significantly across judges and tasks. While position bias is weakly influenced by the length of prompt components, it is strongly affected by the quality gap between solutions. Our agreement and disagreement analysis among judges further provides insights into the distribution of judging difficulty across the dataset, and highlights the potential for dataset modifications.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2406.07791")
get_code_for_paper("2406.07791")
have("2406.07791")

Connect an agent — have() is free.