Con il suo ChatGPT, OpenAI ha conquistato il mondo continuando a sfornare modelli sempre più potenti e con nuove funzionalità. Ma proprio la velocità del cambiamento dei modelli disponibili è uno dei freni all’adozione dei modelli linguistici di intelligenza artificiale da parte delle aziende, che potrebbero preferire l’installazione di modelli come GPT3 o 4, ma su server locali, senza dipendere da un servizio esterno poco controllabile. E possibilmente usando LLM open source, che possono essere personalizzati e governati autonomamente.

I progetti software aziendali hanno tempi di implementazione molto lunghi e, interfacciandosi con altri software, richiedono stabilità e controllo sui dati. In quest’anno abbiamo visto servizi di assistente AI che hanno ampliato le funzionalità con aggiornamenti tecnologici, ma al contempo hanno introdotto filtri o limiti per andare incontro a nuove leggi o anche a procedimenti legali.

Non è un caso che, dopo la causa intentata dal New York Times a OpenAI, ChatGPT abbia ridotto enormemente la lunghezza massima delle sintesi di articoli esistenti. Potrebbe anche capitare che un servizio venga interrotto in un paese, come è accaduto sempre a ChatGPT lo scorso marzo proprio in Italia.

Oltre a ciò, le aziende hanno legittime preoccupazioni sulla riservatezza e governance dei dati che i dipendenti inseriscono nei modelli di IA, e sui costi che i servizi con pagamento a consumo possono generare nel tempo.

La buona notizia appunto è che è possibile installare un LLM su macchine locali, dalla piccola workstation usata per fare esperimenti al cluster di server nel data center per un servizio di produzione. Installando un modello linguistico di IA in locale si è sicuri di lavorare su un modello con funzionalità stabili, potendo decidere se e quando applicare un aggiornamento, e avere la tranquillità che i dati riservati non lasceranno mai i sistemi aziendali.

Si può insomma avere un servizio simile a ChatGPT o alle API di OpenAI su proprie macchine, completamente personalizzati per le proprie esigenze, che usano i dati aziendali senza che questi lascino i confini dell’azienda, e senza pagare un canone.

In questo articolo approfondiremo i diversi motivi per cui installare un LLM in locale, vedremo quali sono i requisiti hardware e software per l’installazione di un modello linguistico, e presenteremo i più interessanti LLM open source disponibili al momento, tra cui Llama-2, Mistral, Falcon, Bloom e GPT-NeoX. Inoltre daremo alcuni suggerimenti su come muovere i primi passi utilizzando per esempio il catalogo di modelli, data set e prototipi di applicazioni messo a disposizione da Hugging Face.

Perché installare un LLM in locale?

L’installazione di un Large Language Model (LLM) in un ambiente locale offre significativi benefici, tra cui il controllo totale sulla privacy e la sicurezza dei dati, un aspetto cruciale per le aziende che gestiscono informazioni sensibili.

Questa configurazione elimina la dipendenza dalla connettività Internet, riducendo notevolmente i tempi di risposta e potenziando l’efficienza operativa: un vantaggio inestimabile in un mercato in rapida evoluzione dove la velocità di elaborazione delle informazioni è chiave.

Un LLM locale offre inoltre l’opportunità di personalizzazione in base alle specifiche esigenze aziendali. Questa flessibilità lo rende un potente strumento per vari scopi, come l’analisi del linguaggio naturale, che può essere utilizzata per ottenere approfondimenti da dati aziendali non strutturati, la generazione di contenuti dove il modello può creare automaticamente testi di alta qualità, e il supporto decisionale, fornendo previsioni basate sui dati e assistenza nelle decisioni aziendali.

Il tutto basandosi su una conoscenza che non è ricavata da dati di addestramento generici, ma su dati aziendali certi e aggiornati, che il modello può consultare in tempo reale per ottenere quella che viene chiamata Retrieval Augmented Generation (RAG), cioè generazione potenziata dal recupero di informazioni.

