Embeddings
Gli embeddings di testo sono rappresentazioni numeriche del testo che consentono di misurare la similarità semantica. Questa guida introduce gli embeddings, le loro applicazioni e come utilizzare i modelli di embedding per attività come ricerca, raccomandazioni e rilevamento di anomalie.
Prima di implementare gli embeddings
Quando si seleziona un provider di embeddings, ci sono diversi fattori da considerare in base alle proprie 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 si desidera incorporare. Dati più ampi o più specifici del dominio generalmente producono migliori embeddings nel dominio
- Prestazioni di inferenza: velocità di ricerca degli embedding e latenza end-to-end. Questa è una considerazione particolarmente importante per implementazioni in produzione su larga scala
- Personalizzazione: opzioni per continuare l’addestramento su dati privati o specializzazione dei modelli per domini molto specifici. Questo può migliorare le prestazioni su vocabolari unici
Come ottenere embeddings con Anthropic
Anthropic non offre un proprio modello di embedding. Un provider di embeddings che ha un’ampia varietà di opzioni e capacità che comprendono tutte le considerazioni sopra citate è Voyage AI.
Voyage AI realizza modelli di embedding all’avanguardia e offre modelli personalizzati per specifici domini industriali come finanza e sanità, o modelli su misura perfezionati per singoli clienti.
Il resto di questa guida riguarda Voyage AI, ma ti incoraggiamo a valutare una varietà di fornitori di embeddings per trovare quello più adatto al tuo caso d’uso specifico.
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à:
Puoi eseguire gli embeddings utilizzando il pacchetto Python voyageai ufficiale o le richieste HTTP, come descritto di seguito.
Pacchetto Python Voyage
Il pacchetto voyageai
può essere installato usando il seguente comando:
Quindi, puoi creare un oggetto client e iniziare a usarlo per incorporare i tuoi testi:
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:
Quando crei gli embeddings, puoi specificare alcuni altri argomenti alla funzione embed()
. Ecco la specifica:
voyageai.Client.embed(texts : List[str], model : str, input_type : Optional[str] = None, truncation : Optional[bool] = None)
- texts (List[str]) - Una lista di testi come lista di stringhe, come
["I like cats", "I also like dogs"]
. Attualmente, la lunghezza massima della lista è 128, e il numero totale di token nella lista è al massimo 320K pervoyage-2
e 120K pervoyage-large-2
/voyage-code-2
. - model (str) - Nome del modello. Opzioni consigliate:
voyage-2
,voyage-large-2
,voyage-code-2
. - input_type (str, opzionale, predefinito
None
) - Tipo del testo di input. Predefinito aNone
. Altre opzioni:query
,document
- Quando input_type è impostato a
None
, il testo di input sarà codificato direttamente dal modello di embedding di Voyage. In alternativa, quando gli input sono documenti o query, gli utenti possono specificareinput_type
comequery
odocument
, rispettivamente. In tali casi, Voyage anteporrà un prompt speciale al testo di input e invierà gli input estesi al modello di embedding - Per i casi d’uso di recupero/ricerca, consigliamo di specificare questo argomento quando si codificano query o documenti per migliorare la qualità del recupero. Gli embeddings generati con e senza l’argomento
input_type
sono compatibili
- Quando input_type è impostato a
- truncation (bool, opzionale, predefinito
None
) - Se troncare i testi di input per adattarli alla lunghezza del contesto.- Se
True
, i testi di input troppo lunghi verranno troncati per adattarsi alla lunghezza del contesto, prima di essere vettorizzati dal modello di embedding - Se
False
, verrà generato un errore se un testo supera la lunghezza del contesto - Se non specificato (predefinito a
None
), Voyage tronca il testo di input prima di inviarlo al modello di embedding se supera leggermente la lunghezza della finestra di contesto. Se supera significativamente la lunghezza della finestra di contesto, verrà generato un errore
- Se
API HTTP Voyage
Puoi anche ottenere embeddings richiedendo l’API HTTP di Voyage. Per esempio, puoi inviare una richiesta HTTP attraverso il comando curl
in un terminale:
La risposta che otterrai è un oggetto JSON contenente gli embeddings e l’utilizzo dei token:
L’endpoint di embedding di Voyage AI è https://api.voyageai.com/v1/embeddings
(POST). L’header della richiesta deve contenere la chiave API. Il corpo della richiesta è un oggetto JSON contenente i seguenti argomenti:
- input (str, List[str]) - Una singola stringa di testo, o una lista di testi come lista di stringhe. Attualmente, la lunghezza massima della lista è 128, e il numero totale di token nella lista è al massimo 320K per
voyage-2
e 120K pervoyage-large-2
/voyage-code-2
. - model (str) - Nome del modello. Opzioni consigliate:
voyage-2
,voyage-large-2
,voyage-code-2
. - input_type (str, opzionale, predefinito
None
) - Tipo del testo di input. Predefinito aNone
. Altre opzioni:query
,document
- truncation (bool, opzionale, predefinito
None
) - Se troncare i testi di input per adattarli alla lunghezza del contesto- Se
True
, i testi di input troppo lunghi verranno troncati per adattarsi alla lunghezza del contesto prima di essere vettorizzati dal modello di embedding - Se
False
, verrà generato un errore se un testo supera la lunghezza del contesto - Se non specificato (predefinito a
None
), Voyage tronca il testo di input prima di inviarlo al modello di embedding se supera leggermente la lunghezza della finestra di contesto. Se supera significativamente la lunghezza della finestra di contesto, verrà generato un errore
- Se
- encoding_format (str, opzionale, predefinito
None
) - Formato in cui sono codificati gli embeddings. Voyage attualmente supporta due opzioni:- Se non specificato (predefinito a
None
): gli embeddings sono rappresentati come liste di numeri in virgola mobile "base64"
: gli embeddings sono compressi in codifiche Base64
- Se non specificato (predefinito a
Esempio di embedding Voyage
Ora che sappiamo come ottenere embeddings con Voyage, vediamolo in azione con un breve esempio.
Supponiamo di avere un piccolo corpus di sei documenti da cui recuperare
Prima useremo Voyage per convertire ciascuno di essi in un vettore di embedding
Gli embeddings ci permetteranno di fare ricerca semantica / recupero nello spazio vettoriale. Possiamo quindi convertire una query di esempio,
in un embedding, e poi condurre una ricerca del vicino più prossimo per trovare il documento più rilevante basato sulla distanza nello spazio degli embedding.
Nota che usiamo input_type="document"
e input_type="query"
per incorporare rispettivamente il documento e la query. Maggiori specifiche possono essere trovate qui.
L’output sarà il 5° documento, che è effettivamente il più rilevante per la query:
Modelli Voyage disponibili
Voyage raccomanda l’uso dei seguenti modelli di embedding:
Modello | Lunghezza Contesto | Dimensione Embedding | Descrizione |
---|---|---|---|
voyage-large-2 | 16000 | 1536 | Il modello di embedding generalista più potente di Voyage AI. |
voyage-code-2 | 16000 | 1536 | Ottimizzato per il recupero di codice (17% migliore delle alternative), e anche SoTA su corpora per uso generale. Vedi questo post del blog di Voyage per i dettagli. |
voyage-2 | 4000 | 1024 | Modello di embedding generalista base ottimizzato sia per latenza che per qualità. |
voyage-lite-02-instruct | 4000 | 1024 | Istruito per attività di classificazione, clustering e similarità testuale tra frasi, che sono gli unici casi d’uso raccomandati per questo modello. |
voyage-2
e voyage-large-2
sono modelli di embedding generalisti, che raggiungono prestazioni all’avanguardia in tutti i domini e mantengono un’alta efficienza. voyage-code-2
è ottimizzato per il campo del codice, offrendo una lunghezza di contesto 4 volte maggiore per un uso più flessibile, anche se con una latenza relativamente più alta.
Voyage sta attivamente sviluppando modelli più avanzati e specializzati, e offre anche servizi di fine-tuning per personalizzare modelli su misura per singoli clienti. Invia un’email al tuo account manager Anthropic o contatta il supporto Anthropic per ulteriori informazioni sui modelli su misura.
voyage-finance-2
: in arrivovoyage-law-2
: in arrivovoyage-multilingual-2
: in arrivovoyage-healthcare-2
: in arrivo
Voyage su AWS Marketplace
Gli embeddings Voyage sono disponibili anche su AWS Marketplace. Ecco le istruzioni per accedere a Voyage su AWS:
- Sottoscrivi il pacchetto del modello
- Naviga alla pagina di elenco del pacchetto del modello e seleziona il modello da implementare
- Clicca sul pulsante
Continue to subscribe
- Rivedi attentamente i det
tagli nella pagina Subscribe to this software
. Se sei d’accordo con l’Accordo di Licenza per l’Utente Finale (EULA) standard, i prezzi e i termini di supporto, clicca su “Accept Offer”
4. Dopo aver selezionato Continue to configuration
e scelto una regione, ti verrà presentato un Product Arn. Questo è l’ARN del pacchetto del modello richiesto per creare un modello implementabile usando Boto3
- Copia l’ARN che corrisponde alla tua regione selezionata e usalo nella cella successiva
- Implementa il pacchetto del modello
Da qui, crea uno spazio JupyterLab in Sagemaker Studio, carica il notebook di Voyage e segui le istruzioni al suo interno.
FAQ
Prezzi
Visita la pagina dei prezzi di Voyage per i dettagli più aggiornati sui prezzi.