AI chatbot Bard od Googlu už umí stejně jako ChatGPT a Bingprogramovat, analyzovat kód a dělat další vývojářské lumpárny, píše firma na blogu.
Jenže máme skoro konec dubna 2023 a to samé zvládne konkurenční ChatGPT už dávno. A to jak se starším motorem GPT-3.5, tak ještě lépe s nejnovějším AI modelem GPT-4.
Namísto testu, jak umí Bard bastlit jednoduché prográmky, ho proto v šesti úlohách porovnáme s ChatGPT a jeho Čtyřkou pod kapotou. Oba dostanou několik naprosto identických slovních úloh v angličtině (Bard nerozumí česky) a za správnou odpověď dostanou bod.
Budeme místy vycházet z úloh, kterými jsme trápili starší GPT-3.5 už zkraje letošního února, můžete si je tedy připomenout v samotném článku.
Bard není dostupný v Česku, ale...
Google Bard sice není dodnes dostupný pro zájemce z České republiky, nicméně stačí, když jeho stránky navštívíte s americkou IP adresou. Pomůže třeba vestavěná VPNka v prohlížeči Opera. Nejprve si ale musíte o Bard zažádat a čekat, až vás Google pustí dovnitř.


Hrátky s Bardem pomocí vestavěné VPNky v prohlížeči Opera
Takže dost řečí, jdeme na první úlohu, ve které si osvěžíme vzorečky v Excelu.
1. Úloha v Excelu
V první ukázce jsme před třemi měsíci potrápili GPT 3.5 jednoduchou úlohou v Excelu: „Vytvoř vzorec pro Excel, který vyhledá hodnotu zadanou do buňky J1 ve sloupci A a poté do buňky J2 vypíše odpovídající buňku ze sloupce E.“

Chceme docílit funkčního vyhledávače ve sloupcích A a E podle zadání hodnoty do buňky J1 s vypsáním výsledku do buňky J2
Tehdy to nebylo jen tak, Excel totiž používá odlišné názvosloví v české a anglické verzi, a tak to tentokrát nebudeme komplikovat a v angličtině dotaz upřesníme, abychom nemuseli vést s chatbotem sáhodlouhý dialog. Na ten se klidně podívejte v původním článku.
Přikážeme proto oběma chatbotům, aby pro řešení použili funkci xlookup, která má stejný název i v české lokalizaci, a aby zvolili pro oddělení parametrů funkce středník – výchozí oddělovač seznamu v české lokalizaci Windows.
Asi bychom po Microsoftu chtěli hodně, kdyby tento nešvar po letech konečně sjednotil, že? Představte si třeba Javascript, který by používal odlišnou syntaxi v češtině a odlišnou v angličtině. Uf.
Odpověď ChatGPT (GPT-4)
ChatGPT zareagoval na jedničku, pochopil podmínku funkce xlookup a středníku jako oddělovače, takže výraz po zkopírování do příkazového řádku Excelu vyrobil funkční vyhledávač v tabulce jako na obrázku výše.

Perfektní odpověď, funguje to na jedničku
Odpověď Google Bard (LaMDA)
Google Bard byl v odpovědi sice mnohem ukecanější a encyklopedicky popsal funkci xlookup, nicméně to bylo celé k ničemu, protože jeho odpověď obsahuje chybu. Když se podíváte pozorně, za prvním parametrem funkce použil namísto středníku čárku.

Sice dlouhá, ale špatná odpověď
Dáme Bardovi ještě jednu šanci a znovu jej upozorníme, že parametry funkce musí oddělovat znak středníku:

