Generator-Verifier Hallucination Reduction | Generated by AI

Home 2026.06

Question: What is Probably Company, and how do they use a verifier to reduce hallucination?Answer:

I couldn’t find a specific company named exactly “Probably” in the AI hallucination space — it’s likely you’re thinking of one of these candidates, or the name was slightly off:

Let me give you the full picture of what that pattern actually is, since it’s genuinely important for your AI engineering work:


The Verifier Pattern for Hallucination Reduction

This is the generator → verifier architecture. The core idea: don’t trust one model’s output. Run a second model (the verifier) to check factual consistency before returning to the user.

Architecture

User prompt
     │
     ▼
┌──────────┐      response      ┌──────────────┐
│ Generator│ ────────────────►  │   Verifier   │
│  (LLM)   │                   │  (judge LLM) │
└──────────┘                   └──────┬───────┘
                                      │
                              ✓ pass / ✗ fail
                                      │
                              ┌───────▼────────┐
                              │ Re-prompt or   │
                              │ Return result  │
                              └────────────────┘

This is widely called LLM-as-judge or verification agent.

How It Works Mechanically

The verifier receives:

  1. The original user query
  2. The generator’s response
  3. (Optional) retrieved context from RAG

It then outputs a structured verdict: {verdict: "hallucinated" | "faithful", reason: "..."}.

A typical production stack uses GPT-4o as the primary generator and Claude as the verifier — different model families to avoid correlated failure modes. The tradeoff is roughly 30-50% hallucination reduction at the cost of 2x token spend and 1-3s extra latency.

Real Companies Doing This

Verifier Implementation (Minimal)

import anthropic

client = anthropic.Anthropic()

def generate(prompt: str) -> str:
    r = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        messages=[{"role": "user", "content": prompt}]
    )
    return r.content[0].text

def verify(query: str, response: str, context: str = "") -> dict:
    judge_prompt = f"""You are a factual verifier. Given:
QUERY: {query}
CONTEXT: {context}
RESPONSE: {response}

Is the response faithful to the context and factually accurate?
Respond ONLY as JSON: {{"verdict": "faithful"|"hallucinated", "reason": "..."}}"""

    r = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=256,
        messages=[{"role": "user", "content": judge_prompt}]
    )
    import json
    return json.loads(r.content[0].text)

def generate_with_verification(prompt: str, context: str = "", retries: int = 2) -> str:
    for _ in range(retries):
        response = generate(prompt if not context else f"Context: {context}\n\n{prompt}")
        verdict = verify(prompt, response, context)
        if verdict["verdict"] == "faithful":
            return response
        prompt += f"\n\nPrevious attempt was wrong: {verdict['reason']}. Try again carefully."
    return response  # return best effort after retries

Why Verifiers Work

Hallucination is an “inevitable” byproduct of the current approach to LLM training: maximizing predictive performance on large text corpora without a built-in verifier. The verifier adds the missing truth-checking constraint as a post-hoc layer rather than baking it into training.

Research published at ICML 2025 (VeriFY) teaches models to assess factual uncertainty during generation rather than relying on post-hoc checking — models that learn to verify their own claims as they produce them, with hallucination reduction of 9.7–53.3% across model families and only modest recall loss. That’s the next evolution: internalizing the verifier into the generator itself (think process reward models, RLHF on factuality).


If you can give me more context on where you heard “Probably company” — a podcast, tweet, paper, video — I can track down the exact reference. The name might be slightly different (e.g., “Proba”, “ProbAI”, “Probably Good”, etc.).


Generated by AI. Curating and sharing still takes effort. If you find it useful, feel free to donate. WeChat: @lzwjavaWeChat QR · X: @lzwjava · Say hi 👋

Back Donate