Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: novomente 10. 08. 2026, 12:07:42
-
Tak jsem si také vyzkoušel spolupráci s AI, konkrétně Anthropic Claude, ale narazil jsem na jeden problém. Tím problémem je vysvětlit té AI, co vlastně chci. A přestože AI dává zajímavé výsledky, měl jsem problém jí vysvětlit, nejen co po ní chci, ale jak to má udělat.
Přes veškerou snahu jsem dospěl k závěru, že ta AI si to dělá po svém a já jí musím hodně moc usměrňovat a říct jí, že to chci jinak.
Jak tedy spolupracovat s AI, abych z ní dostal to co chci a jak to chci?
-
Musis jej to vysvetlit podbne ako keby si to vysvetloval inemu clovekovi.
Plus je dat nejake rules.
Zalezi co robis. Pri beznych veciach nepotrebujes nic riesit len jej dat rozumny popis.
Osobne namam problem zeby AI si torobila po svojom, clekom rychlo pochopi, co od nej chcem.
Jedine pri programovani, ked pouzivam AI agenta priamo v IDE, pouzivam md files s instrukciami. V jednom su vseobecne pravidla a v drhume veci cisto o danom prjekte. Je to tie zpodobne kao keby osm mal zaskolit ineho clvoeka. V tych dvoch file-och su presne veci, ktore by som musel vysvetlovat inemu kolegovi.
-
Mluv na to, jak kdyby to byl junior, co má načtenou hromadu knížek, ale půlku z nich blbě pochopil a tvůj projekt vidí poprvé v životě.
-
On je velkej rozdíl, když jí pustíš na hotový projekt, kde si načte "co a jak se dělá" a dle toho statisticky vyprodukuje, že "bude pokračovat takto", oproti tomu, když začínáš na projektu skutečně od nuly.
Cílem vždy je, aby měla dost kontextu k tomu, aby věděla "co dělat, jak to dělat a proč to tak dělat".
-
ja jsem si rozjel vlastniho agenta s cloudovym ai a zadal jsem mu:
udelej mi v /home/moje novou slozku pro projekt v jazyce xyz s lokalnim git repo
pouzij grafickou knihovnu uvw pro xyz a udelej mi maly program s formularem, kde jsou dva edit fieldy,
kazdy bere jenom cislo a pridej tlacitko +, ktere obe cisla secte a do vysledneho labelu zapis vysledek.
je to blbost, ale vylezl z toho fungujici program s s lokalnim git repozitarem.
-
Muzes zkusit dat priklad toho "jak to chci?"
Jde o metodologii vyvoje? nebo architekturu nebo NFR nebo co?
-
Já používám codex a posťupem čašů jsem si vytvořil několik dokumentu.
Základem je AGENTS.md, kterým se kodex řídí automaticky. V tom mu říkám že se má řídit dalšími soubory a kdy, a to jsou:
00a-architektura.md
00c-codingstyle.md
00r-rules.md
00t-test.md
00z-zapis.md
V 00a je popsaná architektura aplikace, nic co zapisuje s ní nesmí být v rozporu. Je to projektový dokument.
V 00r jsou obcná univerzální pravidla typu nepoužívej fallbacky, všechny výjimky musí byt ošetřené, atd.
V 00t mam oserene testy a diagnostiku.
V 00z mám přesně specifikováno, jak má provádět zápisy, na což mám vyvinutý vlastní codex-safe-edit nástroj, který musí používat.
Každý soubor má 100+ řádků, architektura se pak může rozlézt na vyšší tisíce řádků, pak ji člením na 00a1, 00a2 atd.
-
Co přesně znamená v původním dotazu Claude? Základem v Claude Code je na začátku nechat nad projektem vygenerovat skills.
-
Tak jsem si také vyzkoušel spolupráci s AI, konkrétně Anthropic Claude, ale narazil jsem na jeden problém. Tím problémem je vysvětlit té AI, co vlastně chci. A přestože AI dává zajímavé výsledky, měl jsem problém jí vysvětlit, nejen co po ní chci, ale jak to má udělat.
Přes veškerou snahu jsem dospěl k závěru, že ta AI si to dělá po svém a já jí musím hodně moc usměrňovat a říct jí, že to chci jinak.
Jak tedy spolupracovat s AI, abych z ní dostal to co chci a jak to chci?
Pocitej s garbage in -> garbage out. Jakykoliv nepresny dotaz generuje nepresnou odpoved.
Nevim, o co se pokousis, ale muzes zkusit treba ( nez se pustis do psani kodu) at ti vygeneruje specifikaci, use casy, high level design, low level design, rozpad na tasky, testy. Kazdy dokument zkontroluj, ze je jak ma byt a pak na zaklade toho at vygeneruje kod. Ale i tak pocitej s tim, ze je to jen LLM (generativni AI).
-
Tohle je presne to AI know how co dela rozdil mezi clovekem co udela random fungujici vec s AI a clovekem, co dokaze realne AI efektivne pouzivat.
Zminovany problem, tedy zadat AI co vlastne chci, lze celkem elegantne vyresit tim, ze proste zadani vykomunikujes primo s AI a nechas ji vytvorit si zadani pro sebe sama, Proste diskutujete projekt slovne jako s jinym clovekem a pak na zaklade te diskuze AI sama dokaze vygenerovat zadani. Je ovsem potreba v te konverzaci jit co nejdal. Jak tu nekdo zminoval, ja uz na to mam taky agenty co nektere veci jako formatovani, testy, etc uz delaji automaticky pro kazdy projekt. Mam proste v instrukcich, ze chci aby kazdy projekt mel testy, ze ty testy maji nejak vypadat a ze projekt temito testy musi projit. Nemusim to tedy zadavat pokazde znova a znova, ale kazdy novy projekt proste zdedi tyhle skilly/agenty. Skilly a agenty prubezne upravuju. V podstate v kazdem projektu clovek narazi na neco, co jinde videt nebylo tak mirne poupravim instrukce agenta co skillu a pro priste mam hotovo. Timhle zpusobem lze odstranit nekonecne opakovani a neresit formu, ale vysledny obsah projektu.
Mimochodem napsat neco do AI umi kazdej, ale skutecne efektivni a produktivni pouzivani prichazi prave s tim, ze se clovek nauci pracovat s kontextovym oknem, RAGem, agenty, skilly etc.
Mimochodem ono to je ve skutecnosti jednodussi nez to vypada, protoze prave uz jen fakt, ze AI sama muze vygenerovat zadani na zaklade delsi diskuze je reseni problemu slepice vajicko. Neboj se proste casem ty instrukce upravovat a vylepsovat. Je potreba si dobre rozvrhnout co ma byt skutecne generic instrukce kterou ma AI pouzivat vzdycky, co je treba problem specific a nebo primo project specific
-
Zatím si s ní jen tak hraju, abych věděl co dokáže. Konkrétněji pracuji na novém programovacím jazyku. Je to taková hračka co se transpiluje do C++. Dokončil jsem specifikaci celého jazyka a teď v ní vychytávám mouchy - všechno spolu s AI.
Nechávám jí zkontrolovat specifikaci s určitýma funkcionalitama, a když něco najde, upravíme to a pak při další kontrole zjistí další nedostatky, který před tím neviděla. Je to takový začarovaný kruh.
Ten nový jazyk je již sám takový komplexní, takže mi to zabere spoustu času vychytat ty mouchy. AI po mě pořád chce, aby se už programoval překladač. Ale já chci mít tu specifikaci detailně vychytanou, než se do transpileru pustím.
-
Zatím si s ní jen tak hraju, abych věděl co dokáže. Konkrétněji pracuji na novém programovacím jazyku. Je to taková hračka co se transpiluje do C++. Dokončil jsem specifikaci celého jazyka a teď v ní vychytávám mouchy - všechno spolu s AI..
Máš už napsanou specifikaci toho svého jazyka, syntaxi, sémantiku, datové typy a tak? Bude objektový, funkcionální nebo deklarativní? Co ti chybělo v jiných jazycích?
-
Zatím si s ní jen tak hraju, abych věděl co dokáže. Konkrétněji pracuji na novém programovacím jazyku. Je to taková hračka co se transpiluje do C++. Dokončil jsem specifikaci celého jazyka a teď v ní vychytávám mouchy - všechno spolu s AI..
Máš už napsanou specifikaci toho svého jazyka, syntaxi, sémantiku, datové typy a tak? Bude objektový, funkcionální nebo deklarativní? Co ti chybělo v jiných jazycích?
Ano, mám napsanou specifikaci jazyka, syntaxi, sémantiku, datové typy, atd. Teď v ní vychytávám mouchy. Ale jak jsem řekl, je to jen hračka, nemyslím, že by ten jazyk nějak hodně ovlivnil jiné jazyky, které jsou mnohem lepší, propracovanější, apod.
Tak například jsem vyřešil dělení nulou matematicky nesprávně (chybově). Udělal jsem to tak, že když koláč (celek) rozdělím na nula dílů, pak ho vlastně nerozdělím vůbec a zbude mi celý koláč. Takže v tom jazyce je to řešeno tak, jako by dělení nulou vůbec neproběhlo a tedy třeba: 12 / 0 = 12. No a je tam více takových rozhodnutí, aby se program nezastavil a nevyhodil výjimku.
Nejvíce mi na ostatních jazycích vadí, vyhazování výjimek, kde to člověk musí uzavřít do bloku TRY...CATCH apod.
Ještě to není zdaleka hotový, a vůbec nevím, jestli to dokončím do fungujícího překladače. Ale takovou malou krátkou ochutnávku mohu napsat:
BASIX je jednoduchý programovací jazyk s vlastní syntaxí, který se kompiluje do C++. Jazyk používá dva základní datové typy — int, real — a definuje přesná, deterministická pravidla pro chování při přetečení a implicitních konverzích mezi typy, na rozdíl od C++, kde je chování v těchto případech často nedefinované nebo závislé na platformě.
Dvě návrhové zásady se táhnou celou specifikací:
1) Žádná operace ani konverze v BASIXu nesmí vést k nedefinovanému chování (UB) jazyka C++, do kterého se program překládá. Kdekoliv by ekvivalentní C++ konstrukce UB měla, BASIX pro ni definuje vlastní, deterministické chování — typicky saturací.
2) Meze hodnot obou typů sdílejí stejnou magnitudu, 2^53, zvolenou nezávisle na fyzické šířce jejich reprezentace v C++. Magnituda 2^53 odpovídá hranici, do které double (53bitová mantisa) dokáže přesně reprezentovat celá čísla — díky tomu je převod int -> real vždy bezeztrátový. Jediným zdrojem ztráty informace mezi oběma typy je tak ořezání desetinné části při převodu real -> int.
-
to tvoje deleni nulou je kravina, kdybys aspon pouzil limitu:
12/1=12, 12/0.1=120.....12/0 ---> Infty
-
Já myslím, že to jde ruku v ruce s tvým problémem vysvětlit něco nám. Což můžeme vidět v jiných tvých vláknech.
-
Já myslím, že to jde ruku v ruce s tvým problémem vysvětlit něco nám. Což můžeme vidět v jiných tvých vláknech.
Sice odbočím zpět k předmětu diskuze ale vidím zde trochu spojitost. Podle mě to s komunikací s AI bude identické jako při používání vyhledávačů během posledních 30 let. Je irelevantní jaký vyhledávač někteří lidé používali stejně se ke kvalitním výsledkům(informacím) nedostali. A s AI modely to bude stejné. Je irelevantní pro jakou oblast působení AI byla natrénována a jak kvalitní je. Pokud operátor bude neschopný nebo to nebude umět tak výsledky s AI modelem budou prostě nekvalitní. Někteří lidé prostě na to nemají buňky, jak se to tak říkávalo.
-
to tvoje deleni nulou je kravina, kdybys aspon pouzil limitu:
12/1=12, 12/0.1=120.....12/0 ---> Infty
Jak již jsem řekl, BASIX je jen hračka. Navíc jsem jí dělal více méně pro sebe. To dělení nulou, jak jsem ho popsal, jsem rozhodl, že jazyk nebude používán pro matematické výpočty.
A to jsem se ještě rozmýšlel, že bych tam dal jen celá čísla a čísla s plovoucí řádovou čárkou úplně vynechal.
-
1) Žádná operace ani konverze v BASIXu nesmí vést k nedefinovanému chování (UB) jazyka C++, do kterého se program překládá. Kdekoliv by ekvivalentní C++ konstrukce UB měla, BASIX pro ni definuje vlastní, deterministické chování — typicky saturací.
Na nedefinovaném chování v C(++) není špatně to, že ta operace nevrací nějakou normální hodnotu, ale že je ten stav nedovolený a ne chybný. Nové C++ to svými "errorneous behavior" IMO posouvá správným směrem.
Vem si třeba přetečení. V drtivé většině případů nechceš ani saturaci ani wrap. Prostě s tím vůbec nepočítáš a každá z těch 2^N možných hodnot je blbě. Co chceš je povolit v nějakém testovacím buildu trap, aby se to dalo chytnout. Jak to přetečení dodefinuješ, tak donutíš překladač ti potichu vrátit nesmysl.
Jo, prostě při chybě neudělat nic je velmi lákavá myšlenka. ALE:
1) Jak velká blbost to je obvykle člověku dojde až když musí řešit následky.
2) Funkce co něco vrací vždycky něco dělá.
Takže doporučuju rychle napsat prototyp a zkusit ho používat. Ať víš, cos to navrhl.
-
Po tom "AIčku" můžeš chtít i to, ať analyzuje nějaký úsek vaší vzájemné komunikace a dá Ti doporučení, jak lépe promptovat. Při troše štěstí to mohou být užitečná doporučení i pro komunikaci s námi, humanoidy na bázi kyslíku, uhlíku, vodíku, dusíku a vápníku.
BTW:
Chápu, že je to jazyk pro osobní potřebu a na hraní, ale
proč zvolit: 12 / 0 = 12
a ne raději 12 / 0 = Max hodnota datového typu ?
Nebo operaci dělení vůbec neimplementovat.
Pokud to má být jazyk, který "nebude mít chybové stavy", tak jak si poradí třeba s (12 / "Ahoj") ?
-
Po tom "AIčku" můžeš chtít i to, ať analyzuje nějaký úsek vaší vzájemné komunikace a dá Ti doporučení, jak lépe promptovat. Při troše štěstí to mohou být užitečná doporučení i pro komunikaci s námi, humanoidy na bázi kyslíku, uhlíku, vodíku, dusíku a vápníku.
BTW:
Chápu, že je to jazyk pro osobní potřebu a na hraní, ale
proč zvolit: 12 / 0 = 12
a ne raději 12 / 0 = Max hodnota datového typu ?
Nebo operaci dělení vůbec neimplementovat.
Pokud to má být jazyk, který "nebude mít chybové stavy", tak jak si poradí třeba s (12 / "Ahoj") ?
To jsou zajímavé myšlenky. Nad tím bych se měl vážně zamyslet.
-
Tak jsem si také vyzkoušel spolupráci s AI, konkrétně Anthropic Claude, ale narazil jsem na jeden problém. Tím problémem je vysvětlit té AI, co vlastně chci. A přestože AI dává zajímavé výsledky, měl jsem problém jí vysvětlit, nejen co po ní chci, ale jak to má udělat.
Přes veškerou snahu jsem dospěl k závěru, že ta AI si to dělá po svém a já jí musím hodně moc usměrňovat a říct jí, že to chci jinak.
Jak tedy spolupracovat s AI, abych z ní dostal to co chci a jak to chci?
1. Když něco nevíš nebo máš problém s AI, řekni to AI a požádej, ať navrhne, jak problémům předcházet.
2. AI není jasnovidec a do hlavy ti nevidí. Člověk není superman a málokdy napíše vše jednoznačně, takže počítej s iteracemi.
3. Naprosto zásadní je příspěvek https://forum.root.cz/index.php?topic=31827.msg436090#msg436090 Jestli nevíš jak na to, požádej Claude: "V diskusi jsem četl, že pro efektivní práci s Claude jsou třeba tyto sobory .... Vysvětli mi, k čemu jsou dobré obecně a k čemu budou dobré pro tento projekt."
4. Na začátku je dobré s AI probrat, co se vlastně chystáš dělat a jak se to chystáš dělat. Začátek konverzace v projektu "Chci si udělat transpiler vlastního jazyka do C++. Mám celkem jasno v hlavních vlastnostech svého jazyka. Poraď mi, jak postupovat efektivně tak, abychom se nemuseli vracet k již odladěným částem kódu." Claude navrhne právě ty soubory, o kterých tady už byla řeč. Jestli nevíš, jak je vytvořit, nechej Claude, ať je vytvoří sám a postupně je můžeš doplňovat ty nebo Claude požádta, ať do nich přidá / upraví informace. Je dobré definovat nejzákladnější pravidla jako:
- V případě nejasností se zastav a zeptej se mě.
- Nikdy, ale vůbec nikdy sám nedávej žádné příkazy externímu úložišti, jako commit nebo revert. Tyto příkazy musím vždy schválit.
- Budeme používat soubory .... s popisem architektury jazyka. Vždy se jimi musíš řídit. Pokud vyvstane nesrovnalost s mými požadavky, zastav se, napiš mi, jakou nesrovnalost jsi našel a čekej na mé rozhodnutí, jak pokračovat dále.
- Před implementací vždy vytvoř implementační plán a čekej na mé schválení nebo připomínky.
- Budeme implementovat vždy jen jednu feature, tu pak otestujeme a až ji schválím, teprve půjdeme na další.
- Testovat budeme každou feature po jedné. Za tímto účelem budeme mít sadu tetsů, které mají projít a sadu testů, které projít nemají. Po implementaci každé feature skontroluj, zda stále prochází všechny regresní testy. Pokud ne, oprav zavlečenou chybu a spusť testy znovu a tak dokola, dokud nebudou všechny zelené.
- atd...
Pak bych mu napsal, ať vytvoří hrubý implementační plán (řekl bych po epicech) pro implementaci hlavních oblastí jazyka. (Začal bych command line, vytvořením infrastruktury unit testů (jak vlastně poznat, že test prošel a jak je mít uloženy)) atd.
Jo, spousta práce, ale tak to je. AI je jen nástroj, ne jasnovidec a pokud chceš mít kvalitní výstup, bude to stát spoustu lidské práce.
-
Já tedy přihodím do diskuse mých 5 centů.
- Dost mě zaráží že lidé používají češtinu (či jiný obskurnější jazyk) pro komunikaci s LLM. Já například zásadně používám angličtinu, už jenom z toho důvodu že LLM je statistický stroj, a na světě je k dispozici podstatně více materiálu v angličtině, než češtině, nebo slovenštině, nebo já nevím co za jazyk. Mandarínky se učit nebudu ;D. Co vím, tak snad jsou i nějaké workaround, kdy ten LLM poskytovatel detekuje uživatelův jazyk, a pak automaticky překládá mezi tímto jazykem a angličtinou. Což je asi lepší, ale pak vám do toho může hodit vidle automatický překladač.
- LLM je hloupý stroj, nelze čekat zázraky. Nejlepší znázornění je asi toto video kdy otec učí dítka programovat https://www.youtube.com/watch?v=FN2RM-CHkuI (https://www.youtube.com/watch?v=FN2RM-CHkuI)
- Z osobních zkušeností doporučuju LLM dávat konkrétní příklady, případně pseudo-kód. Tohle je asi nejlepší přístup jak dostávat kvalitní odpovědi.
- Zvolit dobrý harness je důležité, protože LLM je jenom fancy text predictor, a všechen ten heavy-lifting jako tool-calls, SKILLS, atd jsou obstarávaný přes harness (tedy OpenCode, Pi, ClaudeCode, atd.). Osobně používám OpenCode, kde jsem si pohrál hodně s permissions, aby LLM nemohlo smazat celý disk atd, a taky jsem si nastavil AppArmor policy aby to nemohlo hrabat na moje SSH klíče a jiné soubory.
- Po harness přichází SKILLS. Pro první skill doporučuji použít přímo LLM, nasměrovat jí na dokumentaci třeba na https://opencode.ai/docs/skills/ (https://opencode.ai/docs/skills/) a dát jí za úkol napsal SKILL pro praní jiných SKILLS. Jenom drobná poznámka - SKILL je v podstatě soubor s nějakým promptem, který si LLM přes harness může přidat do kontextu podle potřeby - ideální aby člověk nemusel pořád něco psát dokola.
- Další SKILLs jsou pak podle potřeby - například psaní testů, psaní funkcí, jak spustit linter nebo formatter, atd., a na ty také použít LLM. V podstatě vytvořit si workflow kde je feedback loop kdy když se mi něco na LLM výstupu nelíbí, otevřu novou instanci harness, a zadám LLM aby upravila daný SKILL tak aby se nějaké chování už neopakovalo. Pak re-load původní instance, a zkusit poslat ten samej prompt znovu. Takhle iterovat dokud není výstup dostatečný.
- Další super věc co harness poskytuje je že dává LLM možnost promptovat uživatele otázkami, které můžou mít několik možností a vybrat si jednu, nebo i více. Toho lze využít například "Hey, I need this, and I want this and that. If I forgot something, please interview me for details" a LLM si o potřebný kontext řekne.
To asi tak v krátkosti.
-
Já tedy přihodím do diskuse mých 5 centů.
- Dost mě zaráží že lidé používají češtinu (či jiný obskurnější jazyk) pro komunikaci s LLM. Já například zásadně používám angličtinu, už jenom z toho důvodu že LLM je statistický stroj, a na světě je k dispozici podstatně více materiálu v angličtině, než češtině, nebo slovenštině, nebo já nevím co za jazyk.
Nevidím důvod, proč při komunikaci s AI používat cizí jazyk. Česky rozumí skvěle.
-
Já tedy přihodím do diskuse mých 5 centů.
- Dost mě zaráží že lidé používají češtinu (či jiný obskurnější jazyk) pro komunikaci s LLM. Já například zásadně používám angličtinu, už jenom z toho důvodu že LLM je statistický stroj, a na světě je k dispozici podstatně více materiálu v angličtině, než češtině, nebo slovenštině, nebo já nevím co za jazyk.
Nevidím důvod, proč při komunikaci s AI používat cizí jazyk. Česky rozumí skvěle.
Uvedl jsem hned dva důvody. Zde jsou další
- Všechen software a knihovny co používám mají dokumentaci převážně v angličtině, tak je snažší je integrovat
- Primární jazyk LLM ve kterém probíhá většina vývoje, verifikací a testů je angličtina. Je to nejlépe odoladěný inzerface jazyk.
Ale používejte co chcete, je to víceméně vaše věc / problém ;D
-
tohle je zajímavé. Vtipné je, že AI je jedno, v jakém formátu/jazyku použiješ vstup, protože si ho intepretuje váhami, stejně tak jí je jedno, v jakém formátu/jazyku byly původní zdroje, protože opět chytá pouze jejich interpretaci bez ohledu na jazyk.
Angličtina může mít trochu problém v tom, že není často dostatečně explicitní a dá se velmi snadno pochopit jinak, jazyky typu čeština, španělština, polština atd. používají tvarování slov podle kontextu a jsou daleko citlivější na nuance a polohy (nepotvrzená hypotéza).
Tohle je sice rok staré https://arxiv.org/abs/2503.01996, ale zkoušeli to měřit, čeština sice nevyšla nějak dobře, ale je tam vidět podstatný rozdíl v použitém jazyku.
-
Tohle je také zajímavé https://pmc.ncbi.nlm.nih.gov/articles/PMC13258428/, medicína, porovnání angličtiny a polštiny.
Zkouším googlit, závěr je jasný, prokozát vliv jazyku není vůbec snadné a skoro to vypadá, že LLM může být zajímavé hřiště pro procvičování jazyku, který se člověk se lépe naučit.
Já používám angličtinu/francouzštinu hlavně kvůli tomu, že prostě hodně výrazu neumím v češtině vyjádřit, protože je primárně vidím jen v jiném jazyku. Rozhodně to nedělám kvůli tomu, aby mi AI lépe rozumněla, dělám to kvůli tomu, abych snadněji vyjádřil co potřebuji.
-
Rozdíl v jazycích musí být, už jenom proto že LLM je statistický stroj. Viz triviální příklad.
Pokud se zeptáte LLM aby dokončila větu "Skákal pes přes ..." jak v češtině tak angličtině, dostanete dva rozdílné výsledky.
Na prompt:
Prosím dokonči tuto větu:
Skákal pes přes ...
LLM pravděpodobně odpoví:
Skákal pes přes oves.
Zatímco když vezmeme tu samou větu, ale tentokrát v angličtině:
Please finish this sentence:
A dog was jumping over the ...
LLM pravděpodobně odpoví:
A dog was jumping over the fence.
Tohle je klasický bias který je jazykově závislý. Další ale už známější příklad je:
My friend is a bus driver. Try and guess his favorite color.
LLM na to:
I'm going with yellow.
A to protože americké školní autobusy jsou žluté.
A nyní v češtině:
Můj kamarád je řidič autobusu. Zkus uhádnout, jaká je jeho oblíbená barva.
LLM na to:
Tipuju modrou.
LLM samozřejmě nejsou moc deterministické protože iniciální stav neuronové sítě bývá na začátku (pseudo)náhodný, proto jsem vždy psal "pravděpodobně". Ale je to překvapivě konzistentní u těchto příkladů.
Je to prostě statistika. A proto jsem uváděl v prvním mém komentáři že LLM provideři někdy, ale ne vždy (těžko dohledatelné, není dokumentované) používají automatické překladače jazyka a vše pod kapotou funguje v angličtině. Proto je těžké odhadnou jaký bias LLM bude prokazovat. Výkon LLM v jazycích jiných než angličtina je podstatně hořší protože je prostě méně trénovacího materiálu. Automatický překlad je použit jako workaround. Ale člověk neví který bias dostane ;D
Já prostě jedu všechno v angličtině, jak kód a komentáře, tak dokumentaci, a i prompts pro LLM. Je to lehčí na moji hlavu že nemusím pořád přepínat mezi jazyky.
-
...
Podle mě tohle platilo naposledy tak před 1-2 lety. Dnešní modely mají přímo natrénované uvažování (reasoning, test-time scaling) nezávisle na jazyku, prompt si rozeberou, pak nad ním uvažují a pak vydají odpověď. Použití minoritního jazyka bude maximálně stát trochu tokenů navíc (hůř se embeduje). Je to vidět i v tom odkazovaném paperu:
The effect of language differed significantly by model. Qwen2.5, Llama3.3, Meditron3, and OpenBioLLM performed significantly better in English, with the largest gap observed for Qwen2.5. GPT-5 and Bielik showed no statistically detectable English-Polish difference in overall score in this sample.
I.e., staré modely měly problém, GPT-5 (a to už je s námi přes rok) už je to jedno.
Každopádně taky píšu anglicky. Občas si říkám, co si asi myslí, když to potká různé české bugreporty, poznámky a tak. Výjimečně má tendenci mi je překládat, protože si myslí, že jim nerozumím - zkoušel jsem psát do CLAUDE.md že česky rozumím a není to potřeba, ale reakce na to byla, že to začalo _psát_ česky komentáře, což fakt nechci.
-
Proč se nezeptáš AI?