Eseguire un modello LLM in locale con Ollama

LM Studio è un sistema molto valido per fare delle prove sul proprio PC, ma, per poter realizzare dei prototipi più complessi o delle piccole applicazioni, allora conviene valutare l’utilizzo di altri sistemi: Ollama è uno di questi.

Descrizione e funzionalità di Ollama

Ollama è un motore multipiattaforma che permette l’esecuzione di un LLM (Large Language Model) su un server, un container o una macchina virtuale.

Come LM Studio, permette di cercare dei modelli, di scaricarli (nel solito formatoGGUF), di mandarli in esecuzione e di interrogarli.

A differenza di LM Studio, non ha una interfaccia grafica per l’interrogazione diretta del modello, ma è possibile installare delle interfacce web a parte come OpenWeb UI.

Il modello è interrogabile a linea di comando, con una libreria Python e usando una API HTTP.

Installazione e configurazione

Per installare Ollama su Windows basta scaricare l’eseguibile da sito ufficiale [1] e mandarlo in esecuzione, anche se l’interfaccia di installazione si chiude senza pravviso non significa che il programma non sia installato correttamente. Per verificarlo basta aprire una shell ed eseguire il comando: ollama –version.

Dal sito web di Ollama [1] o dalla sua pagina su GitHub [2] è possibile vedere l’elenco dei modelli disponibili e compatibili.

Con la seguente successione di comandi è possibile scaricare ed eseguire un modello:

ollama --version
ollama --help
ollama pull mistral:7b     # Download del modello.
ollama list                # Elenco dei modelli scaricati.
ollama show mistral:7b     # Dettagli di un modello.

# Alternativa 1: Esecuzione di un modello e apertura della shell di interrogazione:
ollama run mistral:7b 

# Alternativa 2: Esempio di interrogazione:
ollama run mistral:7b "Cosa sono le macchie solari?"

Su Windows il lancio dei comandi di Ollama provoca l’esecuzione di un programma che inizia a girare in background (servizio) e che risponde a tutte le richieste inviate a un modello, su Linux il comando per avviare il demone è il seguente:

ollama serve

Questo comando si può usare anche su Windows se per qualche motivo il servizio non è partito in automatico.

In ogni caso è il servizio (demone) di Ollama che risponde a tutte le richieste inviate o da linea di comando, o via HTTP o tramite la libreria Python.

Modalità di interazione con il modello

Riassumendo è possibile interagire con il demone Ollama in tre modalità:

  1. A linea di comando.
  2. Tramite una API HTTP.
  3. Usando la libreria ollama di Python.

Per utilizzare Ollama in una applicazione il metodo preferibile è il 3 (libreria Python), ma si può anche usare qualsiasi altro linguaggio di programmazione ricorrendo a una qualsiasi libreria per le chiamare HTTP (metodo 2).

Alcuni esempi di richieste HTTP:

curl http://localhost:11434/api/version
curl http://localhost:11434/api/tags
curl http://localhost:11434/api/generate -H "Content-Type: application/json" -d '{"model": "mistral","prompt": "Spiegami cos è Docker", "stream": false}'

Un esempio di codice Python:

# Stampa dei modelli disponibili.
models = ollama.list()["models"]
print("📦 Modelli disponibili:")
for model in models:
  print(model['model'])

# Esecuzione di una interrogazione su un modello preciso.
response = ollama.chat(
  model='mistral:7b',
  messages=[
  {
    'role': 'user',
    'content': 'Perché il cielo è blu?',
  },
])

print("\n💬 Risposta del modello:")
print(response.message.content)

Conclusioni

Mentre LM Studio è la soluzione preferibile per fare dei test sul proprio computer, Ollama può essere usato per dei prototipi e per delle semplici applicazioni.

Per applicazioni commerciali di ampia portata si possono valutare altre opzioni: vLLM, llama.cpp, Text Generation Interface (TGI), FastChat, OpenLLM, DeepSpeed-MII, Candle.

Possibili post di approfondimento da realizzare

Mi piacerebbe, nelle prossime settimane, approfondire questi argomenti:

  • Una interfaccia grafica per Ollama: OpenWeb UI.
  • Quale motore di LLM usare in applicazioni commerciali?
  • Fine-tuning di un modello vs sistemi RAG.
  • Database Vettoriali e ChromaDB.
  • Uso della libreria LlamaIndex per sistemi RAG.

Stay tuned !!

 

Galleria di immagini

Fonti e riferimenti

  1. Sito ufficiale di Ollama.
  2. Ollama su GitHub, repository con istruzioni ed alenco dei modelli disponibili.
  3. What is Ollama? Running Local LLMs Made Simple, IBM Technology.
  4. Run AI Models Locally with Ollama: Fast & Simple Deployment, IBM Technology.
  5. Analysis of Ollama Architecture and Conversation Processing Flow for AI LLM Tool di Rifewang su Medium.
  6. Learn Ollama in 15 Minutes – Run LLM Models Locally for FREE di Tech with Tim su Youtube.
  7. Ollama: Come eseguire un LLM in locale sul tuo PC di Simore Rizzo su Youtube.
  8. Sito ufficiale di OpenWeb UI.
  9. Retrieval Augmented Generation (RAG): Come utilizzare dati di dominio specializzati con gli LLM, su questo blog.
  10. Come eseguire un modello LLM in locale con LM Studio, su questo blog.
  11. Interrogare Bard / PaLM di Google con Python, su questo blog.
  12. Interrogare ChatGPT di OpenAI con Python, su questo blog.
3 giorni ago

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *