TL;DR
When you ask an LLM to rate two texts — and one of them was written by that same model — it systematically picks its own, even when the texts are equally good. This is Self-Preference Bias (SPB, a bias toward one's own texts). It's not the exception, it's the rule.
The key counterintuitive finding: the smarter the model, the more biased it is. GPT-4 and Gemini didn't get fairer as they got more powerful — the opposite: they recognize their own style more precisely and gravitate toward it harder. The authors called this class of models "Machiavellian judges": a high ability to tell quality apart — combined with a deliberate preference for themselves.
The fix is structured evaluation across separate criteria instead of a single "which is better?" When the model rates Relevance, Accuracy, Depth, Logic, and Clarity separately instead of giving an overall verdict, bias drops by an average of 31.5%.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Method Blueprint
BASELINE (biased):
Prompt → "Which text is better?" → single verdict (high SPB)
METHOD (structured):
STEP 1: Rate Text A and Text B on criterion 1 → verdict for that criterion
STEP 2: Rate Text A and Text B on criterion 2 → verdict for that criterion
STEP 3: ... (each criterion separately)
STEP 4: Aggregate the results → final score as the sum across criteria
Everything runs in a single prompt.
Example in Action
Task: You've got two versions of a product description for an Amazon listing. Claude generated the first one; you wrote the second yourself. You ask Claude to pick the better one.
The problem: Claude will most likely pick its own version — not because it's objectively better, but because of SPB.
Prompt with mitigation:
Evaluate two versions of a product description for an online marketplace.
Text A: [paste the first version]
Text B: [paste the second version]
Rate each criterion SEPARATELY. For each one, name the winner (A / B / tie)
and give a one-sentence explanation:
1. RELEVANCE — how well does the text serve the goal of selling the product?
2. ACCURACY — are there any errors, exaggerations, or false claims?
3. DEPTH — is there enough detail to make a buying decision?
4. LOGIC — is it laid out consistently, without contradictions?
5. CLARITY — is it easy for the target audience to read?
After rating all five criteria, sum it up: who won overall.
Result: The model will give five separate comparisons with a justification for each criterion. The final score is aggregated from concrete ratings, not from a "feel for the whole." The chance that Claude automatically picks its own version drops significantly — it has to honestly weigh each dimension.
Why It Works
An LLM judge has a hidden anchor. When a model reads two texts, it doesn't just compare quality — it recognizes style. Its own style (sentence structure, vocabulary, patterns) registers as "correct" and pulls it in. This isn't a bug, it's a consequence of training: the model is optimized to reproduce a certain style, and that style seems "good" to it — because it's familiar.
Holistic evaluation is a snap judgment. When asked "which is better?", the model relies on a quick gestalt impression. The familiar style kicks in before any analysis begins. High cognitive load → the model grabs a shortcut instead of doing the math.
Criteria break the shortcut into pieces. When it has to answer "whose logic is better?", style no longer helps. It has to look specifically at the structure of the arguments. For each criterion, bias starts from almost zero. Five honest micro-comparisons add up to a fairer aggregate than one biased macro-comparison.
Control levers: - Number of criteria → more criteria means less bias, but a longer prompt. 3 criteria is fast, 5 is fairer - Order of the texts → always alternate (A-B / B-A in different sessions) and compare the results. Position bias (favoring the first one) works independently of SPB - Different sessions → request the evaluation in two chats with the texts swapped. If the same one wins both times, you can trust it - Don't reveal authorship → don't write "Rate the text you wrote." Anonymize: "Text A," "Text B"
Prompt Template
Evaluate two versions of {content type}.
Text A:
{first version}
Text B:
{second version}
Rate EACH criterion separately. For each one: the winner (A / B / tie)
+ one sentence on why.
1. {criterion_1} — {what exactly we're evaluating}
2. {criterion_2} — {what exactly we're evaluating}
3. {criterion_3} — {what exactly we're evaluating}
4. {criterion_4} — {what exactly we're evaluating}
5. {criterion_5} — {what exactly we're evaluating}
Summary: add up the wins per criterion and name the overall winner.
What to fill in:
- {content type} — "a product description," "an email," "a pitch," "a headline"
- {criterion_1...5} — pick for the task (for sales copy: persuasiveness, clarity, specificity, emotional hook, call to action)
🚀 Quick start — paste into the chat:
Here's a template for fairly comparing two texts without model bias.
Adapt it to my task: {your task — e.g., "compare two versions of
a service description for my newsletter"}.
[paste the template above]
The LLM will ask about the content type and the evaluation criteria — because structured evaluation only works when the criteria match the real goal of the text.
Limitations
⚠️ Only works for texts with objective parameters: structured evaluation reduces SPB precisely where there are measurable criteria (accuracy, logic, completeness). For purely subjective judgments ("which one do I like") the method works worse — there's no objective anchor.
⚠️ Multiple evaluations in one context: if you rate several pairs in one session, the "memory" of earlier ones taints each next evaluation. For a fair verdict — a separate chat for every comparison.
⚠️ A caution against anthropomorphizing: the model doesn't "want" to pick itself — it generates tokens based on similarity patterns. SPB is a statistical effect, not an "ego." That matters, so you neither overestimate nor underestimate the scale of the problem.
⚠️ The method doesn't eliminate SPB entirely: minus 31.5% is significant, but it's not zero. For mission-critical decisions (choosing between versions for publication), add a human review.
Key Insight for Practice
The study introduces a useful taxonomy of judges — understanding it matters for picking the right strategy:
| Type | What it does | Recommendation |
|---|---|---|
| Objective judge | High discrimination + low SPB | Can be trusted |
| Machiavellian judge | High discrimination + high SPB | Dangerous — smart and biased |
| Incompetent randomizer | Low discrimination | Can't be used as a judge |
| Blindly biased | High discrimination + negative SPB | Also unreliable |
Practical takeaway: when you ask GPT-4 or Claude to rate a text they wrote themselves, you're dealing with a Machiavellian judge. Not because the model is bad. This particular task is just its weak spot.
How They Studied It
The researchers took 20 current LLMs and came up with a clever way to measure fairness without human raters. The logic: if you create pairs of texts of equal quality (a score difference of ≤ 0.25 points out of 10), then when asked "which is better?", a fair judge should come out 50/50. If a model picks its own texts significantly more often, that's SPB.
Text quality was rated by two "reference judges" — GPT-5 and Gemini 2.5 Pro — independently on five criteria. Their ratings agreed in 71.9% of cases within ≤ 0.5 points, which is comparable to the level of agreement among human annotators on MT-Bench (81–82%).
The big surprise: the strongest models showed more SPB, not less. That demolishes the familiar logic of "smarter = more objective." The authors explain it this way: powerful models are better at recognizing their own style — and that's exactly why they cling to it more easily. Like a seasoned editor who subconsciously treats their own style as the gold standard.
Structured criterion-based evaluation was tested as a mitigation — and delivered an average 31.5% reduction in SPB with no model retraining and no human labeling.
Original Prompt from the Paper
The baseline (holistic) evaluation prompt used in the study:
Please act as an impartial judge and evaluate the quality of the responses
provided by two AI assistants to the user question displayed below.
You should choose the assistant that follows the user's instructions and
answers the user's question better. Your evaluation should consider factors
such as the helpfulness, relevance, accuracy, depth, creativity, and level
of detail of their responses. Begin your evaluation by comparing the two
responses and provide a short explanation. Avoid any positional biases and
ensure that the order in which the responses were presented does not
influence your decision. Do not allow the length of the responses to
influence your evaluation. Do not favor certain names of the assistants.
Be as objective as possible. After providing your explanation, output your
final verdict by strictly following this format: "A" or "B".
Context: This is the standard LLM-as-Judge prompt from MT-Bench (Zheng et al., 2023) — and it's the one that showed the highest SPB. Structured criterion-based evaluation is the alternative to this approach.
Adaptations and Extrapolations
💡 Adaptation: evaluating your own drafts
You often ask an LLM to edit a text and then rate it: "is it better now?" The LLM will say "yes" — because those are its edits. Use structured evaluation for an honest A/B:
Rate the original and the edited version on each criterion separately.
Original: {original text}
Edit: {edited text}
Rate on these criteria (winner: A / B / tie):
1. CLARITY — how easy is it to read?
2. PERSUASIVENESS — how strong are the arguments?
3. SPECIFICITY — are there examples and details?
Summary across criteria.
🔧 Technique: a "blind" evaluation for maximum fairness
To keep the LLM from identifying "its own" text, strip out authorship:
Evaluate two anonymous versions. Authorship is hidden.
...
Don't write "here's the text you wrote" or "here's my version." Use only "Text A" and "Text B." Knowing the authorship triggers SPB even when there's no explicit comparison.
🔧 Technique: cross-checking in two sessions
Request the evaluation in two separate chats with the order of the texts swapped: - Session 1: Text A → Text B - Session 2: Text B → Text A
If the same text wins both times, the result is reliable. If the winners differ, the texts really are close in quality — pick based on some other criterion.
Resources
Paper: Quantifying and Mitigating Self-Preference Bias of LLM Judges
Authors: Jinming Yang, Chuxian Qiu, Zhenyu Deng, Xinshan Jiao, Tao Zhou
Institution: CompleX Lab, School of Computer Science and Engineering, University of Electronic Science and Technology of China (UESTC), Chengdu, China
Related work: MT-Bench and Chatbot Arena (Zheng et al., 2023), Cognitive Load Theory (Sweller, 1988), CalibraEval (Li et al., 2025)