Trasformare vecchi PC in workstation AI: la sfida del clustering con Raspberry Pi

L'idea di rivitalizzare vecchi computer trasformandoli in workstation AI è diventata una passione per molti appassionati di tecnologia. Con le giuste modifiche, è possibile eseguire potenti modelli di linguaggio locale anche su hardware obsoleto, come un PC di dieci anni. Tuttavia, la sfida diventa ancora più interessante quando si cerca di spingere i limiti di dispositivi più piccoli e meno potenti, come i single-board computer (SBC).

Un recente esperimento ha dimostrato che un cluster di Raspberry Pi può gestire modelli di linguaggio di grandi dimensioni, anche se con prestazioni inferiori rispetto a un singolo SBC. Questo progetto, sebbene considerato "maledetto" dal suo autore, ha comunque una certa utilità pratica.

La costruzione del cluster

Il progetto è iniziato con l'obiettivo di creare un cluster utilizzando tre dispositivi SBC. Tuttavia, la maggior parte delle schede ARM erano già impegnate in altri esperimenti, lasciando solo un Raspberry Pi 5 (8GB), un Libre Computer Alta (4GB) e un Le Frite come opzioni. Il Le Frite, tuttavia, è risultato troppo debole per il progetto a causa del suo connettore USB 2.0 e della rete da 100M, che avrebbero creato un collo di bottiglia.

La soluzione finale è stata un cluster a 2 nodi, composto da un Raspberry Pi 5 e un Libre Computer Alta, con un backend RPC su llama.cpp per suddividere i compiti di inferenza tra i due sistemi. Il processo di configurazione si è rivelato più semplice del previsto, anche se ha richiesto di compilare llama.cpp da zero.

Il processo di configurazione

Il primo passo è stato installare un sistema operativo a riga di comando (CLI) su entrambi i dispositivi: una versione più vecchia di Ubuntu per l'Alta e Raspberry Pi OS Lite per il Raspberry Pi. Successivamente, è stato necessario configurare openssh-server e installare i pacchetti necessari tramite il comando sudo apt install -y git build-essential cmake pkg-config.

Dopo aver clonato il repository llama.cpp con git clone https://github.com/ggml-org/llama.cpp.git, è stato creato un nuovo directory chiamato build-rpc e compilato llama.cpp con le capacità RPC utilizzando i seguenti comandi:

  • cmake .. -DGGMLRPC=ON -DCMAKEBUILDTYPE=Release
  • cmake --build . --config Release -j$(nproc)

Per configurare l'Alta SBC come server secondario, è stato eseguito il comando ./bin/rpc-server -H 0.0.0.0 -p 50052 per avviare il server RPC. Successivamente, sono stati spostati alcuni modelli LLMs dal PC principale al nodo Raspberry Pi utilizzando il comando SCP. Infine, è stato eseguito il comando ./bin/llama-server -m /home/ayush/models/Qwen3.5-2B-Q4K_M.gguf --rpc 192.168.0.150:50053 --host 0.0.0.0 --port 8080 per caricare il modello.

Le prestazioni del cluster

Nonostante le aspettative, il cluster ha mostrato prestazioni inferiori rispetto a un singolo SBC. Utilizzando il modello relativamente leggero Gemma 3 4B, ci si aspettava che il cluster performasse meglio rispetto a un Raspberry Pi standalone. Tuttavia, anche con prompt semplici come "Dimmi qualcosa di interessante", il cluster ha avuto difficoltà a raggiungere una velocità di 2,20 token al secondo.

Dopo aver riavviato il Raspberry Pi e eseguito nuovamente il comando llama-server senza la flag --rpc, il motore di inferenza è riuscito a raggiungere una velocità di 4,37 token al secondo, quasi il doppio rispetto alla configurazione del cluster.

Le cause delle prestazioni deludenti

Le prestazioni deludenti del cluster possono essere attribuite a diversi fattori. Innanzitutto, entrambe le SBC hanno una connessione 1GbE, che è relativamente lenta per i compiti di inferenza AI ad alta velocità. Inoltre, a causa della mancanza di SSD nel laboratorio domestico, è stato necessario utilizzare schede microSD, che influenzano negativamente la velocità.

