Ahoj, napiš mi krátký novinový článek o sametové revoluci.
Ahoj, čteníci!
Smetová revoluce: Zánik monarchie a narození moderního Česka
Praha, 28. listopadu 1918 - Včerej večer se v Praze uskutečnil historicky významný akcí, který zanechal lastingý podpis na české historii. Smetová revoluce, také známá jako Velká revoluce, byla série protivládních protestů a demonstrací, které vedly k zániku monarchie a narození moderního Česka. V noci z 17. na 18. listopadu 1918 se v Praze sešlo stálice protivládního hnutí, které se zástupci ministerstva vnitra a armády sešli, aby se dohodli na rozpuštění monarchie a zavedení republiky. V 5.00 hodině večer se v ulicích Prahy beganovaly protesty a demonstrace, které quickly se rozšly na celostátní hnutí. [...]
BenCzechMark paper, Figure 7
Sametová revoluce: Jak pokojný protest změnil tvář Československa
Praha/Brno – Dnes, kdy se na světovýchto poli neustále odehrávají politické bouře, je fascinující přehlídat příběh událostí, které dokázaly změnit celou politickou strukturu bez jediného výstřelu. Sametová revoluce, která se odehrála v Československu na konci roku 1989, zůstává jedním z nejzásadnějších příkladů, jak může civilní opozice a masivní lidská solidarita přemluvit režim k úступkům.
Tečlivé roky pod komunistickou vládou byly povznakem represí, absence svobody a ekonomického stagnování. Systém byl pevně zakotvený v ideologii, která se nechtěla vzdát, i když byla ztracená důvěru veřejnosti. Nicméně, na konci osmdesátých let začalo rostoucí napětí. [...]
Sametová revoluce: Týden, který změnil tvář Československa
PRAHA – Před pětatřiceti lety se v ulicích pražských měst odehrála událost, na kterou historie nezapomene. Sametová revoluce, jak ji dnes nazýváme, trvala pouhých sedmnáct dní a bez jediného výstřelu smetla komunistický režim, který zemi vládl přes čtyři desetiletí.
Vše začalo 17. listopadu 1989 – studentskou demonstrací u příležitosti výročí uzavření vysokých škol nacisty, která se brutálním zásahem policie změnila v masový protest. Solidarita s bitými studenty se šířila rychlostí blesku. O dva dny později se na Václavském náměstí sešly statisíce lidí. [...]
První je z malého modelu z roku 2024: llama-3.2-3b . U tohoto textu je vidět na první pohled, že zní spíš “pseudočesky”. Začíná to nesmyslným pozdravem “Ahoj, čteníci!”, v textu se pak objevují i vysloveně anglické tokeny zamíchané do textu jako “lastingý podpis”. Text zároveň není ani příliš logicky koherentní.
Druhý text je z aktuálního, ale stále relativně malého modelu gemma-4-e4b. Tento text už je nadějnější, přesto zde ale model do textu například zamíchá azbuku (“úступkům”), vymyslí neologismus (“Tečlivé”) a dělá kejkle s gramatikou (“i když byla ztracená důvěru veřejnosti”). Text je ale celkově mnohem smysluplnější a je vidět, že hlavním problémem je “česká vrstva”.1V modelu není vrstva, která by explicitně měla na starosti češtinu ani žádný další jazyk. Přesto se ale ukazuje, že model může při trénování dedikovat určité skupiny parametrů v konkrétních vrstvách pro lokalizaci do konkrétního jazyka po tom, co hlavní část uvažování proběhne v angličtině.
Poslední text je z nejaktuálnějšího a největšího modelu deepseek-v4-flash-0731. Tento text je v zásadě logicky i pravopisně koherentní, skrývá se v něm pouze jeden sémantický šotek “v ulicích pražských měst”.2Že by ho pojmy jako “Panoptikum Města pražského” v trénovacích datech navedly na to, že těch “pražských měst” máme víc?
Pojďme si tedy udělat lepší obrázek o tom, jak současné modely zvládají generovat text v češtině. Je text z modelů bez pravopisných nebo gramatických chyb? Zvládají modely specifické nástrahy češtiny: tykání a vykání, skloňování a časování, spoustu různých předpon a přípon, jiné formáty čísel a dat, …? A zvládáme tohle všechno vlastně vyhodnotit? Tyto otázky v této části načneme a vystavíme si tím můstek k závěrečné části.
Články stavím i na vlastních experimentech, chci dát proto opět kredit výzkumné infrastruktuře, kterou jsem k experimentům využil: LRC clusteru na ÚFAL MFF UK, přes který mám přístup ke špičkové výpočetní kapacitě, a výzkumné infrastruktuře od e-INFRA, kde se v poslední době objevují frontier modely hned po vydání. Oběma tímto moc děkuji a doufám, že výsledky budou užitečné i v této – poněkud “neakademické” – podobě.
Než začneme: Jak vyhodnocovat modely na generování textu?
Kvalitu volně vygenerovaného textu, jako například shrnutí článku, změnu stylu, parafrázi, nebo překlad do jiného jazyka, je notoricky náročné vyhodnotit.
U vyhodnocování porozumění textu jsme nechávali model pouze vybírat z možností nebo vypsat správnou odpověď. Díky tomu jsme si vystačili s jednoduchými metrikami jako je accuracy (“přesnost”), F1-skóre, AUROC, … Tyto metriky jsou ve spoustě ohledů šikovné: dají se rychle měřit, jsou replikovatelné, porovnatelné a dobře interpretovatelné. “Model A měl správně 64 % úloh, zatímco model B pouze 36 % úloh.” je něco, co chce slyšet člověk, který se rozhoduje, který z těchto modelů nasadí.
Jenže pro generovaný text jsou tyto metriky moc přísné. Potřebovali bychom totiž měřit přesnou shodu (“exact match”), což dává smysl použít jen v těch nejtriviálnějších případech – například když model musí vypsat konkrétní slovo z textu.
U všech otevřenějších generativních úloh mají ale výstupy řadu přijatelných řešení. Pokud tedy máme k dispozici jedno správné řešení a myslíme si, že další správná řešení budou podobného rázu, musíme počítat s tím, že chceme měřit ne přesnou shodu, ale podobnost s tímto řešením (“referencí”). Tady se uplatní metriky pro měření lexikální podobnosti (například BLEU nebo chrF), případně sémantické podobnosti na základě podobnosti embedingů.
Občas ale ani měření podobnosti s referenčním řešením není dobrý nápad. Dává například smysl měřit “podobnost” vygenerovaného kódu? Nebo co má být “referenční řešení” u básně nebo eseje?
V těchto případech na to potřebujeme jít chytřeji. U úloh s přesně daným výsledkem si můžeme pomoct tím, že budeme kontrolovat výsledek. Například kód musí projít unit testy nebo volání nástroje musí mít správné argumenty a vrátit správný výsledek. Tento způsob kontrolování sice stále nepodchytí, zda model nedospěl ke správnému řešení špatným způsobem (například tím, že unit testy upravil tak, aby jeho kód prošel), poměrně dobře se ale škáluje.
U úloh s otevřenějším zadáním, které chceme vyhodnotit kvalitativně (“Je báseň v zadaném stylu?” nebo “Zní text přirozeně?”), pak ale není vyhnutí. Zde potřebujeme někoho (nebo něco), kdo nám text zhodnotí.
Ještě donedávna tuto úlohu plnili zaškolení lidští anotátoři, ale jejich čas je pochopitelně drahý, takže se tento přístup nedá příliš naškálovat. Dnes už si často můžeme vypomoct tzv. LLM-judge, tedy jazykovým modelem, který byl instruován k tomu, aby text vyhodnotil. To je mnohem škálovatelnější přístup, ale musíme si najednou dávat pozor na řadu věcí: Je model dostatečně schopný v této úloze, aby to dovedl posoudit? A nebude neobjektivně preferovat nějaké výstupy – například ty své?
Ani to nejlepší kvantitativní hodnocení pak většinou nezachytí pocit, který z textu máme, když ho čteme. Například většina současného AI slopu je při čtení poměrně dobře rozpoznatelná, i když by takový text bez problémů prošel všemi objektivními metrikami. Proto je nakonec human-in-the-loop přístup nezbytný: texty z modelů si musíme prohlédnout osobně.
Pojďme experimentovat!
Tento krátký úvod do evaluace by nám měl pomoci lépe pochopit následující experimenty.
Pro testování, jak dobře zvládají modely následovat instrukce a generovat text, jsem vybral BenchMAX: multilinguální benchmark plnění instrukcí, který mezi 17 jazyky zahrnuje i češtinu. Tento benchmark je opět “meta-benchmark”: tedy zahrnuje řadu různých datasetů, z nichž některé vyšly i jako samostatné benchmarky.
Podle autorů byla každá úloha zkontrolována třemi nezávislými rodilými mluvčími. Měl by tedy být dostatečně kvalitní i přes to, že většina úloh zde byla přeložena strojově.
Benchmark zároveň obsahuje poměrně širokou škálu úloh:
úloha
dataset
příklady
metrika
plnění instrukcí
IFEval, m-ArenaHard
429
accuracy, LLM judge
řešení matematických úloh
MGSM
250
exact match
řešení úloh z přírodních věd
GPQA
448
accuracy
volání nástrojů
Nexus
318
accuracy
kód pro zadanou funkci
HumanEval+
164
pass@1 (funguje kód napoprvé?)
řešení programovacích úloh
LiveCodeBench v4
713
pass@1 (funguje kód napoprvé?)
překlad mezi jazyky
Flores + TED + WMT24
1012/1000/997
spBLEU, chrF
práce s dlouhým kontextem
RULER
800
exact match
Vidíme, že část úloh je vyhodnocovaná jednoduchými metrikami. Je to možné díky tomu, že se soustředíme pouze na výsledek (dá se nástroj zavolat, je odpověď správně?), případně hodnotíme jen některé atributy textu a zbytek ignorujeme. Protentokrát se s tím svezeme – i tak získáme ohledně fungování modelů řadu zajímavých vhledů.
Srovnání s ostatními modely
BenchMAX bohužel nemá živý leaderboard. Online nalezneme pouze výsledky modelů z původního článku, které se nacházejí v doprovodném Github repozitáři. Vyhodnocené modely jsou o 1–2 roky starší než ty, které nás zajímají, a je mezi nimi pouze jeden komerční model: gpt-4o-mini.
To pro nás znamená, že si modely budeme muset vyhodnotit sami. Pro připomenutí, v minulém díle jsme se rozhodli vyhodnocovat následující otevřené jazykové modely:
Pro vyhodnocení výkonu modelů na tomto benchmarku jsem modely Qwen a Gemma spustil přes vLLM na výpočetním clusteru ÚFAL MFF UK,3Qwen-3.6-35B-A3B běžel ve FP8 stejně jako v předchozích experimentech, aby se vešel na jedinou NVIDIA H100, ostatní modely běžely v BF16 souběžně na 2 nebo 4 kartách NVIDIA A100 / A40 / L40 podle dostupné kapacity. pro DeepSeek jsem použil e-INFRA API.
Porovnání češtiny s angličtinou
Při vyhodnocení se budeme soustředit nejen na absolutní skóre, ale na rozdíl ve skóre mezi češtinou a angličtinou. Absolutní skóre je samozřejmě také důležité: umožňuje pochopit, jak dobrý je model na konkrétním úkolu. My ale zároveň potřebujeme i “kontrolní skupinu” – něco, co nám umožní oddělit to, jaké jsou celkové schopnosti modelu, od toho, jak dobře jde modelu úkol v konkrétním jazyce.
Protože benchmark obsahuje paralelní úlohy v obou jazycích, máme to zde jednoduché: spustíme modely na českých i anglických úlohách a podíváme se, jestli se výkon na češtině zlepší, zhorší nebo zůstane stejný.4Něco z toho to bude.
Reasoning
V experimentech umožníme našim modelům i přemýšlet, tedy před generováním textu vygenerovat reasoning trace.5Pojmy “přemýšlení” a “reasoning” beru jako technické termíny a budu je používat zaměnitelně podle kontextu. Omlouvám se tím pádem jak za anglicismy, tak za antropomorfizaci modelů. To je něco, s čím se v původním BenchMAX benchmarku nepočítalo – benchmark totiž vyšel v době, kdy reasoning modely ještě nebyly standardem.
Protože dnes už modely reasoning využívají, je otázkou, které srovnání je to “férovější”: když využijeme schopnosti současných modelů na maximum, nebo když je postavíme do stejné pozice, jako měly předchozí generace modelů?
Abychom se této otázce vyhnuli, spustíme naše modely v obou nastaveních: s přemýšlením i bez. To nám umožní řadu zajímavých srovnání. Například: je na nějaký typ úloh přemýšlení zásadní? Kde se bez něj naopak obejdeme? Pomáhá přemýšlení, které většinou probíhá v angličtině, i na češtině? A kolik extra tokenů reasoning modely v jednotlivých jazycích vygenerují?
Vynechané úlohy
Z důvodů výpočetní náročnosti jsem se nakonec rozhodl do vyhodnocení nezahrnout datasety m-ArenaHard a RULER (v tabulce kurzívou). První jmenovaný vyžaduje LLM-judge pro hodnocení kvality textu, druhý pak příliš velkou délku kontextu. LLM-judge využijeme až v příštím díle pro podrobnější hodnocení kvality textu.
Kód a interaktivní prohlížeč výstupů
Kód k experimentům a interaktivní prohlížeč výstupů z modelů naleznete v tomto repozitáři.
Výsledky
Pojďme se podívat na výsledky na jednotlivých datasetech z benchmarku.
Plnění instrukcí: IFEval
IFEval je původně anglický benchmark, který velmi chytře vyřešil otázku “Jak vyhodnocovat vygenerovaný text pomocí jednoduchých testů?” Zcela se v něm totiž vyhneme vyhodnocení obsahu textu – hodnotíme pouze, jestli model splní konkrétní měřitelný úkol schovaný v instrukci.
Několik příkladů z datasetu pro představu:
zadání
co měříme
Plánuji cestu do Japonska a rád bych, abyste mi sepsal itinerář mé cesty v shakespearovském stylu. V odpovědi nesmíte používat žádné čárky.
jestli jsou v odpovědi nějaké čárky
Napište životopis pro čerstvého absolventa střední školy, který hledá své první zaměstnání. Nezapomeňte uvést alespoň 12 zástupných znaků reprezentovaných hranatými závorkami, například [adresa], [jméno].
jestli je v odpovědi požadovaný počet zástupných znaků
Můžete mi pomoci udělat reklamu na nový produkt? Je to plenka, která je navržena tak, aby byla pro miminka pohodlnější a já chci celý výstup ve formátu JSON.
jestli je výstupem validní JSON
Napište příspěvek na blog se 352 nebo více slovy o výhodách spaní v houpací síti.
jestli je výstup dlouhý alespoň 352 slov
Chytré, že? Nevýhodou je samozřejmě to, že jestli bude příspěvek “o výhodách spaní v houpací síti” delší než 352 slov, ale bude místo toho pojednávat třeba o výhodách spaní ve stanu, tak to nemáme jak zjistit. Spoléháme se pouze na to, že modely naši vyhodnocovací metodologii neznají.
Autoři BenchMAXu přeložili původní benchmark do dalších jazyků. To byl pochopitelně trochu oříšek: některé úlohy byly doslova nepřeložitelné, jako například kapitalizace písmen, která nedává smysl v arabštině nebo japonštině. Autoři to vyřešili tak, že tyto typy úloh jednoduše vynechali: z původních 541 úloh jich proto zbylo jen 429. Některá čísla (například celkový počet slov) byla navíc vynásobená faktorem zohledňujícím typickou délku textů v daném jazyce.
Jak si modely vedly?
Modely plnit instrukce zvládají obecně velmi dobře, se skóre nad 80 procent v angličtině i češtině. Nejlépe si vedla gemma-4-31b: varianty s přemýšlením i bez mají na angličtině více než 95% úspěšnost.
Výsledky na IFEval
Na češtině se výkon všech modelů propadne oproti angličtině o 3–10 procentních bodů. Největší propad na češtině zaznamenal deepseek-v4-flash-0731 (−9,6 procentního bodu), nejmenší qwen3.6-27b (~3,2 procentního bodu). Pro kontext se můžeme podívat na starší modely porovnané v článku: nejlépe si vedla llama-3.3-70b (94,6 / 86,3), explicitně multilinguální model velikosti srovnatelné s našimi modely aya-expanse-32b měl 77,0 / 67,3.
Podle výsledků to tedy vypadá, že dnešní 30B modely v češtině plní instrukce často lépe než top 70B model z roku 2024. Zajímavé je i to, že reasoning zde hrál pouze minimální roli a v některých případech dosáhly modely lepšího výsledku bez jeho použití.
Pojďme se podívat na několik výstupů, které budou pro konzistenci i v dalších datasetech vždy převzaté z reasoning modelů:
příkladIFEval · čeština · #2
zadání
Plánuji cestu do Japonska a rád bych, abyste mi sepsal itinerář mé cesty v shakespearovském stylu. V odpovědi nesmíte používat žádné čárky.
měřené instrukce: punctuation:no_comma
Prolog
Ó poutníče jenž toužíš po kraji vycházejícího slunce.
Slyš mé slovo. Tvá cesta bude jako divadlo.
Hle sedm dní a sedm nocí.
Nechť meč tvůj bude jízdenka a štít tvůj úsměv.
Den první
Vstávej za úsvitu v městě Tokio.
Vydej se k chrámu Sensó-dži.
Tam ucítíš vůni kadidla a šepot tisíců modliteb.
Poté vkroč do ulice Nakamise.
Ochutnej sladký koláč ningyo-yaki.
K večeru vystup na věž Tokyo Skytree.
Spatříš moře světel jak hvězdné nebe.
Nechť tvá duše zpívá žalozpěv nad krásou smrtelníků.
Den druhý
Ráno navštiv trh Toyosu.
Tam zříš tuňáka jak obra v bitvě s nožem mistra.
Snídej syrovou rybu jež voní po oceánu.
Pak se projdi zahradou Hamarikyu.
Tam čajový dům skrývá klid.
Odpoledne vstupte do čtvrti Shibuya.
Křižovatka hučí jak dav v divadle Globe.
Večer zkus bar v uličce Golden Gai.
Tam pij sake a poslouchej příběhy starých pijáků.
Den třetí
Vlak tě zanese k hoře Fuji.
Ó horo posvátná.
Tvá bílá čapka se třpytí jak koruna krále Leara.
Projdi lesem Aokigahara.
Ale neboj se jeho temnoty.
Neboť i stín má svou krásu.
Večer se vykoupej v horkém prameni onsen.
Voda tě obejme jak věrný sluha.
Nechť tvá únava odejde do říše snů.
Den čtvrtý
Sjeď do města Kyoto.
Starobylé hlavní město císařů.
Navštiv zlatý pavilon Kinkaku-ji.
Jeho stěny odrážejí slunce jak zrcadlo bohů.
Projdi branou červenou Fushimi Inari. […]
Hle ó vznešený poutníku tvůj osud tě volá do země sluncem zorané.
První akt tvého putování bude v Tokiu. Tam kde neonové plameny tančí v noci a věže z oceli sahají k samotným hvězdám.
Poté tvé kroky povedou k hoře Fuji. Je to bělostný obr který v tichosti spí a hlídá země klid.
Třetí akt se odehraje v Kjótu. Tam kde gejši v hedvábí kráčejí a třešňové květy padají jako slzy radosti na zem.
Závěrem tě přivítá Ósaka. Město kde hody hřejí srdce a radost z života zní v každém koutě.
Tak končí tvůj plán. Jdi s odvahou a vracej se s příběhy které zapálí svět.
Hark traveler noble soul of wit and grace
Thy journey to Nippon doth now find its place
A grand adventure awaits thee a sight untold
A saga of ages both ancient and bold
***
**Den Prima Die (The First Day)**
Thou shalt arrive at Tokyo's mighty gate
A city of wonders defying all fate
Behold the great Shibuya a thronging sea
Where modern man doth his wild dance decree
Thou shalt wander through Shinjuku's bright gleam
A vibrant spectacle a futuristic dream
**Den Secundo Die (The Second Day)**
We seek the great temples of Asakusa's shore
Where ancient spirits forevermore adore
Thou shalt gaze upon Sensoji's sacred might
And walk through the Nakamise a wondrous sight
The neon doth blaze a glorious fiery hue
A taste of the East a marvel for you
**Den Tertio Die (The Third Day)**
To culture's deep heart thou shalt journey hence
To Harajuku's fashion a sweet recompense
See youth's wild spirit in vibrant array
Where strange garments dance throughout the day
Thou shalt find peace in a quiet park's embrace
A moment of stillness a tranquil space
**Den Quarto Die (The Fourth Day)**
A day for the mountains a climb steep and high
To see Fuji's majesty reaching the sky
Thou shalt witness the peak a glorious white crown
Where nature's great power doth forever abound
A vista sublime a breathtaking view
A memory etched forever fresh and new
**Den Quinto Die (The Fifth Day)**
Hark now […]
Hle cesta začíná v říši východního slunce
První dějství se odehrává v Tokiu
Zlaté brány se otvírají před tvou tváří
Kráčej ulicemi plnými světel a stínů
Pij čaj z porcelánové misky
Slyš šepot větru v bambusových hájích
Druhé dějství tě zve do Kjóta
Zde čas zastavil svůj krutý běh
Obdivuj zlaté zrcadlo v chrámu
Sleduj mnichy v červených róbách
Tančí s jarním věтром na kamenném mostě
Nechť tvé srdce nalézá klid v tichu
Třetí dějství sestupuje k Ósace
Zde obchodníci mění zlaté mince
Navštiv svatý les plný moudrých jelenů
Oni se klanějí před tvou cestou
Ochutnej pokrm z ohně a soli
Nechť tvé ústa chutnají slast
Čtvrté dějství tě nese k Fudži
Vyšplháš se k sněhové koruně
Tam slunce líbá tvé unavené čelo
Sestup s moudrostí v očích
Cesta končí kde začala
Neseš v srdci obraz věčného jara
Ať tvůj návrat bude plný cti
Poslouchej ó cestovateli a přijmi tento záznam jako divadelní hru o pěti dějstvích. Hvězdy přály a tvá loď přistane v přístavu Edo. Scéna první odhalí ulice plné světla a stínů. Chrám Sensoji přinese duši klidný odpočinek. Večer přivede k tržišti Ameyoko kde hlasy prodavačů znějí jako sbor herců. Scéna druhá zavede tě k trůnu bohů. Hora Fuji se zvedne nad mraky jako korunovační klenot. Jezero Kawaguchi odrazí nebe v tichých vodách. Lázně Onsen očistí tělo i myšlenky parou a tichem. Scéna třetí přivítá starou královnu tradic. Kyoto otevře brány chrámů Kinkakuji zářících zlatem slunce. Bambusové háje šeptají tajemství staletí. Čajová ceremonie přinese moudrost v každém doušku. Scéna čtvrtá oslaví město radosti a chuti. Osaka vstane s úsměvem na rtech. Ulice Dotonbori hoří barvami a vůněmi. Street food přinese jazyku nebeskou radost. Noc uzavře hru tancem a smíchem. Scéna pátá přinese rozloučení s cizí zemí. Slunce zapadne nad přístavem a tvá cesta se uzavře. Odnes si památky v srdci a hvězdy slibují nový výlet. Hra končí ale příběh žije v paměti navždy.
příkladIFEval · čeština · #28
zadání
Napište text reklamy na nový produkt, digitální fotorámeček, který se připojí k vašim účtům na sociálních sítích a zobrazí vaše fotografie. Odpovězte maximálně 132 slovy.
měřené instrukce: length_constraints:number_words
Zapomeňte na nekonečné scrollování. Nový SmartFrame promění vaše sociální sítě v živou galerii. Automaticky se synchronizuje s vaším Instagramem a Facebookem, takže vaše nejlepší momenty se objeví na elegantním displeji bez jediného kliknutí. Stačí se jednou přihlásit a nechte vzpomínky ožít. Perfektní dárek pro každého, kdo miluje fotky. Objednejte nyní a získejte 20% slevu!
**Oživte své vzpomínky v reálném čase! 📸**
Máte tisíce úžasných fotek na Instagramu nebo Facebooku, které zůstávají skryté v telefonu? Přeneście je doprostřed svého domova s naším novým chytrým digitálním fotorámečkem.
Zapomeňte na složité nahrávání a kabelové chaosy. Stačí rámek připojit k vašim sociálním sítím a on udělá zbytek. Každý váš nový příspěvek se automaticky objeví na vašem stole nebo polici. Sledujte dobrodružství svých dětí, dovolené s přáteli nebo oblíbené momenty v špičkové kvalitě a elegantním designu.
Je to ideální způsob, jak udržet rodinu a přátele stále nablízku, i když jsou daleko.
**Pořiďte si svůj chytrý fotorámeček ještě dnes a nechte své vzpomínky vyprávět příběh!**
👉 [Odkaz na web/Obchod]
**Titul: Vaše vzpomínky, vždy na dosah.**
Zapomeňte na rozptýlené fotografie v telefonu a na harddisku. Představujeme nový digitální fotorámeček – váš osobní archiv, který nikdy neusne.
Tento chytrý fotorámeček je navržen pro moderní život. Stačí ho připojit k vašim účtům na sociálních sítích (Facebook, Instagram) a on se postará o zbytek. Automaticky načítá vaše nejnovější a nejmilostnější fotografie a zobrazuje je v nádherném, neustále se měnícím baletu.
Přeměňte svůj obývací pokoj v galerii neuvěřitelných momentů. Sdílejte radost s blízkými, i když jsou daleko.
**Nečekejte, až se vzpomínky vytrhnou. Připojte je k našemu fotorámečku ještě dnes a zažijte digitální kouzlo!**
*Dostupné v různých velikostech. Objednejte si svůj nyní!*
**Vaše vzpomínky, vždy aktuální.** 📸
Představujeme chytrý fotorámeček, který oživí váš domov. Stačí jednou propojit s Instagramem, Facebookem nebo fotogalerií a rámeček automaticky stahuje vaše nejnovější snímky. Žádné ruční nahrávání, žádné kabely – jen plynulý proud vašich zážitků na elegantním displeji.
Ideální dárek pro rodinu, kamarády nebo pro vás. Sledujte, jak se rodí nové vzpomínky, aniž byste museli opustit pohovku. Jednoduchá instalace, úsporný provoz a bezdrátové aktualizace.
Přeměňte obyčejnou zeď na živou galerii vašeho života. Objednejte si svůj chytrý fotorámeček ještě dnes a nechte své příběhy mluvit za vás. 🌟
#ChytrýRámeček #VzpomínkyNaDosah #InovaceProDomov
Zapomeňte na fotky zapomenuté v telefonu! Náš nový digitální fotorámeček se automaticky připojí k vašim účtům na sociálních sítích a živě zobrazuje vaše nejoblíbenější fotografie na velkém displeji. Žádné složité nastavování ani USB kabely. Stačí se přihlásit a vaše vzpomínky ožívají na stěně. Ideální pro rodinu, přátele i jako originální dárek. Vytvořte si galerii, která se neustále obnovuje. Objednejte si ještě dnes a nechte své vzpomínky zářit!
příkladIFEval · čeština · #91
zadání
Přepište větu „Autobus dorazil na nádraží“ zajímavějším způsobem. Nepoužívejte slovo „nádraží“.
měřené instrukce: keywords:forbidden_words
Zde je několik návrhů, jak větu přepsat zajímavěji, aniž bychom použili slovo „nádraží“:
1. **Atmosférický a zvukový:** *Autobus s tichým zasténáním brzd vklouzl do prostoru, kde se sbíhají koleje.*
2. **Personifikace a metafora:** *Autobus vydechl úlevou na konečné, odkud se rozjíždějí vlaky do celé země.*
3. **Vizuální a čichový vjem:** *Autobus dorazil k bráně města, kde se mísí vůně kávy se spěchem cestujících.*
4. **Dynamický a akční:** *Autobus se s konečným zaduněním motoru zastavil před nástupišti.*
5. **Lyrický a poetický:** *Autobus dojel až na práh, odkud se ocelové hady plazí dál do krajiny.*
Záleží na tom, jaký tón chcete v textu vytvořit. Zde je několik variant rozdělených podle stylu:
**Atmosférické a popisné (vhodné do vyprávění):**
* „S hlasitým zakřipěním brzd zastavil autobus u terminálu.“
* „Kovový obr doputoval k nástupišti a sykl vypuštěným vzduchem.“
* „Kola autobusu se konečně zastavila v srdci dopravního uzlu.“
* „Unavený spoj vjel do zastávkového prostoru a ztichl.“
**Dynamické a moderní:**
* „Autobus vjel do terminálu přesně včas.“
* „Vůz dorazil do přepravního uzlu.“
* „Spoj konečně přistál u nástupiště.“
**Poetické nebo tajemné:**
* „Cesta skončila v místě, kde se kříží všechny stezky.“
* „Autobus doputoval do přístavu pro cestovatele.“
**Tip:** Pokud chcete být konkrétnější, nahraďte slovo „nádraží“ slovem **terminál, nástupiště, zastávka, dopravní uzel** nebo **přístav**.
Zde je několik možností, jak větu přepsat, v závislosti na tom, jaký tón (literární, dynamický, nebo jednoduchý) chcete dosáhnout.
***
### 🚌 Dynamické a akční (Zaměřeno na pohyb)
1. Autobus se s hlukem zastavil u hlavního dopravního uzlu.
2. Zastavil se na terminálu, kde se střetávají všechny cesty.
3. Autobus dorazil na prohraniště cestujících.
### ✍️ Literární a popisné (Zaměřeno na atmosféru)
4. Autobus se zvedl do života v huku dopravního centra.
5. Na místě, kde se křižují všechny trasy, se objevil autobus.
6. Cesta autobusu skončila u velkého dopravního hnisťa.
### ⚡️ Stručné a silné (Zaměřeno na efektivitu)
7. Autobus dorazil na stanoviště. (Pokud je to primárně autobusová zastávka)
8. Autobus se zastavil v dopravním centru.
Autobus se po dlouhé jízdě zastavil u bílého pavilonu, kde se střetávají cesty a začínají nové příběhy.
Autobus s tlumeným zvukem motoru dorazil na hlavní stanici.
V posledních výstupech od deepseek-v4-flash a gemma-4-31b si můžeme všimnout problému, který nás bude provázet v evaluaci i nadále: jejich výstupy byly vyhodnocené jako “chybné”, i když jsou v zásadě správně. Modely zopakovaly slovo “nádraží” pouze v komentářích o zadání, v samotných parafrázích už ho nepoužily – což ovšem detekční kód neměl jak rozpoznat. Takovýchto artefaktů zde ale naštěstí není mnoho a nepenalizují žádný model systematicky.
MGSM a GPQA jsou benchmarky, které by klidně mohly být součástí minulého dílu. Ačkoliv při nich modely text generují, nezajímá nás nic jiného, než závěrečná odpověď. Konkrétně MGSM testuje odpovědi na jednoduché matematické úlohy, GPQA testuje odpovědi na pokročilejší otázky z přírodních věd: biologie, fyziky a chemie.
Jak si modely vedly?
Tyto benchmarky nám bohužel řeknou celkem málo. Benchmarky jsou – minimálně v angličtině – poměrně “profláknuté”, a tedy, jak jsme si vysvětlili v minulém díle, dost pravděpodobně zatížené kontaminací.
Výsledky na MGSM
Skóre na češtině na MGSM je opět lehce horší, za což ale částečně nejspíš může i neobratnost strojového překladu. Ačkoliv se autoři dušují, že i zde výstupy byly kontrolované, vypadá to, že datasetu zůstala řada artefaktů, které modelům komplikují odpovídání:
Například původní matematická úloha:
A robe takes 2 bolts of blue fiber and half that much white fiber. How many bolts in total does it take?
má správné řešení 3, neboť “half that much” znamená polovinu ze dvou, tedy jedna, a 2+1=3. Překlad do češtiny ovšem dopadl následovně:
Župan potřebuje 2 role modrého vlákna a polovinu role bílého vlákna. Kolik rolí je potřeba celkem?
Zde již polovinu chápeme jednoduše jako 1/2, a tedy 2+1/2=2,5. Tímto číslem – 2,5 – odpověděly všechny testované modely. Ovšem “správná” odpověď zůstala pochopitelně nastavená jako 3, a tedy odpovědi byly vyhodnocené jako špatné:
příkladMGSM · čeština · #2
slovní úloha
Župan potřebuje 2 role modrého vlákna a polovinu role bílého vlákna. Kolik rolí je potřeba celkem?
správná odpověď
3
Krok 1: Župan potřebuje 2 role modrého vlákna.
Krok 2: Dále potřebuje polovinu role bílého vlákna, což je 0,5 role.
Krok 3: Sečteme obě množství: 2 + 0,5 = 2,5.
**Celkem je potřeba 2,5 role vlákna** (tedy dvě a půl role).
Zde je postup výpočtu krok za krokem:
1. **Určení množství modrého vlákna:** Župan potřebuje 2 role.
2. **Určení množství bílého vlákna:** Župan potřebuje polovinu role, což je 0,5 role.
3. **Sečtení obou hodnot:** $2 + 0,5 = 2,5$
**Odpověď:** Celkem je potřeba **2,5 role** vlákna.
**Odpověď krok za krokem:**
**Krok 1: Stanovení potřeby modrého vlákna**
Župan potřebuje 2 role modrého vlákna.
**Krok 2: Stanovení potřeby bílého vlákna**
Župan potřebuje polovinu role bílého vlákna, což je 0,5 role.
**Krok 3: Sečtení celkové potřeby**
Celkový počet rolí se vypočítá sečtením potřebných rolí modrého a bílého vlákna:
$$2 \text{ (modré)} + 0,5 \text{ (bílé)} = 2,5 \text{ rolí}$$
**Odpověď:**
Celkem je potřeba **2,5** role vlákna.
**Krok za krokem:**
1. **Modré vlákno:** Župan potřebuje 2 celé role.
2. **Bílé vlákno:** Župan potřebuje polovinu role, což je \(0{,}5\) role.
3. **Celkový součet:** Sečteme obě množství:
\(2 + 0{,}5 = 2{,}5\)
**Odpověď:** Celkem je potřeba **2,5 role** vlákna.
Krok 1: Župan potřebuje 2 role modrého vlákna.
Krok 2: Potřebuje také polovinu role bílého vlákna, což je 0,5 role.
Krok 3: Celkový počet rolí je součet obou částí: 2 + 0,5 = 2,5 role.
Odpověď: 2,5 role.
Dobrou zprávou z hlediska kontaminace dat je ale to, že modely zde očividně odpověď nemají namemorovanou a věří vlastnímu uvažování.
V evaluaci jsou pak i další háčky: například že čeština odděluje tisíce mezerou, zatímco MGSM extrahuje odpověď regexem, který s tímto nepočítá. Claude naštěstí tuto past odhalil, čímž skóre modelů stouplo o 9–12 bodů. Nabízí se ale otázka, jestli ve vyhodnocovači nezůstalo ještě něco dalšího, co by tyto výsledky mohlo ovlivnit – pokud ano, bude to vždy spíš problém na češtině, která je od původního benchmarku odvozená.
Zde je ukázka výstupu modelů pro GPQA:
příkladGPQA · čeština · #5
otázka
Nátěr se nanáší na podklad, výsledkem je dokonale hladký povrch. Naměřené kontaktní úhly tohoto hladkého povlaku jsou 132° pro vodu a 102° pro hexadekan. Složení povlaku se poté upraví a když se nyní aplikuje na stejný typ substrátu, vytvoří se drsný povrch. Když kapka vody nebo oleje sedí na drsném povrchu, smáčivost povrchu lze nyní popsat stavem Cassie-Baxter. Úhel kontaktu vody na hrubém povrchu je nyní 148°. Jaký by byl nejlepší odhad kontaktního úhlu kapky oktanu na drsném povrchu?
(A) 139°
(B) 129°
(C) 124°
(D) 134°
správná odpověď
(C) 124°
Chemistry · Chemistry (general)
Správná odpověď je **(C) 124°**.
Stručný postup:
1. Pro Cassie-Baxterův stav platí:
\[
\cos\theta_{CB}=f_s(1+\cos\theta_Y)-1
\]
kde \(f_s\) je podíl pevné fáze v kontaktu s kapalinou.
2. Z vody na hladkém a drsném povrchu:
\[
\theta_{Y,voda}=132^\circ,\quad \theta_{CB,voda}=148^\circ
\]
\[
f_s=\frac{1+\cos148^\circ}{1+\cos132^\circ}
=\frac{1-0{,}848}{1-0{,}669}
\approx 0{,}459
\]
3. Z kontaktních úhlů vody a hexadekanu na hladkém povlaku odhadneme povrchovou energii povlaku. Pro oktan pak vyjde Youngův úhel na hladkém povrchu přibližně:
\[
\theta_{Y,oktan}\approx 92{,}5^\circ
\]
tedy:
\[
1+\cos\theta_{Y,oktan}\approx 0{,}957
\]
4. Aplikujeme Cassie-Baxter na oktan:
\[
\cos\theta_{CB,oktan}=0{,}459\cdot 0{,}957-1
\approx -0{,}561
\]
\[
\theta_{CB,oktan}\approx 124^\circ
\]
Proto je nejlepší odhad **(C) 124°**.
K vyřešení tohoto úkolu musíme použít model pro smáčivost drsných povrchů, konkrétně **Cassie-Baxterovu rovnici**. Tato rovnice popisuje stav, kdy kapka tekutiny neproniká do rýh drsného povrchu, ale „sedí“ na kombinaci pevných vrcholů povrchu a uvězněného vzduchu.
### 1. Teoretický základ: Cassie-Baxterova rovnice
Cassie-Baxterova rovnice je definována jako:
$$\cos \theta^* = f_s (\cos \theta + 1) - 1$$
Kde:
* $\theta^*$ je zdánlivý kontaktní úhel na drsném povrchu.
* $\theta$ je kontaktní úhel na hladkém povrchu (Youngův úhel).
* $f_s$ je zlomek plochy pevné látky, která je v přímém kontaktu s kaplinou.
### 2. Výpočet parametru $f_s$ pomocí dat pro vodu
Máme k dispozici data pro vodu na hladkém a drsném povrchu:
* $\theta_{voda, hladký} = 132^\circ$
* $\theta_{voda, drsný} = 148^\circ$
Dosadíme do rovnice:
$$\cos(148^\circ) = f_s (\cos(132^\circ) + 1) - 1$$
Vypočítáme hodnoty kosinů:
* $\cos(148^\circ) \approx -0,848$
* $\cos(132^\circ) \approx -0,669$
Dosadíme zpět:
$$-0,848 = f_s (-0,669 + 1) - 1$$
$$-0,848 = f_s (0,331) - 1$$
$$1 - 0,848 = 0,331 \cdot f_s$$
$$0,152 = 0,331 \cdot f_s$$
$$f_s = \frac{0,152}{0,331} \approx 0,459$$
### 3. Odhad kontaktního úhlu pro oktan (olej)
Otázka se ptá na oktan. V zadání máme hodnotu pro hexadekan (další alkan), který má velmi podobné povrchové napětí a vlastnosti jako oktan. V rámci tohoto typu úloh předpokládáme, že kontaktní úhel oktanu na hladkém povrchu bude přibližně stejný jako u hexadekanu:
* $\theta_{olej, hladký} = 102^\circ$
* $f_s \approx 0,459$
Nyní vypočítáme zdánlivý úhel $\theta^*$ pro drsný povrch:
$$\cos \theta^*_{olej} = f_s (\cos(102^\circ) + 1) - 1$$
Vypočítáme $\cos(102^\circ)$:
* $\cos(102^\circ) \approx -0,208$
Dosadíme:
$$\cos \theta^*_{olej} = 0,459 (-0,208 + 1) - 1$$
$$\cos \theta^*_{olej} = 0,459 (0,792) - 1$$
$$\cos \theta^*_{olej} = 0,3635 - 1$$
$$\cos \theta^*_{olej} = -0,6365$$
Nyní určíme úhel pomocí funkce $\arccos$:
$$\theta^*_{olej} = \arccos(-0,6365) \approx 129,5^\circ$$
### 4. Porovnání s možnostmi
Výsledek $129,5^\circ$ nejlépe odpovídá možnosti (B).
**Správná odpověď je (B) 129°.**
Tento problém vyžaduje použití modelu Cassie-Baxter, který popisuje smáčivost kapky na drsném povrchu, kde je pod kapkou zachycena vzduchová dutina.
Zde je podrobný krok za krokem rozbor:
---
### Krok 1: Pochopení modelu Cassie-Baxter
Model Cassie-Baxter popisuje jakýkoli pozorovaný (apparent) úhel kontaktu ($\theta_{\text{CB}}$) na drsném povrchu jako vážený průměr úhlu kontaktu na pevné fázi ($\theta_{\text{int}}$) a úhlu kontaktu na vzduchové fázi ($180^\circ$).
Vzorec je:
$$\cos(\theta_{\text{CB}}) = f_s \cos(\theta_{\text{int}}) + (1 - f_s) \cos(180^\circ)$$
Protože $\cos(180^\circ) = -1$, vzorec se zjednodušuje na:
$$\cos(\theta_{\text{CB}}) = f_s \cos(\theta_{\text{int}}) - (1 - f_s)$$
Kde:
* $f_s$ je podíl pevné fáze (solid fraction) na povrchu.
* $1 - f_s$ je podíl vzduchové fáze (air fraction).
### Krok 2: Určení podílu pevné fáze ($f_s$)
Použijeme známé hodnoty pro vodu na drsném povrchu, protože máme pro ně kompletní data:
* $\theta_{\text{CB, voda}} = 148^\circ$
* $\theta_{\text{int, voda}} = 132^\circ$
Dosadíme do vzorce:
$$\cos(148^\circ) = f_s \cos(132^\circ) - (1 - f_s)$$
**Výpočty:**
* $\cos(148^\circ) \approx -0.848$
* $\cos(132^\circ) \approx -0.669$
$$-0.848 = f_s (-0.669) - 1 + f_s$$
$$-0.848 = f_s (1 - 0.669) - 1$$
$$-0.848 = f_s (0.331) - 1$$
$$1 - 0.848 = f_s (0.331)$$
$$0.152 = f_s (0.331)$$
$$f_s = \frac{0.152}{0.331} \approx 0.459$$
**Závěr:** Podíl pevné fáze ($f_s$) je přibližně 0.46.
### Krok 3: Odhad intrinsického úhlu kontaktu pro oktan ($\theta_{\text{int, oktan}}$)
Oktan ($\text{C}_8\text{H}_{18}$) je alkan, podobně jako hexadekan ($\text{C}_{16}\text{H}_{34}$).
Na hladkém povrchu je úhel kontaktu pro hexadekan: $\theta_{\text{int, hexadekan}} = 102^\circ$.
Protože oktan je kratší řetězec, je chemicky velmi podobný hexadekanu. V absenci přesných dat je nejlepší předpokládat, že intrinsický úhel kontaktu pro oktan je velmi blízko (nebo roven) intrinsickému úhlu kontaktu pro hexadekan.
**Předpoklad:** $\theta_{\text{int, oktan}} \approx 102^\circ$.
### Krok 4: Výpočet pozorovaného úhlu kontaktu pro oktan ($\theta_{\text{CB, oktan}}$)
Nyní použijeme Cassie-Baxter vzorec s vypočítanou $f_s$ a odhadnutým $\theta_{\text{int, oktan}}$:
$$\cos(\theta_{\text{CB, oktan}}) = f_s \cos(\theta_{\text{int, oktan}}) - (1 - f_s)$$
**Dosazení hodnot:**
* $f_s \approx 0.46$
* $1 - f_s \approx 0.54$
* $\theta_{\text{int, oktan}} = 102^\circ$
$$\cos(\theta_{\text{CB, oktan}}) = 0.46 \cdot \cos(102^\circ) - 0.54$$
**Výpočty:**
* $\cos(102^\circ) \approx -0.208$
* $\cos(\theta_{\text{CB, oktan}}) = 0.46 \cdot (-0.208) - 0.54$
* $\cos(\theta_{\text{CB, oktan}}) = -0.0957 - 0.54$
* $\cos(\theta_{\text{CB, oktan}}) = -0.6357$
$$\theta_{\text{CB, oktan}} = \arccos(-0.6357) \approx 129.4^\circ$$
### Závěr
Nejlepší odhad kontaktního úhlu kapky oktanu na drsném povrchu je přibližně $129.4^\circ$.
Z nabízených možností je nejbližší:
**(B) 129°**
Správná odpověď je **(B) 129°**.
Zde je podrobný postup krok za krokem:
**Krok 1: Identifikace fyzikálního modelu**
Pro drsné povrchy, kde kapalina neproniká do mikrostruktury, ale sedí na špičkách a pod ní zůstávají kapsy vzduchu, platí **Cassie-Baxterův model**. Jeho základní rovnice je:
\[
\cos \theta_{CB} = f_s \cos \theta_Y + f_s - 1
\]
kde:
- \(\theta_{CB}\) je kontaktní úhel na drsném povrchu,
- \(\theta_Y\) je Youngův kontaktní úhel na ideálně hladkém povrchu,
- \(f_s\) je podíl pevné fáze v přímém kontaktu s kapalinou (0 < \(f_s\) < 1).
**Krok 2: Výpočet pevné frakce \(f_s\) z dat pro vodu**
Zadání uvádí pro vodu:
- \(\theta_{Y,\text{voda}} = 132^\circ\)
- \(\theta_{CB,\text{voda}} = 148^\circ\)
Dosadíme do rovnice:
\[
\cos(148^\circ) = f_s \cos(132^\circ) + f_s - 1
\]
\[
-0{,}8480 = f_s(-0{,}6691) + f_s - 1
\]
\[
-0{,}8480 = f_s(1 - 0{,}6691) - 1
\]
\[
0{,}1520 = f_s \cdot 0{,}3309 \quad \Rightarrow \quad f_s \approx 0{,}459
\]
**Krok 3: Aplikace modelu na oktan**
Oktan a hexadekan jsou oba nepolární alkanové kapaliny s velmi podobným chováním na hydrofobních povlaku. V kontextu této úlohy je standardní předpoklad, že oktan má na daném hladkém povlaku přibližně stejný Youngův úhel jako hexadekan, tedy \(\theta_{Y,\text{oktan}} \approx 102^\circ\).
Použijeme stejnou pevnou frakci \(f_s = 0{,}459\) (geometrie drsnosti se nemění):
\[
\cos \theta_{CB,\text{oktan}} = 0{,}459 \cdot \cos(102^\circ) + 0{,}459 - 1
\]
\[
\cos(102^\circ) \approx -0{,}2079
\]
\[
\cos \theta_{CB,\text{oktan}} = 0{,}459 \cdot (-0{,}2079) + 0{,}459 - 1 \approx -0{,}0954 + 0{,}459 - 1 = -0{,}6364
\]
**Krok 4: Výpočet výsledného úhlu**
\[
\theta_{CB,\text{oktan}} = \arccos(-0{,}6364) \approx 129{,}5^\circ
\]
Zaokrouhleno na celé číslo vychází **129°**, což přesně odpovídá možnosti **(B)**.
**Závěr:** Správná odpověď je **(B) 129°**.
Pro určení kontaktního úhlu oktanu na drsném povrchu je nutné aplikovat Cassie-Baxterovu rovnici, která popisuje smáčivost na drsných površích s zachyceným vzduchem.
**1. Výpočet podílu pevné fáze ($f_s$)**
Nejprve určíme geometrický parametr drsnosti z údajů pro vodu. Cassie-Baxterova rovnice je:
$$\cos \theta_{CB} = f_s (\cos \theta_Y + 1) - 1$$
Kde $\theta_{CB}$ je úhel na drsném povrchu a $\theta_Y$ je Youngův úhel na hladkém povrchu.
* Pro vodu: $\theta_{CB} = 148^\circ$, $\theta_Y = 132^\circ$
* Dosazením:
$$\cos(148^\circ) = f_s (\cos(132^\circ) + 1) - 1$$
$$-0,848 = f_s (-0,669 + 1) - 1$$
$$0,152 = f_s (0,331)$$
$$f_s \approx 0,459$$
**2. Odhad kontaktního úhlu oktanu**
Pro výpočet úhlu oktanu ($\theta_{oct}$) potřebujeme znát jeho Youngův úhel na hladkém povrchu ($\theta_{Y, oct}$). Vzhledem k tomu, že oktan i hexadekan jsou nestranné uhlovodíky a v zadání chybí specifická data pro oktan, je nejvhodnější odhadnout, že se chovají podobně jako hexadekan.
* Předpokládáme: $\theta_{Y, oct} \approx \theta_{Y, hex} = 102^\circ$
* Dosazení do rovnice s vypočteným $f_s$:
$$\cos \theta_{oct, rough} = 0,459 (\cos(102^\circ) + 1) - 1$$
$$\cos \theta_{oct, rough} = 0,459 (-0,208 + 1) - 1$$
$$\cos \theta_{oct, rough} = 0,459 (0,792) - 1$$
$$\cos \theta_{oct, rough} \approx 0,3635 - 1 = -0,6365$$
* Výsledný úhel:
$$\theta_{oct, rough} = \arccos(-0,6365) \approx 129,5^\circ$$
Výsledek se nejlépe shoduje s možností (B).
**Správná odpověď:**
(B) 129°
A zde jsou celkové výsledky na GPQA:
Výsledky na GPQA
Je vidět, že úlohy z GPQA jsou náročnějšího rázu. Přemýšlení proto modelům spíš pomáhá – tedy alespoň v angličtině. Proč tomu tak není víc systematicky i na češtině a například qwen3.6-35b-a3b má na češtině s přemýšlením propad o ~19 procentních bodů (73,7 → 54,7)? Z výstupů je vidět, že reasoning modely se často “upřemýšlí” až za limit výstupních tokenů a nevydají žádný výstup. Toto je potřeba mít na paměti při interpretaci výsledků a dává celkem zásadní argument proti využití reasoning módu.
Další výstupy naleznete v interaktivním prohlížeči: MGSM, GPQA.
Volání nástrojů: Nexus
Nexus už je naopak úlohou na půl cesty k příštímu dílu, testuje totiž modely na volání nástrojů. Tyto nástroje mají i v přeloženém benchmarku rozhraní v angličtině, zatímco uživatelské instrukce jsou v češtině.
Při každém volání dostane model k dispozici sadu dostupných funkcí a musí jednu z nich zavolat se správnými argumenty.
Jak si modely vedly?
Výsledky na Nexus
Propad skóre z angličtiny na češtinu je zde poměrně malý, což dává smysl: testujeme opět především porozumění textu. Model zde ovšem navíc musí pochopit vztah mezi tím, co po něm chce uživatel v češtině (“denní e-mailová upozornění”) a tím, co nabízí dostupné rozhraní ("frequency": "daily"). Protože toto mapování je někdy netriviální i v angličtině, přemýšlení modelům obvykle pomáhá a přidává několik procentních bodů.
Je také vidět, jak zásadní je na tuto úlohu mít model z novější generace: malá gemma-4-e4b zde (alespoň s přemýšlením) dorovnává gpt-4o-mini. Modely Gemma jsou na této úloze obecně velmi silné a překonávají i DeepSeek.
Český překlad zadání je zde celkem solidní; minimálně tedy nebrání pochopení toho, jak by mělo vypadat správné řešení.
příkladNexus · čeština · #4
požadavek uživatele
Hledejte CPE související s 'Windows 10'. Chci zobrazit posledních 5 a vytisknout adresu URL požadavku pro ladění.
Dobrý den, obdržel jsem neočekávaný e-mail z adresy mary.johnson@familyupdates.net, který se zřejmě vydává za mou tetu Mary. Můj klíč pro EmailRep je "api_key". Jak to nahlásím?
Úlohou modelů v benchmarcích HumanEval+ a LiveCodeBench je napsat kód v Pythonu na základě zadání. Moc českého textu si od modelů tedy nepřečteme. Zadání je ale v češtině, takže ho modely musí správně pochopit – a v tomto případě i poměrně exaktně. V případě HumanEval+ je úkolem napsat funkci s předdefinovanou hlavičkou, v případě LiveCodeBench je výstupem celý skript. Kód je následně automaticky vyhodnocen přidruženými testy.
Jak si modely vedly?
Výsledky na HumanEval+Výsledky na LiveCodeBench
Z výsledků je vidět, že psaní kódu je něčím, na co jsou nedávné modely optimalizované především. České zadání modely v zásadě neznevýhodnilo, občas jsou výsledky na češtině dokonce i o něco lepší (pozoruhodné to je u qwen3.6-27b, který má na LiveCodeBench nejlepší výsledek na češtině, a to navíc bez přemýšlení: 79,5).
Na HumanEval+ se modely rozhodovaly poměrně volně, pokud šlo o jazyk komentářů. Docstring se zadáním, který začínal tělo funkce, byl totiž v češtině, a tak modely občas pokračovaly v komentování i dalších částí kódu v češtině. Nenašel jsem žádný konzistentní vzor, pokud jde o model nebo jejich rodinu: například v jednom případě gemma-4-31b-it vkládala komentáře v angličtině, zatímco gemma-4-e4b-it v češtině:
příkladHumanEval+ · čeština · #5
zadaná funkce
from typing import List
def mean_absolute_deviation(numbers: List[float]) -> float:
""" Vypočítá průměrnou absolutní odchylku pro zadaný seznam čísel,
kde středem této datové sady je průměr.
Průměrná absolutní odchylka je průměr absolutních odchylek mezi každým prvkem a středem (v tomto případě průměrem):
MAD = průměr | x - x_mean |
>>> mean_absolute_deviation([1.0, 2.0, 3.0, 4.0])
1.0
"""
referenční řešení
mean = sum(numbers) / len(numbers)
return sum(abs(x - mean) for x in numbers) / len(numbers)
entry point: mean_absolute_deviation
from typing import List
def mean_absolute_deviation(numbers: List[float]) -> float:
""" Vypočítá průměrnou absolutní odchylku pro zadaný seznam čísel,
kde středem této datové sady je průměr.
Průměrná absolutní odchylka je průměr absolutních odchylek mezi každým prvkem a středem (v tomto případě průměrem):
MAD = průměr | x - x_mean |
>>> mean_absolute_deviation([1.0, 2.0, 3.0, 4.0])
1.0
"""
mean = sum(numbers) / len(numbers)
return sum(abs(x - mean) for x in numbers) / len(numbers)
from typing import List
def mean_absolute_deviation(numbers: List[float]) -> float:
""" Vypočítá průměrnou absolutní odchylku pro zadaný seznam čísel,
kde středem této datové sady je průměr.
Průměrná absolutní odchylka je průměr absolutních odchylek mezi každým prvkem a středem (v tomto případě průměrem):
MAD = průměr | x - x_mean |
>>> mean_absolute_deviation([1.0, 2.0, 3.0, 4.0])
1.0
"""
if not numbers:
return 0.0
# Calculate the mean of the numbers
mean = sum(numbers) / len(numbers)
# Calculate the sum of absolute differences between each number and the mean
sum_absolute_deviations = sum(abs(x - mean) for x in numbers)
# Return the average of these absolute differences
return sum_absolute_deviations / len(numbers)
from typing import List
import math
def mean_absolute_deviation(numbers: List[float]) -> float:
""" Vypočítá průměrnou absolutní odchylku pro zadaný seznam čísel,
kde středem této datové sady je průměr.
Průměrná absolutní odchylka je průměr absolutních odchylek mezi každým prvkem a středem (v tomto případě průměrem):
MAD = průměr | x - x_mean |
Args:
numbers: Seznam čísel.
Returns:
Průměrná absolutní odchylka.
Raises:
ValueError: Pokud je seznam prázdný.
>>> mean_absolute_deviation([1.0, 2.0, 3.0, 4.0])
1.0
>>> mean_absolute_deviation([5.0, 5.0, 5.0])
0.0
>>> mean_absolute_deviation([1.0])
0.0
"""
if not numbers:
raise ValueError("Seznam čísel nemůže být prázdný.")
# 1. Vypočítání průměru (x_mean)
mean = sum(numbers) / len(numbers)
# 2. Vypočítání absolutních odchylek |x - x_mean|
absolute_deviations = [abs(x - mean) for x in numbers]
# 3. Vypočítání průměru těchto absolutních odchylek (MAD)
mad = sum(absolute_deviations) / len(numbers)
return mad
from typing import List
def mean_absolute_deviation(numbers: List[float]) -> float:
""" Vypočítá průměrnou absolutní odchylku pro zadaný seznam čísel,
kde středem této datové sady je průměr.
Průměrná absolutní odchylka je průměr absolutních odchylek mezi každým prvkem a středem (v tomto případě průměrem):
MAD = průměr | x - x_mean |
>>> mean_absolute_deviation([1.0, 2.0, 3.0, 4.0])
1.0
"""
if not numbers:
return 0.0
# Calculate the mean (average) of the numbers
mean_val = sum(numbers) / len(numbers)
# Calculate the mean of the absolute deviations from the mean
mad = sum(abs(x - mean_val) for x in numbers) / len(numbers)
return mad
(model nevrátil žádný výstup)
base: fail · plus: fail
Na LiveCodeBench, kde model generuje od začátku celý skript, jsou komentáře systematicky v angličtině.
příkladLiveCodeBench · čeština · #151
zadání
find-missing-and-repeated-values
Získáte 0-indexovanou 2D celočíselnou maticovou mřížku velikosti n * n s hodnotami v rozsahu [1, n^2]. Každé celé číslo se objeví přesně jednou, kromě a, které se objeví dvakrát, a b, které chybí. Úkolem je najít opakující se a chybějící čísla a a b.
Vrátí 0-indexované celočíselné pole ans velikosti 2, kde ans[0] se rovná a a ans[1] se rovná b.
Příklad 1:
Vstup: mřížka = [[1,3],[2,2]]
Výstup: [2,4]
Vysvětlení: Číslo 2 se opakuje a číslo 4 chybí, takže odpověď je [2,4].
Příklad 2:
Vstup: mřížka = [[9,1,7],[8,9,2],[3,4,6]]
Výstup: [9,5]
Vysvětlení: Číslo 9 se opakuje a číslo 5 chybí, takže odpověď je [9,5].
Omezení:
2 <= n == mřížka.length == mřížka[i].length <= 50
1 <= mřížka[i][j] <= n * n
Pro všechna x, která 1 <= x <= n * n existuje právě jedno x, které se nerovná žádnému z prvků mřížky.
Pro všechna x, která 1 <= x <= n * n existuje právě jedno x, které se rovná přesně dvěma členům mřížky.
Pro všechna x, která 1 <= x <= n * n kromě dvou z nich existuje přesně jeden pár i, j, že 0 <= i, j <= n - 1 a mřížka[i][j] == x.
leetcode · easy · 3227
from typing import List
class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
n = len(grid)
total = n * n
count = [0] * (total + 1)
for row in grid:
for val in row:
count[val] += 1
a = b = -1
for num in range(1, total + 1):
if count[num] == 2:
a = num
elif count[num] == 0:
b = num
return [a, b]
from typing import List
class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
"""
Finds the repeated and missing values in an n x n grid containing values from 1 to n^2.
Args:
grid: A 2D list of integers.
Returns:
A list [a, b] where 'a' is the repeated number and 'b' is the missing number.
"""
n = len(grid)
n_sq = n * n
# Initialize a frequency array to count occurrences of each number from 1 to n^2.
# We use size n_sq + 1 to allow 1-based indexing.
counts = [0] * (n_sq + 1)
# Traverse the grid and count the occurrences of each number.
for row in grid:
for val in row:
counts[val] += 1
# Variables to store the repeated (a) and missing (b) numbers.
a = -1
b = -1
# Iterate through the frequency array to identify the repeated and missing numbers.
for i in range(1, n_sq + 1):
if counts[i] == 2:
a = i
elif counts[i] == 0:
b = i
# Optimization: if both are found, we can stop early.
if a != -1 and b != -1:
break
return [a, b]
from typing import List
class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
"""
Finds the repeated number (a) and the missing number (b) in an n*n grid.
"""
n = len(grid)
N = n * n
# Use an array to store the frequency of numbers from 1 to N.
# Size N + 1 to allow 1-based indexing.
counts = [0] * (N + 1)
# 1. Count frequencies
for row in grid:
for val in row:
counts[val] += 1
repeated_a = -1
missing_b = -1
# 2. Identify the repeated (a) and missing (b) numbers
for i in range(1, N + 1):
if counts[i] == 2:
repeated_a = i
elif counts[i] == 0:
missing_b = i
# ans[0] = a (repeated), ans[1] = b (missing)
return [repeated_a, missing_b]
class Solution:
def findMissingAndRepeatedValues(self, grid: List[List[int]]) -> List[int]:
n = len(grid)
size = n * n
# Frequency array to count occurrences of each number from 1 to n^2
# Index 0 is unused, indices 1 to size correspond to the numbers
count = [0] * (size + 1)
# Iterate through the grid to populate the frequency array
for row in grid:
for x in row:
count[x] += 1
repeated = 0
missing = 0
# Iterate through possible numbers to find the one with count 2 (repeated)
# and the one with count 0 (missing)
for i in range(1, size + 1):
if count[i] == 2:
repeated = i
elif count[i] == 0:
missing = i
return [repeated, missing]
Strojový překlad býval královskou disciplínou generování textu. Dnes je již jednou z celé plejády generativních úloh – každopádně stále zajímavou, zvlášť kvůli náročnosti jeho vyhodnocení.
Data pro evaluaci strojového překladu byla do BenchMAXu přidána ze tří různých zdrojů: Flores-200, TED, a WMT24. Všechny tyto datasety již obsahovaly páry textů mezi angličtinou a češtinou. Modely zde vyhodnocujeme na překladu oběma směry.
Jak si modely vedly?
Na grafu vidíme metriku spBLEU hodnotící lexikální podobnost, která zároveň normalizuje tokenizaci napříč jazykovými modely (v podrobných výsledcích jsou k dispozici i výsledky s příbuznou metrikou chrF). Výsledky zde máme zprůměrované přes všechny tři datasety.
Výsledky na strojovém překladu
Vypadá to, že deepseek-v4-flash zde září: dosahuje konzistentních výsledků oběma směry, s přemýšlením i bez něj.
Zato gemma-4-e4b-it bez přemýšlení zde naprosto propadla a získala nulové skóre. Co se zde stalo? Je to další ukázka záludnosti evaluace. Model totiž odpovídá systematicky vyhýbavě: “Here are a few options for the Czech translation, depending on the desired nuance:” a teprve po odřádkování vydá překlady, což už vyhodnocovací kód nebere v úvahu. Kód by se dal pravděpodobně adaptovat na tento typ výstupů, ale takovýto zásah vyhodnocovacího procesu by mohl mít další nechtěné vedlejší účinky. Proto je ve výsledcích ponecháno číslo beze změny. Stejný problém ale bohužel nastává i u většího modelu gemma-4-31b-it, což zkresluje jeho skóre (podle výsledku non-thinking cs-en to vypadá, že by model jinak dosáhl podobných výsledků jako DeepSeek).
Stabilní maxima kolem 38–39 spBLEU naznačují, že tento benchmark má pravděpodobně blízko k saturaci. Je to přirozené: podobnosti s referenčními překlady se dá dosahovat jen do určité míry. Větší podobnost ani nechceme: stoprocentní podobnost by pouze naznačovala, že model odněkud opisuje referenční odpovědi.
Pro ukázku: všechny následující překlady jsou v zásadě v pořádku – dokonce v něčem i přirozenější než referenční překlad – ale přesto za ně modely dostanou jen částečné skóre:
příkladPřeklad · en → cs · flores · #1
zdrojová věta
"We now have 4-month-old mice that are non-diabetic that used to be diabetic," he added.
referenční překlad
„Nyní máme čtyřměsíční myši bez cukrovky, které ji dříve měly,“ dodal.
„Nyní máme čtyřměsíční myši, které nejsou diabetické, ačkoli dříve diabetické byly,“ dodal.
chrF 60.9
„Nyní máme čtyřměsíční myši, které už nejsou diabetické, ačkoliv dříve byly,“ dodal.
chrF 61.2
Nyní máme čtyřměsíční myši, které nejsou diabetické, ale dříve byly diabetické," dodal.
chrF 53.1
"Nyní máme čtyřměsíční myši, které nejsou diabetické, ačkoli dříve diabetické byly," dodal.
chrF 54.3
„Nyní máme čtyřměsíční myši, které sice byly diabetické, ale nyní již nejsou,“ dodal.
chrF 55.1
Protože jde o izolované věty, jsou příklady často také částečně vytržené z kontextu, což může překlad komplikovat:
příkladPřeklad · cs → en · flores · #201
zdrojová věta
Zahrnují Nizozemsko, jelikož Anna Jochemsen včera skončila devátá v kategorii žen, a také Finsko s Katjou Saarinen, která stejný závod dokončila desátá.
referenční překlad
They include the Netherlands, with Anna Jochemsen finishing ninth in the women's standing class in the Super-G yesterday, and Finland with Katja Saarinen finishing tenth in the same event.
They include the Netherlands, as Anna Jochemsen finished ninth in the women's category yesterday, as well as Finland with Katja Saarinen, who completed the same race in tenth place.
chrF 61.9
They include the Netherlands, as Anna Jochemsen finished ninth in the women's category yesterday, as well as Finland with Katja Saarinen, who finished tenth in the same race.
chrF 66.8
They include the Netherlands, because Anna Jochemsen finished ninth yesterday in the women's category, and also Finland with Katja Saarinen, who finished tenth in the same race.
chrF 64.6
They include the Netherlands, as Anna Jochemsen finished ninth yesterday in the women's category, and also Finland with Katja Saarinen, who finished tenth in the same race.
chrF 65.0
They include the Netherlands, as Anna Jochemsen finished ninth in the women's category yesterday, and also Finland with Katja Saarinen, who finished the same race tenth.
chrF 65.0
Zásadním zjištěním ovšem je, že překlad mezi angličtinou a češtinou na úrovni vět otevřené modely zvládají na obstojné úrovni. Větší nuance by odhalil až překlad na úrovni dokumentů, případně kontrola profesionálními překladateli.
Zajímavá zjištění v tomto ohledu možná přinesou výstupy z letošní iterace soutěže ve strojovém překladu WMT26, které by se měly objevit později v tomto roce. Zde je prozatím odkaz na výsledky z minulého roku.
Krátké, izolované úlohy zvládají v češtině i malé modely.
Hranice se posunula. Přestože na delším textu mají menší modely stále zásadní nedostatky (jak jsme si ukázali v úvodu), na úlohách, které jsme vyhodnocovali zde, dává i gemma-4-e4b-it pro češtinu solidní výstupy. Větší modely kolem 30B pak dorovnávají nebo překonávají modely z roku 2024, a to i modely jako deepseek-v3 s 671B parametry.
Výsledky v češtině mají modely v zásadě na stejné úrovni jako v angličtině – zvlášť pokud je základem úlohy porozumění textu a generativní část je vedlejší. Občasné propady ve skóre jsou často spíš chybou benchmarků než modelů.
Přemýšlení může přinést komplikace, a v češtině obzvlášť.
Viděli jsme, že zapnutý reasoning na tomto benchmarku často nepomohl modelům k lepším výsledkům. Na rozdíl od agentních benchmarků, kdy agent potřebuje rozebrat vstup od uživatele a vybrat jednu z mnoha různých akcí, byly úlohy na tomto benchmarku většinou poměrně přímočaré (možná s výjimkou GPQA).
Jsou zde navíc další faktory, které mluví proti reasoningu nehledě na koncové výstupy:
Přemýšlení zásadně nafukuje délku odpovědi a tedy čas, který uživatel čeká na výstup, klidně i více než 10×,
S úlohou v češtině může přemýšlení spotřebovat více tokenů než v angličtině – a to poměrně zásadně více u Qwen modelů: u qwen3.6-27b je to 1,22× více, u qwen3.6-35b-a3b 1,52× více:
Medián délky výstupu v tokenech napříč datasety.
Na některých “reasoning-heavy” úlohách jako GPQA se Qwen modely v češtině v přemýšlení ztratí a mají tendenci se dostávat do degenerativních smyček (Let's try **záštípání**? No. Let's try **záštípání**? No.). Často tak narazí na maximální délku výstupu, což pak sráží jejich výsledky.
Gemma 4 naopak tímto problémem téměř netrpí: gemma-4-31b-it má délku reasoning výstupů v češtině dokonce lehce kratší.
Narážíme na limity jednoduchých metrik.
Někdo by mohl zalitovat, že na tomto benchmarku nemáme srovnání s novějšími a většími komerčními modely. Dost možná bychom ale zjistili, že tento typ úkolů už na srovnání nestačí. Na většině úloh byly i výstupy našich menších a středně velkých otevřených modelů natolik dobré, že lepší model odlišují jen drobné nuance ve výstupech a ne celkové výsledky.
Zároveň jsme narazili na to, že metriky občas měří něco trochu jiného, než chceme. To je v zásadě problém kterékoliv metody evaluace – proto je potřeba se na výstupy modelů dívat z řady různých úhlů a kontrolovat, co se při vyhodnocení děje. Někdy je ale problém s přílišnou “naivitou” těchto metrik, které nejsou schopné pracovat s dynamickými výstupy dnešních modelů.
Obojí nás navádí na to, že je potřeba začít vyhodnocovat náročnější úlohy pomocí LLM-judge – i s tím důsledkem, že bude na vyhodnocení potřeba řádově více výpočetních prostředků.
Jaký model tedy vybrat?
Přes moji počáteční důvěru v nejnovější Qwen modely bych je nakonec pro češtinu spíš nedoporučil – především kvůli přílišné délce reasoning traces, které vedou až k občasnému zacyklení. Bez zapnutého přemýšlení mohou být stále rozumnou volbou.
Gemma modely se osvědčily lépe a podávaly konzistentní výkon v češtině i angličtině. Pokud hledáte model, který je při inferenci efektivnější než gemma-4-31b-it, zajímavou možností by mohl být mixture-of-experts model gemma-4-26B-A4B-it. Ten jsme zde netestovali, ale pokles ve výkonu oproti dense modelu bude nejspíš podobný jako u sesterských Qwen modelů.
Pokud máte k dispozici alespoň 170 GB VRAM (viz naše VRAM kalkulačka), velmi zajímavou volbou je pak deepseek-v4-flash-0731. Tento model je sice těžký na celkový počet parametrů, ale protože má aktivních pouze 13B parametrů, má potenciál být násobně rychlejší než gemma-4-31b-it, a s podobnými nebo i lepšími výstupy na češtině jako tato Gemma.
Je dost možné, že ve chvíli, kdy toto čtete, jsou už testované modely pradávnou historií. Doufám ale, že poskytují alespoň jakýsi “dolní odhad” na výkon otevřených modelů na češtině, a že s aktuálními modely už to je jen lepší.
I přes úvodní ukázky jsme si zatím příliš českého textu od modelů nepřečetli.
V příští části to ale napravíme: vyhodnotíme modely v realistickém prostředí, kde model bude fungovat jako agent, který s uživatelem komunikuje česky.
Vyhodnotíme si výstupy modelů pomocí LLM-judge a zkusíme konečně rozseknout, jestli jsou otevřené modely v současnosti použitelné pro pořádné nasazení v českém prostředí.
Poznámky
V modelu není vrstva, která by explicitně měla na starosti češtinu ani žádný další jazyk. Přesto se ale ukazuje, že model může při trénování dedikovat určité skupiny parametrů v konkrétních vrstvách pro lokalizaci do konkrétního jazyka po tom, co hlavní část uvažování proběhne v angličtině. ↩
Že by ho pojmy jako “Panoptikum Města pražského” v trénovacích datech navedly na to, že těch “pražských měst” máme víc? ↩
Qwen-3.6-35B-A3B běžel ve FP8 stejně jako v předchozích experimentech, aby se vešel na jedinou NVIDIA H100, ostatní modely běžely v BF16 souběžně na 2 nebo 4 kartách NVIDIA A100 / A40 / L40 podle dostupné kapacity. ↩
Pojmy “přemýšlení” a “reasoning” beru jako technické termíny a budu je používat zaměnitelně podle kontextu. Omlouvám se tím pádem jak za anglicismy, tak za antropomorfizaci modelů. ↩