Bard použil samé středníky, ale má tam ještě jednu chybu
Výborně, Bard tentokrát nahradil všechny čárky za středníky, nicméně tam má ještě jednu chybu a to ve všech třech návrzích, které pokaždé vygeneruje. Parametr „Not Found“ představující odpověď, pokud vyhledávač nic nenajde, totiž umístil o jedno políčko dál, kde nemá co dělat.
Ne, dost! Toto měl být souboj na jeden jediný život. V této chvíli by si už totiž každý raději dohledal korektní odpověď v normálním Googlu, anebo rovnou navštívil dokumentaci Microsoftu.
Aktuální skóre: 1:0 pro ChatGPT
Pokračování 2 / 6
2. Vyhledávač v kurzovním lístku ČNB
Jednou z dalších úloh, ve které jsme tehdy potrápili starší model GPT 3.5, bylo stažení a zobrazení kurzovního lístku České národní banky z této adresy. Jedná se o textovou tabulku, kde je na každém řádku jedna země a několik údajů oddělených znakem |. Třeba:
USA|dolar|1|USD|21,294
Máme GPT-4 a Barda, a tak je potrápíme trošku víc. Chceme vyrobit rovnou vyhledávač kurzovního lístku. Chceme po nich skript, který spustíme s jedním parametrem. Program se jej pokusí vyhledat na některém z řádků. Pokud se mu to podaří, vypíše obsah poslední buňky s hodnotou měny v korunách.
Odpověď ChatGPT (GPT-4)
Odpověď GPT-4 byla opět bezchybná a funkční hned na první pokus. ChatGPT už poněkud komplexnější zadání bez jediného problému rozluštil a sestavil kód, který pro stažení dat používá knihovnu Requests. Tu je třeba pochopitelně doinstalovat.

ChatGPT vyrobil funkční kód na první pokus
A takhle funguje program v praxi. Pro představu jsme na pozadí umístili prohlížeč s textovým výstupem kurzovního lístku, který si program stáhne. Díky tomu, že program hledá zadaný výraz ve všech buňkách řádku, může být hledaným slovem v podstatě cokoliv od kódu měny (USD) po název země (Maďarsko) i měny (lev).

Vygenerovaná aplikace v akci
Odpověď Google Bard (LaMDA)
Tak a teď Bard. Ukaž se, jazykový modele LaMDA! Po prvním neúspěchu v Excelu jsme měli obavu, jestli tento článek vůbec dokončíme, ale tentokrát se už Bard zlepšil. Také Google vytvořil funkční aplikaci, byť si trošku ohnul zadání. Hledaný výraz totiž nečte jako parametr skriptu, ale jako textový uživatelský vstup až za chodu programu. A to ve všech třech návrzích.

Google Bard sice také sestrojil funkční kód, ale namísto prvního argumentu skriptu se na hledaný výraz ptá až za běhu skriptu, takže nesplnil zadání
Pro srovnání se opět podívejme, jak vypadá spuštění skriptu, který nám vytvořil chatbot Bard. Funguje, ale na hledaný výraz se ptá až za běhu. Také Bard zvolil knihovnu Requests a mírně odlišný kód.

Vygenerovaná aplikace v akci
Aktuální skóre: 2:1 pro ChatGPT a první bod pro Barda je opravdu s odřenýma ušima. Aplikace funguje, ale nedrží se přesně zadání
Pokračování 3 / 6
3. Překlad z Pythonu do Bashe
Oběma klučinům to s přivřenýma očima šlo na jedničku, a tak ještě zkusíme, jestli dokážou kód z předchozí kapitoly přeložit do jiného jazyka. Minule jsme překládali z PowerShellu do Pythonu, tentokrát proto uděláme radost tučňákům a budeme překládat z Pythonu (nejen) do Bashe – jednoduchého skriptování pro stejnojmenný interpret linuxové příkazové řádky.
A aby se borci opravdu zapotili, budeme chtít přeložit přesně ten kód, který teď vytvořili. Jako vstup pro překlad proto zvolíme kód vyhledávací aplikace od ChatGPT, ten ji totiž vytvořil bez jediné chybičky.
Odpověď ChatGPT (GPT-4)
ChatGPT se čtyřkovým motorem zareagoval opět bezchybně a hotový skript pro linuxový shell funguje na první dobrou a z uživatelského pohledu identicky jako program v Pythonu. Vnitřně se liší jen v tom, že si stáhne kurzovní lístek do dočasného textového souboru temp_file.txt, který na konci zase smaže.