Le operazioni LLM sono anche molto sensibili alla latenza, il che spiega perché il cluster ha performato così male. Nonostante ciò, il progetto non è stato considerato un fallimento, poiché ha dimostrato che il cluster può eseguire modelli più grandi di quelli che un Raspberry Pi standalone potrebbe gestire.

L'utilità del cluster

Anche se le prestazioni del cluster sono state deludenti per i compiti di inferenza, il suo principale obiettivo era quello di eseguire modelli di grandi dimensioni che un Raspberry Pi con solo 8GB di RAM non avrebbe potuto ospitare. Senza la flag RPC, il server llama-server è stato in grado di caricare il modello Qwen 3.5 (9B) con relativa facilità.

Anche se la velocità di generazione dei token era di soli 1,27 token al secondo, il cluster è comunque utilizzabile per compiti automatizzati come la generazione di tag per i segnalibri o la scansione OCR di documenti. Inoltre, il cluster può essere lasciato in funzione tutto il giorno senza preoccuparsi del consumo energetico.

Prospettive future

Nonostante le prestazioni deludenti, l'uso di RPC per il clustering sembra promettente. In futuro, potrebbe essere utile per workstation ospitanti LLM basati su LXC, che dispongono di connessioni NIC a 10G. Questo progetto ha dimostrato che, anche se le prestazioni non sono ottimali, il clustering di SBC può offrire una certa utilità pratica, soprattutto per chi cerca di spingere i limiti del proprio hardware.

Llama.cpp: il framework open-source per l'esecuzione locale di modelli di linguaggio

Llama.cpp è un framework open-source che consente di eseguire modelli di linguaggio di grandi dimensioni localmente su un computer. Questo strumento è diventato popolare tra gli appassionati di tecnologia che cercano di eseguire modelli AI su hardware obsoleto o dispositivi con risorse limitate. Con llama.cpp, è possibile trasformare vecchi PC o SBC in potenti workstation AI, aprendo nuove possibilità per l'elaborazione locale di modelli di linguaggio.

Il mercato degli SBC e le potenzialità del clustering

Il progetto di clustering dimostra come i single-board computer (SBC) come Raspberry Pi e Libre Computer Alta stiano guadagnando popolarità tra gli appassionati di AI. Questi dispositivi, inizialmente progettati per scopi educativi, stanno trovando nuova vita come piattaforme per l'elaborazione locale di modelli di linguaggio. Il mercato degli SBC è in rapida espansione, con nuovi modelli che offrono prestazioni sempre migliori e prezzi accessibili. Questo trend riflette una tendenza più ampia verso la decentralizzazione dell'elaborazione AI, permettendo agli utenti di eseguire modelli complessi senza dipendere da servizi cloud costosi.

Considerazioni sull'efficienza energetica

Uno degli aspetti più interessanti del clustering di SBC è il suo impatto sull'efficienza energetica. A differenza dei server tradizionali o dei PC gaming, questi dispositivi consumano una frazione dell'energia, rendendoli ideali per progetti che richiedono un funzionamento continuo. Secondo uno studio recente, un Raspberry Pi 5 consuma circa 5 watt in condizioni di carico, rispetto ai 200-300 watt di un PC desktop medio. Questo rende il clustering di SBC una soluzione attraente per chi cerca di ridurre il proprio consumo energetico senza sacrificare le capacità computazionali.

Implicazioni per lo sviluppo di applicazioni AI

L'uso di clustering di SBC per l'esecuzione di modelli di linguaggio ha implicazioni significative per lo sviluppo di applicazioni AI. Gli sviluppatori possono ora testare e ottimizzare i propri modelli su hardware con risorse limitate, garantendo che le applicazioni siano efficienti anche su dispositivi meno potenti. Questo approccio è particolarmente utile per lo sviluppo di applicazioni edge computing, dove i dispositivi devono operare in condizioni di risorse limitate e connettività variabile.

Prospettive future per il clustering di SBC

