Generated Knowledge Prompting je technika, kde model nejprve vygeneruje relevantní znalosti nebo fakta k danému tématu – a teprve poté, obohacen o tyto znalosti, odpoví na původní otázku.
Standardní přístup:
„Je tučňák savec?“ → model rovnou odpoví.
Generated Knowledge přístup:
Model nejprve vygeneruje znalosti → „Tučňáci jsou ptáci, kteří nemohou létat. Savci jsou teplokrevní živočichové, kteří kojí mláďata. Tučňáci kladou vejce…“ → a teprve na základě těchto vygenerovaných faktů formuluje finální odpověď.
Diagram ukazuje dva provázané kroky:
Spodní část – generování znalostí: Do modelu (PLM – Pre-trained Language Model) vstoupí výzva složená ze tří složek: instrukce (jak má model znalosti generovat), ukázky (few-shot příklady) a samotná otázka. Model na základě toho vygeneruje několik znalostních výroků – Znalost 1, Znalost 2 atd.
Horní část – integrace a odpověď: Původní otázka spolu s vygenerovanými znalostmi vstoupí do fáze integrace, která z nich sestaví finální odpověď.
Klíčové je, že znalosti nevkládá člověk zvenčí – generuje je sám model ještě před tím, než odpoví. A proto je to právě Generated Knowledge Prompting, nikoli jen přidávání kontextu do promptu, jak bylo v předchozím příkladu s cihlami.
Proč to funguje lépe?
Protože model při přímé odpovědi často „zkratuje“ přes první asociaci, která mu přijde na mysl. Když si nejprve explicitně sepíše relevantní znalosti, sníží se riziko halucinací a výsledná odpověď je lépe ukotvená ve faktech.
Technika se ukázala jako zvláště účinná u otázek vyžadujících selský rozum a obecné znalosti – tedy tam, kde modely tradičně chybují ne proto, že by informaci neměly, ale proto, že ji při přímé odpovědi správně nevyužijí.
Příklad v praxi
| Krok | Prompt | Výstup modelu |
| Krok 1: Generování znalostí | Vygeneruj několik relevantních faktů o golfu a jak tento sport funguje. | 1. Golf se hraje na hřišti s 18 jamkami. 2. Cílem je dostat míček do jamky na co nejméně úderů. 3. Čím nižší skóre, tím lepší výsledek. 4. Handicap umožňuje hráčům různé úrovně soutěžit společně. 5. Hráč s nejnižším počtem úderů vyhrává. |
| Krok 2: Odpověď na základě znalostí | [Vygenerovaná fakta z kroku 1] + Otázka: Hráč A skóroval 70 úderů, hráč B skóroval 65 úderů. Kdo vyhrál? | Vyhrál hráč B. V golfu platí, že nižší počet úderů znamená lepší výsledek – hráč B potřeboval o 5 úderů méně, takže zvítězil. |
Bez prvního kroku modely na podobné otázky o golfu odpovídají chybně – intuitivně předpokládají, že vyšší číslo znamená lepší výsledek, jako ve většině jiných sportů. Vygenerované znalosti tuto past eliminují.
Proč to funguje lépe než přímá odpověď?
Model při přímé odpovědi často „zkratuje“ přes první asociaci, která mu přijde na mysl. Explicitní generování znalostí ho nutí nejprve aktivovat správný konceptuální rámec – a teprve poté odpovídat. Snižuje se tím riziko halucinací a logických chyb, protože finální odpověď je ukotvena ve faktech, která model sám formuloval.
Technika se ukázala jako zvláště účinná u otázek vyžadujících selský rozum a obecné znalosti – tedy tam, kde modely tradičně chybují ne proto, že by informaci neměly, ale proto, že ji při přímé odpovědi správně nevyužijí.
Jak Generated Knowledge Prompting použít v praxi?
Postup je jednoduchý. Nejprve požádejte model: „Vygeneruj několik klíčových faktů o [tématu].“ Poté tyto vygenerované znalosti zkopírujte zpět do promptu a teprve pak přidejte svou původní otázku. Výsledná odpověď bude spolehlivější, lépe ukotvená a méně náchylná k chybám z povrchní asociace.
Pro pokročilejší použití lze oba kroky spojit do jediného promptu instrukcí ve stylu: „Nejprve si vygeneruj relevantní fakta o [tématu] a na jejich základě odpověz na tuto otázku: [otázka].“ Model pak celý dvoufázový proces provede sám v jednom výstupu.
Zdroj: Liu et al. (2022). Generated Knowledge Prompting for Commonsense Reasoning. arxiv.org/abs/2110.08387