Mengelola indeks

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.

# 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
) -> aiplatform.MatchingEngineIndex:
    """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

    Returns:
        The created MatchingEngineIndex.
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # Create Index
    index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
        display_name=display_name,
        contents_delta_uri=gcs_uri,
        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,
    )

    return index

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 Deskripsi, berikan deskripsi untuk tujuan 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. 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.
  8. Di kolom Dimensions, masukkan jumlah dimensi vektor input Anda.
  9. Di kolom Metode update, pilih Kumpulan.
  10. Di kolom Ukuran shard, pilih ukuran shard yang Anda inginkan dari drop-down.
  11. 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.

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

# Create a Cloud Storage bucket
resource "google_storage_bucket" "bucket" {
  name                        = "vertex-ai-index-bucket-${random_id.default.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" "streaming_index" {
  region       = "us-central1"
  display_name = "sample-index-streaming-update"
  description  = "A sample index for streaming 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 = "STREAM_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_streaming_index(
    project: str, location: str, display_name: str, gcs_uri: Optional[str] = None
) -> aiplatform.MatchingEngineIndex:
    """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

    Returns:
        The created MatchingEngineIndex.
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

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

    return index

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.

  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 Dimensions, 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 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.

def vector_search_list_index(
    project: str, location: str
) -> List[aiplatform.MatchingEngineIndex]:
    """List vector search indexes.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name

    Returns:
        List of aiplatform.MatchingEngineIndex
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # List Indexes
    return aiplatform.MatchingEngineIndex.list()

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

  • Recall: Meningkat
  • Latensi: Potensi peningkatan, lebih banyak variabilitas
  • Ketersediaan: Pemadaman shard memengaruhi persentase data yang lebih kecil
  • Biaya: Dapat meningkat jika jenis mesin yang sama digunakan dengan lebih banyak shard

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:

  • Recall: Menurun
  • Latensi: Lebih rendah, lebih sedikit variabilitas
  • Ketersediaan: Pemadaman shard memengaruhi persentase data yang lebih besar
  • Biaya: Dapat menurun jika jenis mesin yang sama digunakan dengan lebih sedikit shard
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 yang dikombinasikan dengan menetapkan FeatureNormType ke UNIT_L2_NORM direkomendasikan untuk kesamaan kosinus
leafNodeEmbeddingCount

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

Umumnya, mengubah nilai leafNodeEmbeddingCount memiliki lebih sedikit pengaruh dibandingkan mengubah nilai parameter lainnya.

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

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

Mengurangi jumlah penyematan untuk setiap node daun dapat memengaruhi performa dengan cara berikut:

  • Recall: Dapat meningkat karena lebih banyak leaf yang ditargetkan dikumpulkan
  • Latensi: Meningkat
  • Ketersediaan: Tidak ada dampak
  • Biaya: Dapat meningkat karena lebih banyak replika yang 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: 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.

def vector_search_delete_index(
    project: str, location: str, index_name: str
) -> None:
    """Delete a vector search index.

    Args:
        project (str): Required. Project ID
        location (str): Required. The region name
        index_name (str): Required. The index to update. A fully-qualified index
          resource name or a index ID.  Example:
          "projects/123/locations/us-central1/indexes/my_index_id" or
          "my_index_id".
    """
    # Initialize the Vertex AI client
    aiplatform.init(project=project, location=location)

    # Create the index instance from an existing index
    index = aiplatform.MatchingEngineIndex(index_name=index_name)

    # Delete the index
    index.delete()

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