惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
B
Blog
P
Proofpoint News Feed
美团技术团队
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
有赞技术团队
有赞技术团队
小众软件
小众软件
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
罗磊的独立博客
L
LangChain Blog
GbyAI
GbyAI
腾讯CDC
T
The Blog of Author Tim Ferriss
Microsoft Security Blog
Microsoft Security Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I Built a Benchmark for the Failures Generic LLM Evaluati...
Ephrata Nebi · 2026-05-03 · via DEV Community

I Built a Benchmark for the Failures Generic LLM Evaluations Miss

Generic LLM benchmarks are useful, but they are not the same thing as a workflow benchmark.

That gap became obvious in my Week 11 project. I was working on SignalForge, a deterministic-first outbound workflow for Tenacious. The system already had structured enrichment, confidence calibration, grounded email generation, CRM sync, lifecycle routing, and evaluation hooks. But Week 10 evidence showed that the hardest failures were not “can the model produce text?” failures. They were judgment failures:

  • over-claiming from weak public signals,
  • drifting into generic outsourcing language,
  • escalating to booking too early,
  • mishandling pricing handoffs,
  • sounding technically plausible but socially wrong with a new CTO.

That is the kind of behavior that a broad assistant benchmark or a retail-agent benchmark can easily under-measure.

The short version of the result is this: the current Path B critic improved held-out accuracy by +48.84 percentage points over the pre-trained heuristic gate on the executed held-out preference set, with a 95% confidence interval of [34.88, 62.79]. That is not a claim that the system is finished, but it is strong evidence that narrowing the problem to judgment and evaluation was the right move.

What I built

I built Tenacious-Bench v0.1, a benchmark designed around those workflow-specific failure modes.

The current release has:

  • 225 total tasks
  • 62 train tasks
  • 113 dev tasks
  • 50 held-out tasks

It also uses four dataset authoring modes:

  • trace-derived
  • programmatic
  • multi-LLM-synthesis
  • hand-authored

That mix matters because I did not want a benchmark that was only synthetic slot-filling or only anecdotal trace replay. I wanted coverage from real traces, systematic parameter sweeps, adversarial hand-written cases, and harder generated cases that simple templating would miss.

Why I chose Path B

The central project decision was choosing Path B: preference-tuned judge or critic.

I did not choose Path B because it sounded fashionable. I chose it because the Week 10 evidence suggested the generator was not the primary bottleneck. The system could already produce acceptable drafts some of the time. The problem was that it could not always tell when a fluent answer had crossed into unsafe overreach.

So instead of treating this as a “make the generator more eloquent” problem, I treated it as a judgment consistency problem.

That led to a narrower but more useful setup:

  • benchmark the exact Tenacious-specific failures,
  • generate preference pairs from benchmark-approved vs degraded outputs,
  • train a lightweight critic,
  • compare it against the Week 10 heuristic baseline on held-out data.

How the dataset was authored

The benchmark is not one monolithic blob. It is a structured artifact with provenance.

Each task carries metadata such as:

  • source_mode
  • dimension
  • task_type
  • benchmark inputs
  • candidate output
  • explicit ground truth
  • scoring rubric

The programmatic authoring route uses structured variables like company profile, signal confidence, lifecycle state, and routing state. The synthesis route uses a multi-LLM policy with separation between the generator family, the dev-tier bulk judge family, and the eval-tier calibration family. That anti-leakage policy matters because if the same family both generates and judges the data, evaluation gets much less trustworthy.

I also added a contamination check that compares held-out against both train and dev using:

  • n-gram overlap
  • lexical cosine
  • cheap embedding cosine
  • time-shift provenance flags

The current structured report shows 0 held-out contamination violations under the repo policy.

How preference optimization fit the project

After building the benchmark, I created a Path B preference dataset.

The public preference export currently includes:

  • 62 train pairs
  • 113 dev pairs

The 50 held-out preference rows remain sealed for final evaluation.

Each pair uses:

  • a benchmark-approved response as chosen
  • a controlled degraded variant as rejected

That makes the dataset usable for ORPO, DPO, or SimPO-style training while keeping the benchmark tied to real failure dimensions instead of generic “better sounding” preferences.

What improved

The strongest executed result in the repo is a lightweight local critic rather than the final GPU-backed adapter I originally planned.

Even so, the result is meaningful:

  • held-out baseline accuracy: 0.5116
  • held-out trained accuracy: 1.0000
  • held-out lift: +48.84 percentage points
  • 95% bootstrap CI: [34.88, 62.79]
  • paired bootstrap p-value: 0.0

That result matters because it is not a generic quality score. It is a measured improvement on the exact business-specific failure modes the benchmark was designed to catch.

What is still incomplete

The project is strong technically, but I wanted to keep the public artifacts honest.

The biggest remaining limitation is procedural:

  • the inter-rater study has been executed as a blind pilot, but the ideal second pass separated by a real 24-hour gap is still pending

There are also a few practical hardening tasks left:

  • continue increasing multi-LLM synthesis coverage
  • complete the stronger ORPO or SimPO small-model pass
  • complete the true 24-hour inter-rater rerun for the public-release version

What I learned

The biggest lesson from this project is that the most important question was not “what model should I fine-tune?” It was “what exactly is failing, and how do I measure it honestly?”

Once I framed the problem that way, the system design got much clearer:

  • use a domain-specific benchmark
  • keep held-out sealed
  • train a narrow critic before a bigger generator
  • make contamination and provenance visible

That changed the project from a vague “LLM improvement” exercise into something much more concrete: a benchmark, a preference dataset, a judge path, and an ablation result that can actually be defended.

Public artifacts

  • Dataset: https://huggingface.co/datasets/ephorata/tenacious-bench-path-b-preference
  • Repo: https://github.com/nebiyuephrata/SignalForge
  • Community issue: https://github.com/nebiyuephrata/SignalForge/issues/1

If you are building evaluation for a narrow workflow, my main advice is simple: do not assume a generic benchmark is grading the thing your business actually cares about.