Oltre a questi vantaggi, un LLM locale consente anche una maggiore integrazione con sistemi e processi interni. Le aziende possono incorporarlo nei loro software e flussi di lavoro esistenti, ottimizzando le operazioni e migliorando l’interazione con i clienti attraverso chatbot intelligenti e assistenti virtuali personalizzati. La capacità di un LLM di apprendere e adattarsi alle specificità di un settore o di un’azienda è un enorme vantaggio competitivo, consentendo alle organizzazioni di distinguersi nel loro campo.

Un altro aspetto importante è la riduzione dei costi a lungo termine. Sebbene l’hardware, l’installazione iniziale e la configurazione di un LLM locale possano richiedere un investimento iniziale, nel tempo il costo totale può essere significativamente inferiore rispetto a servizi basati su cloud, soprattutto quando si considerano i costi associati alla larghezza di banda e al traffico dati.

Infine, l’uso di un LLM in ambiente locale consente di aderire a rigorosi standard normativi e di conformità. In particolare, in settori regolamentati come la finanza e la sanità, dove la gestione dei dati è sottoposta a strette linee guida, avere il pieno controllo sui modelli di IA e su dove vengono memorizzati e trattati i dati è fondamentale.

Requisiti minimi hardware per installare un LLM in locale

L’installazione di un Large Language Model richiede una configurazione hardware di alto livello per garantire prestazioni ottimali. È cruciale avere pc o workstation con processori ad alte prestazioni e soprattutto una o più schede GPU con una abbondante quantità di memoria video dedicata.

I complessi calcoli richiesti dai modelli di intelligenza artificiale vengono infatti gestiti al meglio solo dall’elaborazione in parallelo, che solo le GPU riescono a compiere, grazie alla presenza di decine di core di elaborazione e al canale di comunicazione velocissimo con la Video Ram integrata nelle schede, che deve essere abbondante.

La quantità di VRAM varia in base alle dimensioni del modello scelto (il numero di parametri). Per fare un esempio, per Llama-2 con 7 miliardi di parametri può bastare una GPU con 6 GB di VRAM, mentre per la versione da 70 miliardi è raccomandato avere due GPU per un totale di 48 GB.

Sebbene sia possibile usare GPU di ogni tipo, anche quelle incluse nei processori Apple Silicon che equipaggiano i Mac M1, M2 e M3, è innegabile che la maggior parte dei progetti sia oggi portato avanti su GPU Nvidia, per le quali c’è un ottimo supporto software e molta documentazione.

Anche la memoria RAM deve essere adeguata a supportare l’elaborazione intensiva dei dati, mentre uno spazio di archiviazione sufficientemente ampio e veloce è essenziale, soprattutto se, oltre all’utilizzo del modello così com’è (calcoli di inferenza), interessano anche operazioni di addestramento su propri set di dati, fine tuning del modello o RAG.

Ciascuna di queste attività comporta requisiti hardware differenti. Una configurazione hardware risicata potrebbe risultare troppo lenta anche per la semplice esecuzione inferenziale (per esempio, potrebbe impiegare diversi secondi solo per produrre una singola parola); una che produca risultati soddisfacenti nell’inferenza, potrebbe impiegare settimane di calcoli per l’addestramento o fine tuning.

Un metodo per ridurre i requisiti hardware di un LLM è ridurre la quantizzazione, ossia il numero di bit di precisione dei valori numerici. Questo riduce le dimensioni in memoria del modello, permettendo un’esecuzione più veloce con meno VRAM, ma ovviamente a danno della precisione dei risultati. Di molti modelli sono disponibili versioni preaddestrate con quantizzazioni differenti, e un’attenta analisi del livello qualitativo dei risultati può aiutare a selezionare il giusto compromesso tra prestazioni e precisione.

Se per partire – magari con un progetto pilota – una workstation con una o due GPU recenti può essere sufficiente, per la gestione di grandi quantità di dati o l’erogazione di servizi a bassa latenza, alta disponibilità e per molti utenti contemporanei, servono server dedicati e ottimizzati per i modelli IA da ospitare in data center.

Negli ultimi mesi i principali vendor hanno messo a punto soluzioni, generalmente realizzate in partnership con Nvidia, per avere infrastrutture ottimizzate e pronte all’uso per soluzioni di IA generativa. Trovate qui alcuni esempi di sistemi per la IA generativa prodotti da HPE, Dell Technologies e Lenovo.

