Spustit lokální jazykový model není nic jednoduchého. Jednomu uživateli se to však podařilo na velmi omezeném hardwaru.
Nadšený uživatel chtěl využít svůj PowerBook G4 z roku 2005 a vyzkoušet, zda je systém schopen asimilovat a zpracovat jazykový model, jako je Llama 2. Obecně je lokální spuštění jazykového modelu úkolem, který vyžaduje slušný hardware, aby systém běžel bez problémů.
Andrew Rossignol, autor blogu The Resistor Network, pro tento úkol vycházel z efektivní implementace Llama 2 od Andreje Kaparthyho, upravené tak, aby poskytovala jednoduchost a dostupnost tohoto jazykového modelu na široké škále systémů. Ve skutečnosti se jednalo o stejný kód, který byl použit pro spuštění LLM (Large Language Model) na počítači s Windows a pouhými 128 MB RAM.
Takto běží AI lokálně na 20 let starém počítači
PowerBook použitý k testu má procesor s frekvencí 1,5 GHz, pouze 1 GB paměti RAM a 32bitovou architekturu. Projekt je založen na adaptaci Kaparthyho kódu, který umožňuje inferenci modelu Llama 2 prostřednictvím jediného souboru napsaného v jazyce C. Autor v textu vyjadřuje uspokojení nad výzvou přenést tuto technologii do prostředí s velmi omezenými zdroji.
Someone managed to run a LLM on a 2005 PowerBook G4 with a 1.5 GHz CPU and 1 GB of RAM.
Lots of optimizations were needed and it's clearly not useful at 0.8 tokens per second, but it a fun experiment and the blog post is super interesting. pic.twitter.com/z3uOgux44e
— Benjamin Crozat (@benjamincrozat) March 24, 2025
Ukázal, jak se mu díky řadě úprav Kaparthyho kódu podařilo splnit úkol spustit jazykový model velikosti Llama 2 na systému, který je dnes tak omezený, jako je PowerBook G4 od firmy Apple. Tajemství spočívalo v optimalizaci kódu a technologie přítomné v procesoru tohoto počítače.
Aby autor překonal překážky hardwarových omezení, provedl několik optimalizací kódu. Patří mezi ně úpravy pro zlepšení správy zdrojů, například abstrakce vstupně-výstupních funkcí a správy paměti a také začlenění systému založeného na zpětných voláních, který usnadňuje vizualizaci výsledků při jejich generování. Tato modulární struktura také umožňuje testování bez spoléhání na přímé textové výstupy a zajišťuje, že model správně reaguje na různé vstupy.
Vývojář dokázal vyřešit klíčový problém
Jeden z největších problémů při přenosu tohoto softwaru na PowerBook G4 spočívá v rozdílné architektuře. Zatímco původní implementace předpokládá prostředí little-endian, procesor PowerPC používá formát big-endian. Termín „endian“ označuje pořadí, v jakém jsou bajty uloženy v paměti. V systému big-endian, jako je PowerPC, jsou nejdříve uloženy nejvýznamnější bajty čísla, zatímco v systému little-endian jsou nejdříve uloženy nejméně významné bajty.
K vyřešení tohoto konfliktu byl implementován mechanismus převodu dat, který správně reinterpretuje uložená čísla, čímž se zamezí kritickým chybám při alokaci paměti.
Kromě toho autor využil možností procesoru, zejména vektorových rozšíření AltiVec, která umožňují provádět matematické operace rychleji a efektivněji. Pomocí těchto speciálních instrukcí uživatel optimalizoval základní výpočty násobení a sčítání, které tvoří jádro zpracování modelu, čímž se výrazně zkrátila doba odezvy, i když je stále pomalejší ve srovnání s moderními zařízeními.
Pro měření výkonu byly provedeny testy na současném systému i na PowerBooku G4. Zatímco na moderním procesoru bylo dosaženo přibližně 6,91 tokenů za sekundu, na starém notebooku se rychlost výrazně snížila a výsledky se blížily 0,77 tokenů za sekundu. Po použití optimalizace pomocí AltiVec se výkon mírně zlepšil.
Jak uvádí uživatel, experiment je dalším neuvěřitelným příkladem toho, že jazykový model lze použít i na mnohem menších počítačích, i když výkon není ideální. Vyžaduje to však značné úsilí při implementaci potřebných optimalizací. Takové projekty jsou povzbudivé v tom, že demokratizují používání umělé inteligence, aniž by bylo nutné striktně používat model nahraný do cloudu.