Úryvek dlouhého zadání

A kompletní odpověď včetně upozornění, že musíme nastavit skriptu práva ke spuštění
A abyste nám věřili, že kód výše vygenerovaný na první dobrou (všechny dotazy vytváříme vždy v novém chatu) opravdu funguje, opět doplníme obrázek běhu skriptu. Tentokrát jej spustíme na Ubuntu skrze linuxovou vrstvu pro Windows WSL.

ChatGPT přeložil Python na linxuový shellový skript bez jediné chybičky
Odpověď Google Bard (LaMDA)
Jak se s naprosto identickým zadáním popere Bard od Googlu? Kupodivu i model LaMDA už umí překládat z jednoho programovacího jazyka do druhého a pochopil naše zadání, jenže to dopadlo jako u prvního úkolu s Excelem. Prostě to nefunguje.

Odpověď Barda napovídá, že pochopil, co po něm chceme, nicméně skript nefunguje, jak má
Vyzkoušeli jsme všechny tři skripty pro linuxový shell, nicméně obsahují dílčí chyby, takže aplikace buď nevypíše naprosto nic, nebo pokaždé Nenalezeno. Byl to těžký oříšek, ale tady je to jasné: 3:1 pro ChatGPT.

Skript se sice spustí, ale nefunguje tak, jak má
Aktuální skóre: 3:1 pro ChatGPT
Pokračování 4 / 6
4. Vysvětli, co dělá tento kód
ChatGPT zatím vede, Bard ale může dorovnat skóre, jednou z novinek, kterou by měl umět, je totiž i analýza kódu. A tak oběma chatbotům předložíme programový bastl autora článku a požádáme je, ať nám vysvětlí, co ten program vlastně dělá. Stejně jako v únoru oběma robotům zkopírujeme tento kód v C pro komunikaci s mým redakčním stolním multimetrem skrze sériové rozhraní.


Pro lepší představu, co dělá program, jehož kód budou oba chatboti analyzovat
Program se začne po spojení s multimetrem skrze sériový port periodicky dotazovat na aktuální hodnoty, které bude vypisovat do příkazové řádky a volitelně také do textového souboru ve formátu CSV.
Odpověď ChatGPT (GPT-4)
Odpověď ChatGPT je prakticky dokonalá. Nejprve v krátkém odstavci popisuje, co program dělá a upozorní nás, že je napsaný v C a pro textové prostředí Windows. Poté v sedmi bodech detailněji popíše životní cyklus aplikace a na závěr nezapomene na argumenty programu, kterými jej můžeme při startu nakonfigurovat.

Úryvek velmi dlouhého dotazu, který obsahuje stovky řádků programového kódu

Poměrně vyčerpávající a bezchybná odpověď s popisem kódu aplikace
Odpověď Google Bard (LaMDA)
Tentokrát právem dostane bod i Bard, protože i on sesumíroval správnou odpověď (odpustíme mu, že se formálně nejedná o C++, ale C). V prvním odstavci píše, že program komunikuje s multimetrem skrze COM port a ptá se multimetru na aktuální měření a výsledek povely FUNC? a MEAS?. Stejně tak píše, že program umí výsledky volitelně ukládat do textového souboru ve formátu CSV.

