explainx.ai0k
TrendingNewsPathwaysSkills
Pricing
explainx.ai

Upskill in AI — 16 free pathways, live workshops & bootcamps, and 50+ courses from practitioners. Plus the skills, tools, and MCP servers to practice on.

follow us

follow on google

Add explainx.ai as a preferred source

corporate training

support@explainx.ai

get started

Find your pathTake Free Evaluation

community

Join the community

learn

mind: share how you thinkpathways — start freeworkshopsbootcampscoursescertificationsmock testsexplainx universitycorporate traininglearn skills & mcp

discover

skillsmcp serversexplainx mcptoolsmdx readeragentsllmsdesignsdictionarypeopleagi trackerfelony benchranks

company

aboutvisionmissionteaminstructorsteach on explainxpartnershipscommunityhackathonscareers

content

daily AI newsstate of AI — live resultsblogreleasespromptsgeneratorsresource libraryfor LLMsexplainx.ai kids

solutions

all solutionsdeveloper upskillingmarketing upskillingproduct manager upskillingleadership upskilling

newsletter · weekly

Get AI news, tools, and insights in your inbox.

supportcontactprivacytermsdata rightshow we create contentsubmission guidelines

© 2026 AISOLO Technologies Pvt Ltd

explainx.ai

On this page

  • TL;DR
  • Why the hard label is the problem
  • The fix, in one equation's worth of idea
  • Then it gets more interesting: more features
  • The results in context
  • The criticism, which is worth engaging
  • How this connects to the decision-model debate
  • What to do on Monday
  • Related on explainx.ai
← Back to blog

explainx / blog

Stop Using LLMs as Classifiers. Use Them as Feature Generators

Machine Learning, LLM Engineering, Evaluation, Guides

An LLM hard label gives you no calibration and no threshold control. Wrapping the same verdict in a logistic regression cut Brier score from 0.259 to 0.127 and beat a SemEval competition winner.

Sep 17, 2026·8 min read·Yash Thakker
add explainx.ai
go deep
Stop Using LLMs as Classifiers. Use Them as Feature Generators

If you have ever shipped an LLM-as-classifier, you know the specific frustration: it works annoyingly well, and it is miserable to operate. You cannot set a threshold. You cannot trade precision against recall. You cannot tell whether it read the structured data you pasted in. And when it underperforms, your only lever is to go back and fiddle with the prompt, a practice about which "advice abounds on the internet but wisdom is scarce."

A post making the rounds on September 13, 2026 proposes a reframing that fixes most of this: the LLM verdict is not your classifier. It is a feature.

TL;DR

table · 2 cols
Problem with LLM-as-classifierWhat the fix restores
Hard labels, no trustworthy confidenceCalibrated probabilities from the fitted model
No principled precision/recall tradeoffA threshold you can actually tune
Structured data may be ignored in-promptCovariates enter the model directly, with fitted weights
Baked-in priors mismatch your populationThe model fits your base rate and adapts to your data
Improvement means prompt rouletteStandard ML levers: more data, more features, better architecture

Measured on SemEval 2018 irony detection:

table · 3 cols
SetupBrier scoreF1 (test)
LLM hard label only0.2590.747
+ logistic regression wrapper0.1750.747
+ LLM sub-features0.1310.768
+ rule-based features0.1270.779

For reference, random guessing scores a Brier of 0.25. The raw LLM classifier was barely better than a coin flip on calibration, while being genuinely good at ranking.

Why the hard label is the problem

The core issue is that an LLM is not designed as a classifier and has no mechanism for producing a calibrated probability.

You can extract token log-probabilities, but there is no reason to believe they are calibrated. You can ask the model for its confidence, and there is no reason to believe that either. Without calibrated probabilities you cannot choose an operating point, which means you cannot say "I will accept more false positives here because a miss costs ten times more than a false alarm." That decision is the entire job in most production classification.

Two subtler failures compound it:

You do not know what it used. You can paste structured data into the prompt, but the model does not have to use it. The same applies to your prose instructions. As the post notes drily, this shows up with multimodal models that do not even look at the images.

Its priors are not your priors. The model has no idea whether your positive class is rare in the wild or enriched in your sample. You can state the base rate in the prompt, and you are back to hoping it incorporated that correctly.

Weekly digest3.5k readers

Catch up on AI

Curated AI updates on agents, skills, and MCP — delivered to your inbox. Unsubscribe anytime.

The fix, in one equation's worth of idea

Take the LLM's verdict and use it as an input feature to a logistic regression, fitted on training data.

In the degenerate case this recovers the LLM classifier exactly. But with fitted parameters, the binary verdict collapses to two empirical probabilities:

table · 2 cols
LLM verdictFitted P(Ironic)
Ironic0.687
Not0.188

That single change takes Brier from 0.259 to 0.175 without altering the ranking at all, so F1 stays identical at 0.747. You have not made the model smarter. You have made its output usable, because those are now real probabilities you can threshold.

The ordering matters here. Calibration and discrimination are different properties, and the LLM had decent discrimination and terrible calibration. Most teams try to fix a calibration problem with prompt engineering, which cannot touch it.

Then it gets more interesting: more features

Once the LLM is a feature generator rather than the decision-maker, the standard ML playbook reopens.

Ask the model for sub-verdicts. Rather than "is this ironic," the improved prompt asks for the verdict plus nineteen dimensions: is it trying to be funny, does it describe a realistic situation, does it need external context, is it a genuine complaint, is there a mismatch between a negative situation and upbeat language, is it self-deprecating, does it contain explicit contrast, is it a rhetorical question, a backhanded compliment, feigned surprise, mock enthusiasm, wordplay, political, celebrity, mundane daily life, and so on.

