In questo tutorial scoprirai come applicare il modello multimodale Pixtral 12B di Mistral AI ora disponibile su watsonx.ai per attività multimodali come l'aggiunta delle didascalie e la risposta visiva a domande.
Nel settembre 2024, Mistral AI ha lanciato Pixtral 12B, un modello linguistico di grandi dimensioni (LLM) open-source con licenza Apache 2.0.
Con 12 miliardi di parametri, il modello multimodale è costruito sul Nemo 12B LLM di Mistral AI. Pixtral 12B ha due componenti: il codificatore di visione per tokenizzare le immagini e un decodificatore a trasformatore multimodale per prevedere il seguente token di testo data una sequenza di testo e immagini. Il codificatore di visione ha 400 milioni di parametri e supporta dimensioni di immagine variabili.
Il modello eccelle in molteplici casi d'uso, inclusa la comprensione di grafici, diagrammi, grafici e documenti ad alta risoluzione, che possono essere utilizzati per compiti di risposta a domande documentali, seguito di istruzioni o retrieval-augmented generation (RAG) (RAG) compiti. Inoltre, Pixtral 12B ha una finestra contestuale da 128.000 token, che consente il consumo simultaneo di più immagini.
In termini di benchmark, Pixtral 12B supera vari modelli, tra cui Qwen2-VL, Gemini-1.5 Flash 8B e Claude-3 Haiku. Per alcuni benchmark, tra cui DocVQA (ANLS) e VQAv2 (VQA Match), il modello supera GPT-4o di OpenAI e Claude-3.5 Sonnet.
Oltre a poter eseguire Pixtral 12B su watsonx.ai, il modello è disponibile anche tramite Hugging Face, su Le Chat, il chatbot conversazionale di Mistral, o con endpoint API tramite La Plateforme di Mistral.
Consulta questo video di IBM Tecnologia su YouTube che ti guida attraverso le seguenti istruzioni di configurazione nei passaggi 1 e 2.
Sebbene sia possibile scegliere tra diversi strumenti, questo tutorial è più adatto a un Jupyter Notebook. I Jupyter Notebook sono ampiamente utilizzati nella data science per combinare codice con varie fonti di dati come testo, immagini e visualizzazioni dei dati.
Questo tutorial ti guida come configurare un account IBM per utilizzare un Jupyter Notebook.
Accedi a watsonx.ai usando il tuo account IBM Cloud. Ricordache Pixtral 12B è attualmente disponibile solo nelle regioni IBM Europe di Francoforte e Londra.
Crea un progetto watsonx.ai.
Puoi ottenere l'ID del tuo progetto dall'interno del tuo progetto. Clicca sulla scheda Gestisci. Quindi, copia l'ID del progetto dalla sezione Dettagli della pagina Generali. Per questo tutorial ti serve questo ID.
Crea un Jupyter Notebook.
Questo passaggio aprirà un ambiente notebook in cui potrai copiare il codice da questo tutorial per implementare autonomamente la regolazione del prompt. In alternativa, puoi scaricare questo notebook sul tuo sistema locale e caricarlo nel tuo progetto watsonx.ai come asset. Questo Jupyter Notebook insieme ai set di dati utilizzati sono disponibili su GitHub.
Per evitare conflitti di dipendenza tra pacchetti Python, consigliamo di impostare un ambiente virtuale.
Abbiamo bisogno di alcune librerie e moduli per questo tutorial. Assicurati di importare le seguenti e, se non sono installate, puoi risolvere il problema con una rapida installazione pip.
Inserisci i WATSONX_EU_APIKEY e WATSONX_EU_PROJECT_ID che hai creato nei passaggi 1 e 2 eseguendo la cella successiva. Imposteremo anche l'URL che funge da endpoint dell'API.
Possiamo utilizzare la classe Credenziali per incapsulare le credenziali passate.
In questo tutorial lavoreremo con diverse immagini per applicazioni AI multimodali, come la didascalia delle immagini e il rilevamento degli oggetti. Puoi accedere alle immagini che utilizzeremo tramite i seguenti URL. Memorizziamo questi URL in un elenco per codificarli in modo iterativo.
Per comprendere meglio i nostri dati di input, mostriamo le immagini.
Output
url_image_0
url_image_1
url_image_2
url_image_3
Per codificare queste immagini in modo digeribile per l'LLM, codificheremo le immagini in byte che poi decoderemo in rappresentazione UTF-8.
Ora che le nostre immagini possono essere passate al LLM, configuriamo una funzione per le chiamate API Watsonx. La funzione augment_api_request_body prende la query utente e l'immagine come parametri e completa il corpo della richiesta API. Utilizzeremo questa funzione in ogni iterazione.
Istanziamo l'interfaccia del modello usando la classe ModelInference. In questo tutorial useremo il modello mistralai/pixtral-12b.
Ora possiamo scorrere le nostre immagini per vedere le descrizioni di testo prodotte dal modello in risposta alla domanda "Cosa sta succedendo in questa immagine?"
Output:
L'immagine raffigura un campo di fiori colorato in piena fioritura sotto un cielo azzurro e limpido, con il sole che splende luminoso, creando una scena serena e pittoresca.
Nell'immagine, una persona è seduta a un tavolo e utilizza un laptop tenendo in mano una carta di credito. Ci sono delle mele in una ciotola sul tavolo accanto al laptop.
Una persona è in piedi accanto a un'auto coperta di neve, e tiene un ombrello rosso per proteggersi dalla neve che cade.
L'immagine rappresenta un workflow per elaborare e memorizzare dati, probabilmente per il machine learning o l'analisi dei dati. Inizia con il caricamento dei dati sorgente (come documenti HTML o XML), la trasformazione dei dati in un formato adatto, l'embedding in vettori numerici, l'archiviazione di questi vettori in un database vettoriale e infine il recupero dei dati quando necessario.
Il modello Pixtral 12B è riuscito ad aggiungere la didascalia di ogni immagine con un dettaglio significativo.
Ora che abbiamo dimostrato la capacità del modello di eseguire didascalie delle immagini nel passaggio precedente, poniamo al modello alcune domande che richiedono il rilevamento degli oggetti. Per quanto riguarda la seconda immagine, quella che raffigura la donna che fa acquisti online, chiederemo al modello: "Cosa ha la donna in mano?"
Output: La donna tiene una carta di credito in mano.
Il modello ha identificato correttamente l'oggetto nella mano della donna. Ora, chiediamo informazioni sul problema nell'immagine dell'auto coperta di neve.
Output: L'auto probabilmente è bloccata nella neve, il che rende difficile o impossibile spostarla.
Questa risposta evidenzia il valore dell'AI multimodale in ambiti come l'assicurazione. Il modello è riuscito a rilevare il problema dell'auto bloccata nella neve. Potrebbe essere uno strumento estremamente efficace per migliorare i tempi di elaborazione delle richieste assicurative.
Poi chiediamo al modello quali sono i passaggi dell'immagine del diagramma di flusso.
Output: Il diagramma illustra un workflow che prevede diversi passaggi: "Carica", "Trasforma", "Incorpora", "Memorizza" e "Recupera." Questa sequenza probabilmente rappresenta un workflow per elaborare e memorizzare dati, trasformandoli in vettori incorporati per un storage e un recupero efficienti.
Fantastico! Il modello era in grado di individuare oggetti all'interno delle immagini a seguito delle richieste degli utenti. Ti invitiamo a provare altre query per dimostrare ulteriormente le prestazioni del modello.
In questo tutorial, hai usato il modello Pixtral 12B per eseguire operazioni multimodali, inclusi i sottotitoli delle immagini e la risposta visiva a domande.
Per provare altri modelli multimodali, dai un'occhiata a questo tutorial sul modello multimodale Llama 3.2 di Meta su watsonx.ai.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.