Salta al contenuto principale

Orvieto Linux User Group | Promozione software libero a Orvieto

IA locale su Linux: cos’è, come funziona e perché può essere interessante

Negli ultimi anni l’intelligenza artificiale è entrata rapidamente nella nostra vita quotidiana. Per utilizzarla, nella maggior parte dei casi, siamo però abituati a collegarci a un servizio online: scriviamo una domanda, inviamo il testo a un server remoto e riceviamo la risposta.

Ma è possibile fare qualcosa di diverso.

Possiamo eseguire un modello di intelligenza artificiale direttamente sul nostro computer Linux, senza dover necessariamente inviare ogni richiesta a un servizio remoto.

È quello che normalmente viene indicato come IA locale.

Il concetto è interessante non soltanto per chi vuole sperimentare con l’intelligenza artificiale. Può diventare uno strumento concreto per chi utilizza Linux, soprattutto quando entrano in gioco privacy, automazione, sviluppo software, gestione di documentazione o attività da svolgere anche senza una connessione Internet.

In questa guida vediamo quindi cosa significa realmente eseguire un’IA in locale, cosa serve e quali sono i vantaggi e i limiti di questo approccio.

Che cosa significa “IA locale”?

Il concetto è più semplice di quanto possa sembrare.

Quando utilizziamo un servizio di IA online, il nostro computer funziona principalmente come interfaccia:

Computer Linux
     │
     │ richiesta
     ▼
Server remoto
     │
     │ elaborazione
     ▼
Risposta
     │
     ▼
Computer Linux

Il modello di IA viene eseguito sui server del fornitore.

Con l’IA locale la situazione cambia:

Computer Linux
     │
     ▼
Modello IA
     │
     ▼
Elaborazione locale
     │
     ▼
Risposta

Il modello viene scaricato sul computer e l’elaborazione, cioè l’inferenza, viene effettuata dalla macchina stessa.

Questo non significa necessariamente che il computer debba essere completamente scollegato da Internet. Internet può essere utilizzato, per esempio, per scaricare il modello, aggiornarlo o installare gli strumenti necessari.

Una volta disponibile localmente, però, l’elaborazione può avvenire senza dover inviare il contenuto della conversazione a un server remoto.

È proprio questo uno degli aspetti più interessanti del modello locale.

Ma che cos’è, concretamente, un modello di IA?

Quando parliamo di ChatGPT, Llama, Qwen, Mistral e altri sistemi simili, spesso utilizziamo il termine “IA” in maniera generica.

In realtà, alla base troviamo un modello, cioè un insieme di parametri ottenuti attraverso un processo di addestramento.

Nel caso dei grandi modelli linguistici, o LLM (Large Language Model), il modello è stato addestrato su grandi quantità di dati per imparare a elaborare e generare testo.

Quando gli facciamo una domanda, il computer non sta semplicemente cercando una frase già presente in un enorme database.

Il modello esegue un processo matematico complesso per determinare quale sequenza di token produrre in risposta all’input ricevuto.

Per l’utente il risultato è molto più semplice:

Domanda
   ↓
Modello
   ↓
Elaborazione
   ↓
Risposta

Tutta la complessità che si trova nel mezzo è proprio ciò che richiede risorse hardware.

Perché serve un computer abbastanza potente?

Qui arriviamo a uno degli aspetti più importanti dell’IA locale.

Un modello può essere eseguito sul nostro computer, ma questo non significa che qualsiasi modello possa essere eseguito comodamente su qualsiasi computer.

Il primo elemento da considerare è la memoria.

Un modello di grandi dimensioni può richiedere parecchia RAM e, quando viene utilizzata una GPU, anche una quantità significativa di VRAM.

La GPU è particolarmente interessante perché è progettata per eseguire moltissime operazioni matematiche in parallelo, caratteristica molto utile per i carichi di lavoro dell’intelligenza artificiale.

Questo non significa però che senza una GPU dedicata sia impossibile utilizzare l’IA locale.

Un modello può essere eseguito anche utilizzando la CPU, ma le prestazioni possono essere sensibilmente diverse.

