Set data multimodal

Set data multimodal di Agent Platform memungkinkan Anda membuat, mengelola, membagikan, dan menggunakan set data multimodal untuk AI Generatif. Set data multimodal menyediakan fitur utama berikut:

  • Anda dapat memuat set data dari BigQuery, DataFrame, atau file JSONL di Cloud Storage.

  • Buat set data Anda sekali dan gunakan di berbagai jenis pekerjaan, seperti supervised fine-tuning dan prediksi batch, yang mencegah duplikasi data dan masalah pemformatan.

  • Simpan semua set data AI generatif Anda di satu lokasi terkelola.

  • Memvalidasi skema dan struktur Anda serta mengukur resource yang diperlukan untuk tugas downstream, sehingga membantu Anda mendeteksi error dan memperkirakan biaya sebelum memulai tugas.

Anda dapat menggunakan set data multimodal melalui Agent Platform SDK atau REST API.

Set data multimodal adalah jenis set data terkelola di Agent Platform. Set data ini berbeda dengan jenis set data terkelola lainnya dalam hal berikut:

  • Set data multimodal dapat mencakup data dari modalitas apa pun (teks, gambar, audio, video). Jenis set data terkelola lainnya hanya untuk satu modalitas.
  • Set data multimodal hanya dapat digunakan untuk layanan AI Generatif di Agent Platform, seperti penyesuaian dan prediksi batch dengan model generatif. Jenis set data terkelola lainnya hanya dapat digunakan untuk model prediktif Agent Platform.
  • Set data multimodal mendukung metode tambahan, seperti assemble dan assess, yang digunakan untuk melihat pratinjau data, memvalidasi permintaan, dan memperkirakan biaya.
  • Set data multimodal disimpan di BigQuery, yang dioptimalkan untuk set data besar.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Agent Platform, BigQuery, and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Agent Platform, BigQuery, and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  8. Menginstal dan melakukan inisialisasi Agent Platform SDK untuk Python
  9. Impor library berikut dan buat klien:
    import agentplatform
    from agentplatform.types import (
        GeminiExample,
        GeminiRequestReadConfig,
        GeminiTemplateConfig,
    )
    
    # To use related features, such as tuning and batch prediction, you may also
    # need to import the Google Gen AI SDK:
    from google import genai
    from google.genai.types import Content, Part
    
    # Create a client for multimodal dataset operations.
    client = agentplatform.Client(project="PROJECT_ID", location="LOCATION")
    

Membuat set data

Anda dapat membuat dataset multimodal dari berbagai sumber:

  • dari DataFrame Pandas

    my_dataset = client.datasets.create_from_pandas(
        dataframe=my_dataframe,
        target_table_id=table_id    # optional
    )
    
  • dari BigQuery DataFrame:

    my_dataset = client.datasets.create_from_bigframes(
        dataframe=my_dataframe,
        target_table_id=table_id    # optional
    )
    
  • dari tabel BigQuery

    my_dataset_from_bigquery = client.datasets.create_from_bigquery(
        bigquery_uri="bq://projectId.datasetId.tableId"
    )
    
  • dari tabel BigQuery, menggunakan REST API

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/datasets" \
    -d '{
      "display_name": "TestDataset",
      "metadataSchemaUri": "gs://google-cloud-aiplatform/schema/dataset/metadata/multimodal_1.0.0.yaml",
      "metadata": {
        "inputConfig": {
          "bigquery_source": {
            "uri": "bq://projectId.datasetId.tableId"
          }
        }
      }
    }'
    
  • dari file JSONL di Cloud Storage. Dalam contoh berikut, file JSONL berisi permintaan yang sudah diformat untuk Gemini, sehingga tidak perlu disusun.

    my_dataset = client.datasets.create_from_gemini_request_jsonl(
      gcs_uri = gcs_uri_of_jsonl_file,
    )
    
  • dari set data multimodal yang ada

    # Load dataset based on its name. This accepts a full resource name or a
    # dataset ID.
    same_dataset = client.datasets.get_multimodal_dataset(name=dataset_name)
    

Membuat dan melampirkan konfigurasi baca

Konfigurasi baca (GeminiRequestReadConfig) menentukan cara mengubah set data multimodal menjadi format yang dapat diteruskan ke model. File ini berisi template dengan placeholder yang diganti dengan nilai kolom set data yang sesuai selama perakitan. Hal ini diperlukan untuk menjalankan tugas penyesuaian atau prediksi batch.

