Il servizio di incorporamento nell'API Gemini genera incorporamenti all'avanguardia per parole, frasi e frasi. Gli incorporamenti risultanti possono quindi essere utilizzati di elaborazione del linguaggio naturale (NLP), come la ricerca semantica, la classificazione e il clustering, tra le tante altre.
Questa pagina illustra brevemente gli incorporamenti ed evidenzia alcuni casi d'uso chiave di incorporamento per aiutarti a iniziare.
Che cosa sono gli incorporamenti?
Gli incorporamenti di testo sono una tecnica di elaborazione del linguaggio naturale (NLP) che converte testo in coordinate numeriche (chiamate vettori) che possono essere tracciati in spazio n-dimensionale. Questo approccio ti permette di trattare porzioni di testo come frammenti relazionali, su cui possiamo addestrare i modelli.
Gli incorporamenti acquisiscono il significato e il contesto semantico che generano testo con significati simili con incorporamenti più stretti. Ad esempio, la frase "Ho preso la mia dal veterinario" e "Ho portato il gatto dal veterinario" avere incorporamenti vicini nello spazio vettoriale poiché entrambe descrivono una contesto.
Puoi utilizzare gli incorporamenti per confrontare diversi testi e capire come si relazionano. Ad esempio, se gli incorporamenti del testo "gatto" e "cane" sono vicini insieme, puoi dedurre che queste parole sono simili per significato o contesto entrambi. Questa funzionalità consente una varietà di casi d'uso descritti nella prossima sezione.
Casi d'uso
Gli incorporamenti di testo vengono utilizzati in vari casi d'uso di NLP, ad esempio:
- Recupero delle informazioni: puoi utilizzare gli incorporamenti per recuperare semanticamente
un testo simile in base a una parte di testo di input. È possibile creare svariate applicazioni
supportate da un sistema di recupero delle informazioni,
come la ricerca semantica,
rispondere a domande o riassumere.
- Tutorial: Ricerca di documenti
- Classificazione: puoi addestrare un modello utilizzando gli incorporamenti per classificare
i documenti in categorie. Ad esempio, se vuoi classificare
commenti negativi o positivi, potete usare il servizio di incorporamenti per
la rappresentazione vettoriale di ogni commento per addestrare il classificatore.
- Tutorial: addestra un testo classificatore
- Cluster:il confronto di vettori di testo può mostrare quanto simile o diverso come lo sono. Questa caratteristica può essere utilizzata per addestrare un modello di clustering che raggruppa testi o documenti simili e di rilevare anomalie nei dati.
- Database vettoriale: puoi archiviare gli incorporamenti generati in un vettore per migliorare l'accuratezza e l'efficienza dell'applicazione NLP. Fai riferimento al tutorial seguente per imparare a utilizzare un database vettoriale per i prompt di testo in vettori numerici.
Modelli di incorporamenti di Gemini
L'API Gemini offre due modelli che generano incorporamenti di testo: Testo Incorporamenti e Incorporamenti. Il formato degli incorporamenti versione aggiornata del modello di incorporamento che offre dimensioni elastiche di incorporamento in 768. Gli incorporamenti elastici generano dimensioni di output più piccole risparmiare potenzialmente sui costi di computing e archiviazione con perdite minime delle prestazioni.
Utilizzare gli incorporamenti di testo per nuovi progetti o applicazioni. L'applicazione dovrebbe utilizzare il modello di incorporamento solo se non puoi eseguirne la migrazione per utilizzare gli incorporamenti di testo.
Genera incorporamenti con l'API Gemini
Utilizza il metodo embedContent
per generare incorporamenti di testo:
Python
result = genai.embed_content(
model="models/text-embedding-004",
content="What is the meaning of life?",
task_type="retrieval_document",
title="Embedding of single string")
# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')
Consulta la nostra guida introduttiva tutorial per l'esempio completo eseguibile.
Vai
ctx := context.Background()
// Access your API key as an environment variable (see our Getting Started tutorial)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
// For embeddings, use the Text Embeddings model
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("The quick brown fox jumps over the lazy dog."))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
Consulta la nostra guida introduttiva tutorial per l'esempio completo eseguibile.
Node.js
const { GoogleGenerativeAI } = require("@google/generative-ai");
// Access your API key as an environment variable (see our Getting Started tutorial)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
async function run() {
// For embeddings, use the Text Embeddings model
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});
const text = "The quick brown fox jumps over the lazy dog."
const result = await model.embedContent(text);
const embedding = result.embedding;
console.log(embedding.values);
}
run();
Consulta la nostra guida introduttiva tutorial per l'esempio completo eseguibile.
Freccette (flussi)
final model = GenerativeModel(model: 'text-embedding-004', apiKey: apiKey);
final content = Content.text('The quick brown fox jumps over the lazy dog.');
final result = await model.embedContent(content);
print(result.embedding.values);
Consulta la nostra guida introduttiva tutorial per l'esempio completo eseguibile.
curl
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
"content": {
"parts":[{
"text": "Hello world"}]}, }' 2> /dev/null | head
Visita la nostra guida rapida all'incorporamento con il libro di ricette REST su GitHub per l'esempio completo eseguibile.
Passaggi successivi
- Per saperne di più sugli incorporamenti, leggi il post di Dale Markowitz su la console blog per ulteriori informazioni.
- Se è tutto pronto per iniziare a sviluppare, puoi trovare il codice eseguibile completo in le guide rapide per Python, Vai, Node.js e Dart (Fluttere).