Le prospettive future per il clustering di SBC sono promettenti. Con l'avvento di nuovi standard di connettività come il 5G e l'espansione delle reti mesh, è possibile che i cluster di SBC diventino ancora più efficienti. Inoltre, l'adozione di tecnologie di virtualizzazione come LXC potrebbe consentire una gestione più flessibile delle risorse all'interno di un cluster, migliorando ulteriormente le prestazioni complessive. Questi sviluppi potrebbero rendere il clustering di SBC una soluzione ancora più attraente per una vasta gamma di applicazioni AI.

L'importanza dell'open-source nella comunità AI

Il successo di progetti come llama.cpp sottolinea l'importanza dell'open-source nella comunità AI. Questi strumenti consentono agli utenti di sperimentare e innovare senza barriere economiche o tecnologiche. La comunità open-source sta giocando un ruolo cruciale nel democratizzare l'accesso all'AI, permettendo a individui e piccole organizzazioni di partecipare attivamente allo sviluppo di nuove tecnologie. Questo approccio collaborativo è essenziale per garantire che i benefici dell'AI siano accessibili a tutti.

Considerazioni sulla sicurezza e la privacy

L'esecuzione locale di modelli di linguaggio offre significativi vantaggi in termini di sicurezza e privacy. A differenza dei servizi cloud, dove i dati sensibili possono essere esposti a rischi di violazione, l'elaborazione locale garantisce che le informazioni rimangano sotto il controllo diretto dell'utente. Questo è particolarmente importante per le applicazioni che richiedono la gestione di dati sensibili, come la sanità o la finanza. Tuttavia, è essenziale che gli utenti adottino le migliori pratiche di sicurezza per proteggere i propri cluster da potenziali minacce.

L'impatto ambientale dell'AI

L'industria dell'AI è nota per il suo elevato consumo energetico, con i data center che consumano enormi quantità di elettricità. L'uso di cluster di SBC per l'elaborazione locale di modelli di linguaggio rappresenta un passo verso una AI più sostenibile. Riducendo la dipendenza dai data center centralizzati, è possibile diminuire l'impatto ambientale dell'AI, contribuendo agli obiettivi di sviluppo sostenibile. Questo approccio non solo riduce il consumo energetico, ma promuove anche l'uso di hardware più efficienti e duraturi.

Il ruolo dell'educazione nell'adozione dell'AI

L'adozione diffusa di tecnologie AI come il clustering di SBC richiede un investimento significativo nell'educazione e nella formazione. Molti utenti potrebbero non avere le competenze necessarie per configurare e gestire questi sistemi in modo efficace. Pertanto, è essenziale che le istituzioni educative e le comunità open-source sviluppino risorse e programmi di formazione per aiutare gli utenti a sfruttare appieno queste tecnologie. Questo approccio garantisce che i benefici dell'AI siano accessibili a un pubblico più ampio, promuovendo l'innovazione e la crescita economica.

Il progetto di clustering di SBC per l'esecuzione locale di modelli di linguaggio rappresenta un esempio emblematico di come la tecnologia AI stia evolvendo verso soluzioni più decentrate, efficienti e sostenibili. Nonostante le sfide legate alle prestazioni, l'utilizzo di dispositivi come Raspberry Pi e Libre Computer Alta offre numerose opportunità per sperimentare e innovare. Con l'ulteriore sviluppo di tecnologie di connettività e virtualizzazione, è probabile che i cluster di SBC diventino una soluzione ancora più potente per l'elaborazione AI. L'open-source gioca un ruolo cruciale in questo processo, democratizzando l'accesso all'AI e promuovendo un approccio collaborativo allo sviluppo tecnologico.

Nota Editoriale e Disclaimer

Le guide e i contenuti pubblicati su GoYou sono frutto di attività di ricerca e analisi indipendente, a scopo informativo, educativo e di approfondimento.

GoYou non costituisce una testata giornalistica né un prodotto editoriale ai sensi della Legge n. 62/2001 e non svolge attività di informazione in tempo reale.

Il progetto GoYou non fornisce consulenza professionale, tecnica, legale o finanziaria e declina ogni responsabilità per l’uso improprio delle informazioni pubblicate.

Nel settore Crypto, ogni investimento comporta rischi: si invita il lettore a informarsi sempre in modo autonomo prima di assumere qualsiasi decisione.