Représentations vectorielles continues dans l'API Gemini

Le service de représentations vectorielles continues de l'API Gemini génère des représentations vectorielles continues de pointe de mots, d'expressions et de phrases. Les représentations vectorielles continues obtenues peuvent ensuite être utilisées des tâches de traitement du langage naturel (TLN), comme la recherche sémantique, la classification et le clustering, entre autres.

Cette page explique brièvement les représentations vectorielles continues et présente quelques cas d'utilisation clés de représentations vectorielles continues pour vous aider à démarrer.

Que sont les représentations vectorielles continues ?

Les représentations vectorielles continues de texte sont une technique de traitement du langage naturel (TLN) qui convertit sous forme de coordonnées numériques (appelées vecteurs) qui peuvent être tracées dans un espace à N dimensions. Cette approche vous permet de traiter des éléments de texte comme des fragments des données relationnelles, sur lesquelles nous pouvons entraîner des modèles.

Les représentations vectorielles continues capturent la signification sémantique et le contexte, ce qui génère du texte avec des significations similaires ayant des représentations vectorielles continues plus proches. Par exemple, la phrase "J'ai pris mon chez le vétérinaire » et "J'ai emmené mon chat chez le vétérinaire" comporte des représentations vectorielles continues proches l'un de l'autre dans l'espace vectoriel, car ils décrivent tous les deux le contexte.

Vous pouvez utiliser les représentations vectorielles continues pour comparer différents textes et comprendre leur se rapportent. Par exemple, si les représentations vectorielles continues du texte "chat" et "chien" sont proches vous pouvez en déduire que ces mots ont un sens ou un contexte similaires, ou les deux. Cette fonctionnalité est adaptée à différents cas d'utilisation décrits dans la section suivante.

Cas d'utilisation

Les représentations vectorielles continues de textes sont utilisées dans divers cas d'utilisation du TLN, par exemple:

  • Récupération d'informations:vous pouvez utiliser les représentations vectorielles continues pour récupérer sémantiquement à partir d'un texte d'entrée. Diverses applications peuvent être prises en charge par un système de récupération d'informations tel que la recherche sémantique, répondre à des questions ou résumer.
  • Classification:vous pouvez entraîner un modèle à l'aide de représentations vectorielles continues pour classifier en catégories. Par exemple, si vous souhaitez classer commentaires négatifs ou positifs, vous pouvez utiliser le service de représentations vectorielles continues pour obtenir la représentation vectorielle de chaque commentaire pour entraîner le classificateur.
  • Regroupement:la comparaison des vecteurs d'un texte permet de déterminer dans quelle mesure qu'elles soient. Cette fonctionnalité permet d'entraîner un modèle de clustering qui regroupe des textes ou des documents similaires et pour détecter les anomalies dans vos données.
  • Base de données vectorielle:vous pouvez stocker vos représentations vectorielles continues générées dans un vecteur pour améliorer la précision et l'efficacité de votre application de TLN. Reportez-vous au tutoriel suivant pour apprendre à utiliser une base de données vectorielle pour : convertir des requêtes textuelles en vecteurs numériques.

Modèles de représentations vectorielles continues Gemini

L'API Gemini propose deux modèles qui génèrent des représentations vectorielles continues de texte: Texte Représentations vectorielles continues Représentations vectorielles continues. Les représentations vectorielles continues de texte sont un mise à jour du modèle de représentation vectorielle continue offrant des tailles élastiques sous 768. Les représentations vectorielles continues élastiques génèrent des dimensions de sortie plus petites et potentiellement réduire les coûts de calcul et de stockage avec une perte de performances mineure.

Utilisez les représentations vectorielles continues de texte pour les nouveaux projets ou applications. Votre application doit n'utilisez le modèle de représentation vectorielle continue que si vous ne pouvez pas le migrer vers les représentations vectorielles continues de texte.

Générer des représentations vectorielles continues avec l'API Gemini

Utilisez la méthode embedContent pour générer des représentations vectorielles continues de texte:

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]')

Consultez notre page Premiers pas tutoriel pour obtenir l'exemple complet exécutable.

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)

Consultez notre page Premiers pas ce tutoriel pour l'exemple complet exécutable.

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();

Consultez notre page Premiers pas tutoriel pour obtenir l'exemple complet exécutable.

Dart (Flutter)

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);

Consultez notre page Premiers pas tutoriel pour obtenir l'exemple complet exécutable.

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

Consultez notre livre de recettes de démarrage rapide sur l'intégration avec REST sur GitHub pour obtenir l'exemple complet exécutable.

Étape suivante