DevTurtle logo DevTurtle

LLAVA ed Ollama per trasformare immagini in testo con l’AI

LLAVA (Large Language and Vision Assistant) è un LLM che combina le capacità avanzate di elaborazione del linguaggio naturale con la comprensione visiva. In questo articolo vedremo come usare LLAVA con Ollama per trasformare immagini in testo. Esploreremo quindi le potenzialità e le possibili applicazioni di questo modello.

Cos’è LLAVA?

La storia di LLAVA inizia con lo sviluppo dei modelli di linguaggio di grandi dimensioni (LLM) che hanno dimostrato una capacità sorprendente di generare testo coerente e contestualmente rilevante. Tuttavia, la necessità di integrare la comprensione del linguaggio con la percezione visiva ha portato alla creazione di modelli come LLAVA. Questa capacità di acquisire informazioni anche dagli elementi multimediali permette al modello di fornire risposte più complete e contestuali.

Per fare qualche esempio semplice di cosa possa fare LLAVA, immaginiamo ad esempio di voler descrivere il contenuto di un’immagine o identificare il tono emotivo di una voce.

Usare LLAVA con Ollama

Abbiamo già visto come usare Ollama per eseguire in locale modelli LLM. La procedura da seguire con LLAVA sarà la medesima e come prima cosa è necessario scaricare il modello che ha un peso complessivo di circa 4,7 GB. Il comando da eseguire è il seguente:

ollama pull llava

Una volta scaricato LLAVA, è possibile eseguirlo con:

ollama run llava

A questo punto siamo pronti a fare il nostro test e a tal proposito useremo l’immagine JPEG riportata di seguito in cui è rappresentato un topo che mangia del formaggio.

Mouse eating cheese
Topo che mangia formaggio

Per testare l’LLM gli forniremo un input molto semplice in cui gli chiederemo di descrivere il contenuto dell’immagine e gli daremo il path del file system dove abbiamo salvato il file:

Can you tell me what the following image depicts? <path>/mouse eating cheese.jpg

Noteremo che appena inviato il comando Ollama effettuerà l’upload dell’immagine e la farà processare al modello. La risposta sarà di tipo testuale e conterrà una descrizione come la seguente:

The image shows a cute little mouse with big eyes, standing on its hind legs and holding a wedge of cheese with its front paws. The mouse is next to another wedge of cheese, which it appears to be eating or examining. There's a block of wood behind the mouse, possibly serving as a surface for the cheese. The overall scene looks like a playful or whimsical setup, likely staged for humorous effect. 

Usare LLAVA tramite Ollama REST API

Come abbiamo già visto nel nostro blog, Ollama dispone anche di REST API che permettono di integrare gli LLM con applicazioni esterne. Per passare in input i file multimediali è necessario valorizzare il parametro “images” con un’array di immagini convertite nel formato base64:

curl --location 'http://localhost:11434/api/chat' \
--header 'Content-Type: application/json' \
--data '{
  "model": "llava",
  "messages": [
    {
      "role": "user",
      "content": "Can you tell me what the following image depicts?",
      "images": ["<base64>"]
    }
  ],
  "stream": false
}'

Come usare la capacità visiva degli LLM?

La capacità visiva dei modelli LLM apre la strada ad un numero enorme di potenziali applicazioni. Alcuni semplici esempi potrebbero essere i seguenti:

  • Conversione di immagini in una descrizione testo.
  • Classificazione delle immagini in base al contenuto;
  • Algoritmi di ricerca multimediale.

La possibilità di convertire l’immagine in testo è particolarmente interessante perché consente di standardizzare le fonti di informazioni. Ad esempio è possibile trasformare un documento che contiene file multimediali in un plain text che poi può essere elaborato mediante altri modelli o tramite architetture RAG complesse.

LLAVA offre una combinazione potente di capacità linguistiche e visive che apre nuove frontiere in vari settori. Dagli assistenti sanitari e educativi alle soluzioni di supporto tecnico e sicurezza, le applicazioni pratiche di questo LLM migliorano l’efficienza e l’efficacia delle operazioni quotidiane.

Man mano che la tecnologia continua a evolversi, possiamo aspettarci di vedere un numero crescente di utilizzi innovativi che sfruttano appieno le potenzialità dell’AI.