Agent Platform SDK

  1. Buat konfigurasi baca. Ada dua cara untuk membuatnya:

    • Gunakan metode bantuan GeminiRequestReadConfig.single_turn_template:
    read_config = GeminiRequestReadConfig.single_turn_template(
            prompt="This is the image: {image_uris}",
            response="{labels}",
            system_instruction='You are a botanical image classifier. Analyze the provided image '
                    'and determine the most accurate classification of the flower.'
                    'These are the only flower categories: [\'daisy\', \'dandelion\', \'roses\', \'sunflowers\', \'tulips\'].'
                    'Return only one category per image.'
    )
    
    • Buat konfigurasi baca secara manual dari GeminiExample, yang memungkinkan perincian yang lebih mendetail, seperti percakapan multi-turn. Contoh kode berikut juga menyertakan kode opsional yang diberi komentar untuk menentukan field_mapping, yang memungkinkan Anda menggunakan nama placeholder yang berbeda dengan nama kolom set data. Contoh:
    # Define a GeminiExample
    gemini_example = GeminiExample(
      contents=[
          Content(role="user", parts=[Part.from_text(text="This is the image: {image_uris}")]),
          Content(role="model", parts=[Part.from_text(text="This is the flower class: {label}.")]),
          Content(role="user", parts=[Part.from_text(text="Your response should only contain the class label.")]),
          Content(role="model", parts=[Part.from_text(text="{label}")]),
    
          # Optional: If you specify a field_mapping, you can use different placeholder values. For example:
          # Content(role="user", parts=[Part.from_text(text="This is the image: {uri_placeholder}")]),
          # Content(role="model", parts=[Part.from_text(text="This is the flower class: {flower_placeholder}.")]),
          # Content(role="user", parts=[Part.from_text(text="Your response should only contain the class label.")]),
          # Content(role="model", parts=[Part.from_text(text="{flower_placeholder}")]),
      ],
      system_instruction=Content(
          parts=[
              Part.from_text(
                  text='You are a botanical image classifier. Analyze the provided image '
                  'and determine the most accurate classification of the flower.'
                  'These are the only flower categories: [\'daisy\', \'dandelion\', \'roses\', \'sunflowers\', \'tulips\'].'
                  'Return only one category per image.'
              )
          ]
      ),
    )
    
    # Construct the read config, specifying a map for the placeholders.
    read_config = GeminiRequestReadConfig(
        template_config=GeminiTemplateConfig(
            gemini_example=gemini_example,
    
            # Optional: Map the template placeholders to the column names of your dataset.
            # Not required if the template placeholders are column names of the dataset.
            # field_mapping={"uri_placeholder": "image_uris", "flower_placeholder": "labels"},
        ),
    )
    
  2. Lampirkan ke set data dan pertahankan perubahan:

    my_dataset.set_read_config(read_config=read_config)
    my_dataset = client.datasets.update_multimodal_dataset(multimodal_dataset=my_dataset)
    

REST

Panggil metode patch dan perbarui kolom metadata dengan kode berikut:

  • URI tabel BigQuery. Untuk set data yang dibuat dari tabel BigQuery, ini adalah bigquery_uri sumber Anda. Untuk set data yang dibuat dari sumber lain, seperti JSONL atau DataFrame, ini adalah tabel BigQuery tempat data Anda disalin.
  • gemini_template_config.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d $'{
  "metadata": {
    "input_config": {
      "bigquery_source": {
        "uri": "bq://projectId.datasetId.tableId"
      }
    },
    "gemini_template_config_source": {
      "gemini_template_config": {
        "gemini_example": {
          "contents": [
            {
              "role": "user",
              "parts": [
                {
                  "text": "This is the image: {image_uris}"

                }
              ]
            },
            {
              "role": "model",
              "parts": [
                {
                  "text": "response"
                }
              ]
            }
          ]
        "systemInstruction": {
            "parts": [
                {
                    "text": "You are a botanical image classifier."
                }
            ]
          }
        }
      }
    }
  }
}' \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID?updateMask=metadata"

(Opsional) Menyusun set data

Metode assemble menerapkan konfigurasi baca untuk mentransformasi set data Anda dan menyimpan output dalam tabel BigQuery baru. Dengan demikian, Anda dapat melihat pratinjau data sebelum diteruskan ke model.

Secara default, konfigurasi baca yang dilampirkan set data akan digunakan, tetapi Anda dapat meneruskan gemini_request_read_config untuk mengganti perilaku default.

Agent Platform SDK

Metode assemble menampilkan tuple (table_id, dataframe). Teruskan load_dataframe=True untuk juga memuat tabel yang disusun sebagai DataFrame untuk pemeriksaan.

