Zadanie

Táto úloha je teoretická a zároveň špeciálna. Ako svoje riešenie budeš pre zmenu odovzdávať sériu snímok obrazovky s prípadným krátkym popisom. Pozor, odovzdávať sa dá len súbor vo formáte pdf.

Ak máte akékoľvek otázky ohľadom tejto úlohy, napíšte Mackerovi na email [email protected]

Určite ste si všimli, že v poslednom čase narástol na popularite istý četovací bot ChatGPT. V tejto úlohe s ním budeme interagovať, snažiť sa obísť jeho bezpečnostné obmedzenia a podobné veci. Ale ak ste o ChatGPT ešte nepočuli, nezúfajte, všetko potrebné sa dozviete v študijnom texte.

Študijný text

Asi prvá vec, ktorú treba urobiť je prejsť na stránku ChatGPT a zaregistrovať sa, aby si ho mohol začať používať. Registrácia je celkom jednoduchá, najprv pôjdeš na adresu https://chat.openai.com/, kde ti vyskočia možnosti Log in a Sign up. Ak si si ešte nezakladal účet, klikni na Sign up. V okne, ktoré sa ti ukáže môžeš buď zadať svoju emailovú adresu, kam ti pošlú overovací kód, alebo sa prihlásiť cez Google alebo Microsoft - ak takýto účet máš. Pri prihlasovaní je postup podobný: buď zadáš email, alebo sa prihlásiš cez Google alebo Microsoft.

Na prácu s ChatGPT nepotrebujete rozumieť skoro žiadnej teórii, no aj tak si môžeme rozobrať nejaké základy, či už zo zaujímavosti, alebo pre odhalenie trikov na zjednodušenie úlohy.

Modely typu GPT fungujú na pomerne jednoduchom základe a to predpovedanie textu podľa pravdepodobnosti - vždy vypíše slovo, ktoré má najväčšiu šancu sa ukázať. Vďaka obrovskému objemu dát, cez ktoré prešiel to ale dokáže robiť veľmi dobre, ak je začiatok textu: “Expert v programovaní odpovedal:” bude odpovedať ako expertný programátor, lebo to je najpravdepodobnejšie. ChatGPT bol vytvorený tak, aby nadstavoval nad takýto model tým, že dostáva napríklad nejakú systémovú správu, ktorá ho automaticky dáva do “módu” četbota, nech sa nám s ním dobre komunikuje. Okrem toho bol istým spôsobom “odladený”, teda prešiel si texty urobené na to, aby predpovedal nie len pravdepodobné slovo podľa internetu, ale aj podľa správ slúžiacich ako príklad toho, ako by mala odpoveď vyzerať.

A ako s ním komunikovať?

Našťastie ho vývojári ChatGPT nastavili tak, aby sa s ním dalo najlepšie komunikovať cez dialóg, takže sa ho dá často presviedčať ako normálneho človeka.

Ale ako to, že toho vie tak strašne veľa?

Prešiel si skoro celý internet, takže aj keď je jeho neurónová sieť o dosť menšia ako tá tvoja, má do nej napchaté neskutočné množstvo informácii, čím častejšie sa takéto informácie nachádzajú na internete, tým lepšie ich vie. Vďaka tomuto je využiteľný ako nejaký kamarát, ktorý sa povrchovo vyzná do všetkých tém a je ti ochotný čokoľvek vysvetliť, často pôsobí ako to, čo by si našiel na internete, ale vieš sa ho pýtať doplňujúce otázky a pochopiť tak tému lepšie.

Ale ako to, že to nevie skoro vôbec využívať?

Ako som už spomínal, jeho neurónová sieť je o dosť menšia ako tá tvoja, okrem toho nedokáže počas rozprávania pracovať s pamäťou – len píše ďalšie slovo a popri tom si číta už napísaný text. Nevie si zapamätať niečo, ale nepovedať to. To znamená, že keď úloha požaduje veľa rozmýšlania a postupného prechádzania rôznych nápadov, väčšinou zlyhá na plnej čiare. Proste vypíše prvý z nich a nevie sa už vrátiť naspäť, lebo už povedal, že sa to robí tak.

