Google Bard umí nově generovat programový kód a také jej analyzuje. ChatGPT to umí už od začátku. Tak schválně, kdo z nich lépe vyřeší šest úkolů Zdroj: AI Midjourney

Google Bard umí nově generovat programový kód a také jej analyzuje. ChatGPT to umí už od začátku. Tak schválně, kdo z nich lépe vyřeší šest úkolů | Zdroj: AI Midjourney

Hrátky s Bardem pomocí vestavěné VPNky v prohlížeči Opera

Hrátky s Bardem pomocí vestavěné VPNky v prohlížeči Opera

Hrátky s Bardem pomocí vestavěné VPNky v prohlížeči Opera

Hrátky s Bardem pomocí vestavěné VPNky v prohlížeči Opera

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

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

Perfektní odpověď, funguje to na jedničku

Perfektní odpověď, funguje to na jedničku

Sice dlouhá, ale špatná odpověď

Sice dlouhá, ale špatná odpověď

Bard použil samé středníky, ale má tam ještě jednu chybu

Bard použil samé středníky, ale má tam ještě jednu chybu

ChatGPT vyrobil funkční kód na první pokus

ChatGPT vyrobil funkční kód na první pokus

Vygenerovaná aplikace v akci

Vygenerovaná aplikace v akci

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í 

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í 

Vygenerovaná aplikace v akci

Vygenerovaná aplikace v akci

Úryvek dlouhého zadání

Úryvek dlouhého zadání

A kompletní odpověď včetně upozornění, že musíme nastavit skriptu práva ke spuštění

A kompletní odpověď včetně upozornění, že musíme nastavit skriptu práva ke spuštění

ChatGPT přeložil Python na linxuový shellový skript bez jediné chybičky

ChatGPT přeložil Python na linxuový shellový skript bez jediné chybičky

Odpověď Barda napovídá, že pochopil, co po něm chceme, nicméně skript nefunguje, jak má

Odpověď Barda napovídá, že pochopil, co po něm chceme, nicméně skript nefunguje, jak má

Skript se sice spustí, ale nefunguje tak, jak má

Skript se sice spustí, ale nefunguje tak, jak má

Pro lepší představu, co dělá program, jehož kód budou oba chatboti analyzovat

Pro lepší představu, co dělá program, jehož kód budou oba chatboti analyzovat

Pro lepší představu, co dělá program, jehož kód budou oba chatboti analyzovat

Pro lepší představu, co dělá program, jehož kód budou oba chatboti analyzovat

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

Ú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

Poměrně vyčerpávající a bezchybná odpověď s popisem kódu aplikace

Odpověď Barda je mnohem stručnější, ale podstatu vysvětlil bezchybně

Odpověď Barda je mnohem stručnější, ale podstatu vysvětlil bezchybně

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

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

ChatGPT našel všechny chyby a nabídl opravený kód

Bard sice kód opravil, ale měnil i to, co nebylo fakticky špatně

Bard sice kód opravil, ale měnil i to, co nebylo fakticky špatně

ChatGPT našel a opravil chybu

ChatGPT našel a opravil chybu

Google Bard našel a opravil chybu

Google Bard našel a opravil chybu

Web Google Moje aktivita

Web Google Moje aktivita

Hrátky s Bardem pomocí vestavěné VPNky v prohlížeči Opera
Hrátky s Bardem pomocí vestavěné VPNky v prohlížeči Opera
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
Perfektní odpověď, funguje to na jedničku
27
Fotogalerie

Souboj umělých inteligencí. Zkusili jsme, jestli lépe programuje Google Bard, nebo ChatGPT

  • Google Bard umí nově generovat programový kód a také jej analyzuje
  • ChatGPT zvládá podobné kousky už od začátku
  • Tak schválně, kdo z nich lépe vyřeší šest úkolů

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ř.

3119cc3d-85dc-492d-99bf-45f706e066a3310533c7-7fd6-422f-9abd-fde6c83b33a1
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.“

050b072d-1251-410f-bbbc-98e0ad88b158
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.

b851796f-81c3-4a08-8ff5-b797e2372e0e
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.

b0835eaa-dfde-49f9-8cc9-1aca87d00ac7
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:

561f11ba-ed2d-42eb-839e-c86d9284424f
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.

1f3c94f3-f909-4063-b71a-92f6f6249c71
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).

4ad37bae-86a9-4df7-b59f-a6b64efe26b8
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.

044e79bf-ca0e-4b1a-a6f0-7ce69738a76e
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.

2ca89b9f-6f58-47cb-87f3-c20f99ff06f5
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.

4d3ae1e8-95bf-4018-a058-35ed623584fd
Úryvek dlouhého zadání
919ca2fc-7080-4d84-8746-8f0acaa98245
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.

2b214273-5b4f-4530-a823-c18e8ac9324e
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.

ba34b8b7-6c44-432b-a134-d58bfc492534
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.

820ffbb6-a209-4f55-97f9-9dee148a0bc8
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í.

b3ba3422-0a1e-4613-9f1a-11194726d49e8c44f2e3-8786-4348-a797-4874f37b60ab
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.

5e57c263-5778-44c0-b13c-a3fab6ed9814
Úryvek velmi dlouhého dotazu, který obsahuje stovky řádků programového kódu
d7f30e09-d02d-42b3-a198-17de0dbb70b6
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.

cbd80fa0-3754-4038-aefe-01be592cb534
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.

658e2d95-3c16-4c28-bc44-bdf671dd77c2
Příkaz pro ChatGPT s plným zněním kódu, ve kterém jsou nějaké formální chyby
4b676ddd-4020-4f60-8e46-9845363e140f
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.

30f68df5-71cd-44e5-8e43-a8ec12926384
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.

6935c2fc-aa55-48a4-b48f-62201affe070
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.

182b08be-4f9e-430f-9dbb-161573971dcd
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.

Na webu Google Moje aktivita se dozvíte, jaký model Bard právě používá

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.

eea01adb-4fdd-4f6e-a872-c56fc5117f75
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ěď.

Určitě si přečtěte

Články odjinud