Quando selezioni un fornitore di embedding, ci sono diversi fattori che puoi considerare a seconda delle tue esigenze e preferenze:
Anthropic non offre un proprio modello di embedding. Un fornitore di embedding che ha un'ampia varietà di opzioni e capacità che comprendono tutte le considerazioni precedenti è Voyage AI.
Voyage AI realizza modelli di embedding all'avanguardia e offre modelli personalizzati per domini industriali specifici come finanza e sanità, o modelli su misura sottoposti a fine-tuning per singoli clienti.
Il resto di questa guida riguarda Voyage AI, ma dovresti valutare una varietà di fornitori di embedding per trovare quello più adatto al tuo caso d'uso specifico.
Voyage raccomanda di utilizzare i seguenti modelli di embedding di testo:
Voyage 4 (ultima generazione)
| Modello | Lunghezza del contesto | Dimensione dell'embedding | Descrizione |
|---|---|---|---|
voyage-4-large | 32.000 | 1024 (predefinita), 256, 512, 2048 | La migliore qualità di recupero generica e multilingue. Consulta il post del blog su Voyage 4 per i dettagli. |
voyage-4 | 32.000 | 1024 (predefinita), 256, 512, 2048 | Ottimizzato per la qualità di recupero generica e multilingue. Bilancia qualità ed efficienza. Consulta il post del blog su Voyage 4 per i dettagli. |
voyage-4-lite | 32.000 | 1024 (predefinita), 256, 512, 2048 | Ottimizzato per latenza e costo. Consulta il post del blog su Voyage 4 per i dettagli. |
voyage-4-nano | 32.000 | 1024 (predefinita), 256, 512, 2048 | Modello open-weight (licenza Apache 2.0) disponibile su Hugging Face. Consulta il post del blog su Voyage 4 per i dettagli. |
Generazione precedente
| Modello | Lunghezza del contesto | Dimensione dell'embedding | Descrizione |
|---|---|---|---|
voyage-3-large | 32.000 | 1024 (predefinita), 256, 512, 2048 | La migliore qualità di recupero generica e multilingue. Consulta il post del blog su voyage-3-large per i dettagli. |
voyage-3.5 | 32.000 | 1024 (predefinita), 256, 512, 2048 | Ottimizzato per la qualità di recupero generica e multilingue. Consulta il post del blog su voyage-3.5 per i dettagli. |
voyage-3.5-lite | 32.000 | 1024 (predefinita), 256, 512, 2048 | Ottimizzato per latenza e costo. Consulta il post del blog su voyage-3.5 per i dettagli. |
voyage-code-3 | 32.000 | 1024 (predefinita), 256, 512, 2048 | Ottimizzato per il recupero di codice. Consulta il post del blog su voyage-code-3 per i dettagli. |
voyage-finance-2 | 32.000 | 1024 | Ottimizzato per il recupero e RAG in ambito finanziario. Consulta il post del blog su voyage-finance-2 per i dettagli. |
voyage-law-2 | 16.000 | 1024 | Ottimizzato per il recupero e RAG in ambito legale e con contesto lungo. Prestazioni migliorate anche in tutti i domini. Consulta il post del blog su voyage-law-2 per i dettagli. |
Inoltre, Voyage raccomanda i seguenti modelli di embedding multimodali:
| Modello | Lunghezza del contesto | Dimensione dell'embedding | Descrizione |
|---|---|---|---|
voyage-multimodal-3.5 | 32.000 | 1024 (predefinita), 256, 512, 2048 | Ricco modello di embedding multimodale che può vettorizzare testo, immagini e video intercalati. Include il supporto video come primo modello di embedding video di livello produttivo. Consulta il post del blog su voyage-multimodal-3.5 per i dettagli. |
voyage-multimodal-3 | 32.000 | 1024 | Ricco modello di embedding multimodale che può vettorizzare testo intercalato e immagini ricche di contenuto, come screenshot di PDF, diapositive, tabelle, figure e altro. Consulta il post del blog su voyage-multimodal-3 per i dettagli. |
I seguenti modelli di embedding di chunk contestualizzati producono vettori a livello di chunk che catturano il contesto completo del documento senza aumento manuale dei metadati. Chiama questi modelli con contextualized_embed() invece di embed():
| Modello | Lunghezza del contesto | Dimensione dell'embedding | Descrizione |
|---|---|---|---|
voyage-context-4 | 120.000 | 1024 (predefinita), 256, 512, 2048 | Embedding di chunk contestualizzati ottimizzati per la qualità di recupero generica e multilingue. Consulta il post del blog su voyage-context-4 per i dettagli. |
voyage-context-3 | 120.000 | 1024 (predefinita), 256, 512, 2048 | Embedding di chunk contestualizzati ottimizzati per la qualità di recupero generica e multilingue. Consulta il post del blog su voyage-context-3 per i dettagli. |
Voyage AI offre anche reranker, che prendono una query e un elenco di documenti e li restituiscono classificati per rilevanza rispetto alla query. Chiama questi modelli con rerank():
| Modello | Lunghezza del contesto | Descrizione |
|---|---|---|
rerank-2.5 | 32.000 | Massima accuratezza. Raccomandato per la maggior parte delle applicazioni. Consulta il post del blog su rerank-2.5 per i dettagli. |
rerank-2.5-lite | 32.000 | Ottimizzato per latenza e costo. Consulta il post del blog su rerank-2.5 per i dettagli. |
Hai bisogno di aiuto per decidere quale modello di embedding di testo utilizzare? Consulta le FAQ di Voyage AI.
Per accedere agli embedding di Voyage:
export VOYAGE_API_KEY="<your secret key>"Puoi ottenere gli embedding utilizzando il pacchetto Python ufficiale voyageai o richieste HTTP, come descritto nelle sezioni seguenti.
Installa il pacchetto voyageai utilizzando il seguente comando:
pip install -U voyageaiQuindi, puoi creare un oggetto client e iniziare a usarlo per generare gli embedding dei tuoi testi:
import voyageai
vo = voyageai.Client()
# Questo userà automaticamente la variabile d'ambiente VOYAGE_API_KEY.
# In alternativa, puoi usare vo = voyageai.Client(api_key="<your secret key>")
texts = ["Sample text 1", "Sample text 2"]
result = vo.embed(texts, model="voyage-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])result.embeddings è un elenco di due vettori di embedding, ciascuno contenente 1024 numeri in virgola mobile. Dopo aver eseguito il codice precedente, i due embedding vengono stampati sullo schermo:
[-0.013131560757756233, 0.019828535616397858, ...] # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding for "Sample text 2"Quando crei gli embedding, puoi specificare alcuni altri argomenti alla funzione embed().
Per maggiori informazioni sul pacchetto Python di Voyage, consulta la documentazione del pacchetto Python di Voyage.
Puoi anche ottenere embedding effettuando richieste all'API HTTP di Voyage. Ad esempio, puoi inviare una richiesta HTTP tramite il comando curl in un terminale:
curl https://api.voyageai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VOYAGE_API_KEY" \
-d '{
"input": ["Sample text 1", "Sample text 2"],
"model": "voyage-4"
}'La risposta che otterresti è un oggetto JSON contenente gli embedding e l'utilizzo dei token:
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
"index": 1
}
],
"model": "voyage-4",
"usage": {
"total_tokens": 10
}
}Per maggiori informazioni sull'API HTTP di Voyage, consulta la documentazione dell'API HTTP di Voyage.
Gli embedding di Voyage sono disponibili su AWS Marketplace. Le istruzioni per accedere a Voyage su AWS sono disponibili nella documentazione di Voyage su AWS Marketplace.
Il seguente breve esempio mostra come utilizzare gli embedding.
Supponiamo che tu abbia un piccolo corpus di sei documenti da cui recuperare
documents = [
"The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
"Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
"20th-century innovations, from radios to smartphones, centered on electronic advancements.",
"Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
"Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.",
"Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature.",
]Per prima cosa, usa Voyage per convertire ogni documento in un vettore di embedding.
import voyageai
vo = voyageai.Client()
# Incorpora i documenti
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddingsGli embedding ti consentono di effettuare ricerca / recupero semantico nello spazio vettoriale. Data una query di esempio,
query = "When is Apple's conference call scheduled?"Successivamente, convertila in un embedding ed esegui una ricerca del vicino più prossimo per trovare il documento più rilevante in base alla distanza nello spazio degli embedding.
import numpy as np
# Genera l'embedding della query
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]
# Calcola la similarità
# Gli embedding di Voyage sono normalizzati a lunghezza 1, quindi il prodotto scalare
# e la similarità del coseno coincidono.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Nota che input_type="document" e input_type="query" sono utilizzati rispettivamente per generare l'embedding del documento e della query. Ulteriori specifiche sono disponibili nella sezione Libreria Python di Voyage.
L'output è il quinto documento, che è effettivamente il più rilevante per la query:
Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.Se stai cercando un insieme dettagliato di ricette su come fare RAG con gli embedding, inclusi i database vettoriali, consulta la ricetta RAG.
Visita la pagina dei prezzi di Voyage per i dettagli sui prezzi più aggiornati.
Was this page helpful?