Menyesuaikan embedding teks

Halaman ini menunjukkan cara menyesuaikan model penyematan teks, textembedding-gecko, dan textembedding-gecko-multilingual. Model dasar ini telah dilatih dengan sekumpulan besar data teks publik. Jika Anda memiliki kasus penggunaan unik yang memerlukan data pelatihan spesifik Anda sendiri, Anda dapat menggunakan penyesuaian model. Setelah Anda menyesuaikan model embedding dasar, model tersebut harus siap untuk kasus penggunaan Anda. Penyesuaian didukung untuk model embedding teks versi stabil.

Model embedding teks mendukung penyesuaian yang diawasi. Penyesuaian yang diawasi menggunakan contoh berlabel yang menunjukkan jenis output yang Anda inginkan dari model penyematan teks selama inferensi. Model penyematan teks tidak mendukung penyesuaian menggunakan Reinforcement learning from human feedback (RLHF).

Untuk mempelajari penyesuaian model lebih lanjut, lihat Cara kerja penyesuaian model.

Peningkatan kualitas yang diharapkan

Vertex AI menggunakan metode penyesuaian parameter yang efisien untuk penyesuaian. Metodologi ini menunjukkan peningkatan kualitas yang signifikan hingga 41% (rata-rata 12%) pada eksperimen yang dilakukan pada set data tolok ukur pengambilan publik.

Kasus penggunaan untuk menyesuaikan model embedding

Dengan menyesuaikan model embedding teks, model Anda dapat beradaptasi dengan embedding ke domain atau tugas tertentu. Hal ini dapat berguna jika model embedding terlatih tidak sesuai dengan kebutuhan spesifik Anda. Misalnya, Anda dapat menyesuaikan model embedding pada set data tertentu tiket dukungan pelanggan untuk perusahaan Anda. Hal ini dapat membantu chatbot memahami berbagai jenis masalah dukungan pelanggan yang biasanya dialami pelanggan Anda, dan dapat menjawab pertanyaan mereka dengan lebih efektif. Tanpa penyesuaian, model tidak akan mengetahui spesifikasi tiket dukungan pelanggan atau solusi untuk masalah spesifik untuk produk Anda.

Alur kerja penyesuaian

Alur kerja penyesuaian model di Vertex AI untuk textembedding-gecko dan textembedding-gecko-multilingual adalah sebagai berikut:

  • Siapkan set data penyesuaian model Anda.
  • Upload set data penyesuaian model ke bucket Cloud Storage.
  • Mengonfigurasi project Anda untuk Vertex AI Pipelines.
  • Buat tugas penyesuaian model.
  • Deploy model yang disesuaikan ke endpoint Vertex AI dengan nama yang sama. Tidak seperti tugas penyesuaian model teks atau Codey, tugas penyesuaian embedding teks tidak men-deploy model yang disesuaikan ke endpoint Vertex AI.

Menyiapkan set data embedding

Set data yang digunakan untuk menyesuaikan model embedding menyertakan data yang selaras dengan tugas yang Anda inginkan untuk dilakukan oleh model.

Format set data untuk menyesuaikan model embedding