Possiamo quindi avere una situazione simile:

CPU
 ↓
IA locale
 ↓
funziona, ma può essere più lenta

oppure:

GPU
 ↓
IA locale
 ↓
maggiore parallelismo
 ↓
prestazioni generalmente migliori

Il risultato dipende comunque dal modello utilizzato, dalla sua dimensione, dalla quantità di memoria disponibile e dal software.

Per questo, quando si parla di IA locale, non esiste un requisito hardware universale.

Modelli grandi e modelli più piccoli

Uno degli aspetti interessanti dell’ecosistema locale è la possibilità di scegliere modelli di dimensioni differenti.

Un modello più grande può avere capacità maggiori in determinati compiti, ma richiede generalmente più risorse.

Un modello più piccolo può invece essere molto più semplice da eseguire su un normale computer domestico.

Possiamo quindi pensare al modello come a un compromesso:

Modello più grande
      ↓
più risorse
      ↓
potenzialmente maggiore capacità

Modello più piccolo
      ↓
meno risorse
      ↓
più facile da eseguire localmente

Esistono inoltre tecniche di quantizzazione che permettono di rappresentare i parametri del modello utilizzando una precisione inferiore, riducendo le risorse necessarie per l’esecuzione.

Anche in questo caso, però, non bisogna pensare che “più piccolo” significhi automaticamente “peggiore”. Dipende dal compito che vogliamo svolgere.

Per riassumere un documento, aiutare con uno script Bash o rispondere a domande relativamente semplici, un modello locale compatto può essere più che sufficiente.

Il vantaggio più evidente: la privacy

Uno dei motivi per cui l’IA locale può essere interessante è la gestione dei dati.

Immaginiamo di voler analizzare un file di configurazione, un log di sistema o del codice sorgente.

Con un servizio remoto, dobbiamo considerare cosa succede ai dati che inviamo e quali condizioni vengono applicate dal servizio.

Con un modello eseguito localmente, il contenuto può rimanere sulla nostra macchina.

Questo è uno dei vantaggi evidenziati anche da strumenti come Ollama: quando un modello viene eseguito localmente, i prompt e i dati elaborati localmente rimangono sul dispositivo invece di essere inviati a un servizio cloud.

Naturalmente bisogna essere precisi: “locale” non significa automaticamente “privato in ogni circostanza”.

Dipende dal software che utilizziamo e soprattutto da come lo configuriamo.

Se utilizziamo un modello locale ma un’applicazione che invia comunque dati a servizi esterni, non siamo più di fronte a un’elaborazione completamente locale.

È quindi importante distinguere il modello dall’intera applicazione che lo utilizza.

L’IA locale può funzionare senza Internet?

Sì, ed è uno dei suoi aspetti più interessanti.

Una volta scaricati il software e il modello necessari, l’inferenza può essere effettuata localmente anche senza una connessione Internet.

Questo può essere utile, per esempio, su un notebook durante un viaggio, su un server domestico o in ambienti nei quali non vogliamo o non possiamo inviare dati verso l’esterno.

Anche qui, però, dobbiamo distinguere tra esecuzione locale e funzionalità online.

Un modello locale non conosce automaticamente ciò che è accaduto ieri e non può consultare Internet a meno che non gli venga fornito un meccanismo specifico per farlo.

Un modello locale è quindi molto utile per elaborare ciò che gli mettiamo a disposizione, ma non deve essere confuso con un motore di ricerca aggiornato in tempo reale.

E Linux che ruolo ha?

Linux è particolarmente interessante in questo scenario perché offre un ambiente molto aperto e flessibile.

Possiamo utilizzare strumenti da terminale, servizi, container, API e librerie software per costruire soluzioni personalizzate.

Un programma come Ollama, per esempio, può essere installato direttamente su Linux con uno script ufficiale e mette a disposizione sia un’interfaccia da terminale sia un’API attraverso la quale altre applicazioni possono interagire con i modelli.

Questo apre una possibilità molto interessante per il nostro percorso su OrvietoLinux.

L’IA locale non deve necessariamente essere vista come una chat sul desktop.

