Far funzionare l'Intelligenza Artificiale più potente sul computer di casa. LLAMA2 70B e Stable Diffusion SDXL

L'AI è qui per rimanere, la questione di fondo è chi controlla l'intelligenza artificiale? ChatGPT, Midjourney possono essere usate per intrattenimento, ma anche per utilizzi più "intimi" che magari per privacy non vogliamo far conoscere a terzi oppure non vogliamo dipendere da internet per generare quei dati.
Come mostro nella Techonsapevole Academy avere il controllo dei nostri dati è ancora possibile e indispensabile per proteggere la privacy.

Ora quando non sappiamo qualcosa possiamo cercarla su Google, ma con l'AI la stessa ricerca può essere fatta offline senza internet, è un cambiamento rivoluzionario, per certi versi è un ritorno alle origini: ovvero usare internet solo per comunicare e non dipendere da internet per qualsiasi cosa.

TLDR; In questo post un sommario e qualche considerazione per chi vuole avventurarsi nella giungla di far funzionare l'AI sul proprio computer.

Un mondo post-apocalittico con il cambiamento climatico, come immaginato da Stable Diffusion SDXL

Quali intelligenze artificiali e cosa fanno?

Ogni giorno ci sono novità a riguardo, tuttavia le famiglie principali sono:

  • LLM: Large language model, tipo ChatGPT/LLAMA, rispondono a domande, fanno riassunti, traducono,..
  • Image to text/ Generative, creano immagini o foto a partire da un testo (prompt) che la descrive in modo dettagliato
  • STT / TTS: Comprendono la voce o parlano con voce naturale
  • Molto altro, da testo a musica, LLM specializzati per creare codice o risposte mediche, agenti intelligenti che convertono la voce parlata in azioni del mondo reale via API. "Prenota il primo volo per Tirana in prima classe"

Dove far funzionare l'intelligenza artificiale?

  • Saas. Se non sappiamo bene a cosa serve, quanto usarla o come usarla. Pagare a consumo è la cosa migliore.
  • Hosting Colab, Runpod. Se vogliamo si può pagare a consumo anche una macchina remota per il tempo di utilizzo
  • Nostro computer o server. A fronte di un investimento di almeno 1000€ possiamo farci un computer in grado di far funzionare in modo sufficiente delle AI tra e più potenti. Questa opzione potrebbe sembrare esagerata, ma è in linea se avete già un computer che fa selfhosting di servizi personali come Nextcloud o altro.

Computer portatile o computer desktop ?

Sebbene ci sia la tentazione di avere l'AI nel computer portatile principale, dal punto di vista economico e funzionale non ha senso

  • A parità di spesa, un computer desktop costa meno di uno portatile che supporta l'AI
  • Il computer portatile è fatto per andare in Standby e non essere usato h24. Su un computer desktop server possiamo accedere alla nostra AI anche via smartphone e via VPN.
  • Personalizzazione hardware: cambiare o aggiungere componenti è più facile sul desktop

Comparazione CPU portatili e desktop di ultima generazione, AMD Ryzen 7 7700 vs AMD RYZEN Z1 EXTREME vs AMD RYZEN 7 7840U Benchmark

Un benchmark rilevante che rappresenta un caso d'uso reale è whisper.cpp ma essendo recente ci sono ancora pochi dati.

Quali requisiti hardware per il computer hardware per far funzionare l'Intelligenza Artificiale?

Senza entrare nei tecnicismi, l'intelligenza artificiale è composta da training e inference.
Training è quando si crea il modello a partire dai dati, Inference è quando di interroga un modello già creato.

Nella fase di traning principalmente si usano potenti schede video NVIDIA che supportano CUDA, in questo caso abbiamo un picco di potenza di calcolo per creare il modello e poi basta, qui il cloud è la soluzione migliore, ma nella fase di inference gli scenari sono più interessanti:

  • GPU: NVIDIA o AMD, di fatto molti computer da video giocare e streaming sono adatti anche per l'intelligenza artificiale
  • NPU / TPU. Neural processing unit / Tensor processing unit. Alcuni progetti di AI supportano dell'hardware dedicato che migliora le prestazioni di certi progetti come Il Google Coral o Apple Neural engine
  • CPU. Molti progetti di intelligenza artificiale funzionano abbastanza bene anche su CPU potenti e con molta ram. Progetti come GGML, ONNX Runtime, OpenVino supportano anche la CPU.

In breve, la scelta CPU AVX2, GPU, NPU è difficile da generalizzare, dipende dal progetto di intelligenza artificiale, dal sistema operativo che abbiamo e dall'uso e dalle aspettative di performance che vogliamo ottenere.

Pytorch 2.0

Il grafico interattivo rende bene l'idea della complessità dello stack per il machine learning

Llama 2 70B q4_K_S GGML

Llama 2 70B è attualmente il più potente modello LLM open source o per meglio dire "disponibile in locale", si trovano molteplici varianti e quantizzazioni, tuttavia che cose da sapere sono: GGML è la versione ottimizzata CPU e GTPQ è la versione ottimizzata per le schede Nvidia.
Rispetto il modello ufficiale, quello quantizzato rimuove dei dati dal modello senza impattare notevolmente sul risultato finale. Tra q2, q3, q4, q5, q6 la q4 è spesso il miglior compromesso tra compressione e qualità (patto che il modello stia tutto in ram).

LLAMA2 30B su AMD Ryzen 7 7700 32GB a 2.5token/s (il computer non è dedicato solo alla AI ma ospita anche altri servizi)

Fate riferimento al benchmark di llama.cpp * e al benchmark whisper.cpp per farvi idea se la vostra CPU è adatta allo scopo. In alternativa Speedometer 2.1 può darvi una vaga idea se la CPU è potente e funziona direttamente nel browser

Stable diffusion e SDXL

Stable Diffusion 1.5 e SDXL funzionano anche su CPU tuttavia SDXL da il meglio di se a 1024x1024, ma su CPU sono riuscito a generare solo immagini a 512x512 pixel.

Il tempo per generare un'immagine con Stable Diffusion 1.5 è 1:05 minuti mentre con SDXL è 1:30 minuti

Stessa immagine generata con ROCm attivo, è stato un casino pazzesco abilitarlo e non funziona con SDXL

Dal sito ufficiale vengono specificati come requisiti

SDXL 0.9 can be run on a modern consumer GPU, needing only a Windows 10 or 11, or Linux operating system, with 16GB RAM, an Nvidia GeForce RTX 20 graphics card (equivalent or higher standard) equipped with a minimum of 8GB of VRAM. Linux users can also use a compatible AMD card with 16GB VRAM.

Se non si riesce a caricare tutto il modello in RAM, la CPU va in IOWAIT e fa swap e le prestazioni calano drasticamente

Conclusione

L'intelligenza artificiale è una realtà, una sorta di nuova calcolatrice o internet che sarà impossibile non utilizzare a meno di non tagliarsi fuori dalla società ma il come e il dove spetta ancora a deciderlo.

Nella Techonsapevole Academy trovi ulteriori approfondimenti sul mondo dell'intelligenza artificiale e selfhosting.