Mengelola indeks

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.

# Cloud Storage bucket name must be unique
resource "random_id" "bucket_name_suffix" {
  byte_length = 8
}

# Create a Cloud Storage bucket
resource "google_storage_bucket" "bucket" {
  name                        = "vertex-ai-index-bucket-${random_id.bucket_name_suffix.hex}"
  location                    = "us-central1"
  uniform_bucket_level_access = true
}

# Create index content
resource "google_storage_bucket_object" "data" {
  name    = "contents/data.json"
  bucket  = google_storage_bucket.bucket.name
  content = <<EOF
{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
{"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
EOF
}

resource "google_vertex_ai_index" "default" {
  region       = "us-central1"
  display_name = "sample-index-batch-update"
  description  = "A sample index for batch update"
  labels = {
    foo = "bar"
  }

  metadata {
    contents_delta_uri = "gs://${google_storage_bucket.bucket.name}/contents"
    config {
      dimensions                  = 2
      approximate_neighbors_count = 150
      distance_measure_type       = "DOT_PRODUCT_DISTANCE"
      algorithm_config {
        tree_ah_config {
          leaf_node_embedding_count    = 500
          leaf_nodes_to_search_percent = 7
        }
      }
    }
  }
  index_update_method = "BATCH_UPDATE"

  timeouts {
    create = "2h"
    update = "1h"
  }
}

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.

def vector_search_create_index(
    project: str, location: str, display_name: str, gcs_uri: Optional[str] = None
) -> None:
    """Create a vector search index.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        display_name (str): Required. The index display name
        gcs_uri (str): Optional. The Google Cloud Storage uri for index content
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location, staging_bucket=gcs_uri)

    # Create Index
    index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
        display_name=display_name,
        description="Matching Engine Index",
        dimensions=100,
        approximate_neighbors_count=150,
        leaf_node_embedding_count=500,
        leaf_nodes_to_search_percent=7,
        index_update_method="batch_update",  # Options: stream_update, batch_update
        distance_measure_type=aiplatform.matching_engine.matching_engine_index_config.DistanceMeasureType.DOT_PRODUCT_DISTANCE,
    )

    print(index.name)

Konsol

Gunakan petunjuk ini untuk membuat indeks bagi kumpulan update.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Cari Vektor

  2. Klik Buat indeks baru untuk membuka panel Indeks. Panel Buat indeks baru akan muncul.
  3. Di kolom Nama tampilan, berikan nama untuk mengidentifikasi indeks Anda secara unik.
  4. Di kolom Description, berikan deskripsi tentang kegunaan indeks tersebut.
  5. Di kolom Region, pilih region dari drop-down.
  6. Di kolom Cloud Storage, telusuri dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
  7. 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.
  8. Di kolom Dimensi, masukkan jumlah dimensi vektor input.
  9. Di kolom Metode update, pilih Kumpulan.
  10. Di kolom Shard size, pilih ukuran shard yang Anda inginkan dari drop-down.
  11. 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.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy and Use. Pilih Vector Search

    Buka Vector Search

  2. Klik Buat indeks baru untuk membuka panel Indeks. Panel Buat indeks baru akan muncul.
  3. Di kolom Nama tampilan, berikan nama untuk mengidentifikasi indeks Anda secara unik.
  4. Di kolom Deskripsi, berikan deskripsi untuk tujuan indeks tersebut.
  5. Di kolom Region, pilih region dari drop-down.
  6. Di kolom Cloud Storage, cari dan pilih folder Cloud Storage tempat data vektor Anda disimpan.
  7. 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.
  8. Di kolom Dimensi, masukkan jumlah dimensi vektor input Anda.
  9. Di kolom Metode update, pilih Streaming.
  10. Di kolom Ukuran shard, pilih ukuran shard yang Anda inginkan dari drop-down.
  11. 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.

def vector_search_create_index(
    project: str, location: str, display_name: str, gcs_uri: Optional[str] = None
) -> None:
    """Create a vector search index.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        display_name (str): Required. The index display name
        gcs_uri (str): Optional. The Google Cloud Storage uri for index content
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location, staging_bucket=gcs_uri)

    # Create Index
    index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
        display_name=display_name,
        description="Matching Engine Index",
        dimensions=100,
        approximate_neighbors_count=150,
        leaf_node_embedding_count=500,
        leaf_nodes_to_search_percent=7,
        index_update_method="batch_update",  # Options: stream_update, batch_update
        distance_measure_type=aiplatform.matching_engine.matching_engine_index_config.DistanceMeasureType.DOT_PRODUCT_DISTANCE,
    )

    print(index.name)

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.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Cari Vektor

  2. 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:

  • Recall: Meningkat
  • Latensi: Berpotensi meningkat, lebih banyak variabilitas
  • Ketersediaan: Pemadaman sharding memengaruhi sebagian kecil data
  • Biaya: Dapat meningkat jika mesin yang sama digunakan dengan lebih banyak shard

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:

  • Ingatan: Menurun
  • Latensi: Lebih rendah, lebih sedikit variabilitas
  • Ketersediaan: Pemadaman sharding memengaruhi persentase data yang lebih besar
  • Biaya: Dapat menurun jika mesin yang sama digunakan dengan sharding yang lebih sedikit
distanceMeasureType

Menentukan algoritma yang digunakan untuk penghitungan jarak antara titik data dan vektor kueri.

Setelan distanceMeasureType berikut dapat membantu mengurangi latensi kueri:

  • DOT_PRODUCT_DISTANCE paling dioptimalkan untuk mengurangi latensi
  • DOT_PRODUCT_DISTANCE dikombinasikan dengan setelan FeatureNormType ke UNIT_L2_NORM direkomendasikan untuk kemiripan kosinus
leafNodeEmbeddingCount

Jumlah embedding untuk setiap node daun. Secara default, angka ini ditetapkan ke 1.000.

Umumnya, mengubah nilai leafNodeEmbeddingCount memiliki dampak yang lebih kecil dibandingkan mengubah nilai parameter lain.

Meningkatkan jumlah embedding untuk setiap node daun dapat mengurangi latensi, tetapi akan mengurangi kualitas recall. Hal ini dapat memengaruhi performa dengan cara berikut:

  • Ingatan: Menurun karena penelusuran yang kurang bertarget
  • Latensi: Berkurang, selama nilainya tidak lebih dari 15 ribu untuk sebagian besar kasus penggunaan
  • Ketersediaan: Tidak ada dampak
  • Biaya: Dapat menurun karena lebih sedikit replika yang diperlukan untuk QPS yang sama

Menurunkan jumlah embedding untuk setiap node daun dapat memengaruhi performa dengan cara berikut:

  • Recall: Dapat meningkat karena lebih banyak daun yang ditargetkan
  • Latensi: Meningkat
  • Ketersediaan: Tidak ada dampak
  • Biaya: Dapat meningkat karena lebih banyak replika diperlukan untuk QPS yang sama

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.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy dan Gunakan. Pilih Cari Vektor

    Buka Cari Vektor

  2. Daftar indeks aktif Anda akan ditampilkan.
  3. Untuk menghapus indeks, buka  menu opsi yang berada di baris yang sama dengan indeks, lalu pilih Hapus.

Langkah selanjutnya