Rimane in ogni caso possibile evitare del tutto l’acquisto di hardware, creando un’infrastruttura in cloud che possa ospitare il modello mantenendo il completo controllo sulla configurazione e la governance dei dati, se le policy consentono l’archiviazione in cloud. I diversi cloud provider dispongono di configurazioni con GPU adatte all’addestramento o utilizzo dei modelli.

Requisiti e configurazione software per la IA generativa

A livello software, un sistema operativo aggiornato è indispensabile per garantire compatibilità e sicurezza, ma gli strumenti specifici per la gestione e l’ottimizzazione del modello sono altrettanto importanti. Innanzi tutto è necessario avere driver aggiornati per le GPU, adattando la configurazione ai requisiti del modello LLM, in base alla documentazione che solitamente accompagna il codice.

Framework di machine learning come TensorFlow o PyTorch offrono poi le basi per costruire, allenare e fare il fine tuning dei modelli, mentre software dedicati all’analisi dei dati permettono di interpretare efficacemente i risultati.

La configurazione dell’ambiente di rete è un altro aspetto da non trascurare. Una connessione affidabile e veloce è essenziale per il trasferimento di dati e per l’accesso a risorse online come database e storage, che possono essere utilizzati per migliorare le capacità e la flessibilità del modello LLM.

Inoltre è importante considerare gli aspetti di sicurezza e privacy, soprattutto quando si lavora con dati sensibili. L’implementazione di soluzioni di sicurezza robuste e protocolli di privacy aiuta a proteggere i dati durante la fase di elaborazione e di archiviazione.

Hugging Face: un alleato degli sviluppatori IA

Hugging Face si è affermata come una piattaforma, un repository e una comunità di sviluppatori completamente orientati all’intelligenza artificiale open source, grazie alla sua vasta gamma di modelli pre-addestrati, strumenti di sviluppo e una comunità globale per lo scambio di conoscenze. La libreria software Transformers è fondamentale per chi lavora con Large Language Models (LLM) in locale, offrendo risorse essenziali per il Natural Language Processing (NLP) e il Natural Language Understanding (NLU).

Schermata del sito Hugging Face con le principali sezioni: Models, Spaces e Dataset

Hugging Face mette a disposizione modelli IA, dataset, librerie software e istruzioni per sperimentare con l’intelligenza artificiale, e permette anche di acquistare risorse cloud precongfigurate per installare i modelli disponibili.

La piattaforma è intuitiva, con documentazione e tutorial che facilitano l’uso dei modelli anche per chi non ha esperienza di machine learning. La attiva comunità di Hugging Face promuove la collaborazione e la condivisione di idee, accelerando l’innovazione in IA e democratizzando l’accesso alle tecnologie avanzate di linguaggio. Un altro punto di forza di Hugging Face è il suo impegno nell’etica e nella trasparenza, promuovendo un uso responsabile dell’IA e fornendo strumenti per mitigare i bias nei modelli di linguaggio.

I principali LLM open source e i loro requisiti hardware

Llama-2, Mistral, Falcon, Bloom, GPT-NeoX e GPT-J sono alcuni dei modelli di linguaggio più avanzati disponibili. Questi strumenti offrono ampie possibilità nel campo dell’elaborazione del linguaggio e aprono nuovi orizzonti per sviluppatori, ricercatori e aziende.

Elenchiamo di seguito i modelli più potenti e interessanti disponibili al momento, fornendo per ciascuno le caratteristiche e un riferimento a tutorial e guide per l’installazione e configurazione in locale. Molti dei modelli sono disponibili in versioni diverse, in base al numero dei parametri, espresso in miliardi (Billion). Possono inoltre esistere versioni specializzate o fork del modello in cui è stata fatta una messa a punto per utilizzi specifici (è il bello dell’open source).

Le configurazioni hardware indicate sono da ritenersi come requisito minimo, e potrebbero richiedere potenziamenti anche rilevanti in base al tipo di progetto che si intende realizzare.

