O skvělém AI konverzačním chatbotu Claude.ai od firmy Anthropic už jsem zde několikrát psal, m.j. jsem konstatoval, že jde o dle mého názoru aktuálně nejlepší dostupný chatbot v češtině. O jeho nejužitečnější vlastnosti – práci s dokumenty – jsem se ale zmínil jen okrajově a dnes bych to rád napravil.
Výhody a nevýhody Anthropic Claude
Nejdřív ale shrnu klíčové vlastnosti Anthropic Claude. Nejdřív výhody
- Anthropic Claude je zdarma. Nově je k dispozici Pro verze (psal jsem ve včerejším souhrnu AI novinek) za 20 dolarů, která ale většině nepřinese v tuto chvíli nic nového (umožňuje ale 5× více dotazů, což se hodí zejména u konverzací využívajících velký kontext, viz dále).
- Kontextové okno – tedy kolik textu je schopen je schopen zpracovat – je 100 tisíc tokenů, tedy 25× více než ChatGPT. Tomu se budu věnovat v dalším odstavci
- Na rozdíl od bezplatného ChatGPT a Google Bard umí zpracovávat textové soubory (viz dále).
- Je trénován na novějších datech, až do začátku roku 2023. Znalosti ChatGPT končí zářím 2021.
A nevýhody
- Anthropic Claude je oficiálně dostupný pouze z USA a Velké Británie. Tohle bylo snadné obejít s pomocí VPN, pár týdnů už je ale nutné zadat tam i americké či britské telefonní číslo (nicméně mým věrným čtenářům, kteří jsou registrovaní a sdílí mé články nabízím jedno z 10 čísel, co mám ještě k dispozici, kdyžtak se mi ozvěte prostřednictvím některé ze sociálních sítí).
- Nepodporuje pluginy, ani Advanced data analysis (dříve Code interpreter), jako placený ChatGPT Plus. Nicméně třeba jednodušší analýzy CSV zvládne právě díky schopnosti zpracovávat soubory.
- Stejně jako ChatGPT (a na rozdíl od Bing) nemá přístup k datům na Internetu (ale můžete je stáhnout a dodat jako soubory, viz dále).
Jaké soubory umí Anthropic Claude otevřít
V chatovacím okně můžete podle oficiálních informací najednou připojit až 5 souborů, každý veliký až 10 MB. Ovšem máte-li například velký PDF soubor, není obvykle problém jej výrazně zmenšit, pomocí například této služby, která oseká velikost obrázků (které stejně v jazykovém modelu nevyužijete), takže z 13 MB souboru jsem měl najednou půlmegový. Ve skutečnosti jde Claude o počet znaků/tokenů, takže informačně hutné datové CSV možná moci být velké třeba jen 150 kB (pro jejich analýzu je lepší ChatGPT Advanced data analysis).
Navíc ale můžete soubory nahrávat postupně, nemusíte najednou a tam žádné omezení není, resp. omezením je pak velikost kontextového okna, viz dále.
Podle oficiální dokumentace umí Claude otevřít pouze soubory typu pdf, docx, csv, txt, html, odt, rtf a epub. Ve skutečnosti jich umí otevřít 59, dal jsem si tu práci je pro vás vypsat (seskupení a popis jsem nechal na Claude).
Jak vidíte, kromě čistě textových souborů a prezentací zvládá i mnoho programovacích/skriptovacích jazyků, logů a také datové soubory uložené v .csv (či .txt)
Koncovky souborů | Popis |
---|---|
.doc, .docx, .rtf, .odt, .epub | Textové dokumenty |
.odp, .pptx | Prezentace |
.txt | Prosté textové soubory |
.py, .ipynb | Python |
.js, .jsx | Javascript |
.html, .css | Webové technologie |
.java, .cs | Jazyky C# a Java |
.php | PHP |
.c, .cpp, .cxx, .h, .hpp | C/C++ |
.rs | Rust |
.r, .rmd | R |
.swift | Swift |
.go | Go |
.rb | Ruby |
.kt, .kts | Kotlin |
.ts, .tsx | Typescript |
.m | Objective C / C++ |
.scala | Scala |
.dart | Dart |
.lua | Lua |
.pl, .pm | Perl |
.t | Perl Test |
.sh, .bash, .zsh | Skriptovací jazyky |
.csv | CSV data |
.log | Log soubory |
.ini, .config | Konfigurační soubory |
.json, .yaml, .yml, .toml | Datové formáty |
.sql | SQL |
.bat | Batch / Shell skripty |
.md | Markdown |
.coffee | Coffescript |
.tex, .latex | LaTex |
Jak velké soubory Claude skutečně dokáže otevřít?
Omlouvám se, ale tady musím přidat pro pochopení trochu teorie.
Co je kontext a kontextové okno
Každý jazykový model resp. chatbot pracuje s nějakým kontextem – obvykle nereaguje pouze na váš dotaz, ale zároveň s každým dotazem jde zároveň i celá vaše konverzace ve stejném vlákně (tedy vaše otázky i odpovědi chatbota) a také systémová konfigurace (v případě ChatGPT i tzv. Custom instructions).
Tohle vše je kontext vaší zprávy, pouze na základě toho (s svého vytrénování) vám jazykový model / chatbot něco odpoví. A prostor pro tento kontext (říká se mu kontextové okno) není neomezený, například u ChatGPT je jen 4095 tokenů, zatímco Claude má okno až 100 tisíc tokenů.
Protože LLM nezná nic jiného, než tento kontext, dá se také říct, že kontextové okno je paměť jazykového modelu – když budete mít delší konverzaci, model začátek zapomene (když se to znovu neprobíralo následně).
Co je token?
A co je ten token? To je skupina znaků, se kterou pracují jazykové modely. Jak ChatGPT tak Claude používají tzv. BPE (byte-pair encoding) se slovníkem 65 tisíc nejčastějších kombinací znaků a dalších 65 tisíc nejčastějších kombinací (dvě fráze oddělené mezerou). Nejkratší token jsou jednotlivá písmena, nejdelší je u Claude 1024 mezer za sebou.
V angličtině, ve které jsou oba modely především trénované, má jeden token v průměru zhruba 4 písmena a protože průměrné anglické slovo má v průměru něco přes písmen, pak se dá říct, že 100 tokenů je asi 75 anglických slov.
V češtině je to horší – ani jeden jazykový model nemá v tokenech některá česká písmena s diakritikou, ani naše časté dvouhlásky, slabiky, předložky, koncovky a nejčastější slova, tak každé české slovo zabere v průměru přes dvakrát tolik tokenů. Schválně jsem zkusil s pomocí nástroje OpenAI Tokenizer zkusil spočítat tokeny u jednoho článku z českých novin – v češtině měl 1702 znaků a 1012 tokenů (1.68 znaků na token), v angličtině měl po automatickém překladu 2000 znaků a přesto jen 473 tokenů (4.23 znaků na token). Claude má ze 70 % totožný párovací slovník s OpenAI, takže by výsledek byl velmi podobný. A to je tam ještě několik českých znaků v názvu obcí, jinak by byl rozdíl ještě výraznější.
Schválně porovnejte výsledek (přetažením posuvníku doleva/doprava uvidíte českou vs. anglickou verzi):
A co z toho vyplývá? Proč je to důležité?
A proč to tu vůbec popisuji? No právě proto abych ukázal, že třeba 4095 tokenů ChatGPT je v angličtině něco přes 17 tisíc znaků, tedy necelých 10 normostran, v češtině je to ovšem pouhých cca. 7 tisíc znaků, t.j. jen necelé 4 normostrany! A od toho je třeba odečíst ještě systémový prompt. Proto je důležité, že Claude má kontextové okno 100 tisíc tokenů, tedy přes 90 českých normostran (a 235 anglických)!
TIP: Pakliže pracujete s delšími zadáními a kontextem a máte-li tu možnost, používejte anglické texty, zadání, jen třeba finální výstup chtějte v češtině.
Jak používat Anthropic Claude pro práci se soubory
A po delším úvodu se dostávám k meritu věci. Tj. jak se pracuje v Claude se soubory. Je to snadné, prostě je připojíte pomocí ikonky sponky
Následně vyberete soubory či soubory, které chcete nechat jazykovým modelem „přechroustat“. a pak už se můžete chatbota ptát a zadávat mu úkoly, například
- Napiš mi souhrn tohoto dokumentu
- Porovnej mi tyto dokumenty
- Přepiš tento dokument, aby byl čitelnější
- Přelož mi tenhle doument do češtiny
- Vysvětli mi termín XY na základě informací z dokumentu
- Na základě téhle výroční zprávy mi napiš, čím se firma zabývá, kde se jí loni dařilo a kde nedařilo
- Doplň mi dokumentaci a unit testy k těmhle mým skriptům
- Jaké jsou nejčastější problémy dle tohoto logu
- Přepiš mi tenhle soubor z R do Python
- …
Pozor na to, že jazykový model může použít i informace mimo ty, které jsou zadané v přiloženém dokumentu. To se může hodit, například když chcete informace nějak rozšířit či výrazně upravit, ale jindy to může být na škodu. Lze to částečně omezit instrukcí typu „pouze na základě dat z přiloženého souboru… pakliže v souboru tato informace chybí, napiš že nevíš“
TIP: stejným způsobem můžete obejít neschopnost Claude pracovat s informacemi na Internetu – můžete prostě příslušné informace na webu najít, uložit si stránku jako HTML a pak ji do Claude vložit jako jakýkoliv jiný soubor
Demo time
Práce s dokumenty
Zkusil jsem vložit do Claude 3 analýzy o využívání umělé inteligence z posledního měsíce – IBM (o této zprávě jsem psal zde), McKinsey a Lucidworks (ty jsem zmiňoval zde). Všechny zprávy jsem přiložil najednou a v angličtině, nicméně dále už jsem se ptal v češtině a výstupy tak jsou v češtině.
Jak si můžete všimnout, zprávy mají dohromady asi 5 MB, tedy zdánlivě >10× více než je 100 tisíc tokenů kontextového okna, ale protože záleží jen na textu a toho je zde méně než oněch asi 235 anglických normostran, nebyl to problém.
Moje zadání byla:
- Napiš mi delší souhrny těchto dokumentů, porovnej, čím se zabývají i jejich závěry
- Udělej mi tabulku porovnávající klíčové informace z dokumentů – firmy, čím se zabývali, kolik respondentů měli ve výzkumech, na co se jich ptali a podobně
- Udělej mi celkový souhrn ze všech dokumentů se všemi doporučeními
- Je něco, v čem jsou některé zprávy v rozporu a odporují si jejich závěry?
- Napiš mi pro každou zprávu poutavý příspěvek na Facebook, vypíchni vždy něco zajímavého. Žádná zpráva by neměla být kratší než 100 a delší než 250 znaků
V galerii si můžete prohlédnout výstupy a asi budete souhlasit, že jsou všechny skvělé. Testované dokumenty mají dohromady 63 stránek a kdybych chtěl to samé dělat ručně, zabralo mi jen jejich přečtení několik hodin a ne minut.
Pozor: je to „jen“ jazykový model, takže třeba to co vybere jako podstatné se bude nejspíš v každé odpovědi lišit. Může také halucinovat a některé informace si buď vymyslet nebo špatně pochopit. Nikdy nespoléhejte na výstupy!
Práce s daty?
Psal jsem, že jeden z podporovaných formátů je i CSV, tedy data oddělená čárkou. Zkusil jsem použít stejná data, jako ve článku OpenAI ChatGPT Advanced data analysis (Code Interpreter) – analýzy dat snadno a rychle, tedy data o měření kvality ovzduší v Brně, bohužel Claude mi skousnul pouhých 150 KB dat, tedy asi 8 % z původního souboru.
Můžete si všimnout, že kromě samotných dat mi i říká, kde byly překročené limity, přitom kolik je limit jsem mu neřekl, to „ví“ sám (ale musíte to ověřit). Když jsem mu omylem jednou nahrál data bez úvodního řádku se záhlavím sloupců, tak dokonce rozpoznal co kde je.
Pozor na to – všechno to co spočítal jsou halucinace – snad ani jedna z hodnot nesedí. Pro analýzu dat je to tedy jako nástroj nepoužitelné, používejte ChatGPT Plus Advanced Data analysis.
Co říkáte na Anthropic Claude?
Znáte Claude, používáte ho a zkoušeli jste nějaká jeho jiná podobná kouzla při práci se soubory? Dejte mi vědět na sociálních sítích a pošlete tento článek také vašim kolegům a známým, věřím, že tohle se bude hodit mnohým. Sdílecí tlačítka jsou tady dole ⬇️⬇️⬇️ a nezapomeňte se registrovat, ať vám neunikne žádná nová informace.