Embeddings
Prima di implementare gli embeddings
Quando si seleziona un provider di embeddings, ci sono diversi fattori che puoi considerare a seconda delle tue esigenze e preferenze:
- Dimensione del dataset e specificità del dominio: dimensione del dataset di addestramento del modello e la sua rilevanza per il dominio che vuoi incorporare. Dati più grandi o più specifici del dominio generalmente producono embeddings migliori nel dominio
- Prestazioni di inferenza: velocità di ricerca degli embeddings e latenza end-to-end. Questa è una considerazione particolarmente importante per implementazioni di produzione su larga scala
- Personalizzazione: opzioni per l'addestramento continuo su dati privati, o specializzazione di modelli per domini molto specifici. Questo può migliorare le prestazioni su vocabolari unici
Come ottenere embeddings con Anthropic
Anthropic non offre il proprio modello di embedding. Un provider di embeddings che ha un'ampia varietà di opzioni e capacità che comprende tutte le considerazioni sopra menzionate è Voyage AI.
Voyage AI crea modelli di embedding all'avanguardia e offre modelli personalizzati per domini industriali specifici come finanza e sanità, o modelli fine-tuned su misura per singoli clienti.
Il resto di questa guida è per Voyage AI, ma ti incoraggiamo a valutare una varietà di fornitori di embeddings per trovare la soluzione migliore per il tuo caso d'uso specifico.
Modelli Disponibili
Voyage raccomanda di utilizzare i seguenti modelli di embedding di testo:
| Modello | Lunghezza del Contesto | Dimensione dell'Embedding | Descrizione |
|---|---|---|---|
voyage-3-large | 32,000 | 1024 (predefinito), 256, 512, 2048 | La migliore qualità di recupero generale e multilingue. Vedi post del blog per i dettagli. |
voyage-3.5 | 32,000 | 1024 (predefinito), 256, 512, 2048 | Ottimizzato per la qualità di recupero generale e multilingue. Vedi post del blog per i dettagli. |
voyage-3.5-lite | 32,000 | 1024 (predefinito), 256, 512, 2048 | Ottimizzato per latenza e costo. Vedi post del blog per i dettagli. |
voyage-code-3 | 32,000 | 1024 (predefinito), 256, 512, 2048 | Ottimizzato per il recupero di codice. Vedi post del blog per i dettagli. |
voyage-finance-2 | 32,000 | 1024 | Ottimizzato per il recupero e RAG in ambito finanziario. Vedi post del blog per i dettagli. |
voyage-law-2 | 16,000 | 1024 | Ottimizzato per il recupero e RAG legale e a contesto lungo. Anche prestazioni migliorate in tutti i domini. Vedi post del blog per i dettagli. |
Inoltre, sono raccomandati i seguenti modelli di embedding multimodali:
| Modello | Lunghezza del Contesto | Dimensione dell'Embedding | Descrizione |
|---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | Modello di embedding multimodale ricco che può vettorializzare testo interlacciato e immagini ricche di contenuto, come screenshot di PDF, slide, tabelle, figure e altro. Vedi post del blog per i dettagli. |
Hai bisogno di aiuto per decidere quale modello di embedding di testo utilizzare? Consulta le FAQ.
Iniziare con Voyage AI
Per accedere agli embeddings di Voyage:
- Registrati sul sito web di Voyage AI
- Ottieni una chiave API
- Imposta la chiave API come variabile d'ambiente per comodità:
export VOYAGE_API_KEY="<la tua chiave segreta>"Puoi ottenere gli embeddings utilizzando il pacchetto Python voyageai ufficiale o richieste HTTP, come descritto di seguito.
Libreria Python di Voyage
Il pacchetto voyageai può essere installato utilizzando il seguente comando:
pip install -U voyageaiQuindi, puoi creare un oggetto client e iniziare a usarlo per incorporare i 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="<la tua chiave segreta>")
texts = ["Testo di esempio 1", "Testo di esempio 2"]
result = vo.embed(texts, model="voyage-3.5", 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 embeddings verranno stampati sullo schermo:
[-0.013131560757756233, 0.019828535616397858, ...] # embedding per "Testo di esempio 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding per "Testo di esempio 2"Quando crei gli embeddings, puoi specificare alcuni altri argomenti alla funzione embed().
Per maggiori informazioni sul pacchetto Python di Voyage, vedi la documentazione di Voyage.
API HTTP di Voyage
Puoi anche ottenere embeddings richiedendo l'API HTTP di Voyage. Ad esempio, puoi inviare una richiesta HTTP attraverso 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": ["Testo di esempio 1", "Testo di esempio 2"],
"model": "voyage-3.5"
}'La risposta che otterresti è un oggetto JSON contenente gli embeddings e l'utilizzo dei token:
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858, ...],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805, ...],
"index": 1
}
],
"model": "voyage-3.5",
"usage": {
"total_tokens": 10
}
}
Per maggiori informazioni sull'API HTTP di Voyage, vedi la documentazione di Voyage.
AWS Marketplace
Gli embeddings di Voyage sono disponibili su AWS Marketplace. Le istruzioni per accedere a Voyage su AWS sono disponibili qui.
Esempio di avvio rapido
Ora che sappiamo come ottenere gli embeddings, vediamo un breve esempio.
Supponiamo di avere un piccolo corpus di sei documenti da cui recuperare
documents = [
"La dieta mediterranea enfatizza pesce, olio d'oliva e verdure, ritenuta in grado di ridurre le malattie croniche.",
"La fotosintesi nelle piante converte l'energia luminosa in glucosio e produce ossigeno essenziale.",
"Le innovazioni del XX secolo, dalle radio agli smartphone, si sono concentrate sui progressi elettronici.",
"I fiumi forniscono acqua, irrigazione e habitat per le specie acquatiche, vitali per gli ecosistemi.",
"La conference call di Apple per discutere i risultati del quarto trimestre fiscale e gli aggiornamenti aziendali è programmata per giovedì 2 novembre 2023 alle 14:00 PT / 17:00 ET.",
"Le opere di Shakespeare, come 'Amleto' e 'Sogno di una notte di mezza estate,' perdurano nella letteratura."
]
Utilizzeremo prima Voyage per convertire ciascuno di essi in un vettore di embedding
import voyageai
vo = voyageai.Client()
# Incorpora i documenti
doc_embds = vo.embed(
documents, model="voyage-3.5", input_type="document"
).embeddingsGli embeddings ci permetteranno di fare ricerca semantica / recupero nello spazio vettoriale. Data una query di esempio,
query = "Quando è programmata la conference call di Apple?"la convertiamo in un embedding, e conduciamo una ricerca del vicino più prossimo per trovare il documento più rilevante basato sulla distanza nello spazio degli embeddings.
import numpy as np
# Incorpora la query
query_embd = vo.embed(
[query], model="voyage-3.5", input_type="query"
).embeddings[0]
# Calcola la similarità
# Gli embeddings di Voyage sono normalizzati a lunghezza 1, quindi il prodotto scalare
# e la similarità del coseno sono la stessa cosa.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Nota che utilizziamo input_type="document" e input_type="query" per incorporare rispettivamente il documento e la query. Maggiori specifiche possono essere trovate qui.
L'output sarebbe il 5° documento, che è infatti il più rilevante per la query:
La conference call di Apple per discutere i risultati del quarto trimestre fiscale e gli aggiornamenti aziendali è programmata per giovedì 2 novembre 2023 alle 14:00 PT / 17:00 ET.Se stai cercando un set dettagliato di cookbook su come fare RAG con gli embeddings, inclusi i database vettoriali, consulta il nostro cookbook RAG.
FAQ
Prezzi
Visita la pagina dei prezzi di Voyage per i dettagli sui prezzi più aggiornati.