Each becomes a boolean feature. Brier drops to 0.131, F1 rises to 0.768.

Add features the LLM cannot see. Deterministic, computable signals: is it a reply (starts with @), does it contain a URL, character length, hashtag count, exclamation count, all-caps word count, ellipsis presence, starts with a quote, emoji count. Brier 0.127, F1 0.779.

That last step matters more than its size suggests. Those features cost nothing, involve no model call, and the gain proves the LLM was leaving signal on the table that no prompt would have recovered.

How you improve now changes entirely. Instead of prompt roulette you have: collect more data, screen features empirically (if a feature should always imply positive, check that it does), generate more features from residuals, or swap logistic regression for XGBoost or a small neural net. All plug-and-play.

The results in context

table · 2 cols
SystemF1
Random baseline0.373
SVM + tf-idf (paper baseline)0.589
THU_NGN (competition winner)0.705
NTUA-SLP (post-competition SOTA)0.786
LLM hard label0.747
LLM + logistic regression0.779

Two things stand out. The zero-shot LLM already beat the competition winner, which is the genuinely remarkable part: no training, and it outperforms a task-specific system built by a team for a shared task. And the wrapped version reaches 0.779 with confidence intervals overlapping the post-competition state of the art, using nothing more exotic than logistic regression on LLM-extracted features.

The criticism, which is worth engaging

The top Hacker News comment was unimpressed, arguing that the improvement over straight LLM classification is relatively small and that working on the prompt, or simply telling the LLM which features to consider, would likely work as well.

Half of that is a fair empirical challenge. Putting the nineteen dimensions into the prompt as guidance, rather than extracting them as features, is a genuine alternative that deserves a head-to-head. Nobody has run it here.

The other half misses the point. Calibration is not a performance improvement, it is a different property. The first wrapper step improved Brier by 32% while leaving F1 untouched. No prompt achieves that, because the issue is not that the model's judgements are wrong, it is that its outputs are not probabilities. If your application needs a threshold, and most do, prompt quality is orthogonal to your problem.

The same commenter's framing that "something general also solves particular problems" is true and not a rebuttal: a general system that solves your particular problem without giving you a dial is still unusable in production.

The honest cost is the one the original post concedes: you need labelled training data, which forfeits the training-free appeal of LLM classification. The counterargument is sound, though. If you were never going to measure performance, you had no idea whether your classifier worked.

How this connects to the decision-model debate

This lands in the same week as TypeSafe's Jev, a model that returns typed decisions with calibrated confidence instead of text, precisely because using a chat model as a classifier is a bad fit.

Two answers to the same complaint, with different tradeoffs. Jev replaces the LLM with a purpose-built decision model, buying latency and calibration at the cost of a new dependency and no vision. The feature-engineering approach keeps your existing LLM and adds a thin statistical layer, buying calibration and interpretability at the cost of needing labelled data.

Notably, one developer is already using Jev as the classifier inside an LLM autorouter, which is the same instinct: do not ask a text generator to make a typed decision.

If you are choosing: use the wrapper when you have labels and care about calibration and interpretability, and reach for a decision model when per-call latency or cost is the binding constraint.

What to do on Monday

  1. Check whether your LLM classifier is calibrated. Compute a Brier score on your test set. If it is near 0.25, your probabilities are decorative.
  2. Keep the prompt, change the plumbing. Store the verdict as a feature rather than as the answer. Fit a logistic regression. This is an afternoon.
  3. Ask for sub-verdicts. Decompose the judgement into dimensions and let the model report each. One call, many features.
  4. Add free deterministic features. Lengths, counts, structural flags. They cost nothing and reliably help.
  5. Now you can tune a threshold, which is what you wanted all along.

Related on explainx.ai

  • TypeSafe AI launches Jev — the other answer to the same problem
  • Top Jev use cases — including classification and autorouting
  • How to read AI benchmarks — why Brier and F1 tell you different things
  • Why AI models hallucinate and how to catch it — verification as a systems problem
  • Structured output and JSON mode — the mechanics of getting typed fields out of a model

Figures are from the linked analysis published September 13, 2026, using Gemini 3.1 Flash Lite on the SemEval 2018 Task 3 dataset (3,834 train / 784 test). Results are from a single author's replication, not an independent reproduction, and the comparison against published SemEval systems uses that author's own evaluation harness.

Spotted something out of date? Let us know.
Yash Thakker

Written by

Yash Thakker

Yash is an AI expert with over 300K learners. Join his workshops →

View Yash Thakker in People in AI →

Related posts

Sep 17, 2026

AI Won the Metaculus Cup. Read the Scoring Rules Before You Update

On September 5, 2026 an AI won the Metaculus Cup outright, with bots taking first, second and fifth. It is a real milestone. It is also a tournament that awards points for how early and how often you predict, which is exactly the axis where a tireless machine has a structural edge over a human with a job.

Sep 17, 2026

Ultracode in Claude Code: What It Actually Does and When to Use It

Ultracode is the highest setting on the Claude Code effort slider, but it is not an effort level at all. It sends xhigh to the model and separately hands Claude permission to write a JavaScript orchestration script for every substantive task, fanning work out across dozens of parallel subagents.

Sep 11, 2026

Real-SWE Results: Fable 5.1 Wins, No Model Clears 40%

Specific Labs co-founder janak launched Real-SWE on September 10, 2026 — a coding agent benchmark built entirely from real, private company codebases rather than public repos. The full results are now out: Fable 5.1 tops the leaderboard at 38.8%, no model clears 40%, and "missed requirements" is the single most common way every frontier model fails.