Mendapatkan embedding teks

Dokumen ini menjelaskan cara membuat embedding teks menggunakan Text embeddings API Vertex AI.

Vertex AI text embeddings API menggunakan representasi vektor padat: text-embedding-005, misalnya, menggunakan vektor 768 dimensi. Model embedding vektor padat menggunakan metode deep learning yang mirip dengan yang digunakan oleh model bahasa besar. Tidak seperti vektor jarang, yang cenderung memetakan kata ke angka secara langsung, vektor padat dirancang untuk merepresentasikan makna sebuah teks dengan lebih baik. Manfaat penggunaan penyematan vektor rapat dalam AI generatif adalah Anda dapat menelusuri bagian yang lebih sesuai dengan makna kueri, bukan menelusuri pencocokan kata atau sintaksis langsung, meskipun bagian tersebut tidak menggunakan bahasa yang sama.

Vektor dinormalisasi, sehingga Anda dapat menggunakan kesamaan kosinus, perkalian titik, atau jarak Euclidean untuk memberikan peringkat kesamaan yang sama.

Sebelum memulai

  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. Pilih jenis tugas untuk tugas penyematan Anda.

Model yang didukung

Anda bisa mendapatkan embedding teks dengan menggunakan model berikut:

Model bahasa Inggris Model multibahasa Model penyematan Gemini
textembedding-gecko@001 textembedding-gecko-multilingual@001 text-embedding-large-exp-03-07 (eksperimental)
textembedding-gecko@002 text-multilingual-embedding-002
textembedding-gecko@003
text-embedding-004
text-embedding-005

Jika Anda baru menggunakan model ini, sebaiknya gunakan versi terbaru. Untuk teks bahasa Inggris, gunakan text-embedding-005. Untuk teks multibahasa, gunakan text-multilingual-embedding-002. Selain itu, untuk kualitas penyematan yang unggul, text-embedding-large-exp-03-07 adalah model besar kami yang dirancang untuk memberikan performa tertinggi.

Mendapatkan embedding teks untuk cuplikan teks

Anda bisa mendapatkan embedding teks untuk cuplikan teks dengan menggunakan Vertex AI API atau Vertex AI SDK untuk Python. Untuk setiap permintaan, Anda dibatasi hingga 250 teks input di us-central1, dan di region lain, teks input maksimumnya adalah 5. Untuk model eksperimental, teks input maksimum adalah 1. Model eksperimental hanya tersedia di us-central1. API ini memiliki batas token input maksimum 20.000. Input yang melebihi batas ini akan menyebabkan error 500. Untuk sebagian besar model, setiap teks input dibatasi hingga 2.048 token; kelebihannya akan terpotong secara otomatis. Untuk text-embedding-large-exp-03-07, setiap teks input dibatasi hingga 8.192 token. Anda juga dapat menonaktifkan pemotongan senyap dengan menetapkan autoTruncate ke false.

Semua model menghasilkan vektor penyematan berdurasi penuh secara default. Untuk text-embedding-large-exp-03-07, vektor ini memiliki 3.072 dimensi, dan model lain menghasilkan vektor 768 dimensi. Namun, model berikut memberi pengguna opsi untuk memilih dimensi output antara 1 dan dimensi output maksimum. Dengan memilih dimensi output yang lebih kecil, pengguna dapat menghemat memori dan ruang penyimpanan, sehingga menghasilkan komputasi yang lebih efisien.

  • text-embedding-004
  • text-embedding-005
  • text-multilingual-embedding-002
  • text-embedding-large-exp-03-07

Contoh berikut menggunakan model text-embedding-005.

Gen AI SDK for Python

Instal

pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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=us-central1
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="text-embedding-005",
    contents=[
        "How do I get a driver's license/learner's permit?",
        "How do I renew my driver's license?",
        "How do I change my address on my driver's license?",
    ],
    config=EmbedContentConfig(
        task_type="RETRIEVAL_DOCUMENT",  # Optional
        output_dimensionality=768,  # 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)

Menambahkan penyematan ke database vektor

Setelah membuat embedding, Anda dapat menambahkan embedding ke database vektor, seperti Vector Search. Hal ini memungkinkan pengambilan dengan latensi rendah, dan sangat penting seiring bertambahnya ukuran data Anda.

Untuk mempelajari Vector Search lebih lanjut, lihat Ringkasan Vector Search.

Langkah berikutnya