Set data pelatihan terdiri dari file berikut, yang harus berada di Cloud Storage. Jalur file ditentukan oleh parameter saat meluncurkan pipeline penyesuaian. Tiga jenis file tersebut adalah file korpus, file kueri, dan label. Hanya melatih label yang diperlukan, tetapi Anda juga dapat memberikan label validasi dan pengujian untuk kontrol yang lebih besar.

  • File korpus: Jalur ditentukan oleh parameter corpus_path. Ini adalah file JSONL yang setiap barisnya memiliki kolom _id, title, dan text dengan nilai string. _id dan text wajib ada, sedangkan title bersifat opsional. Berikut adalah contoh file corpus.jsonl:

    {"_id": "doc1", "title": "Get an introduction to generative AI on Vertex AI", "text": "Vertex AI's Generative AI Studio offers a Google Cloud console tool for rapidly prototyping and testing generative AI models. Learn how you can use Generative AI Studio to test models using prompt samples, design and save prompts, tune a foundation model, and convert between speech and text."}
    {"_id": "doc2", "title": "Use gen AI for summarization, classification, and extraction", "text": "Learn how to create text prompts for handling any number of tasks with Vertex AI's generative AI support. Some of the most common tasks are classification, summarization, and extraction. Vertex AI's PaLM API for text lets you design prompts with flexibility in terms of their structure and format."}
    {"_id": "doc3", "title": "Custom ML training overview and documentation", "text": "Get an overview of the custom training workflow in Vertex AI, the benefits of custom training, and the various training options that are available. This page also details every step involved in the ML training workflow from preparing data to predictions."}
    {"_id": "doc4", "text": "Text embeddings are useful for clustering, information retrieval, retrieval-augmented generation (RAG), and more."}
    {"_id": "doc5", "title": "Text embedding tuning", "text": "Google's text embedding models can be tuned on Vertex AI."}
    
  • File kueri: File kueri berisi contoh kueri Anda. Jalur ditentukan oleh parameter queries_path. File kueri menggunakan format JSONL dan memiliki kolom yang sama dengan file korpus. Berikut adalah contoh file queries.jsonl:

    {"_id": "query1", "text": "Does Vertex support generative AI?"}
    {"_id": "query2", "text": "What can I do with Vertex GenAI offerings?"}
    {"_id": "query3", "text": "How do I train my models using Vertex?"}
    {"_id": "query4", "text": "What is a text embedding?"}
    {"_id": "query5", "text": "Can text embedding models be tuned on Vertex?"}
    {"_id": "query6", "text": "embeddings"}
    {"_id": "query7", "text": "embeddings for rag"}
    {"_id": "query8", "text": "custom model training"}
    {"_id": "query9", "text": "Google Cloud PaLM API"}
    
  • Label pelatihan: Jalur ditentukan oleh parameter train_label_path. Train_label_path adalah Cloud Storage URI ke lokasi data label pelatihan dan ditentukan saat Anda membuat tugas penyesuaian. Label harus berupa file TSV dengan header. Subset kueri dan korpus perlu disertakan dalam file label pelatihan Anda. File tersebut harus memiliki kolom query-id, corpus-id, dan score. query-id adalah string yang cocok dengan kunci _id dari file kueri, corpus-id adalah string yang cocok dengan _id di file korpus. Score adalah nilai bilangan bulat non-negatif. Setiap skor yang lebih besar dari nol menunjukkan bahwa dokumen tersebut terkait dengan kueri. Angka yang lebih besar menunjukkan tingkat relevansi yang lebih besar. Jika skor dihilangkan, nilai defaultnya adalah 1. Berikut adalah contoh file train_labels.tsv:

    query-id  corpus-id   score
    query1    doc1    1
    query2    doc2    1
    query3    doc3    2
    query3    doc5  1
    query4    doc4  1
    query4    doc5  1
    query5    doc5  2
    query6    doc4  1
    query6    doc5  1
    query7    doc4  1
    query8    doc3  1
    query9    doc2  1
    
  • Label pengujian: Opsional. Label pengujian memiliki format yang sama dengan label pelatihan dan ditentukan oleh parameter test_label_path. Jika test_label_path tidak diberikan, label pengujian akan dipisahkan secara otomatis dari label pelatihan.

  • Label validasi: Opsional. Label validasi memiliki format yang sama dengan label pelatihan dan ditentukan oleh parameter validation_label_path. Jika validation_label_path tidak disediakan, label validasi akan dipisahkan secara otomatis dari label pelatihan.

Persyaratan ukuran set data

File set data yang disediakan harus memenuhi batasan berikut:

  • Jumlah kueri harus antara 9 dan 40.000.

  • Jumlah dokumen dalam korpus harus antara 9 dan 500.000.

  • Setiap file label set data harus menyertakan minimal 3 ID kueri, dan di semua bagian set data, setidaknya harus ada 9 ID kueri.

  • Jumlah total label harus kurang dari 500.000.

Mengonfigurasi project Anda untuk Vertex AI Pipelines

Penyesuaian dijalankan dalam project Anda menggunakan platform Vertex AI Pipelines.

Mengonfigurasi izin

Pipeline mengeksekusi kode pelatihan dalam dua akun layanan yang dikelola Google. Akun ini harus dikonfigurasi dengan izin tertentu.

Akun layanan default Compute Engine
PROJECT_NUMBER-compute@developer.gserviceaccount.com

