Moreno La Quatra · Linux Day Enna

Liberi di usare l'AI

Modelli aperti, dati e AI sul proprio computer

Moreno La Quatra

Università Kore di Enna

Liberi di usare una chat.
Ma anche di scegliere cosa c'è dentro?

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Due richieste quotidiane

Lista della spesa

"Prepara la lista della spesa usando le ricette e quello che ho in dispensa".

Una cena tra amici, senza comprare ciò che abbiamo già.

Traduzione

"Traduci in inglese questo menu per la cena".

Un testo in italiano, una versione in inglese.

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Che cos'è un LLM?

Un Large Language Model è un modello capace di generare testo a partire da un contesto.

Richiesta e contesto→Modello→Nuovo testo

Per interagire con il modello usiamo un'applicazione, per esempio una chat.

L'applicazione prepara il contesto da inviare al modello: la nostra richiesta, eventuali istruzioni, messaggi precedenti e testi o documenti.

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Come funziona?

Il testo viene trattato come token: piccoli pezzi di testo, non necessariamente parole intere.

Ogni nuovo token si aggiunge al contesto e viene usato per generare il successivo.

Primo passaggio

Passaggio successivo

Il modello genera a, che viene aggiunto al testo usato per generare casa

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Training

Training: il modello impara dai dati modificando i propri parametri (pesi).

Confronta il token previsto con quello presente nel testo e usa il confronto per aggiornare i pesi.

Il modello confronta il token previsto con quello nei dati e aggiorna i pesi

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Inferenza

Inferenza: usiamo un modello che ha già completato il training.

Il modello riceve il contesto e usa i pesi per generare il token successivo.

I pesi restano invariati. Il nuovo token si aggiunge al contesto.

Il modello usa contesto e pesi già disponibili per generare il token successivo, senza aggiornare i pesi

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

L'applicazione non è il modello

L'applicazione

È il programma che usiamo per interagire con il modello.

Riceve le nostre richieste, prepara ciò che viene inviato al modello e ci mostra il risultato.

Il modello

È il componente che, dopo il training, viene eseguito per generare la risposta.

Può essere usato da applicazioni diverse, se sono compatibili.

La stessa applicazione può usare modelli diversi.

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna
Un'applicazione può cambiare modello: LLM 1, LLM 2 o LLM 3
Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Il runtime di inferenza

Il runtime di inferenza è il programma che carica i pesi ed esegue il modello.

Riceve il contesto ed esegue i calcoli necessari per generare la risposta.

Come LibreOffice Writer apre un file .odt, un runtime come Ollama permette di usare i pesi di un modello.

Il runtime carica i pesi ed esegue il modello, che riceve il contesto e genera la risposta

Riferimenti: Ollama · llama.cpp · LibreOffice, formato ODT

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Applicazione e runtime

L'applicazione prepara la richiesta; il runtime esegue il modello.

La domanda va dall'utente all'applicazione, richiesta e contesto al runtime; la risposta torna dal runtime all'applicazione e poi all'utente

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Lo schema mostra pesi, calcoli del modello, hardware e token della risposta

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Quali informazioni riceve il modello?

Incolliamo il testo

"Prepara la lista della spesa: [ricette e dispensa]".

Il testo è nella richiesta e diventa parte del contesto.

Indichiamo una cartella

"Leggi i file nella cartella cena/ e prepara la lista della spesa".

Abbiamo indicato dove sono i file, non il loro contenuto.

Come portiamo il contenuto dei file nel contesto del modello?

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Dai file al contesto

"Leggi ricette e dispensa e prepara la lista della spesa".

Indicare cena/ non fornisce al modello il contenuto dei file.

L'applicazione può usare strumenti per leggerli e aggiungere il contenuto al contesto.

La cartella dimostrativa con tre file

Riferimento: Hermes, strumenti

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Gli strumenti

Nel contesto il modello trova la richiesta e i percorsi dei file disponibili.

Chiede all'applicazione di leggerli. L'applicazione attiva lo strumento adatto: lettura di PDF, DOCX o CSV.

Il contenuto estratto, di solito testo, torna nel contesto inviato al modello.

Il modello nel runtime chiede di leggere ricette.docx; l'applicazione attiva lo strumento e aggiunge il testo estratto al contesto inviato nuovamente al modello

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Un agente al lavoro

Per preparare la lista della spesa servono più operazioni, non una sola lettura.

Un agente è un sistema che usa questo ciclo per portare avanti il compito.

Il modello può chiedere un'altra operazione oppure generare la risposta finale, che l'applicazione mostra all'utente.

Il modello richiede un'azione, l'applicazione esegue lo strumento e aggiunge il risultato al contesto: il ciclo può ripetersi oppure la risposta finale torna dal modello all'applicazione e poi all'utente

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

I componenti insieme

L'utente invia la domanda all'applicazione e riceve la risposta; l'applicazione prepara il contesto, attiva gli strumenti e chiama il runtime, che esegue il modello sull'hardware

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Quando usiamo una chat online

Quando scriviamo a ChatGPT o Gemini, usiamo una chat nel browser.

La chat invia richiesta e contesto ai server dove il runtime esegue il modello.

Il modello non gira sul nostro computer.

La chat nel browser invia richiesta e contesto al runtime sui server del fornitore e riceve la risposta

Riceviamo la risposta, non i pesi né tutti i dettagli del modello.

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Un modello chiuso

In questo caso, il modello proprietario viene eseguito sui server del fornitore.

  • Inviamo richiesta e contesto, riceviamo risposte.
  • Non possiamo eseguirlo sul nostro computer.

I pesi non pubblicati restano presso il fornitore e vengono usati dal suo runtime per eseguire il modello

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Modelli con pesi scaricabili

Con i modelli open weights possiamo scaricare una copia dei pesi.

Possiamo usare un runtime compatibile sul nostro computer, se ha risorse sufficienti.

Un esempio: Qwen3.5-9B.

I pesi pubblicati di Qwen3.5-9B possono essere scaricati sul nostro computer e caricati da un runtime compatibile per eseguire il modello

Possiamo scaricare i pesi. La licenza stabilisce come possiamo usarli.

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Che cosa possiamo fare con questi pesi?

Abbiamo una copia dei pesi. Possiamo usarli, modificarli e condividere una versione modificata?

La licenza indica quali usi sono consentiti e a quali condizioni.

Una copia dei pesi porta a verificare nella licenza le condizioni per usare, modificare e condividere

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Dove leggiamo le condizioni?

Nella model card di Qwen3.5-9B troviamo License: apache-2.0.

Screenshot autentico della scheda Qwen3.5-9B con il collegamento alla licenza Apache-2.0

La licenza chiarisce i permessi. Per studiare il modello servono anche i materiali giusti.

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Open weights e open source AI

Open weights: i pesi sono disponibili per eseguire il modello.

Nel riferimento Open Source AI di OSI, servono anche codice e informazioni su dati e training.

Materiali e condizioni devono permettere di usare, studiare, modificare e condividere il sistema.

Il confronto distingue la disponibilità dei pesi dai materiali e dalle libertà richiesti per un sistema AI aperto secondo OSI

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Olmo 3

Olmo 3 pubblica materiali per studiare anche come si è svolto il training.

Per usare un modello resta poi una scelta pratica: dove eseguirlo.

Olmo 3 pubblica pesi, codice e configurazioni, dati e documentazione come materiali distinti

Fonti: Olmo 3 · OLMo-core · Dolma 3 Pool

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Dove passano i file della cena?

Torniamo a ricette e dispensa: il loro contenuto entra nel contesto.

Con un runtime remoto, quel contesto lascia il computer. Con un runtime locale, l'inferenza avviene sul computer.

