Représentations vectorielles continues dans l'API Gemini

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

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

Que sont les représentations vectorielles continues ?

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

Les représentations vectorielles continues capturent le contexte et la signification sémantique, ce qui permet d'obtenir des représentations vectorielles continues plus proches pour des significations similaires. Par exemple, les phrases "J'ai emmené mon chien chez le vétérinaire" et "J'ai emmené mon chat chez le vétérinaire" comporteraient des représentations vectorielles continues proches l'une de l'autre dans l'espace vectoriel, car elles décrivent toutes les deux un contexte similaire.

Vous pouvez utiliser les représentations vectorielles continues pour comparer différents textes et comprendre leurs relations. Par exemple, si les représentations vectorielles continues du texte "chat" et "chien" sont proches les unes des autres, vous pouvez en déduire que ces mots ont un sens ou un contexte similaires, ou les deux. Cette fonctionnalité permet plusieurs 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 des représentations vectorielles continues pour récupérer un texte sémantiquement similaire à 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, la réponse à des questions ou la synthèse.
  • Classification:vous pouvez entraîner un modèle à l'aide de représentations vectorielles continues pour classer des documents en catégories. Par exemple, si vous souhaitez classer les commentaires des utilisateurs comme négatifs ou positifs, vous pouvez utiliser le service de représentations vectorielles continues pour obtenir la représentation vectorielle de chaque commentaire afin d'entraîner le classificateur.
  • Regroupement:la comparaison des vecteurs de texte peut montrer à quel point ils sont similaires ou différents. Cette fonctionnalité peut être utilisée pour entraîner un modèle de clustering qui regroupe des textes ou des documents similaires, et pour détecter des anomalies dans vos données.
  • Base de données vectorielle:vous pouvez stocker vos représentations vectorielles continues générées dans une base de données vectorielle 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 afin de traduire 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: les représentations vectorielles continues de texte et les représentations vectorielles continues. Les représentations vectorielles continues de texte sont une version mise à jour du modèle de représentation vectorielle continue qui propose des tailles élastiques inférieures à 768 dimensions. Les représentations vectorielles continues élastiques génèrent des dimensions de sortie plus petites et réduisent potentiellement 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 ne doit utiliser le modèle de représentation vectorielle continue que si vous ne pouvez pas la migrer pour utiliser 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 tutoriel de mise en route pour obtenir un exemple exécutable complet.

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 tutoriel de mise en route pour obtenir un exemple exécutable complet.

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 tutoriel de mise en route pour obtenir un exemple exécutable complet.

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 tutoriel de mise en route pour obtenir un exemple exécutable complet.

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 sur l'intégration avec REST sur GitHub pour obtenir un exemple exécutable complet.

Étapes suivantes