Quando selezioni un provider di embedding, ci sono diversi fattori che puoi considerare in base alle tue esigenze e preferenze:
Anthropic non offre un proprio modello di embedding. Un provider di embedding che offre un'ampia varietà di opzioni e funzionalità che comprendono tutte le considerazioni sopra elencate è Voyage AI.
Voyage AI realizza modelli di embedding all'avanguardia e offre modelli personalizzati per domini industriali specifici come finanza e sanità, oppure modelli sottoposti a "fine-tuning" (affinamento) su misura per singoli clienti.
Il resto di questa guida riguarda Voyage AI, ma dovresti valutare diversi fornitori di embedding per trovare quello più adatto al tuo caso d'uso specifico.
Voyage consiglia 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 (predefinito), 256, 512, 2048 | La migliore qualità di recupero generico e multilingue. Consulta il post del blog per i dettagli. |
voyage-4 | 32.000 | 1024 (predefinito), 256, 512, 2048 | Ottimizzato per la qualità di recupero generico e multilingue. Bilancia qualità ed efficienza. Consulta il post del blog per i dettagli. |
voyage-4-lite | 32.000 | 1024 (predefinito), 256, 512, 2048 | Ottimizzato per latenza e costi. Consulta il post del blog per i dettagli. |
voyage-4-nano | 32.000 | 1024 (predefinito), 256, 512, 2048 | Modello open-weight (licenza Apache 2.0) disponibile su Hugging Face. Consulta il post del blog per i dettagli. |
Generazione precedente
| Modello | Lunghezza del contesto | Dimensione dell'embedding | Descrizione |
|---|---|---|---|
voyage-3-large | 32.000 | 1024 (predefinito), 256, 512, 2048 | La migliore qualità di recupero generico e multilingue. Consulta il post del blog per i dettagli. |
voyage-3.5 | 32.000 | 1024 (predefinito), 256, 512, 2048 | Ottimizzato per la qualità di recupero generico e multilingue. Consulta il post del blog per i dettagli. |
voyage-3.5-lite | 32.000 | 1024 (predefinito), 256, 512, 2048 | Ottimizzato per latenza e costi. Consulta il post del blog per i dettagli. |
voyage-code-3 | 32.000 | 1024 (predefinito), 256, 512, 2048 | Ottimizzato per il recupero di codice. Consulta il post del blog per i dettagli. |
voyage-finance-2 | 32.000 | 1024 | Ottimizzato per il recupero e RAG in ambito finanziario. Consulta il post del blog 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 per i dettagli. |
Inoltre, sono consigliati i seguenti modelli di embedding multimodali:
| Modello | Lunghezza del contesto | Dimensione dell'embedding | Descrizione |
|---|---|---|---|
voyage-multimodal-3.5 | 32.000 | 1024 (predefinito), 256, 512, 2048 | Modello di embedding multimodale avanzato in grado di vettorizzare testo, immagini e video intercalati. Include il supporto video come primo modello di embedding video di livello produzione. Consulta il post del blog per i dettagli. |
voyage-multimodal-3 | 32.000 | 1024 | Modello di embedding multimodale avanzato in grado di vettorizzare testo intercalato e immagini ricche di contenuti, come screenshot di PDF, diapositive, tabelle, figure e altro. Consulta il post del blog per i dettagli. |
Hai bisogno di aiuto per decidere quale modello di embedding di testo utilizzare? Consulta le FAQ.
Per accedere agli embedding di Voyage:
export VOYAGE_API_KEY="<your secret key>"Puoi ottenere gli embedding utilizzando il pacchetto Python ufficiale voyageai oppure tramite richieste HTTP, come descritto di seguito.
Il pacchetto voyageai può essere installato utilizzando il seguente comando:
pip install -U voyageaiQuindi, puoi creare un oggetto client e iniziare a utilizzarlo per generare embedding dei tuoi testi:
import voyageai
vo = voyageai.Client()
# Questo utilizzerà 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 sarà una lista di due vettori di embedding, ciascuno contenente 1024 numeri in virgola mobile. Dopo aver eseguito il codice sopra, i due embedding verranno 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 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 otterrai è 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 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 per AWS Marketplace.
Il seguente breve esempio mostra come utilizzare gli embedding.
Supponi di avere un piccolo corpus di sei documenti da cui effettuare il recupero
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()
# Genera gli embedding dei 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" vengono utilizzati rispettivamente per generare l'embedding del documento e della query. Maggiori specifiche sono disponibili in Libreria Python di Voyage.
L'output sarà il 5° 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 una serie dettagliata di cookbook su come fare RAG con gli embedding, inclusi i database vettoriali, consulta il cookbook RAG.
Visita la pagina dei prezzi di Voyage per i dettagli sui prezzi più aggiornati.
Was this page helpful?