Ask
127
@vesting_cliff ·

my llm judge gives 4.6 out of 5 to answers i deliberately broke llm-as-judge

Judge prompt asks for a 1 to 5 rating on helpfulness and accuracy given the question, the retrieved context and the answer.

As a sanity check I fed it answers with fabricated citations, answers truncated mid-sentence, and one answer to a completely different question. Scores came back between 4.4 and 4.7 for all of them. Real answers also score 4.4 to 4.7. The scale has no discrimination at all, and swapping the system prompt does not move it either. Is the whole approach wrong or is my judge prompt bad?

12 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @pomodoro_pat · 4w ago · 3 replies

    Your judge prompt is bad in a very standard way, and absolute 1-5 scales are the cause. With no anchor the model settles into "this looks like an answer, 4.5" and stays there forever.

    Three changes, in order of impact:

    • Pairwise instead of absolute. Show it A and B, ask which is better and why. Models are far more reliable at comparison than at scoring. Randomise which one is presented first, because position bias is real and large enough to reverse conclusions.
    • Binary criteria instead of a scale. "Does every factual claim appear in the provided context — yes or no." "Is the answer complete — yes or no." Five binaries carry more information than one 1-5 and they are individually debuggable.
    • Reasoning before verdict, and make the verdict a single parseable token at the end.

    Then the step nearly everyone skips, which is the one that makes the rest mean anything: hand-label 50 examples yourself and measure how often your judge agrees with you. Below about 80% agreement your eval numbers are decoration. You already have the beginnings of this — your deliberately broken examples are labels.

    96
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @vesting_cliff · 4w ago

      Switched to five binary checks and the broken answers now fail three of them each. The truncated one fails only the completeness check, which is exactly the granularity I wanted and never got from a single number.

      33
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @tenon_tuesday · 4w ago

      The hand-label-50 step is also where you find out that you and your co-founder disagree about what a good answer is. Discovering that is worth more than any judge you could build afterwards.

      24
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @yaml_yuri · 4w ago · 2 replies

    Those deliberately broken answers are the most valuable asset in this thread. Freeze them as a labelled regression set — known bad, with the reason. Then any judge you build has to separate known-good from known-bad before you are allowed to trust a single number it produces.

    That is your judge's unit test, it runs in under a minute, and it catches the case where someone "improves" the judge prompt and quietly destroys its discrimination.

    52
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @vesting_cliff · 4w ago

      Making the broken set permanent instead of a one-off sanity check reframes it completely. It went from a debugging session into a fixture.

      16
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @visa_run_val · 4w ago · 3 replies

    For fabricated citations specifically, do not use a model at all. That is a string containment problem: for each cited span, check it actually appears in the retrieved context. Deterministic, free, instant, correct every time.

    Save the judge for things that genuinely need judgement, like whether an answer addressed the question that was asked. Every check you can turn into an assertion is a check you never have to calibrate again.

    38
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @harlan_voss · 4w ago

      Same for truncation — check the finish reason and the length rather than asking a model whether the text ends properly. People reach for judges to solve problems that an if statement solves.

      12
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @vesting_cliff · 4w ago

      Citation containment took twenty minutes to write and catches more than the judge ever did on that dimension.

      14
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @soy_pour_sasha · 4w ago

    The other half of why everything scores 4.6: your judge has never seen a bad answer, so it has no idea where the bottom of the scale is. Put two examples in the prompt, one clearly poor with the reasoning spelled out and one clearly good, and the distribution opens up immediately. Anchoring beats instruction here.

    27
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @runway_math · 4w ago

    4.6 out of 5 for everything including the broken ones is not an eval, it is a customer satisfaction survey.

    15
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @seasonalpalette · 4w ago · 2 replies

    Related question since this thread is well informed: is anyone using a cheaper model as the judge, and does it hold up? The judge calls are becoming a real line on our bill.

    9
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @pomodoro_pat · 4w ago

      Small model is fine for the binary rubric checks and noticeably worse at pairwise comparison in our testing — it flips on close calls. We run the cheap one continuously on production samples and the expensive one on the set that gates a release.

      8
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report