Claude Platform Docs
MessaggiCapacità 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 con un'ampia varietà di modelli e funzionalità è Voyage AI di MongoDB.

Voyage AI realizza modelli di embedding e "rerankers" (modelli di riordinamento). I suoi modelli di embedding includono modelli generici, multimodali, contestualizzati e specifici per dominio.

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 AI offre i seguenti modelli di embedding di testo:

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-code-432.0001024 (predefinita), 256, 512, 2048Ottimizzato per il recupero di codice e per applicazioni di coding agentico. Consulta il post del blog su voyage-code-4 per i dettagli.
voyage-4-nano32.0002048 (predefinita), 256, 512, 1024Modello open-weight (licenza Apache 2.0) che scarichi da Hugging Face ed esegui autonomamente. Non disponibile tramite l'Atlas Embedding and Reranking API. Consulta il post del blog su Voyage 4 per i dettagli.

Generazione precedente

Per lo stato del ciclo di vita di ciascun modello e il sostituto consigliato, consulta Model deprecations, lifecycle states, and support nella documentazione di MongoDB.

ModelloLunghezza del contestoDimensione dell'embeddingDescrizione
voyage-3-large32.0001024 (predefinita), 256, 512, 2048Generazione precedente di voyage-4-large. Consulta il post del blog su voyage-3-large per i dettagli.
voyage-3.532.0001024 (predefinita), 256, 512, 2048Generazione precedente di voyage-4. Consulta il post del blog su voyage-3.5 per i dettagli.
voyage-3.5-lite32.0001024 (predefinita), 256, 512, 2048Generazione precedente di voyage-4-lite. Consulta il post del blog su voyage-3.5 per i dettagli.
voyage-code-332.0001024 (predefinita), 256, 512, 2048Generazione precedente di voyage-code-4. Consulta il post del blog su voyage-code-3 per i dettagli.
voyage-finance-232.0001024Ottimizzato per il recupero e la RAG in ambito finanziario. Consulta il post del blog su voyage-finance-2 per i dettagli.
voyage-law-216.0001024Ottimizzato per il recupero e la RAG in ambito legale. Consulta il post del blog su voyage-law-2 per i dettagli.

Inoltre, Voyage AI offre i seguenti modelli di embedding multimodali. Chiama questi modelli con multimodal_embed() invece di embed():

ModelloLunghezza del contestoDimensione dell'embeddingDescrizione
voyage-multimodal-3.532.0001024 (predefinita), 256, 512, 2048Modello 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 produttivo. Consulta il post del blog su voyage-multimodal-3.5 per i dettagli.
voyage-multimodal-332.0001024Generazione precedente di voyage-multimodal-3.5. Vettorizza testo intercalato 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 contestualizzati per chunk ottimizzati per la qualità di recupero generico e multilingue. Consulta il post del blog su voyage-context-4 per i dettagli.
voyage-context-3120.0001024 (predefinita), 256, 512, 2048Generazione precedente di voyage-context-4. Consulta il post del blog su voyage-context-3 per i dettagli.

Il limite di 120.000 token si applica quando imposti enable_auto_chunking su true. Altrimenti, il numero totale di token su tutti gli input non può superare 32.000.

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-332.000Massima accuratezza. Consigliato per la maggior parte delle applicazioni. Consulta il post del blog su rerank-3 per i dettagli.
rerank-3-lite32.000Ottimizzato per latenza e costi. Consulta il post del blog su rerank-3 per i dettagli.
rerank-2.532.000Generazione precedente di rerank-3. Consulta il post del blog su rerank-2.5 per i dettagli.
rerank-2.5-lite32.000Generazione precedente di rerank-3-lite. Consulta il post del blog su rerank-2.5 per i dettagli.

Hai bisogno di aiuto per decidere quale modello utilizzare? Consulta Voyage AI embedding and reranking models overview nella documentazione di MongoDB.

Iniziare con Voyage AI

Per accedere ai modelli Voyage AI, crea una chiave API del modello in MongoDB Atlas:

  1. Registrati per un account MongoDB Atlas oppure accedi.
  2. Nel tuo progetto Atlas, seleziona AI Model APIs nella barra di navigazione, fai clic su Create model API key, assegna un nome alla chiave e fai clic su Create.
  3. Per comodità, imposta la chiave API come variabile d'ambiente:
export VOYAGE_API_KEY="<your model API key>"

Per maggiori dettagli, consulta Voyage AI quick start nella documentazione di MongoDB.

Puoi ottenere gli embedding utilizzando il pacchetto Python voyageai ufficiale oppure tramite richieste HTTP, come descritto nelle sezioni seguenti. Voyage AI dispone anche di un client TypeScript ufficiale. Per usarlo con una chiave API del modello di Atlas, imposta la sua opzione environment su https://ai.mongodb.com/v1, come descritto in TypeScript client nella documentazione di MongoDB.

Libreria Python di Voyage AI

Installa il pacchetto voyageai utilizzando il seguente comando. Per usare una chiave API del modello di Atlas, è necessaria la versione 0.3.7 o successiva.

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="<la tua chiave API del modello>")

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 ulteriori informazioni sul pacchetto Python, consulta Accessing Voyage AI models nella documentazione di MongoDB.

API HTTP di Voyage AI

Puoi anche ottenere gli embedding inviando richieste HTTP all'Atlas Embedding and Reranking API. Ad esempio, puoi inviare una richiesta HTTP tramite il comando curl in un terminale:

cURL
curl https://ai.mongodb.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",
    "input_type": "document"
  }'

La risposta che otterresti è un oggetto JSON contenente gli embedding e l'utilizzo dei token:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
      "index": 0
    },
    {
      "object": "embedding",
      "embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
      "index": 1
    }
  ],
  "model": "voyage-4",
  "usage": {
    "total_tokens": 10
  }
}

Le chiavi API del modello di Atlas funzionano con ai.mongodb.com, ad eccezione delle chiavi limitate a un'area geografica, che utilizzano l'endpoint di quell'area geografica. Se invece hai una chiave API della piattaforma Voyage AI, consulta Migrate your applications to use the Atlas Embedding and Reranking API nella documentazione di MongoDB.

Per il riferimento completo di richiesta e risposta, consulta Create text embeddings nella documentazione dell'Atlas Embedding and Reranking API.

AWS Marketplace

I modelli Voyage AI sono disponibili anche su AWS Marketplace tramite il profilo venditore di MongoDB. Per le istruzioni, consulta Deploy Voyage AI models using AWS Marketplace nella documentazione di MongoDB.

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 AI 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

# Calcola l'embedding della query
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]

# Calcola la similarità
# Gli embedding di Voyage AI sono normalizzati a lunghezza 1, quindi prodotto scalare
# e 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. Per ulteriori informazioni su input_type, consulta Quando e come dovrei usare il parametro input_type? nelle FAQ.

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

Per i dettagli sui prezzi più aggiornati, consulta Model pricing nella documentazione di MongoDB.

Was this page helpful?