Odpověď Barda je mnohem stručnější, ale podstatu vysvětlil bezchybně
Poté následuje stručnější popis klíčových sekcí kódu a odpověď končí. Bod tedy Bard získal, nicméně ChatGPT byl na první dobrou mnohem podrobnější. Těžko říci, co je lepší. Jestli hned podrobná, anebo raději stručnější odpověď s tím, že se když tak doptáme.
Aktuální skóre: 4:2 pro ChatGPT
Pokračování 5 / 6
5. Hledáme syntaktickou chybu
V předposlední zkoušce otestujeme, jestli ChatGPT a Google Bard najdou všechny syntaktické – formální – chyby v kódu, který jsme napsali v Pythonu. Celý si jej můžete prohlédnout ve vstupu pro ChatGPT. Po obou robotech chceme, aby našli chyby a vysvětlili, v čem spočívá problém.
Odpověď ChatGPT (GPT-4)
Vypadá to, že ChatGPT bude mít v našem testu opravdu plný počet bodů. Našel všechny formální chyby v kódu. Tedy překlep v názvu proměnné nahodne_cislo a špatně uzavřený textový řetězec.

Příkaz pro ChatGPT s plným zněním kódu, ve kterém jsou nějaké formální chyby

ChatGPT našel všechny chyby a nabídl opravený kód
Odpověď Google Bard (LaMDA)
Odpověď Barda byla dlouhá a... A my vlastně nevíme, jestli splnil zadání. Sice stejně jako ChatGPT identifikoval všechny problémy, nicméně je opravil poněkud po svém. Korektně uzavřel řetězec, na konec věty ale zároveň přidal vykřičník. nejspíše proto, že byl součástí i předchozí věty.
Stejně tak změnil porovnávací operátor > na >=, aniž by to byla chyba. Kód teď bude fungovat jinak. Ne, prostě ne. Kód sice po spuštění bude fungovat, ale není to čistá oprava. Dáme Bardovi jen půl bodu.

Bard sice kód opravil, ale měnil i to, co nebylo fakticky špatně
Aktuální skóre: 5:2,5 pro ChatGPT
Pokračování 6 / 6
6. Hledáme sémantickou chybu
V posledním úkolu vložíme do kódu sémantickou – významovou – chybu. Kód tedy bude sám o sobě zcela funkční, ale nebude dělat to, co po něm chceme, protože jsme chybou změnili jeho význam.
Odpověď ChatGPT (GPT-4)
Kód s chybou je tentokrát stručný, a tak se na něj podívejte rovnou i s odpovědí od ChatGPT. Ano, správně, kvůli sémantické chybě by nám smyčka while běžela stále dokola, proměnná i totiž nikdy nedosáhne hodnoty 10. ChatGPT problém identifikoval a nabídl kompletní opravený kód.

ChatGPT našel a opravil chybu
Odpověď Google Bard (LaMDA)
Bard se pochlapil, sémantickou chybu našel také a bez dalších kreativních zásahů jako minule nabídl opravený kód.

Google Bard našel a opravil chybu
Oba hoši tedy získávají po bodu a finální skóre je 6:3,5 ve prospěch ChatGPT ve verzi běžící na motoru GPT-4.
O tom to ale možná také je. Google Bard nyní používá velký jazykový model LaMDA, který se GPT-4 nevyrovná. Internetová jednička si to uvědomuje a poslední týdny mluví o chystané nové verzi, která poběží na modelu PaLM. Ten je mnohem větší, a tak by mohl být i chytřejší, byť to není automatické pravidlo.
Je tedy možné, že v dalším souboji, který uspořádáme třeba zase za pár měsíců, to už dopadne trošku jinak.

Web Google Moje aktivita
Je také třeba připomenout, že každá odpověď velkého jazykového modelu je unikátní a do jisté míry neopakovatelná. Kdybychom se tedy Barda zeptali na stejnou otázku desetkrát po sobě, případně dotaz upřesnili, možná také odpoví korektně. To samé ale platí o ChatGPT.
Toto byl ale souboj jen na jeden život, takže se počítala jen první odpověď.
Tento článek je součástí balíčku PREMIUM+
Odemkněte si exkluzivní obsah a videa bez reklam na devíti webech.
Chci Premium a Živě.cz bez reklam
Od 41 Kč měsíčně