A ako mu trochu pomôcť aby urobil to, čo chceme?

Ak sa unáhľuje a vypisuje prvú vec, čo mu napadne, vieme mu proste povedať nech to nerobí. Môžeme mu povedať nech postupuje po krokoch a skúša rôzne možnosti. Nie je to zložité, len si treba uvedomiť, čo je vnútri to, čo spôsobuje, že robí takéto chyby. Podobný prístup sa dá využiť aj na obídenie jeho bezpečnostných zábran, aj keď to ide oveľa ťažšie, lebo tomu sa snažia jeho vývojári zabrániť. Aj napriek tomu existujú správy, ktoré ho vedia vyviesť z miery a presvedčiť ho, aby sa správal inak ako v základnom nastavení. Takejto forme sa hovorí DAN - Do Anything Now, a silno ju neodporúčame používať - v týchto úlohách bude dokonca zakázaná.

Technické veci

Pri riešení takejto úlohy je zopár vecí na ktoré si treba dávať pozor: 1. Vyťaženosť serverov sa mení, často sa stáva, že servery úplne vypadnú, alebo je ChatGPT pomalý 2. Existuje limit na počet správ, ktoré si s ním môžete napísať za jeden deň 3. Keď prejdete nad správu, v ľavo hore je ikonka na editovanie správy. Je to nie len užitočná vec, ale editovanie sa neráta do denného limitu 4. Stránka ukladá staré konverzácie, ale stáva sa, že sa prestanú zobrazovať, preto si ukladajte snímky obrazovky, či text aj priebežne počas riešenia

Úloha

Pri každej z podúloh dostanete nejaké zadanie, čo požadujeme aby ChatGPT urobil. Každá z úloh je rozdelená na 2 časti, ľahšiu (A) a ťažšiu (B).

    1. Nech si ChatGPT spraví vlastný jazyk tak, aby sa s tebou v ňom vedel rozprávať
    2. Zisti aké slovo vo vašom jazyku znamená “kľúč” (prípadne “key”) bez toho aby si sa spýtal na preklad kľúča, alebo hocijakého synonyma, či prekladu do skutočného jazyka (prípadne ho presvedč, že nejaké slovo je kľúč, bez toho aby si slovo kľúč použil).
    1. Vymeň si s ChatGPT role - on je človek, ktorý sa pýta otázky a ty si ChatGPT, ktorý odpovedá
    2. Nech obe role má ChatGPT a vedie takto dialóg sám zo sebou
    1. Spusti v ňom nejaký z tvojich kódov (prípadne staršie vzorové riešenie) niektorej Prásk úlohy
    2. Spusti nejakú úlohu, ktorú neodsimuluje ChatGPT správne a vysvetli mu ju tak, aby ju odsimuloval správne na príkladných vstupoch

Odovzdávanie

Ako riešenie máte odovzdať sériu snímkov obrazovky, ktoré dokumentujú celú vašu kovnverzáciu s ChatGPT pre danú podúlohu. Snímky obrazoviek za jednotlivé podúlohy (vždy s označením, ku ktorej patria) odovzdajte spolu v jednom dokumente. Pozor, odovzdávať sa dá len súbor vo formáte pdf.

Hodnotenie

Za všetky A-čkové časti je po 10 bodov. Za 1. B) je 30 bodov. Za 2. B) a 3. B) je po 20 bodov.

Pri komunikácii s ChatGPT som používal Angličtinu, no princípy využité v konverzáciach by mali rovnako dobre fungovať aj v slovenčine.

Pri veľkej časti úloh sa stačilo ChatGPT len pekne spýtať na to, čo je v zadaní. Občas však ChatGPT odmietol urobiť/pochopiť to, čo mu bolo zadané. V takýchto situáciach pomáhalo prepísať otázku inou formou - na tieto formy sa aj pozrieme pri jednotlivých úlohách.

1

A. Toto je jeden z prípadov, kedy naozaj stačilo len pekne poprosiť. Občas bolo prekážkou, donútiť ChatGPT aby sa s tebou rozprával len vo vašom jazyku. V tomto prípade ale stačilo len sebavedome a jednoducho opísať úlohu. (ak sme sa ho pýtali, či môže odpovedať iba v našom jazyku, tak nám povedal že nie)