Akun layanan ini memerlukan:

  • Akses Storage Object Viewer ke setiap file set data yang Anda buat di Cloud Storage.

  • Akses Storage Object User ke direktori Cloud Storage output dari pipeline Anda, PIPELINE_OUTPUT_DIRECTORY.

  • Akses Vertex AI User ke project Anda.

Anda dapat menentukan akun layanan kustom, bukan akun layanan default Compute Engine. Untuk informasi selengkapnya, lihat Mengonfigurasi akun layanan dengan izin terperinci.

Agen Layanan Vertex AI
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

Akun layanan ini memerlukan:

  • Akses Storage Object Viewer ke setiap file set data yang Anda buat di Cloud Storage.

  • Akses Storage Object User ke direktori Cloud Storage output dari pipeline Anda, PIPELINE_OUTPUT_DIRECTORY.

Untuk informasi selengkapnya tentang mengonfigurasi izin set data Cloud Storage, lihat Mengonfigurasi bucket Cloud Storage untuk artefak pipeline.

Menggunakan Akselerator

Salah satu akselerator berikut dapat digunakan untuk tuning:

  • NVIDIA_L4

  • NVIDIA_TESLA_A100

  • NVIDIA_TESLA_T4

  • NVIDIA_TESLA_V100

  • NVIDIA_TESLA_P100

Meluncurkan tugas tuning memerlukan kuota Restricted image training GPUs yang memadai untuk jenis akselerator dan region yang Anda pilih, misalnya Restricted image training Nvidia V100 GPUs per region. Untuk menambah kuota project Anda, lihat meminta kuota tambahan.

Tidak semua akselerator tersedia di semua wilayah. Lihat Menggunakan akselerator di Vertex AI untuk mengetahui informasi selengkapnya.

Membuat tugas penyesuaian model embedding

Anda dapat membuat tugas penyesuaian model embedding menggunakan Konsol Google Cloud atau REST API.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • DISPLAY_NAME: Nama tampilan untuk pipelineJob.
  • PIPELINE_OUTPUT_DIRECTORY: Jalur untuk artefak output pipeline, dimulai dengan "gs://".
  • PROJECT_ID: ID project Google Cloud Anda.
  • LOCATION: Region project Google Cloud untuk menjalankan pipeline. Penyesuaian didukung di region mana pun tempat project Anda memiliki kuota GPU yang memadai. Lihat Menggunakan akselerator untuk informasi selengkapnya. Karena penayangan resource mungkin dibatasi di wilayah lain, sebaiknya gunakan us-central1.
  • QUERIES_PATH: URI bucket Cloud Storage yang menyimpan data kueri, dimulai dengan "gs://".
  • CORPUS_PATH: URI Cloud Storage untuk data korpus, dimulai dengan "gs://".
  • TRAIN_LABEL_PATH: URI Cloud Storage lokasi data label kereta, dimulai dengan "gs://".
  • TEST_LABEL_PATH: Opsional. URI Cloud Storage lokasi data label pengujian, dimulai dengan "gs://". Meneruskan string kosong akan mengarahkan pipeline untuk otomatis membagi set data pengujian dari set data pelatihan.
  • VALIDATION_LABEL_PATH: Opsional. URI Cloud Storage lokasi data label validasi, dimulai dengan "gs://". Meneruskan string kosong akan mengarahkan pipeline untuk otomatis membagi set data validasi dari set data pelatihan.
  • ACCELERATOR_TYPE: Opsional. Jenis akselerator yang akan digunakan untuk pelatihan. Nilai defaultnya adalah NVIDIA_TESLA_V100. Untuk mengetahui nilai yang memungkinkan, lihat Menggunakan akselerator.
  • ACCELERATOR_COUNT: Opsional. Jumlah akselerator yang digunakan saat pelatihan. Penggunaan akselerator dalam jumlah yang lebih besar dapat mempercepat pelatihan, tetapi tidak memengaruhi kualitas. Default-nya adalah 4.
  • MACHINE_TYPE: Opsional. Jenis mesin yang akan digunakan untuk pelatihan. Nilai defaultnya adalah n1-standard-16. Untuk mengetahui informasi tentang pemilihan jenis mesin yang sesuai dengan jenis dan jumlah akselerator yang Anda pilih, lihat Platform GPU.
  • BASE_MODEL_VERSION_ID: Opsional. Gunakan ini untuk menentukan model embedding teks yang akan disesuaikan. Nilai defaultnya adalah textembedding-gecko@001. Untuk mengetahui kemungkinan nilai, lihat versi stabil.
  • MODEL_DISPLAY_NAME: Opsional. Nama tampilan untuk model yang di-tuning saat muncul di Model Registry. Default-nya adalah "tuned-text-embedding-model".
  • TASK_TYPE: Opsional. Menyetel parameter ini akan mengoptimalkan model yang telah disesuaikan untuk tugas downstream tertentu. Nilai defaultnya adalah DEFAULT. Untuk mengetahui informasi selengkapnya, baca artikel Mendapatkan embedding teks.
  • BATCH_SIZE: Opsional. Ukuran batch pelatihan. Default-nya adalah 128.
  • ITERATIONS: Opsional. Jumlah langkah untuk melakukan penyesuaian model. Defaultnya adalah 1000, dan harus lebih besar dari 30.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs

Meminta isi JSON:

{
  "displayName": "DISPLAY_NAME",
  "runtimeConfig": {
    "gcsOutputDirectory": "PIPELINE_OUTPUT_DIRECTORY",
    "parameterValues": {
      "project": "PROJECT_ID",
      "location": "LOCATION",
      "queries_path": "QUERIES_PATH",
      "corpus_path": "CORPUS_PATH",
      "train_label_path": "TRAIN_LABEL_PATH",
      "test_label_path": "TEST_LABEL_PATH",
      "validation_label_path": "VALIDATION_LABEL_PATH",
      "accelerator_type": "ACCELERATOR_TYPE",
      "accelerator_count": "ACCELERATOR_COUNT",
      "machine_type": "MACHINE_TYPE",
      "base_model_version_id": "BASE_MODEL_VERSION_ID",
      "model_display_name": "MODEL_DISPLAY_NAME",
      "task_type": "TASK_TYPE",
      "batch_size": "BATCH_SIZE",
      "iterations": "ITERATIONS"
    }
  },
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/llm-text-embedding/tune-text-embedding-model/v1.1.2"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Setelah meluncurkan pipeline, ikuti progres tugas penyesuaian Anda melalui konsol Google Cloud.

Buka konsol Google Cloud

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

package aiplatform;

// [START aiplatform_sdk_embedding_tuning]
import com.google.cloud.aiplatform.v1beta1.CreatePipelineJobRequest;
import com.google.cloud.aiplatform.v1beta1.LocationName;
import com.google.cloud.aiplatform.v1beta1.PipelineJob;
import com.google.cloud.aiplatform.v1beta1.PipelineJob.RuntimeConfig;
import com.google.cloud.aiplatform.v1beta1.PipelineServiceClient;
import com.google.cloud.aiplatform.v1beta1.PipelineServiceSettings;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class CreatePipelineJobEmbeddingModelTuningSample {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "PROJECT";
    String baseModelVersionId = "BASE_MODEL_VERSION_ID";
    String taskType = "TASK_TYPE";
    String location = "us-central1";
    String pipelineJobDisplayName = "PIPELINE_JOB_DISPLAY_NAME";
    String modelDisplayName = "MODEL_DISPLAY_NAME";
    String outputDir = "OUTPUT_DIR";
    String queriesPath = "DATASET_URI";
    String corpusPath = "DATASET_URI";
    String trainLabelPath = "DATASET_URI";
    String testLabelPath = "DATASET_URI";
    int batchSize = 50;
    int iterations = 300;

    createPipelineJobEmbeddingModelTuningSample(
        project,
        baseModelVersionId,
        taskType,
        location,
        pipelineJobDisplayName,
        modelDisplayName,
        outputDir,
        queriesPath,
        corpusPath,
        trainLabelPath,
        testLabelPath,
        batchSize,
        iterations);
  }

  // Create a model tuning job
  public static void createPipelineJobEmbeddingModelTuningSample(
      String project,
      String baseModelVersionId,
      String taskType,
      String location,
      String pipelineJobDisplayName,
      String modelDisplayName,
      String outputDir,
      String queriesPath,
      String corpusPath,
      String trainLabelPath,
      String testLabelPath,
      int batchSize,
      int iterations)
      throws IOException {
    final String endpoint = String.format("%s-aiplatform.googleapis.com:443", location);
    PipelineServiceSettings pipelineServiceSettings =
        PipelineServiceSettings.newBuilder().setEndpoint(endpoint).build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (PipelineServiceClient client = PipelineServiceClient.create(pipelineServiceSettings)) {
      Map<String, Value> parameterValues = new HashMap<>();
      parameterValues.put("project", stringToValue(project));
      parameterValues.put("base_model_version_id", stringToValue(baseModelVersionId));
      parameterValues.put("task_type", stringToValue(taskType));
      parameterValues.put(
          "location",
          stringToValue(
              "us-central1")); // Deployment is only supported in us-central1.
      parameterValues.put("queries_path", stringToValue(queriesPath));
      parameterValues.put("corpus_path", stringToValue(corpusPath));
      parameterValues.put("train_label_path", stringToValue(trainLabelPath));
      parameterValues.put("test_label_path", stringToValue(testLabelPath));
      parameterValues.put("batch_size", numberToValue(batchSize));
      parameterValues.put("iterations", numberToValue(iterations));

      RuntimeConfig runtimeConfig =
          RuntimeConfig.newBuilder()
              .setGcsOutputDirectory(outputDir)
              .putAllParameterValues(parameterValues)
              .build();

      PipelineJob pipelineJob =
          PipelineJob.newBuilder()
              .setTemplateUri(
                  "https://us-kfp.pkg.dev/ml-pipeline/llm-text-embedding/tune-text-embedding-model/v1.1.2")
              .setDisplayName(pipelineJobDisplayName)
              .setRuntimeConfig(runtimeConfig)
              .build();

      LocationName parent = LocationName.of(project, location);
      CreatePipelineJobRequest request =
          CreatePipelineJobRequest.newBuilder()
              .setParent(parent.toString())
              .setPipelineJob(pipelineJob)
              .build();

      PipelineJob response = client.createPipelineJob(request);
      System.out.format("response: %s\n", response);
      System.out.format("Name: %s\n", response.getName());
    }
  }

  static Value stringToValue(String str) {
    return Value.newBuilder().setStringValue(str).build();
  }

  static Value numberToValue(int n) {
    return Value.newBuilder().setNumberValue(n).build();
  }
}

