ChatGPT známe všichni…Mě ale napadlo rozjet si ho lokálně a to rovnou na Raspberry Pi 4. A tak jsem k tomu natočil video na YouTube a sepsal podpůrný článek.

Proč by to někdo dělal, ptáte se? No tak jednak je to sranda, druhak jsem si chtěl vyzkoušet limity jak maliny, tak jednotlivých LLM a hlavně si myslím že je v tom budoucnost. Proč? S aktuálním stylem používání AI se totiž táhnou počínající problémy:

  • Stojí to prachy
  • Je to energeticky náročný
  • Firmy i lidi mají obavy o svoje data

Při brouzdání netem jsem narazil na fascinující projekt s názvem Ollama. Jedná se o projekt s otevřeným zdrojovým kódem, který umožňuje spouštět různé velké jazykové modely (LLM) lokálně u vás na linuxu. Tak jdeme na to!

Instalace je hodně snadná, provedete ji jedním příkazem:

curl <https://ollama.ai/install.sh> | sh

Rozhodl jsem se otestovat víc modelů (pokračování testu v dalším videu). Česky většina z nich neumí, tak jsem komunikoval anglicky – stejně to podle mě jednou bude univerzální jazyk celosvětově.

Pro test jsem si připravil tři otázky:

  1. What is the difference between a turtle and a tortoise?
  2. Can you tell me an interesting or lesser-known fact about Star Wars?
  3. How do you list all the files in a directory using PowerShell?

Je dobrý si říct, že to chce trochu výkonu a RPi 4 se 4 GB RAM na to není nejlepší kandidát – mě ani tak nelimitovala RAMka, ale spíš procák. Ale i tak to jelo a bylo to hustý! Obecně se doporučuje následující konfigurace:

  • 7b models generally require at least 8GB of RAM
  • 13b models generally require at least 16GB of RAM
  • 70b models generally require at least 64GB of RAM

TinyLlama je kompaktní model s pouhými 1,1 miliardou parametrů a tak na RPi4 běžel poměrně v pohodě. Spustíte ji příkazem

ollama run tinyllama

Moc toho ale neumí, trochu si poradí s češtinou, ale píše v ní blbosti. Model opustíte zadáním příkazu:

/bye

Pokud přidáte parametr — verbose bude se na konci výstupu vypisovat statistika.

Zkuste si další malé LLM

Já bohužel nemám tolik času, ale zkuste si nainstalovat další modely a vyzkoušejte si je!

najdete je zde: library (ollama.com)

Tím návodnou část článku k videu s dovolením opustím, těšte se na další video kde si rozjedeme AI lokálně na Windows s WSL.

Pokud vás zajímá, jak používat AI bezpečně ve firmě, v BOITu na to máme školení.

Teď bych ještě rád popsal dva pojmy které ve videu hodně skloňuju a to tokeny a parametry…

Co jsou to tokeny

Představ si, že máš před sebou puzzle. Když chceš složit celý obrázek, pracuješ s jednotlivými dílky. Každý dílek puzzle je unikátní a má určité barvy a tvary, které mu pomáhají zapadnout na správné místo. Když dílky spojíš, vznikne z nich celý obrázek, který má smysl.

V případě umělé inteligence si můžeš tokeny představit jako tyto dílky puzzle. Když AI zpracovává text, „rozdělí“ ho na menší části, které nazýváme tokeny. Tyto tokeny mohou být slova, části slov nebo třeba interpunkční znaménka. Každý token je jako jeden dílek puzzle, který má svou vlastní hodnotu a místo v kontextu celého textu.

Když AI analyzuje text, snaží se porozumět jeho významu tím, že zkoumá, jak tyto tokeny (dílky puzzle) spolu souvisí a jak společně tvoří větší celek (celý obrázek). Například, aby pochopila větu, AI zváží nejen jednotlivá slova, ale také to, jak se tyto slova kombinují a interagují, aby vytvořila srozumitelný a koherentní výraz nebo myšlenku.

Takže, podobně jako když skládáš puzzle a hledáš, jak dílky pasují dohromady, aby vznikl celkový obrázek, AI používá tokeny, aby „složila“ význam textu a interakce v přirozeném jazyce.

Parametry

Parametry v jazykovém modelu, jako je GPT-4, jsou váhy, které určují, jak model funguje. Můžete si je představit jako nastavení, které model používá k tomu, aby pochopil a generoval jazyk. Tyto váhy se nastavují a upravují během tréninku modelu na základě velkého množství textových dat.

Každý parametr v modelu má svou specifickou úlohu ve zpracování informací a společně tvoří „mozek“ modelu, umožňující mu učit se, rozumět kontextu a generovat texty.

Ve velkém modelu, jako je GPT-4 s 175 miliardami parametrů, je těchto „nastavení“ opravdu mnoho, což mu umožňuje pochopit a generovat jazyk s vysokou mírou složitosti a nuance.