Claude Platform Docs
MessagesCapacità del modello

Embedding

Gli embedding di testo sono rappresentazioni numeriche del testo che consentono di misurare la similarità semantica. Questa guida introduce gli embedding, le loro applicazioni e come utilizzare i modelli di embedding per attività come ricerca, raccomandazioni e rilevamento di anomalie.

Prima di implementare gli embedding

Quando selezioni un fornitore di embedding, ci sono diversi fattori che puoi considerare in base alle tue esigenze e preferenze:

  • Dimensione del dataset e specificità di dominio: dimensione del dataset di addestramento del modello e sua rilevanza rispetto al dominio di cui vuoi creare gli embedding. Dati più ampi o più specifici per il dominio producono generalmente embedding migliori all'interno del dominio
  • Prestazioni di inferenza: velocità di ricerca degli embedding e "latency" (latenza) end-to-end. Questa è una considerazione particolarmente importante per deployment di produzione su larga scala
  • Personalizzazione: opzioni per l'addestramento continuato su dati privati o la specializzazione dei modelli per domini molto specifici. Questo può migliorare le prestazioni su vocabolari unici

Come ottenere embedding con Anthropic

Anthropic non offre un proprio modello di embedding. Un fornitore di embedding che dispone di un'ampia varietà di opzioni e funzionalità che coprono tutte le considerazioni precedenti è Voyage AI.

Voyage AI realizza modelli di embedding all'avanguardia e offre modelli personalizzati per specifici settori industriali come finanza e sanità, oppure modelli su misura sottoposti a "fine-tuning" (affinamento) 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.

Modelli disponibili

Voyage consiglia di utilizzare i seguenti modelli di embedding di testo:

Voyage 4 (ultima generazione)

ModelloLunghezza del contestoDimensione dell'embeddingDescrizione
voyage-4-large32.0001024 (predefinita), 256, 512, 2048La migliore qualità di retrieval generico e multilingue. Consulta il post del blog su Voyage 4 per i dettagli.
voyage-432.0001024 (predefinita), 256, 512, 2048Ottimizzato per la qualità di retrieval generico e multilingue. Bilancia qualità ed efficienza. Consulta il post del blog su Voyage 4 per i dettagli.
voyage-4-lite32.0001024 (predefinita), 256, 512, 2048Ottimizzato per latenza e costo. Consulta il post del blog su Voyage 4 per i dettagli.
voyage-4-nano32.0001024 (predefinita), 256, 512, 2048Modello open-weight (licenza Apache 2.0) disponibile su Hugging Face. Consulta il post del blog su Voyage 4 per i dettagli.

Generazione precedente

ModelloLunghezza del contestoDimensione dell'embeddingDescrizione
voyage-3-large32.0001024 (predefinita), 256, 512, 2048La migliore qualità di retrieval generico e multilingue. Consulta il post del blog su voyage-3-large per i dettagli.
voyage-3.532.0001024 (predefinita), 256, 512, 2048Ottimizzato per la qualità di retrieval generico e multilingue. Consulta il post del blog su voyage-3.5 per i dettagli.
voyage-3.5-lite32.0001024 (predefinita), 256, 512, 2048Ottimizzato per latenza e costo. Consulta il post del blog su voyage-3.5 per i dettagli.
voyage-code-332.0001024 (predefinita), 256, 512, 2048Ottimizzato per il retrieval di codice. Consulta il post del blog su voyage-code-3 per i dettagli.
voyage-finance-232.0001024Ottimizzato per retrieval e RAG in ambito finanziario. Consulta il post del blog su voyage-finance-2 per i dettagli.
voyage-law-216.0001024Ottimizzato per retrieval 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 consiglia i seguenti modelli di embedding multimodali:

ModelloLunghezza del contestoDimensione dell'embeddingDescrizione
voyage-multimodal-3.532.0001024 (predefinita), 256, 512, 2048Ricco modello di embedding multimodale in grado di vettorizzare testo, immagini e video interlacciati. Include il supporto video come primo modello di embedding video di livello produzione. Consulta il post del blog su voyage-multimodal-3.5 per i dettagli.
voyage-multimodal-332.0001024Ricco modello di embedding multimodale in grado di vettorizzare testo interlacciato e immagini ricche di contenuto, come screenshot di PDF, slide, 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 arricchimento manuale dei metadati. Chiama questi modelli con contextualized_embed() invece di embed():

ModelloLunghezza del contestoDimensione dell'embeddingDescrizione
voyage-context-4120.0001024 (predefinita), 256, 512, 2048Embedding di chunk contestualizzati ottimizzati per la qualità di retrieval generico e multilingue. Consulta il post del blog su voyage-context-4 per i dettagli.
voyage-context-3120.0001024 (predefinita), 256, 512, 2048Embedding di chunk contestualizzati ottimizzati per la qualità di retrieval generico 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 ordinati per rilevanza rispetto alla query. Chiama questi modelli con rerank():

ModelloLunghezza del contestoDescrizione
rerank-2.532.000Massima accuratezza. Consigliato per la maggior parte delle applicazioni. Consulta il post del blog su rerank-2.5 per i dettagli.
rerank-2.5-lite32.000Ottimizzato 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.

Iniziare con Voyage AI

Per accedere agli embedding di Voyage:

  1. Registrati sul sito web di Voyage AI.
  2. Ottieni una "API key" (chiave API).
  3. Imposta la chiave API come variabile d'ambiente per comodità:
export VOYAGE_API_KEY="<your secret key>"

Puoi ottenere gli embedding utilizzando il pacchetto Python voyageai ufficiale oppure tramite richieste HTTP, come descritto nelle sezioni seguenti.

Libreria Python di Voyage

Installa il pacchetto voyageai utilizzando il seguente comando:

pip install -U voyageai

Quindi, puoi creare un oggetto client e iniziare a usarlo per creare 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 è una lista di due vettori di embedding, ciascuno contenente 1024 numeri in virgola mobile. Dopo aver eseguito il codice precedente, i due embedding vengono stampati a 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 per la funzione embed().

Per maggiori informazioni sul pacchetto Python di Voyage, consulta la documentazione del pacchetto Python di Voyage.

API HTTP di Voyage

Puoi anche ottenere gli embedding effettuando richieste all'API HTTP di Voyage. Ad esempio, puoi inviare una richiesta HTTP tramite il comando curl in un terminale:

cURL
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.

AWS Marketplace

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.

Esempio di avvio rapido

Il seguente breve esempio mostra come utilizzare gli embedding.

Supponi di avere un piccolo corpus di sei documenti da cui effettuare il retrieval

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 ciascun 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").embeddings

Gli embedding ti consentono di effettuare ricerca semantica / retrieval 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 (nearest neighbor) per trovare il documento più rilevante in base alla distanza nello spazio degli embedding.

import numpy as np

# Incorpora la 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 creare l'embedding del documento e della query. Ulteriori specifiche sono disponibili in 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.

FAQ

Prezzi

Visita la pagina dei prezzi di Voyage per i dettagli più aggiornati sui prezzi.

Was this page helpful?