OpenAI ChatGPT Advanced data analysis (Code Interpreter) – analýzy dat snadno a rychle

Víte, že s ChatGPT můžete snadno analyzovat data díky funkci Code interpreter, aniž byste museli být data analytikem či umět programovat? Jednoduchý návod krok po kroku vám to na příkladu ukáže.

Uveřejněno

Rubrika

Autor

Aktualizace 29.8.2023 – Code interpreter se nově jmenuje Advanced Data Analysis (v článku ale zatím nechám původní názvosloví)

ChatGPT asi nemusím moc představovat – chatbot od OpenAI využívající jejich LLM (velký jazykový model) GPT, se kterým si můžete povídat a on vám celkem dobře odpovídá.

A už jste taky asi slyšeli o tom, že placená verze (ChatGPT Plus, 20 dolarů měsíčně) umožňuje přepnout ze staršího GPT 3.5 na mnohem novější a pokročilejší (a pomalejší a dražší) GPT 4.

Co se ale ví už výrazně méně je to, že tato verze GPT-4 umožňuje používat rozšíření, a to

  1. Code interpreter – neboli česky interpret (vykonavatel) kódu
  2. Rozličné pluginy třetích stran

O pluginech napíšu někdy příště, dneska se budeme věnovat funkci Code interpreter, protože ta se dá skvěle využít nejen k vykonání či vysvětlení (interpretaci) kódu, jak by snad napovídal název, ale fakticky k vysvětlení čehokoliv. Třeba i dat.

AI školení – nové termíny a místa (Praha, Brno…)

Chcete dostávat tyto články na e-mail, aby vám nic neuteklo?

Co je ChatGPT Code interpreter?

Code interpreter je fakticky pro daného uživatele vyhrazené (sandbox) Python prostředí, kde se mohou provádět různé příkazy/operace/programy v tomto jazyce, kde má uživatel vyhrazený nějaký dočasný prostor, ve kterém tyto operace probíhají a kam může nahrávat své soubory, nebo je vytvoří/upraví právě pomocí Code Interpreteru.

Tedy zatímco čistý jazykový model vám dokáže třeba napovědět či vysvětlit nějakou funkci, protože si o ní někde něco přečetl a zapamatoval, ale vlastně vůbec netuší co to je funkce a jak se to liší od jakéhokoliv jiného textu, Code Interpreter ji skutečně rozumí, umí jí spustit, ví jaké očekává parametry, co vrací, rozumí jejím chybám atd. Ale stále přitom využívá jazykového modelu, takže ji ovládáte pouhým textem/hlasem, nikoliv programováním.

Jaké Python funkce ChatGPT podporuje?

Je jich děsně moc, můžete si zvětšit tenhle obrázek, nebo se podívat na celý výpis file systému Code interpeteru, nechci to ale tady vůbec rozebírat, protože pointa právě je, že je pro zpracování dat vůbec nemusíte umět.

Jaké soubory podporuje ChatGPT Code interpreter?

Pro zpracování dat je klíčové, v jakém formátu data můžeme nahrát. Zeptal jsem se ho a odpověď je, vlastně skoro v každém formátu, Code Interpreter si s tím nejspíš poradí.

Jak Code Interpreter zapnout

Jak už jsem napsal, pro používání Code interpreteru musíte mít předplatné ChatGPT Plus. A nyní

  1. Klikněte na 3 tečky vlevo dole vedle vašeho jména a vyberte Settings & Beta

2. na záložce Beta features zaškrtněte Code interpreter. Klidně zapněte rovnou i Plugins, zapne možnost si pak vybrat i pluginy, sama o sobě tahle volba nedělá nic.

3. přepněte v záhlaví na novější jazykový model GPT-4 a ponechte myš nad touhle volbou a zobrazí se vám možost zapnout kliknutím právě Code Interpreter BETA

Tímto jste nejen zapnuli to, že GPT bude v případě že to uzná za vhodné využívat Python funkce, ale zároveň vám přibylo u zadávacího políčka tlačko ➕, kterým můžete nahrávat soubory ke zpracování

Jednoduché zpracování dat pomocí interpretu kódu

Výše uvedené kroky stačí udělat jednou, dokud to zas nevypnete, tak to tento interpret budete moci používat stále. Takže po delším úvodu pojďme na to vlastní zpracování dat.

Já jsem pro názornost použil otevřená data z národního Portálu otevřených dat https://data.gov.cz/datasets, a to konkrétně data o kvalitě ovzduší v Brně.

Nahrání dat

Možná si říkáte, když už používám webové rozhraní a Python, co takhle kdyby si Code interpreter stáhnul ta data sám?

Má to jeden háček, ChatGPT (zatím?) ani s Code Interpreterem nemá přímý přístup k internetu. Nepochybně za tím je otázka bezpečnosti, nejen samotného ChatGPT, ale asi by nebylo fajn ani aby nějaký šikovný hacker nechal nejvymakanější umělou inteligenci dneška napadat nějaké cizí servery.