Lo stesso contenuto dei file della cena viene inviato a un runtime remoto oppure rimane nel computer durante l'inferenza locale; la risposta torna sempre all'applicazione

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

In remoto, affidiamo i dati al fornitore

Il fornitore riceve il contesto, che può contenere anche dati personali estratti dai file.

Oltre a generare la risposta:

  • Conserva questi dati? Per quanto tempo?
  • Li usa per il training di altri modelli?

Dipende da servizio, piano e impostazioni: dobbiamo verificarlo prima di inviare i dati.

Il testo dei file entra nell'applicazione sul PC; il contesto attraversa il confine e raggiunge il runtime del fornitore. Due diramazioni tratteggiate chiedono se i dati ricevuti vengono salvati o usati per training futuro

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

In locale, teniamo i dati sul nostro PC

Con i pesi scaricabili, possiamo eseguire il modello sul nostro computer.

File, contesto e risposte restano nel PC. Decidiamo noi che cosa conservare e cancellare.

Per lavorare senza inviare dati all'esterno, anche applicazione e strumenti devono usare solo risorse locali.

Gli stessi file, applicazione e runtime della slide precedente sono ora dentro un unico recinto chiuso: il nostro PC. Il contesto raggiunge il modello e l'eventuale cronologia rimane al suo interno, senza collegamenti a server esterni

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Demo Time!

Tux corre verso il computer, pronto per la demo

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Cosa serve sul nostro computer?

Modello già addestrato.

Programmi compatibili, memoria libera e tempi accettabili sul nostro compito.

Il file occupa spazio sul disco. Durante l'uso serve memoria anche per contesto e lavoro del runtime.

Il file dei pesi sul disco viene caricato in memoria, dove servono risorse anche per contesto e lavoro del runtime

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Applicazioni e agenti open source

Scegliamo l'applicazione con cui dare istruzioni e lavorare sui file.

Progetto Per cosa usarlo Licenza
Hermes Agent Conversazioni, file e strumenti. Nella demo. MIT
Pi Un agente da terminale minimale ed estensibile. MIT
Codex CLI Lavorare sul codice: lettura, modifiche e test. Apache-2.0

Questi programmi usano un modello tramite un runtime: non sono il modello.

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Runtime di inferenza open source

Il runtime carica i pesi ed esegue il modello.

Progetto Per cosa usarlo Licenza
Ollama Gestire ed eseguire modelli. Nella demo. MIT
llama.cpp Eseguire modelli su hardware diversi. MIT
vLLM Eseguire modelli e servire più richieste contemporanee. Apache-2.0
DwarfStar / ds4 Eseguire modelli selezionati su hardware supportato. MIT
Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

La configurazione della demo

Hermes Agent gestisce la conversazione e gli strumenti per i file.

Ollama carica ed esegue il modello localmente.

Usiamo la combinazione già provata per questa demo.

Sul computer della demo Hermes Agent prepara il contesto, chiama Ollama con il modello e gestisce gli strumenti sui file della cena

Riferimenti: Hermes Agent · Strumenti · Ollama

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Tux presenta il computer: passiamo alla demo dal vivo in Hermes

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Quindi quando torno a casa?

  1. Parti dal tuo hardware. Scegli un modello compatibile con memoria, GPU e sistema operativo.
  2. Scegli l'app per il tuo lavoro. Attività generali e file: Hermes. Codice: Pi / Codex CLI.
  3. Scegli un runtime compatibile:
    • Uso personale: Ollama / llama.cpp.
    • Più utenti o un servizio aziendale: vLLM.
    • Ottimizzazioni per modelli recenti selezionati: ds4, su hardware supportato.
Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Slide, risorse e guide

Moreno La Quatra Moreno La Quatra LinuxEnna
Moreno La Quatra · Linux Day Enna

Grazie!

Tux confuso davanti al computer, circondato da punti interrogativi

Moreno La Quatra Moreno La Quatra LinuxEnna