Mendapatkan embedding teks

Panduan ini menunjukkan cara membuat embedding teks menggunakan Text embeddings API Vertex AI. Halaman ini membahas beberapa topik berikut:

Vertex AI Text Embeddings API menggunakan representasi vektor padat teks. Embedding ini dibuat menggunakan metode deep learning yang serupa dengan yang digunakan oleh model bahasa besar. Tidak seperti vektor renggang, yang cenderung memetakan kata secara langsung ke angka, vektor padat dirancang untuk merepresentasikan makna sebuah teks. Hal ini memungkinkan Anda menelusuri bagian teks yang sesuai dengan makna kueri, meskipun bagian teks tersebut tidak menggunakan kata yang sama.

Karakteristik utama embedding ini meliputi:

  • Dimensi tinggi: Model menghasilkan vektor berdimensi tinggi. Misalnya, gemini-embedding-001 menggunakan vektor 3072 dimensi. Anda dapat mengurangi dimensi output untuk menghemat ruang penyimpanan dan meningkatkan efisiensi komputasi.
  • Vektor yang dinormalisasi: Vektor output dinormalisasi, sehingga Anda dapat menggunakan kesamaan kosinus, perkalian titik, atau jarak Euclidean untuk mendapatkan peringkat kesamaan yang sama.

Untuk mempelajari lebih lanjut, lihat referensi berikut:

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.
  7. Model yang didukung

    Anda bisa mendapatkan embedding teks dengan menggunakan model berikut:

    Nama model Deskripsi Dimensi Output Panjang urutan maksimum Bahasa teks yang didukung
    gemini-embedding-001 Performa canggih untuk tugas bahasa Inggris, multibahasa, dan kode. Model ini menyatukan model khusus sebelumnya seperti text-embedding-005 dan text-multilingual-embedding-002 serta mencapai performa yang lebih baik di domain masing-masing. Baca Laporan Teknis kami untuk mengetahui detail selengkapnya. hingga 3072 2048 token Bahasa teks yang didukung
    text-embedding-005 Khusus dalam tugas bahasa Inggris dan kode. hingga 768 2048 token Inggris
    text-multilingual-embedding-002 Khusus dalam tugas multibahasa. hingga 768 2048 token Bahasa teks yang didukung

    Untuk kualitas embedding yang lebih baik, gemini-embedding-001 adalah model besar kami yang dirancang untuk memberikan performa tertinggi. Perhatikan bahwa gemini-embedding-001 mendukung satu instance per permintaan.

    Hanya gunakan nama model seperti yang tercantum dalam tabel model yang didukung. Jangan tentukan nama model tanpa akhiran @version atau gunakan @latest, karena format ini tidak valid.

    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.

    Batas API

    Setiap permintaan dibatasi hingga 250 teks input dan total 20.000 token input. Jika permintaan melebihi batas token, error 400 akan ditampilkan. Setiap teks input individu dibatasi hingga 2.048 token, dan token yang berlebih akan dipangkas tanpa pemberitahuan. Untuk menonaktifkan pemangkasan senyap, tetapkan autoTruncate ke false.

    Untuk mengetahui informasi selengkapnya, lihat Batas embedding teks.

    Pilih dimensi penyematan

    Secara default, semua model menghasilkan vektor embedding berdurasi penuh. Untuk gemini-embedding-001, vektor ini memiliki 3.072 dimensi, dan untuk model lainnya, vektor ini memiliki 768 dimensi. Untuk mengontrol ukuran vektor sematan output, Anda dapat menggunakan parameter output_dimensionality. Dimensi output yang lebih kecil dapat menghemat ruang penyimpanan dan meningkatkan efisiensi komputasi untuk aplikasi hilir, dengan potensi penurunan kualitas.

    Contoh berikut menggunakan model gemini-embedding-001.

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

    Menambahkan embedding ke database vektor

    Setelah membuat embedding, Anda dapat menambahkannya 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