Gemini API のエンベディング

Gemini API のエンベディング サービスが最先端のエンベディングを生成 単語、フレーズ、文を検索するだけです。結果として得られるエンべディングは 自然言語処理(NLP)タスク 分類、クラスタリングがあります

このページではエンベディングについて簡単に説明し、エンベディング 簡単に開始できます。

エンベディングとは

テキスト エンベディングは、テキスト エンベディングを テキストを数値座標(ベクトルと呼ばれる)に変換し、 n 次元空間です。この方法では、テキストの断片をテキストの断片として そのデータを使用してモデルをトレーニングできます

エンべディングはセマンティックな意味とコンテキストをキャプチャし、その結果としてテキストが生成されます。 エンベディングがより近いものになります。たとえば、「私は 獣医師に報告する」「猫を動物病院に連れて行きました」などエンべディングが 1 つしかない ベクトル空間内で互いに近い位置にあるようにします。これは、どちらも 説明します。

エンベディングを使用すると、さまざまなテキストを比較して、テキストがどのように変化するかを理解できます。 共感しますたとえば、「cat」というテキストのエンべディングがと「犬」近い それらの単語の意味や文脈が類似していると推測でき あります。この機能により、次のセクションで説明するさまざまなユースケースが可能になります。

ユースケース

テキスト エンベディングは、次のようなさまざまな NLP ユースケースで使用されます。

  • 情報の取得: エンベディングを使用して、意味的に情報を取得できます。 類似のテキストを返すことができます。さまざまなアプリケーションを 情報検索システム(セマンティック検索、 要約を生成したりする必要はありません
  • 分類: エンベディングを使用してモデルをトレーニングし、 ドキュメントをカテゴリに分類できます。たとえば、ユーザーを分類する 否定的または肯定的なコメントの場合は、エンべディング サービスを使用して、 ベクトル表現を使用して分類器をトレーニングします。
  • クラスタリング: テキストのベクトルを比較することで、どの程度類似しているか、または異なるかを把握できます 説明します。この機能を使用して、複数の異なるタスクをグループ化する 類似のテキストやドキュメントをまとめて、データの異常を検出できます。
  • ベクトル データベース: 生成されたエンベディングをベクトルに保存できます。 使用して NLP アプリケーションの精度と効率を向上させます。 ベクトル データベースを使用して次のことを行う方法については、次のチュートリアルをご覧ください。 数値ベクトルに変換します。

Gemini エンベディング モデル

Gemini API には、テキスト エンベディングを生成する 2 つのモデルが用意されています。テキスト エンベディングエンベディング。テキスト エンベディングは、 弾力的なエンベディング サイズを提供するエンベディング モデルの更新版。 768 ディメンション。弾力性のあるエンベディングでは、生成される出力次元が小さくなり、 パフォーマンスのわずかな低下でコンピューティングとストレージの費用を節約できる可能性があります。

新しいプロジェクトやアプリケーションにテキスト エンベディングを使用する。アプリケーションは、 テキスト エンベディングを使用するように移行できない場合にのみ、エンベディング モデルを使用する。

Gemini API を使用してエンベディングを生成する

embedContent メソッドを使用して、テキスト エンベディングを生成します。

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

スタートガイド チュートリアル をご覧ください。

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)

スタートガイド チュートリアル 例で説明します。

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

スタートガイド チュートリアル をご覧ください。

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

スタートガイド チュートリアル をご覧ください。

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

REST クックブックを使用したエンベディング クイックスタート GitHub をご覧ください。

次のステップ