table_id, assembly = client.datasets.assemble(
    name=my_dataset.name,
    gemini_request_read_config=read_config,    # optional if attached to the dataset
    load_dataframe=True,
)

# Inspect the results
assembly.head()

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:assemble" \
-d '{}'

Misalnya, asumsikan bahwa set data multimodal Anda berisi data berikut:

Baris image_uris labels
1 gs://cloud-samples-data/ai-platform/flowers/daisy/1396526833_fb867165be_n.jpg bunga aster

Kemudian, metode assemble membuat tabel BigQuery baru dengan nama table_id, yang setiap barisnya berisi isi permintaan. Contoh:

{
  "contents": [
    {
      "parts": [
        {
          "text": "This is the image: "
        },
        {
          "fileData": {
            "fileUri": "gs://cloud-samples-data/ai-platform/flowers/daisy/1396526833_fb867165be_n.jpg",
            "mimeType": "image/jpeg"
          }
        }
      ],
      "role": "user"
    },
    {
      "parts": [
        {
          "text": "daisy"
        }
      ],
      "role": "model"
    }
  ],
  "systemInstruction": {
    "parts": [
      {
        "text": "You are a botanical image classifier. Analyze the provided image and determine the most accurate classification of the flower.These are the only flower categories: ['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips'].Return only one category per image."
      }
    ]
  }
}

Menyesuaikan model Anda

Anda dapat menyesuaikan model Gemini menggunakan set data multimodal.

(Opsional) Memvalidasi set data

Menilai set data untuk memeriksa apakah set data tersebut berisi error, seperti error pemformatan set data atau error model.

Agent Platform SDK

Panggil assess_tuning_validity(). Secara default, konfigurasi baca yang dilampirkan set data akan digunakan, tetapi Anda dapat meneruskan gemini_request_read_config untuk mengganti perilaku default.

# Attach the read configuration to the dataset.
my_dataset.set_read_config(read_config=read_config)
my_dataset = client.datasets.update_multimodal_dataset(multimodal_dataset=my_dataset)

# Validation for tuning
validation = client.datasets.assess_tuning_validity(
    dataset_name=my_dataset.name,
    model_name="gemini-3.5-flash",
    dataset_usage="SFT_TRAINING"
)

# Inspect validation result
validation.errors

REST

Panggil metode assess dan berikan TuningValidationAssessmentConfig.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:assess" \
-d '{
  "tuningValidationAssessmentConfig": {
    "modelName": "projects/PROJECT_ID/locations/LOCATION/models/gemini-3.5-flash",
    "datasetUsage": "SFT_TRAINING"
  }
}'

(Opsional) Memperkirakan penggunaan resource

Menilai set data untuk mendapatkan jumlah token dan karakter yang dapat ditagih untuk tugas penyesuaian Anda.

Agent Platform SDK

Panggil assess_tuning_resources().

# Resource estimation for tuning.
tuning_resources = client.datasets.assess_tuning_resources(
    dataset_name=my_dataset.name,
    model_name="gemini-3.5-flash"
)

print(tuning_resources)
# For example, TuningResourceUsageAssessmentResult(token_count=362688, billable_character_count=122000)

REST

Panggil metode assess dan berikan TuningResourceUsageAssessmentConfig.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:assess" \
-d '{
  "tuningResourceUsageAssessmentConfig": {
    "modelName": "projects/PROJECT_ID/locations/LOCATION/models/gemini-3.5-flash"
  }
}'

Menjalankan tugas penyesuaian

Gunakan Google Gen AI SDK untuk memulai tugas penyesuaian, dengan meneruskan nama resource set data multimodal. Set data harus memiliki konfigurasi baca yang dilampirkan.

Google Gen AI SDK

from google import genai
from google.genai.types import HttpOptions, CreateTuningJobConfig

genai_client = genai.Client(http_options=HttpOptions(api_version="v1"))

tuning_job = genai_client.tunings.tune(
  base_model="gemini-3.5-flash",
  # Pass the resource name of the Multimodal Dataset, not the dataset object
  training_dataset={
      "vertex_dataset_resource": my_multimodal_dataset.name
  },
  # Optional
  config=CreateTuningJobConfig(
      validation_dataset={
          "vertex_dataset_resource": my_multimodal_validation_dataset.name
      },
      tuned_model_display_name="Example tuning job"),
)

Untuk mengetahui informasi selengkapnya, lihat Membuat tugas penyesuaian.

Prediksi batch

Anda bisa mendapatkan prediksi batch menggunakan set data multimodal.

(Opsional) Memvalidasi set data

Menilai set data untuk memeriksa apakah set data tersebut berisi error, seperti error pemformatan set data atau error model.

