Incorporamenti nell'API Gemini

Il servizio di incorporamento nell'API Gemini genera incorporamenti all'avanguardia per parole, frasi e frasi. Gli incorporamenti risultanti possono quindi essere utilizzati per attività di elaborazione del linguaggio naturale (NLP), come la ricerca semantica, la classificazione e il clustering del testo, tra le tante altre.

Questa pagina illustra brevemente gli incorporamenti ed evidenzia alcuni casi d'uso chiave del servizio 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 il testo in coordinate numeriche (chiamate vettori) che possono essere tracciate in uno spazio n-dimensionale. Questo approccio ti permette di trattare porzioni di testo come bit di dati relazionali su cui possiamo addestrare i modelli.

Gli incorporamenti acquisiscono il significato semantico e il contesto, il che si traduce in un testo con significati simili che hanno incorporamenti più vicini. Ad esempio, le frasi "Ho portato il cane dal veterinario" e "Ho portato il gatto dal veterinario" avrebbero degli incorporamenti vicini tra loro nello spazio vettoriale poiché descrivono entrambi un contesto simile.

Puoi utilizzare gli incorporamenti per confrontare diversi testi e capire la loro correlazione. Ad esempio, se gli incorporamenti del testo "gatto" e "cane" sono vicini, puoi dedurre che queste parole sono simili nel significato o nel contesto o in 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 un testo semanticamente simile a una porzione di testo di input. Varie applicazioni possono essere supportate da un sistema di recupero delle informazioni come la ricerca semantica, la risposta alle domande o il riassunto.
  • Classificazione: puoi addestrare un modello utilizzando gli incorporamenti per classificare i documenti in categorie. Ad esempio, se vuoi classificare i commenti degli utenti come negativi o positivi, puoi utilizzare il servizio di incorporamenti per ottenere la rappresentazione vettoriale di ogni commento e addestrare il classificatore.
  • Cluster:il confronto dei vettori di testo può mostrare quanto sono simili o diversi. Questa funzionalità può essere utilizzata per addestrare un modello di clustering che raggruppa testi o documenti simili e per rilevare anomalie nei dati.
  • Database vettoriale: puoi archiviare gli incorporamenti generati in un database vettoriale per migliorare l'accuratezza e l'efficienza della tua applicazione NLP. Consulta il seguente tutorial per scoprire come utilizzare un database vettoriale per tradurre prompt di testo in vettori numerici.

Modelli di incorporamenti di Gemini

L'API Gemini offre due modelli che generano incorporamenti di testo: incorporamenti di testo e incorporamenti. Incorporamenti di testo sono una versione aggiornata del modello di incorporamento che offre dimensioni elastiche di incorporamento inferiori a 768 dimensioni. Gli incorporamenti elastici generano dimensioni di output minori e potenzialmente consentono di risparmiare sui costi di elaborazione e archiviazione con una minima perdita di 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]')

Guarda il nostro tutorial introduttivo per l'esempio completo eseguibile.

Go

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)

Guarda il nostro tutorial introduttivo 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();

Guarda il nostro tutorial introduttivo 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);

Guarda il nostro tutorial introduttivo 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 per l'incorporamento con il libro di ricette REST su GitHub per l'esempio completo eseguibile.

Passaggi successivi