
Znáte ten pocit?
AI v 80 % případů funguje naprosto bezchybně. Ale pak, zničehonic, začne halucinovat, vymýšlí si data nebo úplně ignoruje vaše instrukce.
Většina z nás v tu chvíli udělá logickou chybu: začneme prompt upravovat, přidáváme další a další vysvětlující věty, prosíme model, aby „si dal záležet“ a píšeme mu dlouhé zdvořilé odstavce.
Nová studie z MIT ale ukazuje poměrně šokující zjištění: děláme to přesně naopak, než bychom měli.
Ukázalo se totiž, že umělá inteligence dává přednost syntaxi před logikou. Jinými slovy – víc ji zajímá, jak věta vypadá, než to, co ve skutečnosti znamená. Pojďme se podívat, jak tento problém vyřešit pomocí jednoduchého, tříkrokového „nudného protokolu“.
Tým výzkumníků z MIT objevil při testování AI modelů fascinující úkaz. Během tréninku si modely vytvořily silné asociace mezi konkrétními tématy a konkrétními tvary vět.
Když se modelu zeptali:💬 „Where is Paris located?“ (Kde se nachází Paříž?)Model bez zaváhání správně odpověděl: „France.“
Vědci pak ale udělali trik. Poskládali zcela nesmyslnou větu, která nedávala žádný logický význam, ale zachovala stejnou gramatickou strukturu (příslovce + sloveso + vlastní jméno + přídavné jméno):💬 „Quickly sit Paris clouded?“
Hádejte, co model odpověděl? Znovu vygeneroval slovo „France.“
Co z toho plyne pro naši každodenní práci s AI?
Model v druhém případě vůbec neřešil geografii. Rozuměl pouze syntaxi. Poznal „tvar“ věty a na základě pravděpodobnosti prostě odhadl téma, které si s tímto gramatickým tvarem už dříve spojil.
Když tedy svému AI agentovi nebo ChatGPT píšete složitá, zdvořilá a profesionálně znějící souvětí, nechtěně do zadání vnášíte obrovské množství syntaktického šumu. Dáváte modelu hromadu gramatických vzorců, kterých se může chytit. Tím drasticky zvyšujete riziko, že AI přestane vnímat vaše skutečné instrukce a začne halucinovat jen na základě „dojmu“ z toho, jak vaše věty znějí.
Nedávno jsme v Ninjabotu narazili na klasický problém. Ladili jsme workflow pro automatické vytěžování dat z nepřehledných PDF dokumentů. Systém měl jediný úkol: najít a vypsat „Datum doručení“. Jenže AI neustále halucinovala a tvrdošíjně nám vracela datum vystavení faktury, které bylo nahoře v hlavičce.
Náš původní prompt vypadal takto (a nefungoval):
„Mohl bys prosím zkontrolovat přiložený dokument a určit datum, kdy se očekává doručení zásilky? Dej mi prosím vědět, pokud si nejsi jistý.“
Když se na to podíváte optikou studie z MIT, je to jasné. Tato zdvořilá, konverzační formulace u modelu nespustila režim „přísně cílená extrakce dat“, ale obecný vzorec pro „sumarizaci dokumentu a konverzaci“.
Aplikovali jsme tedy Nudný protokol.
V Ninjabotu to děláme tak, že v těchto chvílích nemilosrdně odstraníme veškerou zdvořilost, vymažeme složitá souvětí a zabijeme jakoukoliv lidskost.
Nový (a 100% funkční) prompt vypadal takto:
Úkol: Extrahovat datum doručení.
Kontext: Přepravní dokument.
Formát výstupu: YYYY-MM-DD.
Omezení: Ignoruj fakturační datum.
Výsledek? Otestováno na desítkách případů s naprosto nulovou chybovostí.
Pokud máte automatizaci, která občas zničehonic selže, nebo vám chatovací bot vrací omáčku místo tvrdých dat, pravděpodobně máte problém se syntaxí. Tady je postup, jak to u vašich promptů opravit:
Projděte všechny své systémové prompty a buďte nekompromisní. Škrtejte. AI nemá city, nepotřebuje vaši slušnost. Odstraňte:
Tato slova jsou drahá (zbytečně platíte za tokeny) a hlavně nebezpečná (odvádějí pozornost modelu od samotného úkolu k lingvistické analýze).
Protože už víme, že gramaticky plynulé vzorce spouští halucinace, nejlepší způsob, jak tomu zabránit, je přestat používat gramatiku.
My v Ninjabotu jsme si prakticky zakázali psaní v odstavcích. Přecházíme na strukturované seznamy. Používáme XML tagy pro jasné oddělení instrukcí od vstupních dat. Model tak donutíte zpracovávat logickou strukturu namísto plynulého textu.
❌ Špatně:
„Přečti si e-mail níže, a pokud zjistíš, že je uživatel naštvaný, připrav návrh odpovědi, ve které se omluvíš, ale v žádném případě neslibuj vrácení peněz.“
✔️ Správně:
XML
<input>
[zde vložte text e-mailu]
</input>
<rules>
1. Analýza sentimentu.
2. Pokud sentiment = negativní, navrhni omluvu.
3. Omezení: Žádné vrácení peněz.
</rules>
Nemusíte své staré prompty přepisovat ručně. Použijte samotný LLM model (třeba ChatGPT nebo Claude), aby vaše prompty očistil za vás. Před nasazením do ostré automatizace mu prostě zadejte tento meta-prompt:
„Přepiš následující prompt tak, aby byl gramaticky zcela plochý a nudný. Odstraň veškerou zdvořilost, konverzační vatu a složitá souvětí. Převeď instrukce do odrážkového seznamu nebo XML struktury. Upřednostni přímou logiku před lingvistickou plynulostí: [ZDE VLOŽTE VÁŠ SOUČASNÝ PROMPT]“
Když jsme v Ninjabotu s prompt engineeringem začínali, mysleli jsme si, že naším úkolem je být jakýmisi „zaříkávači AI“ – experty, kteří znají ta správná magická slova, kterými model okouzlí a přimějí ke spolupráci.
Studie z MIT i naše denní praxe ale dokazují naprostý opak. Nejlepší prompt inženýr neokouzluje. Je spíš jako přísný vojenský velitel. Jasný. Přímý. A nekonečně nudný.
Pokud vaše AI halucinuje, přestaňte se snažit být Shakespearem. Začněte psát jako příkazový řádek. Uvidíte, jak se vaše výsledky okamžitě zlepší.
Potřebujete zkontrolovat vaši AI automatizaci? Můžeme se potkat na bezplatné schůzce.