Bagian berikut menjelaskan cara mengonfigurasi, membuat, mencantumkan, dan menghapus indeks Anda.
Ringkasan indeks
Indeks adalah satu atau beberapa file yang terdiri dari vektor embedding Anda. Vektor ini dibuat dari sejumlah besar data yang ingin Anda deploy dan buat kueri dengan Vector Search. Dengan Vector Search, Anda dapat membuat dua jenis indeks, bergantung pada rencana Anda untuk memperbaruinya dengan data Anda. Anda dapat membuat indeks yang dirancang untuk kumpulan update, atau indeks yang dirancang untuk melakukan streaming update.
Indeks batch digunakan jika Anda ingin mengupdate indeks dalam batch, dengan data yang telah disimpan selama jangka waktu tertentu, seperti sistem yang diproses setiap minggu atau bulanan. 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 merupakan hal penting karena penyiapan dan persyaratannya berbeda.
Mengonfigurasi parameter indeks
Sebelum membuat indeks, konfigurasikan 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, "leafNodesToSearchPercent": 3 } } } }
Anda dapat menemukan definisi untuk setiap kolom ini dalam Parameter konfigurasi indeks.
Membuat indeks
Ukuran indeks
Data indeks dibagi menjadi beberapa 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:
Machine type | 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.
Membuat indeks untuk batch update
Gunakan petunjuk ini untuk membuat dan men-deploy indeks Anda. Jika belum menyiapkan embeddings, Anda dapat langsung membuka bagian Membuat indeks batch kosong. Dengan opsi ini, data embedding tidak 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: ID project 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: ID project 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
guna membuat indeks untuk batch 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 Description, berikan deskripsi tentang kegunaan 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.
- Dalam drop-down Algorithm type, pilih jenis algoritme yang digunakan Vector Search untuk penelusuran yang efisien. Jika Anda memilih algoritma treeAh, masukkan jumlah perkiraan tetangga.
- Di kolom Dimensi, masukkan jumlah dimensi vektor input.
- Di kolom Metode update, pilih Kumpulan.
- Di kolom Shard size, pilih ukuran shard yang Anda inginkan dari drop-down.
- Klik Create. Indeks baru Anda akan muncul dalam daftar indeks Anda 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, data embedding tidak diperlukan pada waktu pembuatan indeks.
Untuk membuat indeks kosong, permintaannya hampir sama dengan membuat indeks untuk batch 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 } } } } }
Buat indeks untuk update streaming
Gunakan petunjuk ini untuk membuat dan men-deploy indeks streaming Anda. Jika Anda belum menyiapkan embeddings, lanjutkan ke bagian Membuat indeks kosong untuk update streaming. Dengan opsi ini, data embedding tidak 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 embedding.
- PROJECT_ID: ID project 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 yang mirip 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" ] } } }
Konsol
Gunakan petunjuk ini untuk membuat indeks bagi update streaming di konsol Google Cloud.
Agar membuat indeks yang tersedia untuk Update Streaming, diperlukan langkah-langkah yang serupa dengan menyiapkan indeks Batch Update, tetapi 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 Dimensi, 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 Create. Indeks baru Anda akan muncul di daftar indeks Anda setelah siap. Catatan: Waktu build dapat memerlukan waktu hingga satu jam untuk diselesaikan.
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.
Buat indeks kosong untuk update streaming
Untuk langsung membuat dan men-deploy indeks, Anda dapat membuat indeks kosong untuk streaming. Dengan opsi ini, data embedding tidak 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 yang 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: ID project 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: ID project 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 menerima respons JSON yang mirip dengan berikut ini:
{ "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" } ] }
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 disetel 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 lakukan eksperimen 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 pada setiap mesin. Saat memilih ukuran shard, perkirakan seberapa besar set data Anda di masa mendatang. 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 shard yang lebih kecil dalam jumlah besar, jumlah hasil kandidat yang lebih besar akan diproses selama penelusuran. Lebih banyak shard dapat memengaruhi performa dengan cara berikut:
Jika Anda mengonfigurasi untuk jumlah shard yang lebih besar lebih sedikit, hasil kandidat yang akan diproses selama penelusuran akan lebih sedikit. Lebih sedikit shard 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, angka ini ditetapkan ke 1.000.
Umumnya, mengubah nilai |
Meningkatkan jumlah embedding untuk setiap node daun dapat mengurangi latensi, tetapi akan mengurangi kualitas recall. Hal ini dapat memengaruhi performa dengan cara berikut:
Menurunkan jumlah embedding 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: ID project 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: ID project 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 menerima respons JSON yang mirip dengan berikut ini:
{ "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" } }
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 dalam jaringan VPC
- Pelajari cara Mengupdate dan membuat kembali indeks
- Pelajari cara Memantau indeks