Agent Platform SDK

Panggil assess_batch_prediction_validity(). Secara default, konfigurasi baca yang dilampirkan set data akan digunakan, tetapi Anda dapat meneruskan gemini_request_read_config untuk mengganti perilaku default.

# Attach the read configuration to the dataset.
my_dataset.set_read_config(read_config=read_config)
my_dataset = client.datasets.update_multimodal_dataset(multimodal_dataset=my_dataset)

# Validation for batch prediction
validation = client.datasets.assess_batch_prediction_validity(
    dataset_name=my_dataset.name,
    model_name="gemini-3.5-flash"
)

# Inspect validation result
validation.errors

REST

Panggil metode assess dan berikan batchPredictionValidationAssessmentConfig.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:assess" \
-d '{
  "batchPredictionValidationAssessmentConfig": {
    "modelName": "projects/PROJECT_ID/locations/LOCATION/models/gemini-3.5-flash",
  }
}'

(Opsional) Memperkirakan penggunaan resource

Menilai set data untuk mendapatkan jumlah token untuk tugas Anda.

Agent Platform SDK

Panggil assess_batch_prediction_resources().

batch_prediction_resources = client.datasets.assess_batch_prediction_resources(
    dataset_name=my_dataset.name,
    model_name="gemini-3.5-flash"
)

print(batch_prediction_resources)
# For example, BatchPredictionResourceUsageAssessmentResult(token_count=362688, audio_token_count=122000)

REST

Panggil metode assess dan berikan batchPredictionResourceUsageAssessmentConfig.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:assess" \
-d '{
  "batchPredictionResourceUsageAssessmentConfig": {
    "modelName": "projects/PROJECT_ID/locations/LOCATION/models/gemini-3.5-flash"
  }
}'

Menjalankan tugas prediksi batch

Anda dapat menggunakan set data multimodal untuk melakukan prediksi batch dengan meneruskan BigQuerytable_id dari output yang disusun:

Google Gen AI SDK

from google import genai
from google.genai.types import HttpOptions

# Attach the read configuration to the dataset.
my_dataset.set_read_config(read_config=read_config)
my_dataset = client.datasets.update_multimodal_dataset(multimodal_dataset=my_dataset)

# Assemble the dataset to get the assembled BigQuery table.
table_id, _ = client.datasets.assemble(name=my_dataset.name)

genai_client = genai.Client(http_options=HttpOptions(api_version="v1"))

job = genai_client.batches.create(
    model="gemini-3.5-flash",
    src=f"bq://{table_id}",
)

Untuk mengetahui informasi selengkapnya, lihat Meminta tugas prediksi batch.

Batasan

  • Set data multimodal hanya dapat digunakan dengan fitur AI generatif. Kunci enkripsi ini tidak dapat digunakan dengan fitur AI non-generatif seperti pelatihan AutoML dan pelatihan kustom.

  • Set data multimodal hanya dapat digunakan dengan model Google seperti Gemini. Fitur ini tidak dapat digunakan dengan model pihak ketiga.

Harga

Saat Anda menyesuaikan model atau menjalankan tugas prediksi batch, Anda akan ditagih untuk penggunaan AI Generatif dan kueri set data di BigQuery.

Saat Anda membuat, menyusun, atau menilai set data multimodal, Anda akan ditagih untuk penyimpanan dan pembuatan kueri set data multimodal di BigQuery. Secara khusus, operasi berikut menggunakan layanan yang mendasarinya:

  • set data Create

    • Set data yang dibuat dari tabel BigQuery atau DataFrame yang ada tidak dikenai biaya penyimpanan tambahan. Hal ini karena kami menggunakan tampilan logis, bukan menyimpan salinan data lain.
    • Set data yang dibuat dari sumber lain akan menyalin data ke tabel BigQuery baru, yang akan dikenai biaya penyimpanan di BigQuery. Misalnya, penyimpanan logis aktif seharga $0,02 per GiB per bulan.
  • set data Assemble

    • Metode ini membuat tabel BigQuery baru yang berisi set data lengkap dalam format permintaan model, yang menimbulkan biaya penyimpanan di BigQuery. Misalnya, penyimpanan logis aktif seharga $0,02 per GiB per bulan.

    • Metode ini juga membaca set data satu kali, yang menimbulkan biaya kueri di BigQuery. Misalnya, komputasi on demand dalam harga, $6,25 per TiB.

  • Assess membaca set data satu kali, yang menimbulkan biaya kueri di BigQuery. Misalnya, komputasi on demand dalam harga, $6,25 per TiB.

Gunakan Kalkulator Harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.