WritingFireworks AIFireworks AIpublished Feb 12, 2026seen Jun 26

Ai Benchmark Lying

Open original ↗

Captured source

source ↗
published Feb 12, 2026seen Jun 26captured Jun 28http 200method plain

Your AI Benchmark is Lying to You. Here's How We Caught It

GLM 5.2 is live! Opus-level intelligence at open-source rates. Pay per token on serverless. Try it today.

Blog

AI Benchmark Lying Your AI Benchmark is Lying to You. Here's How We Caught It

PUBLISHED 8/15/2025

Would you give GPT-4.1 an A grade for this image? We sure wouldn’t!

That’s exactly what our AI judge did, giving it a 93.3%. To its credit, it was a diligent box-checker, taking a list of 15 requirements and confirmed that, yes, there were colored shapes where the logo should be, and a box where the search bar should be. It was technically correct, but its misalignment to human expectations what matters.

1 2 3 4 5 6 7 EvaluationResult :

{ "score" : 0.9333333333333333 , "is_score_valid" : true , "reason" : "1. The background is white. 2. Primary elements are horizontally centered. 3. The Google logo is in the center and uses the correct colors. 4. A prominent search bar is directly below the logo. 5. The search bar is a rounded rectangle with a light gray border. 6. The search bar contains a gray magnifying glass icon on the left. 7. The search bar contains a gray microphone icon on the right. 8. Two distinct buttons are below the search bar. 9. The left button is labeled 'Google Search'. 10. The right button is labeled 'I'm Feeling Lucky'. 11. Buttons have a light gray background, thin border, and dark gray text. 12. There is a header section at the top right. 13. The header includes 'Gmail' and 'Images' links. 14. The header includes a 3x3 grid icon. 15. The 'Sign in' button is present, but the text is not fully visible, so this requirement is not fully met." , }

This is a huge problem in AI. We celebrate benchmark scores that don't reflect real-world quality. We knew our evaluation was broken, and we used Eval Protocol (EP) to fix it. To set the scene, if you haven’t already, check out our example on how we ported SVGBench to EP. TL;DR: using our powerful @evaluation_test decorator, we implemented the open-source SVGBench and evaluate it using GPT-4.1 as a LLM-judge against a list of rubric items for each task. Teaching Our Judge to See Like a Human

Our first evaluation was a simple checklist. It asked questions like, "Is there a search bar?" but not "Does the search bar look right?" To fix this, we moved from a rigid, row-specific checklist ( listwise ) to a universal rubric that applies to every image ( pointwise ). Instead of checking for pixels, we started judging based on principles humans care about. I prompted my AI coding assistant to create a new, tougher judge with a more sophisticated rubric: @question_row_1_gpt-4.1.png This image returned an EvaluateResult of the below. The results don't seem to line up with what we expect. We want you to add a separate pointwise evaluation that contains a list of rubrics to judge individual images for intent matching for elements you can think of that align with human preference, for example spatial design. Its implementation lands on these core 5 qualities: • 🎯 Intent Matching: Does it actually look like the Google homepage? • 👁️ Content Recognizability: Can you read the logo, or is it just colored blobs? • 📐 Spatial Design: Does the layout look professional? • 👤 User Experience: Is it clear and usable? • 🎨 Visual Coherence: Does it all work together?

The assistant quickly scaffolded a new @evaluation_test within the EP framework. The core idea was to stop asking "did you follow the instructions?" and start asking "is this any good?" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 @evaluation_test ( input_dataset = [ "tests/pytest/data/svgbench_sample_dataset.jsonl" ] , dataset_adapter = svgbench_to_evaluation_row , completion_params = [ { "temperature" : 0.0 , "model" : "gpt-4.1" } , { "temperature" : 0.8 , "model" : "fireworks_ai/accounts/fireworks/models/gpt-oss-120b" , "extra_body" : { "reasoning_effort" : "high" } , } , ] , rollout_processor = default_single_turn_rollout_processor , passed_threshold = 0.6 , # Higher threshold for human preference num_runs = 1 , mode = "pointwise" , max_concurrent_rollouts = 50 , ) def test_svg_human_preference_evaluation ( row : EvaluationRow ) - > EvaluationRow : """ Test SVG generation using human preference rubrics.

This evaluation focuses on: 1. Intent matching - Does content actually fulfill the intended purpose? 2. Content recognizability - Are key elements genuinely recognizable? 3. Spatial design quality - Professional layout and visual hierarchy 4. User experience - Would humans find this usable/appropriate? 5. Visual coherence - Do elements work together harmoniously?

This should catch issues like Google logos that are just colored circles. """

. . .

try :

Render SVG to PNG

if not render_svg_to_png ( svg_code , png_path ) : row . evaluation_result = EvaluateResult ( score = 0.0 , reason = "Failed to render SVG to PNG" ) return row

Evaluate with human preference rubrics

human_pref_result = evaluate_with_human_preference_rubrics ( png_path , original_prompt , requirements )

Extract scores and create detailed reasoning

overall_score = human_pref_result . get ( "overall_human_preference_score" , 0.0 )

Create comprehensive reasoning that shows all rubric scores

detailed_reasoning = f"""HUMAN PREFERENCE EVALUATION:

🎯 Intent Matching: { human_pref_result . get ( 'intent_matching_score' , 0.0 ) : .2f } /1.0 { human_pref_result . get ( 'intent_reasoning' , 'No reasoning provided' ) }

👁️ Content Recognizability: { human_pref_result . get ( 'content_recognizability_score' , 0.0 ) : .2f } /1.0 { human_pref_result . get ( 'content_reasoning' , 'No reasoning provided' ) }

📐 Spatial Design Quality: { human_pref_result . get ( 'spatial_design_score' , 0.0 ) : .2f } /1.0 { human_pref_result . get ( 'spatial_reasoning' , 'No reasoning provided' ) }

👤 User Experience: { human_pref_result . get ( 'user_experience_score' , 0.0 ) : .2f } /1.0 { human_pref_result . get ( 'ux_reasoning' , 'No reasoning provided' ) }

🎨 Visual Coherence: { human_pref_result . get ( 'visual_coherence_score' , 0.0 ) : .2f } /1.0 { human_pref_result...

Excerpt shown — open the source for the full document.

Notability

notability 5.0/10

Provocative blog post but no model release or traction data.