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 tugas, seperti penyetelan halus yang diawasi dan prediksi batch, yang mencegah duplikasi data dan masalah pemformatan.
Simpan semua set data AI generatif Anda di satu lokasi terkelola.
Validasi skema dan struktur Anda serta kuantifikasi resource yang diperlukan untuk tugas hilir, sehingga membantu Anda menemukan 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 dari jenis set data terkelola lainnya dalam hal berikut:
- Set data multimodal dapat menyertakan 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 penyetelan 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
assembledanassess, 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
- Sign in to your Google Cloud account. 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Agent Platform, BigQuery, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Agent Platform, BigQuery, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Instal dan lakukan inisialisasi Agent Platform SDK untuk Python
- Lakukan impor pada library berikut:
from google.cloud.aiplatform.preview import datasets # To use related features, you may also need to import some of the following features: from vertexai.preview.tuning import sft from vertexai.batch_prediction import BatchPredictionJob from vertexai.generative_models import Content, Part, Tool, ToolConfig, SafetySetting, GenerationConfig, FunctionDeclaration
Membuat set data
Anda dapat membuat multimodal dataset dari berbagai sumber:
dari DataFrame Pandas
my_dataset = datasets.MultimodalDataset.from_pandas( dataframe=my_dataframe, target_table_id=table_id # optional )dari sebuah DataFrame BigQuery:
my_dataset = datasets.MultimodalDataset.from_bigframes( dataframe=my_dataframe, target_table_id=table_id # optional )dari tabel BigQuery
my_dataset_from_bigquery = datasets.MultimodalDataset.from_bigquery( bigquery_uri=f"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 diperlukan perakitan.
my_dataset = datasets.MultimodalDataset.from_gemini_request_jsonl( gcs_uri = gcs_uri_of_jsonl_file, )dari set data multimodal yang ada
# Get the most recently created dataset first_dataset = datasets.MultimodalDataset.list()[0] # Load dataset based on its name same_dataset = datasets.MultimodalDataset(first_dataset.name)
Membuat dan melampirkan template
Template menentukan cara mengubah set data multimodal ke format yang dapat diteruskan ke model. Hal ini diperlukan untuk menjalankan tugas penyetelan atau prediksi batch.
Agent Platform SDK
Buat template. Ada dua cara untuk membuat template:
- Gunakan metode helper
construct_single_turn_template:
template_config = datasets.construct_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 template secara manual dari
GeminiExample, yang memungkinkan granularitas yang lebih baik, seperti percakapan multi-turn. Contoh kode berikut juga menyertakan kode opsional yang dikomentari untuk menentukanfield_mapping, yang memungkinkan Anda menggunakan nama placeholder yang berbeda dengan nama kolom set data. Contoh:
# Define a GeminiExample gemini_example = datasets.GeminiExample( contents=[ Content(role="user", parts=[Part.from_text("This is the image: {image_uris}")]), Content(role="model", parts=[Part.from_text("This is the flower class: {label}.")]), Content(role="user", parts=[Part.from_text("Your response should only contain the class label.")]), Content(role="model", parts=[Part.from_text("{label}")]), # Optional: If you specify a field_mapping, you can use different placeholder values. For example: # Content(role="user", parts=[Part.from_text("This is the image: {uri_placeholder}")]), # Content(role="model", parts=[Part.from_text("This is the flower class: {flower_placeholder}.")]), # Content(role="user", parts=[Part.from_text("Your response should only contain the class label.")]), # Content(role="model", parts=[Part.from_text("{flower_placeholder}")]), ], system_instruction=Content( parts=[ Part.from_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 template, specifying a map for the placeholder template_config = datasets.GeminiTemplateConfig( gemini_example=gemini_example, # Optional: Map the template placeholders to the column names of your dataset. # Not required if the template placesholders are column names of the dataset. # field_mapping={"uri_placeholder": "image_uris", "flower_placeholder": "labels"}, )- Gunakan metode helper
Lampirkan ke set data:
my_dataset.attach_template_config(template_config=template_config)
REST
Panggil metode patch dan perbarui kolom metadata dengan hal berikut:
- URI tabel BigQuery. Untuk set data yang dibuat dari tabel BigQuery, ini adalah
bigquery_urisumber Anda. Untuk set data yang dibuat dari sumber lain, seperti JSONL atau DataFrame, ini adalah tabel BigQuery tempat data Anda disalin. - A
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) Merakit set data
Metode assemble menerapkan template untuk mengubah set data Anda dan menyimpan output dalam tabel BigQuery baru. Hal ini memungkinkan Anda melihat pratinjau data sebelum diteruskan ke model.
Secara default, template_config terlampir set data digunakan, tetapi Anda dapat menentukan template untuk mengganti perilaku default.
Agent Platform SDK
table_id, assembly = my_dataset.assemble(template_config=template_config)
# 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 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 tempat setiap baris 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 dapat menyesuaikan model Gemini menggunakan set data multimodal.
(Opsional) Memvalidasi set data
Nilai 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, template_config terlampir set data digunakan, tetapi Anda dapat menentukan template untuk mengganti perilaku default.
# Attach template
my_dataset.attach_template_config(template_config=template_config)
# Validation for tuning
validation = my_dataset.assess_tuning_validity(
model_name="gemini-2.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-2.5-flash",
"datasetUsage": "SFT_TRAINING"
}
}'
(Opsional) Memperkirakan penggunaan resource
Nilai set data untuk mendapatkan jumlah token dan karakter yang dapat ditagih untuk tugas penyetelan Anda.
Agent Platform SDK
Panggil assess_tuning_resources().
# Resource estimation for tuning.
tuning_resources = my_dataset.assess_tuning_resources(
model_name="gemini-2.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-2.5-flash"
}
}'
Menjalankan tugas penyetelan
Agent Platform SDK
from vertexai.tuning import sft
sft_tuning_job = sft.train(
source_model="gemini-2.5-flash",
# Pass the Vertex Multimodal Datasets directly
train_dataset=my_multimodal_dataset,
validation_dataset=my_multimodal_validation_dataset,
)
Google Gen AI SDK
from google import genai
from google.genai.types import HttpOptions, CreateTuningJobConfig
client = genai.Client(http_options=HttpOptions(api_version="v1"))
tuning_job = client.tunings.tune(
base_model="gemini-2.5-flash",
# Pass the resource name of the Multimodal Dataset, not the dataset object
training_dataset={
"vertex_dataset_resource": my_multimodal_dataset.resource_name
},
# Optional
config=CreateTuningJobConfig(
tuned_model_display_name="Example tuning job"),
)
Untuk mengetahui informasi selengkapnya, lihat Membuat tugas penyetelan.
Prediksi batch
Anda bisa mendapatkan prediksi batch menggunakan set data multimodal.
(Opsional) Memvalidasi set data
Nilai 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, template_config terlampir set data digunakan, tetapi Anda dapat menentukan template untuk mengganti perilaku default.
# Attach template
my_dataset.attach_template_config(template_config=template_config)
# Validation for batch prediction
validation = my_dataset.assess_batch_prediction_validity(
model_name="gemini-2.5-flash",
dataset_usage="SFT_TRAINING"
)
# 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-2.5-flash",
}
}'
(Opsional) Memperkirakan penggunaan resource
Nilai set data untuk mendapatkan jumlah token untuk tugas Anda.
Agent Platform SDK
Panggil assess_batch_prediction_resources().
batch_prediction_resources = my_dataset.assess_batch_prediction_resources(
model_name="gemini-2.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-2.5-flash"
}
}'
Menjalankan tugas prediksi batch
Anda dapat menggunakan set data multimodal untuk melakukan prediksi batch dengan meneruskan BigQuerytable_id dari output yang dirakit:
Agent Platform SDK
from vertexai.batch_prediction import BatchPredictionJob
# Dataset needs to have an attached template_config to batch prediction
my_dataset.attach_template_config(template_config=template_config)
# assemble dataset to get assembly table id
assembly_table_id, _ = my_dataset.assemble()
batch_prediction_job = BatchPredictionJob.submit(
source_model="gemini-2.5-flash",
input_dataset=assembly_table_id,
)
Google Gen AI SDK
from google import genai
client = genai.Client(http_options=HttpOptions(api_version="v1"))
# Attach template_config and assemble dataset
my_dataset.attach_template_config(template_config=template_config)
assembly_table_id, _ = my_dataset.assemble()
job = client.batches.create(
model="gemini-2.5-flash",
src=assembly_table_id,
)
Untuk mengetahui informasi selengkapnya, lihat Meminta tugas prediksi batch.
Batasan
Set data multimodal hanya dapat digunakan dengan fitur AI generatif. Set data 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. Set data 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 membuat kueri set data di BigQuery.
Saat Anda membuat, merakit, atau menilai set data multimodal, Anda akan ditagih untuk menyimpan dan membuat 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 menyalin data ke tabel BigQuery baru, yang dikenai biaya penyimpanan di BigQuery. Misalnya, penyimpanan logis aktif seharga $0,02 per GiB per bulan.
Set data
AssembleMetode ini membuat tabel BigQuery baru yang berisi set data lengkap dalam format permintaan model, yang dikenai biaya penyimpanan di BigQuery. Misalnya, penyimpanan logis aktif seharga $0,02 per GiB per bulan.
Metode ini juga membaca set data satu kali, yang dikenai biaya kueri di BigQuery. Misalnya, komputasi sesuai permintaan dalam harga, $6,25 per TiB.
Assessmembaca set data satu kali, yang dikenai biaya kueri di BigQuery. Misalnya, komputasi sesuai permintaan dalam harga, $6,25 per TiB.
Gunakan Kalkulator Harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda perkirakan.