// [END aiplatform_sdk_embedding_tuning]

Konsol

Untuk menyesuaikan model penyematan teks menggunakan Konsol Google Cloud, Anda dapat meluncurkan pipeline penyesuaian menggunakan langkah-langkah berikut:

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Vertex AI Pipelines.

    Buka Vertex AI Pipelines

  2. Klik Create run untuk membuka panel Create pipeline run.
  3. Klik Select from existing pipelines lalu masukkan detail berikut:
    1. Pilih "ml-pipeline" dari menu drop-down pilih resource.
    2. Pilih "llm-text-embedding" dari drop-down Repository.
    3. Pilih "tune-text-embedding-model" dari drop-down Pipeline atau komponen.
    4. Pilih versi berlabel "v1.1.2" dari drop-down Versi.
  4. Tentukan Run name untuk mengidentifikasi operasi pipeline secara unik.
  5. Di menu drop-down Region, pilih region untuk membuat proses pipeline. Saat ini, hanya us-central1 yang didukung.
  6. Klik Lanjutkan. Panel Konfigurasi runtime akan muncul.
  7. Di bagian Cloud storage location, klik Browse untuk memilih bucket Cloud Storage guna menyimpan artefak output pipeline, lalu klik Select.
  8. Di bagian Parameter pipeline, tentukan parameter untuk pipeline penyesuaian. Lihat dokumentasi REST untuk mengetahui arti parameter.
  9. Klik Submit untuk membuat operasi pipeline.

Contoh perintah curl

PROJECT_ID=PROJECT_ID
LOCATION=LOCATION
BASE_MODEL_VERSION_ID=BASE_MODEL_VERSION_ID
PIPELINE_OUTPUT_DIRECTORY=PIPELINE_OUTPUT_DIRECTORY
QUERIES_PATH=QUERIES_PATH
CORPUS_PATH=CORPUS_PATH
TRAIN_LABEL_PATH=TRAIN_LABEL_PATH

