Kelas prediksi

Vertex AI SDK menyertakan class prediksi berikut. Satu class adalah untuk prediksi batch. Class lainnya terkait dengan prediksi online atau prediksi Vektor Search. Untuk mengetahui informasi selengkapnya, lihat Ringkasan mendapatkan prediksi di Vertex AI.

Class prediksi batch

Prediksi batch adalah grup permintaan prediksi asinkron. Anda meminta prediksi batch dari resource model tanpa harus men-deploy model ke endpoint. Prediksi batch cocok digunakan saat Anda tidak memerlukan respons langsung dan ingin memproses data dengan satu permintaan. BatchPredictionJob adalah satu class di Vertex AI SDK yang khusus untuk prediksi batch.

BatchPredictionJob

Class BatchPredictionJob mewakili grup permintaan prediksi asinkron. Ada dua cara untuk membuat tugas prediksi batch:

  1. Cara yang direkomendasikan untuk membuat tugas prediksi batch adalah dengan menggunakan metode batch_predict pada Model terlatih Anda. Metode ini memerlukan parameter berikut:

    • instances_format: Format file permintaan prediksi batch: jsonl, csv, bigquery, tf-record, tf-record-gzip, atau file-list.
    • prediction_format: Format file respons prediksi batch: jsonl, csv, bigquery, tf-record, tf-record-gzip, atau file-list.
    • gcs_source: Daftar satu atau beberapa jalur Cloud Storage ke permintaan prediksi batch Anda.
    • gcs_destination_prefix: Jalur Cloud Storage tempat Vertex AI menulis prediksi.

    Kode berikut adalah contoh cara Anda memanggil Model.batch_predict:

    batch_prediction_job = model.batch_predict(
        instances_format="jsonl",
        predictions_format="jsonl",
        job_display_name="your_job_display_name_string",
        gcs_source=['gs://path/to/my/dataset.csv'],
        gcs_destination_prefix='gs://path/to/my/destination',
        model_parameters=None,
        starting_replica_count=1,
        max_replica_count=5,
        machine_type="n1-standard-4",
        sync=True
    )
    
  2. Cara kedua untuk membuat tugas prediksi batch adalah dengan memanggil metode BatchPredictionJob.create. Metode BatchPredictionJob.create memerlukan empat parameter:

    • job_display_name: Nama yang Anda tetapkan ke tugas prediksi batch. Perhatikan bahwa meskipun job_display_name diperlukan untuk BatchPredictionJob.create, ini opsional untuk Model.batch_predict.
    • model_name: Nama atau ID yang sepenuhnya memenuhi syarat dari Model terlatih yang Anda gunakan untuk tugas prediksi batch.
    • instances_format: Format file permintaan prediksi batch: jsonl, csv, bigquery, tf-record, tf-record-gzip, atau file-list.
    • predictions_format: Format file respons prediksi batch: jsonl, csv, bigquery, tf-record, tf-record-gzip, atau file-list.

Class prediksi online

Prediksi online adalah permintaan sinkron yang dibuat ke endpoint model. Anda harus men-deploy model ke endpoint sebelum dapat membuat permintaan prediksi online. Gunakan prediksi online jika Anda menginginkan prediksi yang dihasilkan berdasarkan input aplikasi, atau saat Anda memerlukan respons prediksi yang cepat.

Endpoint

Sebelum bisa mendapatkan prediksi online dari model, Anda harus men-deploy model ke endpoint. Saat men-deploy model ke endpoint, Anda menghubungkan resource mesin fisik dengan model sehingga dapat memberikan prediksi online.

Anda dapat men-deploy lebih dari satu model ke satu endpoint. Anda juga dapat men-deploy satu model ke lebih dari satu endpoint. Untuk mengetahui informasi selengkapnya, lihat Pertimbangan untuk men-deploy model.

Untuk membuat resource Endpoint, deploy model Anda. Saat Anda memanggil metode Model.deploy, metode tersebut akan membuat dan menampilkan Endpoint.

Berikut adalah contoh cuplikan kode yang menunjukkan cara membuat tugas pelatihan kustom, membuat dan melatih model, lalu men-deploy model ke endpoint.

# Create your custom training job

job = aiplatform.CustomTrainingJob(
    display_name="my_custom_training_job",
    script_path="task.py",
    container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest",
    requirements=["google-cloud-bigquery>=2.20.0", "db-dtypes"],
    model_serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest"
)

# Start the training and create your model
model = job.run(
    dataset=dataset,
    model_display_name="my_model_name",
    bigquery_destination=f"bq://{project_id}"
)

# Create an endpoint and deploy your model to that endpoint
endpoint = model.deploy(deployed_model_display_name="my_deployed_model")

# Get predictions using test data in a DataFrame named 'df_my_test_data'
predictions = endpoint.predict(instances=df_my_test_data)

PrivateEndpoint

