Zpět na domů

Triage-and-Voice: oprava halucinací LLM

Vzor Triage-and-Voice řeší problém halucinací v LLM oddělením analýzy a generování odpovědi. První průchod extrahuje strukturovaná data, backend dosadí ověřené fakta, druhý formuje hlas. Zrychlení v 2–3 razy, bezpečnost prostřednictvím kódu.

Rozdělte LLM: Triage-and-Voice proti halucinacím
Advertisement 728x90

Architektonický vzor Triage-and-Voice pro eliminaci halucinací LLM

LLM v chatbotu analyzuje konverzaci a místo skutečného čísla na horkou linku vymyslí dětskou linku důvěry. Instrukce "nevymýšlej kontakty" je ignorována. Příčina – konflikt úkolů v jednom průchodu: přesná analýza a empatická odpověď soutěží o tokeny, což vede k halucinacím v kritických datech.

Problém mono-průchodové architektury

Ve standardním schématu LLM produktu jde vstup uživatele přímo do modelu, který vydá finální odpověď. Analýza vyžaduje strukturovaný JSON výstup s přesnými fakty: účastníci, rizika, cíle. Formulace odpovědi – kreativní úkol s hlasem a tónem.

Spojení v jeden prompt vede ke kompromisům:

Google AdInline article slot
  • Model obětuje přesnost kvůli stylu.
  • Halucinace jsou maskovány jako přesvědčivý text.
  • Nelze programově odlišit fakt od výmyslu.

Zvýšení výkonu modelu (reasoning modely, více tokenů) snižuje četnost chyb, ale neodstraňuje problém. U složitých případů s podtextem i špičkové modely pletou motivy a domýšlejí detaily. Riziko se týká důvěryhodných dat: ceny, adresy, dávkování, kontakty služeb.

Vzor Triage-and-Voice

Rozdělte zpracování na dva LLM průchody s backendovým vrátným mezi nimi.

Průchod 1: Triage (třídění). Strukturální analýza bez stylu. Model extrahuje signál do JSON:

Google AdInline article slot
{
  "nálada": "úzkost",
  "je_krize": false,
  "typ_krize": null,
  "účastníci": [...],
  "motivy": [...]
}

Krizový příklad:

{
  "nálada": "červená_vlajka",
  "je_krize": true,
  "typ_krize": "násilí"
}

Backendový vrátný. Deterministický kód kontroluje příznaky:

if (triage.JeKrize) {
    var kontakty = await db.Získej_Ověřené_Krizové_Kontakty(triage.TypKrize);
    prompt = krizovýPromptŠablona.SKontakty(kontakty);
}

Dosazují se ověřená data z databáze. Směrování podle pravidel: krize → speciální prompt.

Google AdInline article slot

Průchod 2: Voice (hlas). Model dostane obohacený vstup a generuje odpověď v požadovaném tónu. Neanalyzuje, nevymýšlí fakta.

Testování na DeepSeek V3.2 (desítky krizových případů): nula halucinací kontaktů.

Výhody rozdělení

  • Rozdělení odpovědnosti. Triage se soustředí na strukturu (tokeny na fakta). Voice – na stylu (tokeny na empatii). Kvalita v obou dimenzích roste (ověřeno na 40 eval případech).
  • Ukládání do mezipaměti. Analýza jednou. Při změně hlasu (perspektivy v Telegram bota) se restartuje pouze Voice. Metriky: první odpověď 30–45 s (vs 50–90 s), následné 15–20 s.
  • Bezpečnost. Kontrola v kódu, ne v promptu. Model nastaví příznak ("kdy"), backend rozhodne ("co"). Testovatelné, předvídatelné.

Scénáře použití

Vzor je aktuální pro LLM produkty s:

  • Analýzou vstupu + generací výstupu.
  • Důvěryhodnými daty (finance, právní odkazy, medicína).
  • Edge případy (krize, výjimky).
  • Více perspektivami bez reanalýzy.
  • Potřebným kontrolním bodem mezi analýzou a výstupem.

Princip: model analyzuje → kód rozhodne → model formuluje.

Signál k refaktorování: prompt obsahuje "NEvymýšlej [data]".

Co je důležité

  • Architektonický posun: od jednoho volání ke dvěma s vrátným, odstraňuje konflikt úkolů.
  • Metriky výkonu: analýza se ukládá do mezipaměti, Voice se zrychluje 2–3krát.
  • Bezpečnost: deterministický backend dosazuje fakta, model se nedotýká databáze.
  • Škálovatelnost: použitelné pro chatbota, analytiku, produkty s edge případy.
  • Ověřeno: 40 eval + desítky krizových běhů bez halucinací.

Rizika naivní architektury

Jedno volání = atomární operace bez validace. Chybí:

  • Kontrola rozhodnutí modelu před uživatelem.
  • Mezipaměť analýzy.
  • Směrování edge případů.
  • Dosazení ověřených dat.

Důvěra v pravděpodobnostní generaci na kritických místech – zranitelnost. Triage-and-Voice přidává kontrolu: +1 volání, +1 vrátný = ověřitelný pipeline.

— Editorial Team

Advertisement 728x90

Číst dál