vlastny jazyk

B. Táto úloha sa dala jednoducho riešiť opísaním kľúča vo svojom jazyku a požiadaním o preklad. Druhou možnosťou bolo napríklad, pohrať sa trochu s pravdepodobnosťou.

zistime ako sa povie kluc

Dopísali sme vetu tak, aby sa pravdepodobne končila na slovo kľúč. ChatGPT odpovedal s najpravdepodobnejšou vecou, teda že “boukik” naozaj znamená kľúč.

2

A. Keď sme zadali do chatbot doslova zadanie úlohy odpovedal najprv ako chatbot a potom vygeneroval zoznam možných otázok. Na vyriešenie tohto znovu pomohla krátka jednoznačná správa.

vymena roli

B. V tejto úlohe mali tendenciu nastávať podobné problémy ako v minulej, lenže viac. Po správae ChatGPT v nejakej roli má tendenciu nasledovať správa v rovnakej roli. Okrem toho si musí celý čas udržať svoju úlohu bez nejakých ďalších pokynov od človeka. Mne k docieleniu takéhoto správania pomohlo opakovanie - ak ChatGPT zopakujete rovnakú myšlienku viac krát, je väčšia šanca, že ju pochopí alebo bude považovať za pravdivú. Okrem toho ChatGPT nechcel pochopiť, ako vyzerá vymieňanie rolí, teda sme mu úlohu zadali ako postupné vypisovanie dialógu, čo docielilo rovnaký výstup.

dialog sam zo sebou

3

A. Stačilo použiť dostatočne jednoduchú úlohu. Okrem toho veľmi pomáhalo, ak bola známa - kódy podobné ako nejaké často sa vyskytujúce na internete má ChatGPT tendenciu lepšie pochopiť. Úloha (Prask, 7.ročník, 2.časť, 1.kolo - po každom čísle na vstupe vypisujeme médián doteraz zadaných čísel), ktorú sme vyskúšali bola už celkom na hranici jeho schopností, no zvládol ju bez ďalších pokynov - len sme prekopírovali kód vzoráku a pod neho napísali, nech ho spustí na príklade, ktorý bol prekopírovaný tesne pod kód.

Simulacia kodu Simulacia kodu

Aj bez ďalších inštrukcií sa ChatGPT rozhodol vypísať postup riešenia - toto je niečo, čo je ako chatbot naučený robiť skoro vždy, tento postup bol však napísaný až pod výsledkom, čiže k tvorbe výsledku priamo neprospel (ako sme už spomínali, ChatGPT si nevie premyslieť veci dopredu, postup teda nepoužil na generovanie výstupu). Výstup bol ale správny.

B. Pri druhom príklade zo zadania si ChatGPT ale netipol správne. Prvá vec, ktorá nám môže napadnúť je v skratke popísať zadaný kód. Toto sa ale ukázalo nebyť najlepší nápad. ChatGPT kódu rozumie veľmi dobre, zatiaľ čo náš rýchli popis mal kopu nedostatkov a len zneistil chatbota.

Simulacia zleho kodu

ChatGPT zrejme kódu rozumel aj bez našej pomoci. Toto je ale niečo, čo vieme využiť. Napíšeme jemu, nech opíše, čo robí kód. Okrem toho nech postup behu kódu rozoberie dopredu.

Simulacia zleho kodu

Teraz už začína vypisovať niečo o dosť zmysluplnejšie:

Simulacia zleho kodu

Stále má problémy s prehadzovaním prvkov medzi haldami - ako som už spomínal týmto príkladom sme na jeho hraniciach. Zvýšili sme ale o dosť pravdepodobnosť, že to zvládne. Aj napriek tomu, že to možno na prvý pokus nezvládol, vždy sa dá pustiť viac krát - človek už často vie vybrať ten najlepší výstup spomedzi vygenerovaných. S rovnakými príkazmi na druhý krát vygeneruje správny výstup.

Simulacia zleho kodu

Diskusia

Tu môžte voľne diskutovať o riešení, deliť sa o svoje kusy kódu a podobne.

Pre pridávanie komentárov sa musíš prihlásiť.