Ollama è una delle soluzioni per far girare un Large Language Model (in generale, un esempio di LLM è GPT usato da ChatGPT), installandolo in locale quindi sul proprio PC.
Dal sito ufficiale ollama.com vediamo la lista dei modelli disponibili da scaricare.
Come installare Ollama
Ci sono più strade, dal sito ufficiale possiamo scaricare l'eseguibile per Windows, macOS oppure nel caso di Linux, scriviamo nel terminale:
curl -fsSL https://ollama.com/install.sh | sh
(scarica e installa lo script)
- poi il comando
whereis ollama
dovrebbe mostrarci un output del tipo: ollama: /usr/local/bin/ollama /usr/local/lib/ollama /usr/share/ollama
- il comando
ollama help
mostra le opzioni disponibili; ollama run mistral
(o in alternativa, separatamente lanciamo prima ollama pull mistral
) ad esempio installa un modello, in questo caso Mistral 7B da 4.1 GB (vedi anche Mistral AI - Le Chat), che è modello che ho scelto e riporto come esempio
- una volta installato,
ollama run mistral
lancia il modello, con il quale possiamo interagire (scrivere il nostro input) da riga di comando; eventualmente si può anche usare il modello in altro modo, tramite codice Python o implementazione di varie API
ollama list
mostra la lista dei modelli attualmente installati
Eseguire Ollama: come lanciare in locale il proprio chatbot
Ecco che ad esempio, avendo lanciato il comando ollama run mistral
, prima lo installiamo e poi eseguiamo questo modello. È un modello relativamente leggero (4.1 GB in totale, 7B parametri, per capirci GPT-4 ha circa 1760 miliardi di parametri, estremamente più ricco e accurato ma anche lato efficienza, molto più pesante). Tuttavia il "leggero" è relativo, poiché appena caricato in memoria, in totale per l'utilizzo circa 5 GB aggiuntivi vengono spostati nella RAM e, se il computer ha grafica integrata, viene usata la CPU al posto della GPU e risulta meno efficiente per questi compiti, il sistema è abbastanza lento e quindi non ottimizzato.
Ollama: esempio di utilizzo chatbot in locale
Come esempio di utilizzo, quindi tramite il modello Mistral 7B, ho scritto in lingua inglese (interagire con un chatbot in lingua inglese offre in genere maggiore accuratezza, per modelli di medio-piccole dimensioni sicuramente è preferibile questa strada). La mia domanda tratta un argomento complesso di matematica, analisi numerica: << tell me an example of mimetic finite difference methods, in numerical analysis".
La risposta è molto interessante (curioso riportare anche la simbologia all'interno del terminale 😅). Dopo una prima introduzione teorica, offre una formula di esempio con la spiegazione dei vari termini. Risposta accurata ad una domanda complessa, per un modello tutto sommato "light", direi risultato più che buono!
Ecco uno screenshot della risposta del chatbot e infine anche l'uso complessivo delle risorse, tramite Htop.