取得文字嵌入

本指南說明如何使用 Vertex AI Text Embeddings API 建立文字嵌入。本頁面涵蓋下列主題:

Vertex AI 文字嵌入 API 會使用文字的密集向量表示法。這些嵌入是使用類似於大型語言模型的深度學習方法建立。稀疏向量通常會將字詞直接對應至數字,但密集向量的設計目的是表示一段文字的意義。這樣一來,即使段落中沒有使用與查詢相同的字詞,您也能搜尋到符合查詢意涵的段落。

這些嵌入內容的主要特徵包括:

  • 高維度:模型會產生高維度向量。舉例來說,gemini-embedding-001 使用 3072 維度的向量。您可以降低輸出維度,節省儲存空間並提高運算效率。
  • 正規化向量:輸出向量會經過正規化,因此您可以使用餘弦相似度點積歐氏距離,取得相同的相似度排名。

如要瞭解詳情,請參閱下列資源:

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. 為嵌入工作選擇工作類型
  7. 支援的模型

    您可以使用下列模型取得文字嵌入:

    模型名稱 說明 輸出維度 序列長度上限 支援的文字語言
    gemini-embedding-001 在英文、多語言和程式碼工作方面表現優異。這項模型整合了先前的專用模型 (例如 text-embedding-005text-multilingual-embedding-002),並在各自領域中展現更出色的效能。詳情請參閱我們的技術報告 最多 3072 個 2048 個符記 支援的文字語言
    text-embedding-005 專精於英文和程式碼工作。 最多 768 個 2048 個符記 英文
    text-multilingual-embedding-002 擅長處理多語言工作。 最多 768 個 2048 個符記 支援的文字語言

    如要取得最佳嵌入品質,請使用 gemini-embedding-001,這是我們設計的大型模型,可提供最高效能。請注意,gemini-embedding-001 每個要求僅支援一個執行個體。

    請只使用支援模型表格中列出的模型名稱。請勿指定沒有 @version 後置字元的模型名稱,也不要使用 @latest,因為這些格式無效。

    取得某段文字的文字嵌入

    您可以使用 Vertex AI API 或 Python 適用的 Vertex AI SDK,取得文字片段的文字嵌入。

    API 上限

    每個要求最多可包含 250 個輸入文字,以及總共 20,000 個輸入權杖。如果要求超過權杖限制,系統會傳回 400 錯誤。每段輸入文字最多只能有 2048 個符記,超出上限的符記會遭到截斷。如要停用無聲截斷功能,請將 autoTruncate 設為 false

    詳情請參閱「文字嵌入限制」。

    選擇嵌入維度

    根據預設,所有模型都會產生完整長度的嵌入向量。對於 gemini-embedding-001,這個向量有 3072 個維度,對於其他模型,則有 768 個維度。如要控管輸出嵌入向量的大小,可以使用 output_dimensionality 參數。較小的輸出維度可節省儲存空間,並提高下游應用程式的運算效率,但可能會降低品質。

    下列範例使用 gemini-embedding-001 模型。

    Python

    安裝

    pip install --upgrade google-genai

    詳情請參閱 SDK 參考說明文件

    設定環境變數,透過 Vertex AI 使用 Gen AI SDK:

    # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
    # with appropriate values for your project.
    export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
    export GOOGLE_CLOUD_LOCATION=global
    export GOOGLE_GENAI_USE_VERTEXAI=True

    from google import genai
    from google.genai.types import EmbedContentConfig
    
    client = genai.Client()
    response = client.models.embed_content(
        model="gemini-embedding-001",
        contents=[
            "How do I get a driver's license/learner's permit?",
            "How long is my driver's license valid for?",
            "Driver's knowledge test study guide",
        ],
        config=EmbedContentConfig(
            task_type="RETRIEVAL_DOCUMENT",  # Optional
            output_dimensionality=3072,  # Optional
            title="Driver's License",  # Optional
        ),
    )
    print(response)
    # Example response:
    # embeddings=[ContentEmbedding(values=[-0.06302902102470398, 0.00928034819662571, 0.014716853387653828, -0.028747491538524628, ... ],
    # statistics=ContentEmbeddingStatistics(truncated=False, token_count=13.0))]
    # metadata=EmbedContentMetadata(billable_character_count=112)

    將嵌入項目新增至向量資料庫

    生成嵌入後,您可以將其新增至向量資料庫,例如 Vector Search。這可實現低延遲擷取,且隨著資料量增加,這點就越顯重要。

    如要進一步瞭解 Vector Search,請參閱「Vector Search 總覽」。

    後續步驟