V textové hře, kde hráč odpovídá výběrem ze tří možností v každém kole, se čtyři klíčové parametry – temperature, presence penalty, frequency penalty a top_p – chovají specificky a je důležité je správně nastavit. Pojďme se podívat na jejich detailní vysvětlení a jak je ladit (debugovat), aby hra fungovala optimálně. 1. Temperature (teplota generování) Co dělá: • Určuje míru náhodnosti v generování odpovědí. • Nižší hodnota (např. 0.2–0.4) vede k deterministickým a často opakujícím se odpovědím. • Vyšší hodnota (např. 0.8–1.2) způsobí větší kreativitu, ale někdy až příliš velkou chaotičnost. Jak ladit pro textovou hru: ✅ Pokud model generuje příliš podobné nebo nudné odpovědi, zvýšit temperature. ❌ Pokud jsou odpovědi nesmyslné, příliš náhodné, nebo nereagují na předchozí kontext, snížit temperature. Příklad: • temperature = 0.3 → „Otevři dveře / Jdi dál / Počkej“ • temperature = 0.9 → „Sraz dveře beranidlem / Zakřič na stráž / Vylez oknem“ ✅ Doporučená hodnota: 0.7–0.8 (aby volby byly kreativní, ale stále dávaly smysl) 2. Presence penalty (trest za přítomnost slov) Co dělá: • Penalizuje výskyt slov, která už byla použita v odpovědi, čímž podporuje model k vytváření nových možností. • Vyšší hodnota (např. 1.0) nutí model neopakovat fráze ani koncepty. • Nižší hodnota (např. 0.0) umožňuje opakování, což může být užitečné pro konzistenci. Jak ladit pro textovou hru: ✅ Pokud model opakovaně nabízí stejné nebo podobné volby, zvýšit presence penalty. ❌ Pokud model příliš rychle odbíhá od zavedených konceptů a vytváří zmatečné možnosti, snížit presence penalty. Příklad: • presence_penalty = 0.0 → „Otevři dveře / Počkej / Otevři dveře opatrně“ (opakování „otevři dveře“) • presence_penalty = 0.8 → „Vyraz dveře / Hledej jiný vchod / Připrav zbraň“ (různorodé možnosti) ✅ Doporučená hodnota: 0.6–0.7 (aby model nabízel různé volby, ale stále relevantní) 3. Frequency penalty (trest za frekvenci slov) Co dělá: • Penalizuje opakování slov na základě jejich frekvence v generovaném textu. • Na rozdíl od presence penalty neřeší jen přítomnost slov, ale čím častěji se nějaké slovo opakuje, tím více je penalizováno. • Používá se hlavně na omezení nadměrného opakování konkrétních slov. Jak ladit pro textovou hru: ✅ Pokud model opakovaně používá stejná slova (např. „meč, dveře, útok“), zvýšit frequency penalty. ❌ Pokud model zapomíná na důležité koncepty hry a vymýšlí nesmyslné varianty, snížit frequency penalty. Příklad: • frequency_penalty = 0.0 → „Zaútoč na goblina / Zaútoč na goblina mečem / Zaútoč na goblina pěstí“ (příliš časté „zaútoč na goblina“) • frequency_penalty = 0.5 → „Bodni goblina / Použij svůj meč / Odraz goblinův útok“ (větší variabilita) ✅ Doporučená hodnota: 0.3–0.4 (aby model neustále neopakoval stejná slova, ale zachoval souvislost) 4. Top_p (nucleus sampling) Co dělá: • Omezí výběr slov na nejpravděpodobnější možnosti. • Hodnota 1.0 znamená, že model bere v úvahu všechny možnosti (maximální variabilita). • Nižší hodnota (např. 0.5) zajistí, že model použije jen nejpravděpodobnější volby, což vede ke konzistentnějším odpovědím. Jak ladit pro textovou hru: ✅ Pokud model generuje příliš nečekané odpovědi, snížit top_p. ❌ Pokud model nepřináší dostatečně kreativní možnosti, zvýšit top_p. Příklad: • top_p = 1.0 → „Seskoč dolů / Zavolej pomoc / Využij gravitaci k rychlému útěku“ (může být nepředvídatelné) • top_p = 0.5 → „Jdi dál / Vylez nahoru / Počkej“ (velmi bezpečné a předvídatelné) ✅ Doporučená hodnota: 0.9 (aby odpovědi byly zajímavé, ale ne úplně náhodné) Celkové doporučení pro textovou hru { "temperature": 0.8, "presence_penalty": 0.6, "frequency_penalty": 0.3, "top_p": 0.9 } ✅ Toto nastavení zajistí, že model bude generovat kreativní, různorodé a smysluplné odpovědi. Debugování (jak zjistit správné hodnoty) 1. Model dává nudné odpovědi? ➡️ Zvyšte temperature nebo presence_penalty. 2. Model opakuje stejné možnosti? ➡️ Zvyšte presence_penalty a frequency_penalty. 3. Model je příliš chaotický a dává nesmyslné odpovědi? ➡️ Snižte temperature nebo top_p. 4. Model ignoruje klíčové koncepty a skáče mezi tématy? ➡️ Snižte presence_penalty a frequency_penalty. 5. Model dává příliš předvídatelné odpovědi? ➡️ Zvyšte temperature nebo top_p. 💡 Tip: Nejlepší je testovat model iterativně – změnit jednu hodnotu, otestovat několik kol hry, a pak upravit další parametry.