In base alle diverse licenze software scelte per il rilascio, alcuni modelli hanno delle restrizioni all’utilizzo, che tendenzialmente riguardano però implementazioni molto grandi (le aziende di IA, in pratica, cercano di evitare che possano essere utilizzate da concorrenti diretti dei propri servizi).

Llama-2 (Meta)

Logo di Meta e del modello linguistico di intelligenza artificiale LLM Llama 2

Llama-2 è prodotto da Meta (l’azienda di Facebook, Instagram e WhatsApp) e si distingue per la sua capacità di elaborare e comprendere il linguaggio umano con una precisione eccezionale. Questo modello è ideale per applicazioni che richiedono un’analisi del linguaggio naturale avanzata, dalla generazione di testo alla comprensione del contesto.

È disponibile anche una versione specifica per la generazione di codice di programmazione, Code Llama, e una versione Llama Guard con protezioni rafforzate per l’interazione con il pubblico.

Versioni e requisiti minimi: 7B (GPU con 10 GB di VRAM), 13B (Nvidia RTX 3090 o RTX 4090 con 24 GB VRAM), 70B (Nvidia A 100 con 80 GB VRAM). Sono disponibili versioni specializzate Code Llama (7B, 13B e 34B) e Llama Guard (7B).

Link al download: https://llama.meta.com/llama-downloads

Guida all’installazione: https://ai.meta.com/llama/get-started/

Licenza e limitazioni: Llama-2 è distribuito con un accordo di licenza personalizzato (Llama Community License) che è necessario sottoscrivere prima di scaricare i file che che pone alcune limitazioni all’uso. In particolare, se la propria azienda ha più di 700 milioni di utenti mensili è necessario chiedere un’autorizzazione specifica, rilasciata a discrezione di Meta. Bisogna anche accettare la policy di utilizzo, che in generale vieta utilizzi illegali, immorali e pericolosi del modello.

Mistral (Mistral.ai)

Logo di Mistral AI. Una M stilizzata in pixel art con colori dal rosso al giallo, e la scritta Mistral AI

Mistral è il più importante progetto europeo in questo campo e si sta affermando come un modello IA versatile, noto per la sua efficienza nell’elaborazione del linguaggio. È particolarmente adatto per sistemi di traduzione automatica e applicazioni che richiedono tempi di risposta rapidi e precisione nella comprensione.

Sebbene corrisponda alla più piccola versione di Llama 2, il modello Mistral da 7 miliardi di parametri produce risultati sorprendentemente buoni. Secondo alcuni benchmark diffusi, batte la versione 13B di Llama 2 e in molti casi si avvicina a Llama 2 70B. Può quindi essere una scelta interessante per progetti che hanno limiti importanti alle risorse hardware disponibili.

Mistral AI ha anche prodotto un modello, chiamato Mixtral, in cui 8 modelli da 7B specializzati in ambiti differenti concorrono alla creazione della risposta.

Versioni e requisiti minimi: 7B (24 GB di VRAM), Mixtral 8x7B (2 GPU per un totale di 64 GB di VRAM)

Link al download: https://mistral.ai/product/

Guida all’installazione: https://docs.mistral.ai/#where-to-start

Licenza e limitazioni: Mistral è distribuito con licenza open source Apache 2.0, che permette un ampio utilizzo del modello, la modifica e la ridistribuzione.

Falcon LLM (Technology Innovation Institute)

Logo di Falcom LLM, modello linquistico di intelligenza artificiale. Rappresenta un falco stilizzato in wireframe

Falcon si posiziona come un modello di punta per l’elaborazione del linguaggio in tempo reale. Le dimensioni e prestazioni sono paragonabili a quelle di GPT 3.5 o PaLM 2, che Google utilizza per l’assistente Bard. La sua architettura ottimizzata lo rende una scelta eccellente per applicazioni di chatbot, assistenti vocali e altre applicazioni di interazione immediata. Il tutto, però, richiede risorse di calcolo molto più grandi rispetto ad altri modelli presentati in questo articolo. La versione da 180 miliardi di parametri richiede per esempio 8 GPU Nvidia A100.

