Robotický úředník - generování dokumentů pomocí LLM
V praxi se často setkáváme s potřebou vytvořit dokument na základě nějakých vstupů s tím, že výsledný dokument musí mít předem danou strukturu a obsahovat jak správné náležitosti, tak věcně správné informace z předložených vstupů. Takovým příkladem může být žádost o povolení stavby. Úředník žádost zkontroluje (zda odpovídá formálním náležitostem, jestli obsahuje všechny požadované údaje), dokument nastuduje a vytvoří rozhodnutí, ve kterém budou obsaženy informace z žádosti. Výsledný dokument musí odpovídat směrnicím nebo normám, které jsou pro takovýto dokument požadovány.
V praxi se již setkáváme s obdobnými požadavky od zákazníků. Například u cizineckého oddělení Policie České republiky je velmi časté, že policista má jako podkladový materiál celou řadu dokumentů (výslech osoby, spisový materiál ze soudu, záznamy ze zaměstnání, výslechy účastníků příslušného řízení), na základě kterých musí vyhotovit ve správním řízení správnímu řádu odpovídající rozhodnutí, které obsahuje věcné údaje ze vstupních dokumentů.
Z časového hlediska se jedná o poměrně náročnou aktivitu, kdy uživatel musí nastudovat všechny spisy a dokumenty, extrahovat z nich potřebné informace a postupně tvořit dokument, který tyto informace obsahuje.
Nabízí se, že s příchodem velkých jazykových modelů by se tato činnost dala částečně nebo plně automatizovat. První naší úvahou bylo použít jednoduchou sumarizaci dokumentů k tomu, aby se automaticky tvořila část textu v rozhodnutí. Tento způsob se však neukázal jako příliš vhodný, neboť neobsahoval některé podstatné údaje ze vstupních dokumentů, navíc systém poměrně často vyhodnocoval některé údaje jako relevantní, i když tomu tak nebylo. Dále jsme zvažovali kombinaci sumarizace textu a jemného ladění jazykového modelu s tím, že bychom na mnoha případech naučili jazykový model, jak vypadá výstupní text, a pomocí těchto postupů se snažili přiblížit správnému výsledku.
Výrazně lepšího výsledku jsme nakonec dosáhli pomocí řetězení funkcí, kdy jsme celou úlohu rozdělili do jednotlivých kroků a postupně vytvářeli obsah cílového dokumentu:
- První části úlohy je vlastně volání funkcí, kdy extrahujeme strukturovaná data v textu jako jsou jméno, příjmení, datum narození, číslo pasu, bydliště, telefon, emailová adresa.
- Další částí procesu je definování klíčových, nebo lépe řečeno podstatných částí dokumentu obsahujících důležité informace, které se musí objevit ve výsledném dokumentu. Zde jako ve všech podobných případech narážíme na zajímavý problém se sestavením dotazu – promptu. Prompt je u jazykových modelů velice důležitým prvkem, který ovlivňuje podstatným způsobem výsledek. Pro každý jednotlivý případ je třeba vyladit příslušný prompt, aby výsledná odpověď byla věčně správná a obsahovala požadované informace.
- V dalších krocích je nabídnut souhrn – seznam nikoliv klíčových informací, ale de facto otázek, které vygeneruje umělá inteligence. Uživatel má možnost si z daných otázek vybrat ty, které dále použije, nebo které zavrhne.
Tento postup, kdy jsou v rámci procesu připraveny dotazy, se ukazuje jako velice užitečný a zároveň uživatelsky přívětivý. Ze složitého dotazu vlastně vytvoříte sadu jednodušších promptů a vhodnou technikou docílíte toho, aby výsledný text odpovídal přesně vašim potřebám.
Na pozadí celého procesu je samozřejmě celá škála technických prostředků umožňujících manipulaci s obsahem dokumentu, jako je vektorizace obsahu, uložení vektoru do vektorové databáze, dotazování do vektorového databáze, zpracování dokumentů v případě, že je příliš dlouhý, a podobně. Všechny velké jazykové modely mají nějaká omezení týkající se počtu znaků, které můžete vložit jako takzvaný kontext, a na základě kterých vám jazykový model připravuje výstup. Pokud je takový kontextový soubor příliš velký, může se stát, že jej jazykový model není schopen zpracovat.
Tyto technické záležitosti se odehrávají všechny na pozadí v systému, a tak nemusí uživatele našich řešení trápit. Uživatelé si vlastně pouze připraví vstupní dokumenty, nahrají je do systému a vyberou šablonu výstupu. Systém si načte vstupní dokumenty a navrhne v seznamu sadu dotazů. Z nich si uživatel vybere ty vhodné a pošle dokument ke zpracování. Výstupem je pak návrh finálního dokumentu, který už uživatel pouze zkontroluje, popřípadě upraví, nebo se v celém procesu vrátí a doplní případné chybějící vstupní informace. Proces zpracování dokumentů je pak časová záležitost na minuty, nikoliv na dny.
Jsme přesvědčeni o značné efektivitě tohoto nástroje, který je ve stadiu prototypu. Spíše se obáváme toho, že uživatelé budou plně spoléhat na systém, bez věnování dostatečné pozornosti tvorbě výsledného dokumentu.
Výhody generování dokumentů pomocí LLM z předloženého textu:
- Rychlost a efektivita: LLM může generovat dokumenty rychleji než člověk, což šetří čas a zdroje.
- Konzistence: LLM může zajistit, že výsledný dokument bude mít konzistentní formát a styl, což usnadňuje čtení a porozumění.
- Personalizace: LLM může být trénován na konkrétní vzory nebo šablony, což umožňuje vytvářet dokumenty, které splňují specifické požadavky nebo normy.
- Flexibilita: LLM lze snadno aktualizovat nebo přizpůsobit, pokud dojde ke změně vzoru nebo požadavků na dokument.
- Snížení chyb: LLM může snížit chyby způsobené lidským faktorem, jako jsou překlepy nebo gramatické chyby.
Problémy generování dokumentů pomocí LLM z předloženého textu:
- Chyby v generovaném textu: LLM může generovat chybné nebo nevhodné informace, pokud není správně trénován nebo pokud nedostane dostatečně jasné pokyny.
- Kontext a sémantika: LLM může mít potíže s pochopením kontextu nebo sémantiky předloženého textu, což může vést k nesprávnému formátování nebo strukturálním chybám.
- Omezení na základě trénovacích dat: Pokud LLM nebyl trénován na dostatečně relevantních datech, může mít problémy s generováním dokumentů, které mají vyhovovat specifickým požadavkům nebo normám.
- Nesprávná interpretace: LLM může chybně interpretovat předložený text nebo „nepochopit“ jeho účel, což vede ke generování dokumentů neodpovídajících požadavkům.
- Etické a právní otázky: Použití LLM ke generování dokumentů může vyvolat otázky týkající se ochrany osobních údajů, duševního vlastnictví nebo odpovědnosti za chyby a nepřesnosti v generovaných textech.