Può diventare un servizio Linux con cui altri programmi comunicano.

Ed è qui che iniziano a incontrarsi le diverse branche che stiamo sviluppando.

Possiamo avere:

Linux
 │
 ├── Docker
 │
 ├── Bash
 │
 ├── Python
 │
 ├── Networking
 │
 └── IA locale

e successivamente collegarle tra loro.

Uno script Bash potrebbe interrogare un servizio IA. Python potrebbe utilizzare una API locale. Un container Docker potrebbe eseguire un componente dell’infrastruttura.

Questa è una delle ragioni per cui abbiamo scelto di inserire l’IA locale nel percorso editoriale di OrvietoLinux.

Non bisogna però aspettarsi miracoli

L’IA locale ha anche dei limiti.

Il primo è proprio l’hardware.

Un computer poco potente può eseguire alcuni modelli, ma le prestazioni potrebbero non essere sufficienti per un utilizzo piacevole.

Il secondo è rappresentato dalle dimensioni dei modelli.

Un modello molto grande può richiedere risorse che un normale PC domestico non possiede.

Il terzo riguarda la qualità delle risposte.

Locale non significa automaticamente migliore.

Un modello più piccolo eseguito sul nostro computer può essere meno capace di un modello molto più grande disponibile su un’infrastruttura cloud.

Per questo la domanda corretta non è:

“L’IA locale è migliore dell’IA online?”

La domanda corretta è:

“Per quale attività mi conviene utilizzare un modello locale?”

Per alcune attività la risposta potrebbe essere “molto”.

Per altre, un servizio cloud potrebbe rimanere più adatto.

Perché può essere interessante per chi usa Linux?

A questo punto possiamo vedere l’IA locale non come una tecnologia distante dal mondo Linux, ma come un altro servizio che possiamo installare, configurare e utilizzare.

Possiamo usarla per sperimentare, studiare, assistere lo sviluppo software, analizzare documentazione, lavorare con testi o costruire piccoli strumenti di automazione.

E soprattutto possiamo iniziare con qualcosa di molto semplice.

Non è necessario costruire immediatamente un server AI con più GPU.

Un normale PC Linux può essere sufficiente per iniziare a capire come funziona il meccanismo e sperimentare con modelli adatti all’hardware disponibile.

Nel prossimo articolo dedicato all’IA locale faremo proprio questo passo: passeremo dalla teoria alla pratica e vedremo come eseguire un modello di IA locale su Linux utilizzando Ollama.

L’obiettivo non sarà soltanto installare un programma, ma capire cosa stiamo installando, dove viene eseguito il modello e come possiamo interagire con esso.

In sintesi

L’IA locale significa, in sostanza, eseguire il modello direttamente sulla propria macchina invece di delegare l’elaborazione a un servizio remoto.

I principali vantaggi sono:

  • maggiore controllo sull’ambiente di esecuzione;
  • possibilità di lavorare anche senza connessione Internet;
  • maggiore controllo sui dati che rimangono localmente;
  • possibilità di integrare il modello con strumenti e servizi Linux;
  • grande libertà di sperimentazione.

Ma esistono anche dei compromessi:

  • serve hardware adeguato al modello scelto;
  • i modelli più grandi possono richiedere molta RAM o VRAM;
  • le prestazioni possono essere inferiori rispetto a infrastrutture cloud molto potenti;
  • non tutti i modelli locali hanno le stesse capacità.

La cosa più importante, però, è che l’IA locale non è necessariamente un’alternativa assoluta al cloud.

Può essere semplicemente un altro strumento nella nostra cassetta degli attrezzi Linux.

E, come spesso accade nel mondo Linux, il bello comincia quando iniziamo a capire come funziona e cosa possiamo costruirci sopra.

LICENZA E CONDIZIONI D’USO

Questo How-to è rilasciato sotto licenza Creative Commons Attribution-NonCommercial 3.0 Italy. 

CONTATTI DELL’AUTORE

Marco Ciammella marco@orvietolinux.it

Orvieto Linux User Group info@orvietolinux.it