Takže musíte soubor nahrát ručně – já si vybral z nabízených formátů CSV, stáhnul jsem si jej do počítače…

… pak pomocí ➕jej přidal a pak pomocí ▶️ jej odeslal. Můžete rovnou i přidat nějaký příkaz, ale není to v tuto chvíli nutné.

A už můžete vidět první „kouzlo“ umělé inteligence. Aniž jsem mu cokoliv řekl a aniž tyto informace jsou přítomné v souboru, ChatGPT správně odhadl, že jde o data o kvalitě ovzduší v Brně a popsal (česky celou větou) jednotlivé sloupce.

Záhlaví a první řádek přitom vypadá takhle

X,Y,objectid,code,name,owner,lat,lon,actualized,so2_1h,no2_1h,co_8h,pm10_1h,o3_1h,pm10_24h,pm2_5_1h,globalid
16.613836,49.2160870000001,87053,BBMAA,Brno-Arboretum,SMBrno,49.216087,16.613836,2022/08/12 07:27:47+00,,14.5,,26.5,51.1,19.2,6.5,{3F7A332E-6F7F-491B-9A1A-56331F6D5772}

Analýza dat pro úplné začátečníky

Řekněme, že jsem naprostý začátečník a naprosto netuším, co to je za data a co bych s nimi mohl dělat. Zkusím tak naprosto hloupé zadání, se kterým by mě nepochybně každý lidský analytik vyhodil, ať si nejdřív rozmyslím, co vlastně chci.

ChatGPT 4 postupně slovo po slovu (přesněji token po tokenu) začne vypisovat odpověď…

… a vy, pakliže jste někdy třeba nějaká data analyzovali, ale nikdy jste zatím neviděli dělat to samostatně jazykový (!!!) model, tak postupně otevíráte ústa údivem …

… abyste nejpozději v tento moment, když vám vyhodí tento graf pochopili, jak zásadní to může být pomocník, nebo i hrozba pro někoho, kdo myslel, že mu někdo bude platit do konce života za jeho excelové „analýzy“.

Ale ChatGPT Code interpreter nekončí. Samozřejmě vám nejdřív poskytne vysvětlení ke grafům …

… načež vyhodí stanice s nejvyššími a nejnižšími hodnotami. A zakončí to obligátní otázkou „Máte další dotazy ohledně těchto dat nebo je něco konkrétního, co byste chtěl/a vědět?“.

Možná vám doteď brada nespadla, protože si říkáte, že tohle byste taky zvládli za hodinku v Excelu, kdybyste chtěli (ovšem už byste u toho museli přemýšlet, museli byste chtít, museli byste vědět, co vlastně chcete, museli byste v té firmě být, musel by vás někdo platit …)

Pointa ale je, že tady s tím může běžný uživatel dál konverzovat a běžnou lidskou řečí se doptávat dál. Přitom tomu třeba vůbec stále nemusí rozumět, zvládne to tak i někdo, kdo není ani programátor, ani specialista v oboru, ale třeba Běžný Franta Uživatel, kterého zajímá, kde je v Brně čistý vzduch. A tak se třeba zeptá „Jaké další reporty by mohly být zajímavé?“

… a ChatGPT začne chrlit další návrhy. Od těch celkem ještě jednoduchých, ale postupně přidá třeba korelace, analýzy vlivů a predikce, které zní dost složitě i pro zkušené datové harcovníky.

Možná si říkáte – papír snese všechno, já taky umím napsat co všechno by šlo dělat, i když bych to musel někde pak googlit. Ale ChatGPT zas vyzývá „Můžeme se zaměřit na některou z těchto analýz nebo pokračovat v jakémkoli jiném směru, který preferujete.“ Tak schválně, co takhle prostorová analýza a mapa?

Všimněte si, že se mohu ptát i velmi neformálně. A ChatGPT mi nabídnul pár možností, co by mohl vytvořit a rovnou se do toho pustil…

Uff – taky jste se lekli, že udělá mapu Brna s vyznačenými body? Protože to by bylo fakt hustý, to jen tak někdo neumí. Ale zdá se, že to sice zkoušel, ale že se mu to nepodařilo a místo toho nabízí alternativní vizualizace pomocí jiných grafů, případně možnost poskytnout vám data v nějakém vhodném formátu, pro použití v jiném toolu.

Code interpreter – řešení problémů a chyb

Vy jste si ale možná až teď všimli té šipky vpravo v tomhle bloku, co to asi znamená „Show work“?

Po rozkliknutí se vám zobrazí Python kód, který zkoušel spouštět a který mu selhal:

A kdybych chtěl, mohl bych se dál doptávat, co tam je za chybu, můžu zkopírovat kód přes Copy code vpravo a použít jej v nějakém Python nástroji typu Google Colab či Jupyter Notebook a hledat chybu či nastudovat dokumentaci knihovny Folium, ale to je mimo rozsah tohohle článku.

Mimochodem ten kód, který napsal, byl správný, měl jen jednu chybu, na kterou vás upozorní, když se správně zeptáte:

Ano, Code interpreter nemá přístup do internetu, takže to fungovat přímo zde nemůže. Zkusím tedy druhou možnost – nechám jej, ať mi vrátí GeoJSON.

Hmm, zdá se, že má nějaké potíže.

Tady je zdá se nějaká nápověda „Zdá se, že kvůli nějakým technickým potížím nemohu přistupovat k nahrávaným datům“. A opravdu když rozkliknu poslední kód, vidím chybu „FileNotFoundError: [Errno 2] No such file or directory: ‚/mnt/data/Kvalita_ovzdu%C5%A1%C3%AD___Air_quality.csv’“

A zdá se, že jsme přišli na příčinu problému – soubor, který jsem na začátku nahrával, už tam není.

Tohle je jedna ze známých chyb Code interpreteru – často zapomíná hodnoty proměnných či importované soubory. Asi i tím jak zároveň píšu tento článek, tak mi vypršel nějaký čas, ve kterém mám prostor k dispozici. Pomáhá s každým příkazem napsat něco jako „ujisti se, že máš stále všechny proměnné a nahraná data k dispozici“

Nahrál jsem tedy znovu původní CSV soubor a chtěl opět vytvořit GeoJSON. Že by opět chyba?

Ne. Nakonec vygeneroval žádaný GeoJSON soubor. Ale proč ty chyby?

Když si rozkliknete detaily, tak zjistíte, že ChatGPT navrhoval nějaký kód, který ale když Code interpreter spustil, tak zjistil, že je tam chyba. Tuto chybu pak ale opět zpracoval ChatGPT a navrhl opravu a tak postupně než dospěl k finálnímu správnému kódu.

Code interpreter – obohacení dat

No dobře, takže programovat to umí, pojďme se ještě vrátit k těm ostatním analýzám. Velmi silná zbraň Chat GPT při analýze vašich dat je totiž v tom, že nemusíte analyzovat jen vaše data, ale jednoduše napojit i další, a to aniž byste je znali a museli hledat

OK, takže napsal mi doporučené limity WHO – tady upozornění. Je možné, že kecá. Na žádný LLM se nemůžete spoléhat, že bude vracet správná data, je to jazykový model, nikoliv studnice vědomostí, tj. tipuje si, jaké slovo bude nejspíš následovat po tom předchozím, ale vlastně jim vůbec nerozumí. Také může mít zastaralé údaje (data v něm jsou minimálně rok stará).

Nebudu to ale teď kontrolovat, ChatGPT pokračuje

Hmm, zajímavé, není tak hloupý, všiml si, že má limit pro jinou časovou jednotku a vygeneroval tabulku.

Místo jen hloupých tabulkových dat mi zároveň mi nabídl slovní zhodnocení. Skvělé pro různé manažerské souhrny. Doplnil to i další analýzou, která má k daným datům relevanci.

Závěrečný příklad

Zkusím ještě jeden příklad, který mi dříve ChatGPT nabídnul – Analýza sezónních trendů v kvalitě ovzduší. To mi zní jako něco, co by mohlo být užitečné.

Opět jsem mu nahrál vstupní data, která mezitím ztratil. Opět hlásí nějakou chybu, nevím, co znamená „stát kódu“, nejspíš nějaký špatný překlad, ale nemusím to řešit, ChatGPT to nezastaví a problém vyřeší za mě a to samé ještě několikrát po sobě:

Nyní má již zjevně vše správně a sám si i zjistí, jestli má vůbec dostatek dat z různých sezón, aby je mohl porovnat:

A voilà, máme sérii grafů, která ukazuje vývoj jednotlivých ukazatelů v průběhu roku.

A opět mi poskytne „manažerský souhrn“ a to nikoliv pouze ze samotných dat, ale doplní i zajímavým postřehem ukazující hlubší „pochopení“ problematiky kvality ovzduší. Tohle vám dnes téměř žádný analytik, který není zároveň odborníkem v oboru, bez AI nenapíše.

A tak bych mohl pokračovat dál a dál, a mohl bych třeba připojovat i další data a hledat takto snadno další zajímavé informace.

Myslím ale, že to pro účely tohoto představení funkce Code interpreter stačí. Někdy příště budeme pokračovat s pokročilejšími příklady.

Připomínám, jak je důležité sdílet, pakliže vás článek zaujal, nejsem placený novinář, a tak jen dostatek čtenářů udrží můj zájem se několik hodin denně věnovat psaní článků pro vás. Sdílecí tlačítka jsou tady dole ⬇️⬇️⬇️ a nezapomeňte se registrovat do mailingu a přidat si mě na sociálních sítích. A jestli máte dojem, že rozumím AI, Prompt Engineeringu, LLM či ChatGPT, tak mi můžete přidat k těmto dovednostem hlasy na LinkedIn a třeba i k nim něco hezkého napsat.

Nové články sem přidávám porůznu, tak jestli nechcete, aby vám něco uniklo, přidejte si můj feed do RSS čtečky, sledujte můj Twitter, Facebook a LinkedIn, případně si nechte nové příspěvky posílat mailem (žádný spam!)