Scopri di più su ciò che il RAG Cookbook ha da offrire per approfondire le soluzioni RAG di oggi

Un leadspace ricolorato che utilizza come base il leadspace Watson for Customer Care.
Informazioni generali

I modelli di embedding sono reti neurali basate su transformer che trasformano blocchi di documenti (cioè passaggi di testo) in una rappresentazione numerica o vettoriale. I contenuti con significato o semantica simili saranno mappati su una rappresentazione simile nello spazio latente, come si vede nell'immagine sottostante.

La vettorializzazione del linguaggio consente applicazioni basate su AI, come la "chat con i documenti" o la ricerca semantica, anziché la tradizionale ricerca per parole chiave (lessicale).

Diagramma che illustra il concetto di embedding di argomenti correlati all'interno di uno spazio vettoriale.
Considerazioni

Rapporto tra prestazioni e costi

Il modello di embedding che scegli influenzerà significativamente l'accuratezza del recupero, la latenza e il costo computazionale del tuo sistema RAG. La scelta del modello di embedding sarà in gran parte influenzata dalla sua dimensione, che dipende da due caratteristiche: la dimensione di embedding e il numero di parametri del modello.

Un modello di embedding più grande tipicamente migliora le prestazioni di recupero, ma a costo di latenza, storage e costi computazionali (finanziari) aumentati. Al contrario, un modello di embedding più piccolo di solito offre prestazioni di recupero ridotte ma occupa meno memoria, richiede meno potenza di calcolo ed è più veloce in tempo reale. Scegli un modello di embedding che bilanci i requisiti di prestazione con le risorse disponibili.

Alcuni modelli di embedding sono specifici per linguaggio (ad esempio, modelli di embedding spagnoli costruiti per clienti spagnoli) e specifici per dominio (ad esempio, un modello addestrato sulla terminologia oncologica per abilitare la RAG sui file medici).

Soluzioni IBM

Modelli di embedding disponibili su watsonx

Si consiglia di utilizzare modelli di embedding distribuiti in watsonx: i modelli Slate sviluppati da IBM® o i modelli di terze parti elencati di seguito. Leggi questa documentazione per i dettagli su ciascun modello. Per maggiori informazioni sulle classi di fatturazione, consulta i piani di fatturazione watsonx.

Modelli IBM Slate

Nome del modelloAPI model_idClasse di fatturazioneNumero massimo di token di inputNumero di dimensioniMaggiori informazioni
slate-125m-english-rtrvribm/slate-125m-english-rtrvrClasse C1                  512                768Model card1
slate-30m-english-rtrvribm/slate-30m-english-rtrvriClasse C1                  512                384Model card1

 

slate-125m-english-rtrvr

Il foundation model slate-125m-english-rtrvr è fornito da IBM. Il foundation model slate-125m-english-rtrvr genera embedding per vari input come query, passaggi o documenti. L'obiettivo formativo è massimizzare la somiglianza del coseno tra una domanda e un passaggio. Questo processo produce due embedding, uno che rappresenta la domanda e uno che rappresenta il passaggio, consentendo il confronto dei due attraverso la somiglianza del coseno.

Utilizzo: da due a tre volte più lento, ma con prestazioni leggermente migliori rispetto al modello slate-30m-english-rtrvr. Lingue supportate: inglese

slate-30m-english-rtrvr

Il foundation model slate-30m-english-rtrvr è una versione distillata di slate-125m-english-rtrvr, entrambi forniti da IBM. Il modello di embedding slate-30m-english-rtrvr è addestrato per massimizzare la similarità del coseno tra due input di testo, in modo che gli embedding possano essere valutati in seguito in base alla similarità.

Utilizzo: da due a tre volte più veloce e con punteggi di prestazioni leggermente inferiori rispetto al modello slate-125m-english-rtrvr. Lingue supportate: inglese

Modelli di embedding di terze parti disponibili con watsonx

Nome del modelloAPI model_idFornitoreClasse di fatturazioneNumero massimo di token di inputNumero di dimensioniMaggiori informazioni
all-minilm-l12-v2sentence-transformers/all-minilm-l12-v2Comunità open source di elaborazione del linguaggio naturale (NLP) e computer vision (CV)Classe C1           256           384Model card1
multilingual-e5-largeintfloat/multilingual-e5-largeMicrosoftClasse C1            512           1024Scheda modello, articolo di ricerca
all-minilm-l12-v2

Il modello di embedding all-minilm-l12-v2 è costruito dalla comunità open source di elaborazione del linguaggio naturale (NLP) e computer vision (CV) e fornito da HuggingFace.

Lingue supportate: inglese

multilingual-e5-large

Utilizzo: per casi d'uso in cui si vuole generare embedding di testo per testi in una lingua diversa dall'inglese.

Lingue naturali supportate: fino a 100 lingue. Consulta la scheda modello per i dettagli.

Per maggiori informazioni sui modelli di embedding supportati, consulta la documentazione di watsonx.

Avvio rapido con gli SDK Python per gli embedding watsonx

Installazione libreria Python ibm-watsonx-ai
Installazione pip -U ibm-watsonx-ai
Usa l'API di embedding watsonx e i modelli di embedding disponibili per generare embedding di testo.
from ibm_watsonx_ai.metanames import EmbedTextParamsMetaNames as EmbedParams
from ibm_watsonx_ai.foundation_models.utils.enums import EmbeddingTypes
from ibm_watsonx_ai.foundation_models import Embeddings

# Imposta truncate_input_tokens su un valore uguale o inferiore al numero massimo di token consentiti per il modello di embedding in uso. Se non specifichi questo valore e l'input ha più token di quanti il modello ne possa elaborare, si genera un errore.

embed_params = {
 EmbedParams.TRUNCATE_INPUT_TOKENS: 128,
 EmbedParams.RETURN_OPTIONS: {
 'input_text': True
 }
}

embedding = Embeddings(
 model_id=EmbeddingTypes.IBM_SLATE_30M_ENG,
 credentials=credentials,
 params=embed_params,
 project_id=project_id,
 space_id=None,
 verify=False
)

q = [
 "Un modello di fondazione è un modello di AI generativa su larga scala che può essere adattato a una vasta gamma di compiti a valle.",
 "L'AI generativa è una classe di algoritmi di AI che possono produrre vari tipi di contenuti, inclusi testo, codice sorgente, immagini, audio e dati sintetici."
]

embedding_vectors = embedding.embed_documents(texts=q)

print(embedding_vectors)

Esempio di notebook

Utilizza watsonx Granite Model Series ed embedding, Chroma e LangChain per rispondere alle domande (RAG) e LangChain

Integrazioni

Scopri di più

Ricevi gli ultimi modelli tecnologici, le architetture di soluzioni e le pubblicazioni sull'architettura di IBM.

  1. Vai all'IBM Architecture Center
Collaboratori

Luke Major, Dean Sacoransky

Data di aggiornamento: 15 novembre 2024