Endpoint pribadi mirip dengan resource Endpoint, kecuali prediksi dikirim melalui jaringan yang aman ke layanan prediksi online Vertex AI. Gunakan endpoint pribadi jika organisasi Anda ingin membuat semua traffic tetap bersifat pribadi.

Untuk menggunakan endpoint pribadi, Anda harus mengonfigurasi Vertex AI untuk melakukan peering dengan Virtual Private Cloud (VPC). VPC diperlukan untuk endpoint prediksi pribadi agar dapat terhubung langsung dengan Vertex AI. Untuk mengetahui informasi selengkapnya, baca Menyiapkan peering jaringan VPC dan Menggunakan endpoint pribadi untuk prediksi online.

ModelDeploymentMonitoringJob

Gunakan resource ModelDeploymentMonitoringJob untuk memantau model dan menerima pemberitahuan jika resource tersebut menyimpang dengan cara yang dapat memengaruhi kualitas prediksi model Anda.

Saat data input menyimpang dari data yang digunakan untuk melatih model Anda, performa model dapat menurun, meskipun model belum berubah. Pemantauan model menganalisis tanggal input untuk fitur skew dan drift:

  • Skew terjadi saat distribusi data fitur produksi menyimpang dari data fitur yang digunakan untuk melatih model.
  • Drift terjadi ketika data fitur produksi berubah secara signifikan dari waktu ke waktu.

Untuk mengetahui informasi selengkapnya, lihat Pengantar pemantauan model Vertex AI. Untuk mengetahui contoh cara mengimplementasikan pemantauan Vertex AI dengan Vertex AI SDK, lihat notebook Pemantauan model Vertex AI dengan atribusi fitur AI yang dapat dijelaskan di GitHub.

Class prediksi Vector Search

Vector Search adalah layanan terkelola yang membuat indeks kesamaan, atau vektor, untuk melakukan pencocokan kesamaan. Ada dua langkah tingkat tinggi untuk melakukan pencocokan kesamaan:

  1. Buat representasi vektor dari data Anda. Data dapat berupa teks, gambar, video, audio, atau data tabulasi.

  2. Vector Search menggunakan endpoint vektor yang Anda buat untuk melakukan penelusuran skala tinggi dengan latensi rendah untuk vektor serupa.

Untuk mengetahui informasi selengkapnya, lihat Ringkasan Vector Search dan notebook Membuat indeks Vector Search di GitHub.

MatchingEngineIndex

Class MatchingEngineIndex merepresentasikan indeks, atau vektor, yang Anda buat yang digunakan Vector Search untuk melakukan penelusuran kesamaan.

Ada dua algoritma penelusuran yang dapat Anda gunakan untuk indeks:

  1. TreeAhConfig menggunakan algoritma tree-AH yang dangkal (pohon dangkal menggunakan hashing asimetris). Gunakan MatchingEngineIndex.create_tree_ah_index untuk membuat indeks yang menggunakan algoritma tree-AH.
  2. BruteForceConfig menggunakan penelusuran linear standar) Gunakan MatchingEngineIndex.create_brute_force_index untuk membuat indeks yang menggunakan penelusuran linear standar.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi indeks, lihat Mengonfigurasi indeks.

Kode berikut adalah contoh pembuatan indeks yang menggunakan algoritma tree-AH:

my_tree_ah_index = aiplatform.Index.create_tree_ah_index(
    display_name="my_display_name",
    contents_delta_uri="gs://my_bucket/embeddings",
    dimensions=1,
    approximate_neighbors_count=150,
    distance_measure_type="SQUARED_L2_DISTANCE",
    leaf_node_embedding_count=100,
    leaf_nodes_to_search_percent=50,
    description="my description",
    labels={ "label_name": "label_value" }
)

Kode berikut adalah contoh pembuatan indeks yang menggunakan algoritma brute force:

my_brute_force_index = aiplatform.Index.create_brute_force_index(
    display_name="my_display_name",
    contents_delta_uri="gs://my_bucket/embeddings",
    dimensions=1,
    approximate_neighbors_count=150,
    distance_measure_type="SQUARED_L2_DISTANCE",
    description="my description",
    labels={ "label_name": "label_value" }
)

MatchingEngineIndexEndpoint

Gunakan class MatchingEngineIndexEndpoint untuk membuat dan mengambil endpoint. Setelah men-deploy model ke endpoint, Anda akan mendapatkan alamat IP yang digunakan untuk menjalankan kueri.

Kode berikut adalah contoh pembuatan endpoint indeks mesin yang cocok, lalu men-deploy indeks mesin yang cocok ke endpoint tersebut:

my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
    display_name="sample_index_endpoint",
    description="index endpoint description",
    network="projects/123456789123/global/networks/my_vpc"
)

my_index_endpoint = my_index_endpoint.deploy_index(
    index=my_tree_ah_index, deployed_index_id="my_matching_engine_index_id"
)

Langkah selanjutnya