Versioni e requisiti minimi: 1.3B (n.d), 7.5B (16 GB VRAM), 40B (90 GB VRAM), 180B (640 GB VRAM)

Link al download: https://falconllm.tii.ae/falcon-models.html

Guida all’installazione: https://huggingface.co/datasets/tiiuae/falcon-refinedweb

Licenza e limitazioni: Falcon è distribuito sotto una versione modificata della licenza Apache 2.0. Questa licenza impone alcune restrizioni sull’uso del modello pensate per limitare la concorrenza diretta. In particolare, ci sono limitazioni riguardo a comportamenti specifici e agli ambienti di hosting su cui può essere installato.

Bloom (Big Science Collaborative Initiative)

Logo di Bloom, Large Language Model di BigScience Initiative. Due fiori sono usati al posto delle due O nel nome.

Bloom è rinomato per la sua vasta conoscenza e capacità di generare testi complessi, grazie anche alla sua taglia enorme: 176 miliardi di parametri, la stessa dimensione di GPT 3.5 di OpenAI. Questo modello è ideale per la creazione di contenuti, la generazione di risposte dettagliate e l’assistenza nella ricerca. È stato inoltre progettato cercando di soddisfare standard etici molto elevati e con il contributo di scienziati da tutto il mondo, che hanno collaborato al progetto capitanato da Hugging Face e finanziato dal governo francese.

Essendo stato prodotto a scopi principalmente di ricerca di frontiera con pochi compromessi, Bloom potrebbe non essere il modello più indicato per un progetto aziendale. Oltre alle dimensioni molto grandi in termini di numero di parametri, questi sono anche stati impostati con una quantizzazione molto alta (16 bit in virgola mobile), e richiede quindi risorse hardware ingenti. Microsoft ne ha realizzato una versione con precisione ridotta a numeri interi a 4 bit, ma che comunque richiede 8 GPU Nvidia A100 per un totale di 320 GB di VRAM.

Versioni e requisiti minimi: 176B (8 GPU con 640 GB di VRAM per nodo).

Link al download: https://www.bloomai.eu

Guida all’installazione: https://docs.www.bloomai.eu/bloomai/guides

Licenza e limitazioni: Big Science ha creato una specifica licenza chiamata RAIL (Responsible Artificial Intelligence License) che presenta limitazioni specifiche riguardanti l’ambito e il contesto del suo utilizzo, tenendo in considerazione elementi di etica e possibili rischi per l’uomo.

GPT-NeoX (EleutherAI)

Logo EleutherAI

GPT-NeoX è una delle varianti realizzate a partire del celebre modello GPT 3, quando OpenAI rilasciava ancora i modelli in modalità open source. Sebbene l’impianto abbia ormai qualche anno, sono adatti a una vasta gamma di applicazioni, dalla generazione automatica di testi all’assistenza clienti, offrendo risultati di buona qualità e la flessibilità di una licenza d’uso piuttosto permissiva.

L’azienda promotrice, Eleuther.ai, è più vicina al mondo della ricerca scientifica e della comunità open source che a quello delle corporation. Una delle cose per cui è nota è la compilazione del dataset ThePile, che è molto vasto ma che include contenuti protetti da diritto d’autore provenienti da archivi pirata e testi provenienti dal web senza alcun filtro o selezione.

Versioni e requisiti: GPT-NeoX 20B (una o più GPU con 48 GB di VRAM totali)

Link al download: https://github.com/EleutherAI/gpt-neox

Guida all’installazione: https://huggingface.co/docs/transformers/model_doc/gpt_neox

Licenza e limitazioni: GPT-NeoX è distribuito con licenza Apache 2.0. Ribadiamo che GPT-NeoX è ottimizzato in particolare per la lingua inglese e che, tra i diversi modelli, è probabilmente quello per cui sono state inserite meno salvaguardie verso la generazione di contenuti potenzialmente dannosi, immorali, sconvenienti o protetti da diritto d’autore. Un suo eventuale utilizzo per erogare servizi al pubblico è quindi piuttosto problematico.

Simone Bergamini ha collaborato a questo articolo

(Immagine di apertura generata con l’intelligenza artificiale)