Bagian berikut menjelaskan cara mengonfigurasi, membuat, mencantumkan, dan menghapus indeks Anda.
Ringkasan indeks
Indeks adalah file atau beberapa file yang terdiri dari vektor penyematan Anda. Vektor ini dibuat dari data dalam jumlah besar yang ingin Anda deploy dan kueri dengan Vector Search. Dengan Penelusuran Vektor, Anda dapat membuat dua jenis indeks, bergantung pada cara Anda berencana memperbaruinya dengan data Anda. Anda dapat membuat indeks yang dirancang untuk update batch, atau indeks yang dirancang untuk menstreaming update.
Indeks batch digunakan saat Anda ingin memperbarui indeks dalam batch, dengan data yang telah disimpan selama jangka waktu tertentu, seperti sistem yang diproses setiap minggu atau bulan. Indeks streaming adalah saat Anda ingin data indeks diperbarui saat data baru ditambahkan ke datastore, misalnya, jika Anda memiliki toko buku dan ingin menampilkan inventaris baru secara online sesegera mungkin. Jenis yang Anda pilih penting, karena penyiapan dan persyaratannya berbeda.
Mengonfigurasi parameter indeks
Sebelum membuat indeks, konfigurasi parameter untuk indeks Anda.
Misalnya, buat file bernama index_metadata.json
:
{ "contentsDeltaUri": "gs://BUCKET_NAME/path", "config": { "dimensions": 100, "approximateNeighborsCount": 150, "distanceMeasureType": "DOT_PRODUCT_DISTANCE", "shardSize": "SHARD_SIZE_MEDIUM", "algorithm_config": { "treeAhConfig": { "leafNodeEmbeddingCount": 5000, "fractionLeafNodesToSearch": 0.03 } } } }
Anda dapat menemukan definisi untuk setiap kolom ini di Parameter konfigurasi indeks.
Membuat indeks
Ukuran indeks
Data indeks dibagi menjadi bagian yang sama yang disebut shard untuk pemrosesan. Saat membuat indeks, Anda harus menentukan ukuran shard yang akan digunakan. Ukuran yang didukung adalah sebagai berikut:
SHARD_SIZE_SMALL
: 2 GiB per shard.SHARD_SIZE_MEDIUM
: 20 GiB per shard.SHARD_SIZE_LARGE
: 50 GiB per shard.
Jenis mesin yang dapat Anda gunakan untuk men-deploy indeks (menggunakan endpoint publik atau menggunakan endpoint VPC) bergantung pada ukuran shard indeks. Tabel berikut menunjukkan ukuran shard yang didukung setiap jenis mesin:
Jenis mesin | SHARD_SIZE_SMALL |
SHARD_SIZE_MEDIUM |
SHARD_SIZE_LARGE |
---|---|---|---|
n1-standard-16 |
|||
n1-standard-32 |
|||
e2-standard-2 |
(default) | ||
e2-standard-16 |
(default) | ||
e2-highmem-16 |
(default) | ||
n2d-standard-32 |
Untuk mempelajari pengaruh ukuran shard dan jenis mesin terhadap harga, lihat halaman harga Vertex AI. Untuk mempelajari pengaruh ukuran shard terhadap performa, lihat Parameter konfigurasi yang memengaruhi performa.
Membuat indeks untuk kumpulan update
Gunakan petunjuk ini untuk membuat dan men-deploy indeks Anda. Jika belum menyiapkan penyematan, Anda dapat langsung ke bagian Membuat indeks batch kosong. Dengan opsi ini, tidak ada data penyematan yang diperlukan pada waktu pembuatan indeks.
Untuk membuat indeks:
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- LOCAL_PATH_TO_METADATA_FILE: Jalur lokal ke file metadata.
- INDEX_NAME: Nama tampilan untuk indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud ai indexes create \ --metadata-file=LOCAL_PATH_TO_METADATA_FILE \ --display-name=INDEX_NAME \ --region=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud ai indexes create ` --metadata-file=LOCAL_PATH_TO_METADATA_FILE ` --display-name=INDEX_NAME ` --region=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud ai indexes create ^ --metadata-file=LOCAL_PATH_TO_METADATA_FILE ^ --display-name=INDEX_NAME ^ --region=LOCATION ^ --project=PROJECT_ID
Anda akan melihat respons seperti berikut:
You can poll for the status of the operation for the response to include "done": true. Use the following example to poll the status. $ gcloud ai operations describe 1234567890123456789 --project=my-test-project --region=us-central1
Lihat gcloud ai operations untuk mempelajari perintah describe
lebih lanjut.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INPUT_DIR: Jalur direktori Cloud Storage dari konten indeks.
- INDEX_NAME: Nama tampilan untuk indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes
Meminta isi JSON:
{ "display_name": "INDEX_NAME", "metadata": { "contentsDeltaUri": "INPUT_DIR", "config": { "dimensions": 100, "approximateNeighborsCount": 150, "distanceMeasureType": "DOT_PRODUCT_DISTANCE", "algorithm_config": { "treeAhConfig": { "leafNodeEmbeddingCount": 500, "leafNodesToSearchPercent": 7 } } } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateIndexOperationMetadata", "genericMetadata": { "createTime": "2022-01-08T01:21:10.147035Z", "updateTime": "2022-01-08T01:21:10.147035Z" } } }
Terraform
Contoh berikut menggunakan resource Terraform google_vertex_ai_index
untuk membuat indeks bagi kumpulan update.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Konsol
Gunakan petunjuk ini untuk membuat indeks bagi kumpulan update.
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor
- Klik Buat indeks baru untuk membuka panel Indeks. Panel Buat indeks baru akan muncul.
- Di kolom Nama tampilan, berikan nama untuk mengidentifikasi indeks Anda secara unik.
- Di kolom Deskripsi, berikan deskripsi untuk tujuan indeks tersebut.
- Di kolom Region, pilih region dari drop-down.
- Di kolom Cloud Storage, telusuri dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
- Di drop-down Jenis algoritma, pilih jenis algoritma yang digunakan Vector Search untuk penelusuran yang efisien. Jika Anda memilih algoritma treeAh, masukkan jumlah perkiraan tetangga.
- Di kolom Dimensions, masukkan jumlah dimensi vektor input Anda.
- Di kolom Metode update, pilih Kumpulan.
- Di kolom Ukuran shard, pilih ukuran shard yang Anda inginkan dari drop-down.
- Klik Create. Indeks baru akan muncul di daftar indeks setelah siap. Catatan: Waktu build dapat memerlukan waktu hingga satu jam untuk diselesaikan.
Membuat indeks batch kosong
Untuk membuat dan men-deploy indeks langsung, Anda dapat membuat indeks batch kosong. Dengan opsi ini, tidak ada data penyematan yang diperlukan pada waktu pembuatan indeks.
Untuk membuat indeks kosong, permintaannya hampir sama dengan membuat indeks
untuk kumpulan update. Perbedaannya adalah Anda menghapus kolom contentsDeltaUri
, karena Anda tidak menautkan lokasi data. Berikut adalah contoh indeks batch kosong:
Contoh permintaan indeks kosong
{ "display_name": INDEX_NAME, "indexUpdateMethod": "BATCH_UPDATE", "metadata": { "config": { "dimensions": 100, "approximateNeighborsCount": 150, "distanceMeasureType": "DOT_PRODUCT_DISTANCE", "algorithm_config": { "treeAhConfig": { "leafNodeEmbeddingCount": 500, "leafNodesToSearchPercent": 7 } } } } }
Membuat indeks untuk update streaming
Gunakan petunjuk ini untuk membuat dan men-deploy indeks streaming Anda. Jika Anda belum menyiapkan penyematan, lanjutkan ke Membuat indeks kosong untuk update streaming. Dengan opsi ini, tidak ada data penyematan yang diperlukan pada waktu pembuatan indeks.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INDEX_NAME: Nama tampilan untuk indeks.
- DESCRIPTION: Deskripsi indeks.
- INPUT_DIR: Jalur direktori Cloud Storage dari konten indeks.
- DIMENSIONS: Jumlah dimensi vektor penyematan.
- PROJECT_ID: project ID Google Cloud Anda.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
Metode HTTP dan URL:
POST https://ENDPOINT-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes
Meminta isi JSON:
{ displayName: "INDEX_NAME", description: "DESCRIPTION", metadata: { contentsDeltaUri: "INPUT_DIR", config: { dimensions: "DIMENSIONS", approximateNeighborsCount: 150, distanceMeasureType: "DOT_PRODUCT_DISTANCE", algorithmConfig: {treeAhConfig: {leafNodeEmbeddingCount: 10000, leafNodesToSearchPercent: 2}} }, }, indexUpdateMethod: "STREAM_UPDATE" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.ui.CreateIndexOperationMetadata", "genericMetadata": { "createTime": "2023-12-05T23:17:45.416117Z", "updateTime": "2023-12-05T23:17:45.416117Z", "state": "RUNNING", "worksOn": [ "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID" ] } } }
Terraform
Contoh berikut menggunakan resource Terraform google_vertex_ai_index
untuk membuat indeks untuk update streaming.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Konsol
Gunakan petunjuk ini untuk membuat indeks bagi update streaming di konsol Google Cloud.
Untuk membuat indeks yang tersedia
untuk Update Streaming, diperlukan langkah-langkah yang serupa dengan penyiapan indeks Kumpulan Update,
kecuali jika Anda perlu menetapkan indexUpdateMethod
ke STREAM_UPDATE
.
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy and Use. Pilih Vector Search
- Klik Buat indeks baru untuk membuka panel Indeks. Panel Buat indeks baru akan muncul.
- Di kolom Nama tampilan, berikan nama untuk mengidentifikasi indeks Anda secara unik.
- Di kolom Deskripsi, berikan deskripsi untuk tujuan indeks tersebut.
- Di kolom Region, pilih region dari drop-down.
- Di kolom Cloud Storage, cari dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
- Di drop-down Jenis algoritma, pilih jenis algoritma yang akan digunakan Vector Search untuk melakukan penelusuran. Jika Anda memilih algoritma treeAh, masukkan jumlah perkiraan tetangga.
- Di kolom Dimensions, masukkan jumlah dimensi vektor input Anda.
- Di kolom Metode update, pilih Streaming.
- Di kolom Ukuran shard, pilih ukuran shard yang Anda inginkan dari drop-down.
- Klik Buat. Indeks baru akan muncul di daftar indeks setelah siap. Catatan: Waktu build dapat memerlukan waktu hingga satu jam untuk diselesaikan.
Membuat indeks kosong untuk update streaming
Untuk membuat dan men-deploy indeks dengan segera, Anda dapat membuat indeks kosong untuk streaming. Dengan opsi ini, tidak ada data penyematan yang diperlukan pada waktu pembuatan indeks.
Untuk membuat indeks kosong, permintaannya hampir sama dengan membuat indeks
untuk streaming. Perbedaannya adalah Anda menghapus kolom contentsDeltaUri
, karena Anda tidak menautkan lokasi data. Berikut adalah contoh indeks streaming kosong:
Contoh permintaan indeks kosong
{ "display_name": INDEX_NAME, "indexUpdateMethod": "STREAM_UPDATE", "metadata": { "config": { "dimensions": 100, "approximateNeighborsCount": 150, "distanceMeasureType": "DOT_PRODUCT_DISTANCE", "algorithm_config": { "treeAhConfig": { "leafNodeEmbeddingCount": 500, "leafNodesToSearchPercent": 7 } } } } }
Mencantumkan indeks
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- INDEX_NAME: Nama tampilan untuk indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud ai indexes list \ --region=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud ai indexes list ` --region=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud ai indexes list ^ --region=LOCATION ^ --project=PROJECT_ID
Anda akan melihat respons seperti berikut:
You can poll for the status of the operation for the response to include "done": true. Use the following example to poll the status. $ gcloud ai operations describe 1234567890123456789 --project=my-test-project --region=us-central1
Lihat gcloud ai operations untuk mempelajari perintah describe
lebih lanjut.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INDEX_NAME: Nama tampilan untuk indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "indexes": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID", "displayName": "INDEX_NAME", "metadataSchemaUri": "gs://google-cloud-aiplatform/schema/matchingengine/metadata/nearest_neighbor_search_1.0.0.yaml", "metadata": { "config": { "dimensions": 100, "approximateNeighborsCount": 150, "distanceMeasureType": "DOT_PRODUCT_DISTANCE", "featureNormType": "NONE", "algorithmConfig": { "treeAhConfig": { "maxLeavesToSearch": 50, "leafNodeCount": 10000 } } } }, "etag": "AMEw9yNU8YX5IvwuINeBkVv3yNa7VGKk11GBQ8GkfRoVvO7LgRUeOo0qobYWuU9DiEc=", "createTime": "2020-11-08T21:56:30.558449Z", "updateTime": "2020-11-08T22:39:25.048623Z" } ] }
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Konsol
Gunakan petunjuk ini untuk melihat daftar indeks Anda.
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor
- Daftar indeks aktif Anda akan ditampilkan.
Menyesuaikan indeks
Penyesuaian indeks memerlukan penetapan parameter konfigurasi yang memengaruhi performa indeks yang di-deploy, terutama perolehan dan latensi. Parameter ini ditetapkan saat Anda pertama kali membuat indeks. Anda dapat menggunakan indeks brute-force untuk mengukur perolehan.
Parameter konfigurasi yang memengaruhi performa
Parameter konfigurasi berikut dapat ditetapkan pada waktu pembuatan indeks dan dapat memengaruhi perolehan, latensi, ketersediaan, dan biaya saat menggunakan Vector Search. Panduan ini berlaku untuk sebagian besar kasus. Namun, selalu bereksperimenlah dengan konfigurasi untuk memastikan konfigurasi tersebut berfungsi untuk kasus penggunaan Anda.
Untuk definisi parameter, lihat Parameter konfigurasi indeks.
Parameter | Tentang | Dampak performa |
---|---|---|
shardSize
|
Mengontrol jumlah data di setiap mesin. Saat memilih ukuran shard, perkirakan seberapa besar set data Anda nantinya. Jika ukuran set data Anda memiliki batas atas, pilih ukuran shard yang sesuai untuk mengakomodasinya. Jika tidak ada batas atas atau jika kasus penggunaan Anda sangat sensitif terhadap variabilitas latensi, sebaiknya pilih ukuran shard yang besar. |
Jika Anda mengonfigurasi untuk jumlah shard lebih kecil yang lebih besar, jumlah hasil kandidat yang lebih besar akan diproses selama penelusuran. Shard yang lebih banyak dapat memengaruhi performa dengan cara berikut:
Jika Anda mengonfigurasi untuk jumlah shard lebih besar yang lebih sedikit, lebih sedikit hasil kandidat yang diproses selama penelusuran. Shard yang lebih sedikit dapat memengaruhi performa dengan cara berikut:
|
distanceMeasureType
|
Menentukan algoritma yang digunakan untuk penghitungan jarak antara titik data dan vektor kueri. |
Setelan
|
leafNodeEmbeddingCount
|
Jumlah embedding untuk setiap node daun. Secara default, jumlah ini ditetapkan ke 1.000.
Umumnya, mengubah nilai |
Meningkatkan jumlah penyematan untuk setiap node daun dapat mengurangi latensi, tetapi mengurangi kualitas recall. Hal ini dapat memengaruhi performa dengan cara berikut:
Mengurangi jumlah penyematan untuk setiap node daun dapat memengaruhi performa dengan cara berikut:
|
Menggunakan indeks brute-force untuk mengukur perolehan
Untuk mendapatkan tetangga terdekat yang tepat, gunakan indeks dengan algoritma brute-force. Algoritma brute-force memberikan perolehan 100% dengan mengorbankan latensi yang lebih tinggi. Menggunakan indeks brute-force untuk mengukur perolehan biasanya bukan pilihan yang baik untuk pelayanan produksi, tetapi mungkin akan berguna untuk mengevaluasi perolehan berbagai opsi pengindeksan secara offline.
Untuk membuat indeks dengan algoritma brute-force, tentukan
brute_force_config
dalam metadata indeks:
curl -X POST -H "Content-Type: application/json" \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/indexes \ -d '{ displayName: "'${DISPLAY_NAME}'", description: "'${DESCRIPTION}'", metadata: { contentsDeltaUri: "'${INPUT_DIR}'", config: { dimensions: 100, approximateNeighborsCount: 150, distanceMeasureType: "DOT_PRODUCT_DISTANCE", featureNormType: "UNIT_L2_NORM", algorithmConfig: { bruteForceConfig: {} } }, }, }'
Menghapus indeks
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- INDEX_ID: ID indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud ai indexes delete INDEX_ID \ --region=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud ai indexes delete INDEX_ID ` --region=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud ai indexes delete INDEX_ID ^ --region=LOCATION ^ --project=PROJECT_ID
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- INDEX_ID: ID indeks.
- LOCATION: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: project ID Google Cloud Anda.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda.
Metode HTTP dan URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeleteOperationMetadata", "genericMetadata": { "createTime": "2022-01-08T02:35:56.364956Z", "updateTime": "2022-01-08T02:35:56.364956Z" } }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Konsol
Gunakan petunjuk ini untuk menghapus satu atau beberapa indeks.
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor
- Daftar indeks aktif Anda akan ditampilkan.
- Untuk menghapus indeks, buka menu opsi yang berada di baris yang sama dengan indeks, lalu pilih Hapus.
Langkah selanjutnya
- Pelajari Parameter konfigurasi indeks
- Pelajari cara Men-deploy dan mengelola endpoint indeks publik
- Pelajari cara Men-deploy dan mengelola endpoint indeks di jaringan VPC
- Pelajari cara Mengupdate dan membuat kembali indeks
- Pelajari cara Memantau indeks