curl -X POST  \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/pipelineJobs?pipelineJobId=tune-text-embedding-$(date +%Y%m%d%H%M%S)" \
-d '{
  "displayName": "tune-text-embedding-model",
  "runtimeConfig": {
    "gcsOutputDirectory": "'${PIPELINE_OUTPUT_DIRECTORY}'",
    "parameterValues": {
      "project":  "'${PROJECT_ID}'",
      "base_model_version_id":  "'${BASE_MODEL_VERSION_ID}'",
      "location":   "'${LOCATION}'",
      "queries_path":  "'${QUERIES_PATH}'",
      "corpus_path":  "'${CORPUS_PATH}'",
      "train_label_path":  "'${TRAIN_LABEL_PATH}'"
    }
  },
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/llm-text-embedding/tune-text-embedding-model/v1.1.2"
}'

Menggunakan model yang telah disesuaikan

Melihat model yang disesuaikan di Model Registry

Setelah tugas penyesuaian selesai, model yang telah disesuaikan tidak otomatis di-deploy ke endpoint. Ini akan tersedia sebagai resource Model di Registry Model. Anda dapat melihat daftar model dalam project saat ini, termasuk model yang disesuaikan, menggunakan konsol Google Cloud.

Untuk melihat model yang disesuaikan di konsol Google Cloud, buka halaman Vertex AI Model Registry.

Buka Vertex AI Model Registry

Deploy model Anda

Setelah menyesuaikan model embedding, Anda perlu men-deploy resource Model. Untuk men-deploy model embedding yang disesuaikan, lihat Men-deploy model ke endpoint.

Tidak seperti model dasar, model embedding teks yang disesuaikan dikelola oleh pengguna. Hal ini termasuk mengelola resource aktif, seperti jenis mesin dan akselerator. Untuk mencegah error kehabisan memori selama prediksi, sebaiknya deploy menggunakan jenis GPU NVIDIA_TESLA_A100, yang dapat mendukung ukuran batch hingga 5 untuk panjang input apa pun.

Mirip dengan model dasar textembedding-gecko, model yang disesuaikan mendukung hingga 3.072 token dan dapat memotong input yang lebih panjang.

Mendapatkan prediksi tentang model yang di-deploy

Setelah model yang telah disesuaikan di-deploy, Anda dapat menggunakan salah satu perintah berikut untuk mengeluarkan permintaan ke endpoint model yang telah disesuaikan.

Contoh perintah curl untuk model textembedding-gecko@001 yang disesuaikan

Untuk mendapatkan prediksi dari versi textembedding-gecko@001 yang telah disesuaikan, gunakan contoh perintah curl di bawah.

PROJECT_ID=PROJECT_ID
LOCATION=LOCATION
ENDPOINT_URI=https://${LOCATION}-aiplatform.googleapis.com
MODEL_ENDPOINT=TUNED_MODEL_ENDPOINT_ID

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json"  \
    ${ENDPOINT_URI}/v1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${MODEL_ENDPOINT}:predict \
    -d '{
  "instances": [
    {
      "content": "Dining in New York City"
    },
    {
      "content": "Best resorts on the east coast"
    }
  ]
}'

Contoh perintah curl untuk model non textembedding-gecko@001

Versi model lain yang telah disesuaikan (misalnya, textembedding-gecko@003 dan textembedding-gecko-multilingual@001) memerlukan 2 input tambahan: task_type dan title. Dokumentasi selengkapnya untuk parameter ini dapat ditemukan di perintah curl

PROJECT_ID=PROJECT_ID
LOCATION=LOCATION
ENDPOINT_URI=https://${LOCATION}-aiplatform.googleapis.com
MODEL_ENDPOINT=TUNED_MODEL_ENDPOINT_ID

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json"  \
    ${ENDPOINT_URI}/v1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${MODEL_ENDPOINT}:predict \
    -d '{
  "instances": [
    {
      "content": "Dining in New York City",
      "task_type": "DEFAULT",
      "title": ""
    },
    {
      "content": "There are many resorts to choose from on the East coast...",
      "task_type": "RETRIEVAL_DOCUMENT",
      "title": "East Coast Resorts"
    }
  ]
}'

Contoh output

Output ini berlaku untuk model textembedding-gecko dan textembedding-gecko-multilingual, apa pun versinya.

{
 "predictions": [
   [ ... ],
   [ ... ],
   ...
 ],
 "deployedModelId": "...",
 "model": "projects/.../locations/.../models/...",
 "modelDisplayName": "tuned-text-embedding-model",
 "modelVersionId": "1"
}

Langkah selanjutnya