Gestisci indici

Le seguenti sezioni descrivono come configurare, creare, elencare ed eliminare i tuoi indici di appartenenza.

Panoramica indice

Un indice è uno o più file costituiti dai tuoi vettori di incorporamento. Questi vettori sono realizzati a partire da grandi quantità di dati che vuoi distribuire e interrogare con Vector Search. Con Vector Search, puoi creare due tipi di indici: a seconda di come intendi aggiornarli con i tuoi dati. Puoi creare un indice progettato aggiornamenti in batch o un indice progettato per trasmettere gli aggiornamenti in streaming.

Un indice batch è utile per aggiornare l'indice in batch, con che sono state memorizzate per un determinato periodo di tempo, come i sistemi che vengono vengono elaborati settimanalmente o mensilmente. Un indice di flussi di dati è quando vuoi che i dati vengano indicizzati di essere aggiornati man mano che vengono aggiunti nuovi dati al tuo datastore, ad esempio se hai una libreria e vuoi mostrare i nuovi inventari online il prima possibile. Quale che scegli è importante, perché configurazione e requisiti sono diversi.

Configura i parametri indice

Prima di creare un indice, e configurare i parametri per l'indice.

Ad esempio, crea un file denominato 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
      }
    }
  }
}

Puoi trovare la definizione di ciascuno di questi campi in Parametri di configurazione dell'indice.

Crea un indice

Dimensioni indice

I dati dell'indice vengono suddivisi in parti uguali chiamate shard per l'elaborazione. Quando devi specificare le dimensioni degli shard da utilizzare. Lo strumento sono le seguenti:

  • SHARD_SIZE_SMALL: 2 GiB per shard.
  • SHARD_SIZE_MEDIUM: 20 GiB per shard.
  • SHARD_SIZE_LARGE: 50 GiB per shard.

I tipi di macchina che puoi utilizzare per eseguire il deployment del tuo indice (utilizzando endpoint pubblici o utilizzando endpoint VPC) dipende dalla dimensione dello shard dell'indice. La tabella seguente mostra lo shard supportate da ogni tipo di macchina:

Tipo di macchina SHARD_SIZE_SMALL SHARD_SIZE_MEDIUM SHARD_SIZE_LARGE
n1-standard-16
n1-standard-32
e2-standard-2 (predefinita)
e2-standard-16 (predefinita)
e2-highmem-16 (predefinita)
n2d-standard-32

Per scoprire in che modo le dimensioni dello shard e il tipo di macchina influiscono sui prezzi, consulta Pagina dei prezzi di Vertex AI.

Crea un indice per l'aggiornamento batch

Utilizza queste istruzioni per creare il tuo indice ed eseguirne il deployment. Se non disponi di incorporamenti pronti, puoi passare a Creare un indice batch vuoto. Con questa opzione, non sono richiesti dati di incorporamenti al momento della creazione dell'indice.

Per creare un indice:

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • LOCAL_PATH_TO_METADATA_FILE: il percorso locale del file dei metadati.
  • INDEX_NAME: nome visualizzato dell'indice.
  • LOCATION: la regione in cui stai utilizzando Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui la persone che seguo :

Linux, macOS o 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

Dovresti ricevere una risposta simile alla seguente:

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

Per ulteriori informazioni, consulta le operazioni di gcloud ai sul comando describe.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • INPUT_DIR: il percorso della directory Cloud Storage dei contenuti dell'indice.
  • INDEX_NAME: nome visualizzato dell'indice.
  • LOCATION: la regione in cui stai utilizzando Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto.

Metodo HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes

Corpo JSON della richiesta:

{
  "display_name": "INDEX_NAME",
  "metadata": {
    "contentsDeltaUri": "INPUT_DIR",
    "config": {
      "dimensions": 100,
      "approximateNeighborsCount": 150,
      "distanceMeasureType": "DOT_PRODUCT_DISTANCE",
      "algorithm_config": {
        "treeAhConfig": {
          "leafNodeEmbeddingCount": 500,
          "leafNodesToSearchPercent": 7
        }
      }
    }
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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

L'esempio seguente utilizza la risorsa Terraform google_vertex_ai_index per creare un indice per gli aggiornamenti batch.

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta: Comandi Terraform di base.

# 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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.

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)

Console

Utilizza queste istruzioni per creare un indice per gli aggiornamenti batch.

  1. Nella sezione Vertex AI della console Google Cloud, vai a nella sezione Deployment e utilizzo. Seleziona Vector Search (Ricerca vettoriale).

    Vai a Ricerca vettoriale

  2. Fai clic su Crea un nuovo indice per aprire il riquadro Indice. Viene visualizzato il riquadro Crea un nuovo indice.
  3. Nel campo Nome visualizzato, fornisci un nome che ti identifichi in modo univoco il tuo indice.
  4. Nel campo Descrizione, fornisci una descrizione di ciò a cui è rivolto l'indice.
  5. Nel campo Regione, seleziona una regione dall'elenco a discesa.
  6. Nel campo Cloud Storage, cerca e seleziona Cloud Storage in cui sono archiviati i tuoi dati vettoriali.
  7. Nel menu a discesa Tipo di algoritmo, seleziona il tipo di algoritmo Vector Search utilizza le ricerche in modo efficiente. Se selezioni il l'algoritmo TreeAh, inserisci il numero approssimativo di vicini.
  8. Nel campo Dimensioni, inserisci il numero delle dimensioni vettori di input.
  9. Nel campo Aggiornamento del metodo, seleziona Batch.
  10. Nel campo Dimensione shard, seleziona lo shard dal menu a discesa la dimensione desiderata.
  11. Fai clic su Crea. Il nuovo indice viene visualizzato nell'elenco degli indici una volta pronto. Nota: il completamento della build può richiedere fino a un'ora.

Crea un indice batch vuoto

Per creare ed eseguire subito il deployment dell'indice, puoi creare un indice batch vuoto. Con questa opzione, non sono richiesti dati di incorporamenti al momento della creazione dell'indice.

Per creare un indice vuoto, la richiesta è quasi identica alla creazione di un indice per gli aggiornamenti batch. La differenza è che rimuovi il campo contentsDeltaUri poiché non stai collegando una località dei dati. Ecco un esempio di indice batch vuoto:

Esempio di richiesta di indice vuota

{
  "display_name": INDEX_NAME,
  "indexUpdateMethod": "BATCH_UPDATE",
  "metadata": {
    "config": {
      "dimensions": 100,
      "approximateNeighborsCount": 150,
      "distanceMeasureType": "DOT_PRODUCT_DISTANCE",
      "algorithm_config": {
        "treeAhConfig": {
          "leafNodeEmbeddingCount": 500,
          "leafNodesToSearchPercent": 7
        }
      }
    }
  }
}
  

Crea un indice per gli aggiornamenti in streaming

Utilizza queste istruzioni per creare ed eseguire il deployment del tuo indice di flussi. In caso contrario hai già gli incorporamenti pronti, passa a Creare un indice vuoto per gli aggiornamenti streaming. Con questa opzione, non sono richiesti dati di incorporamenti al momento della creazione dell'indice.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • INDEX_NAME: nome visualizzato dell'indice.
  • DESCRIPTION: una descrizione dell'indice.
  • INPUT_DIR: il percorso della directory Cloud Storage dei contenuti dell'indice.
  • DIMENSIONS: numero di dimensioni del vettore di incorporamento.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto.
  • LOCATION: la regione in cui stai utilizzando Vertex AI.

Metodo HTTP e URL:

POST https://ENDPOINT-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes

Corpo JSON della richiesta:

{
  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"
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
      ]
    }
  }
}

Console

Segui queste istruzioni per creare un indice per gli aggiornamenti in streaming nella console Google Cloud.

Per creare un indice disponibile per gli aggiornamenti in modalità flusso richiede passaggi simili a quelli per la configurazione di un indice di aggiornamento batch, ad eccezione del fatto che devi impostare indexUpdateMethod su STREAM_UPDATE.

  1. Nella sezione Vertex AI della console Google Cloud, vai a nella sezione Deployment e utilizzo. Seleziona Vector Search (Ricerca vettoriale).

    Vai a Ricerca vettoriale

  2. Fai clic su Crea un nuovo indice per aprire il riquadro Indice. Viene visualizzato il riquadro Crea un nuovo indice.
  3. Nel campo Nome visualizzato, fornisci un nome per identificare in modo univoco il tuo indice.
  4. Nel campo Descrizione, fornisci una descrizione dello scopo dell'indice.
  5. Nel campo Regione, seleziona una regione dall'elenco a discesa.
  6. Nel campo Cloud Storage, cerca e seleziona la cartella Cloud Storage in cui dei dati vettoriali.
  7. Nel menu a discesa Tipo di algoritmo, seleziona il tipo di algoritmo utilizzato da Vector Search. che verrà utilizzato per eseguire la ricerca. Se selezioni il l'algoritmo TreeAh, inserisci il numero approssimativo di vicini.
  8. Nel campo Dimensioni, inserisci il numero di dimensioni dei vettori di input.
  9. Nel campo Metodo di aggiornamento, seleziona Stream.
  10. Nel campo Dimensione shard, seleziona dal menu a discesa le dimensioni dello shard che vuoi.
  11. Fai clic su Crea. Una volta pronto, il nuovo indice viene visualizzato nell'elenco degli indici. Nota: il completamento della build può richiedere fino a un'ora.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.

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)

Crea un indice vuoto per gli aggiornamenti in streaming

Per creare ed eseguire subito il deployment dell'indice, puoi creare un indice vuoto per il flusso di dati. Con questa opzione, non sono richiesti dati di incorporamenti al momento della creazione dell'indice.

Per creare un indice vuoto, la richiesta è quasi identica alla creazione di un indice per lo streaming. La differenza è che rimuovi il campo contentsDeltaUri poiché non stai collegando una località dei dati. Ecco un esempio di indice di streaming vuoto:

Esempio di richiesta di indice vuota

{
  "display_name": INDEX_NAME,
  "indexUpdateMethod": "STREAM_UPDATE",
  "metadata": {
    "config": {
      "dimensions": 100,
      "approximateNeighborsCount": 150,
      "distanceMeasureType": "DOT_PRODUCT_DISTANCE",
      "algorithm_config": {
        "treeAhConfig": {
          "leafNodeEmbeddingCount": 500,
          "leafNodesToSearchPercent": 7
        }
      }
    }
  }
}
  

Elenca indici

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • INDEX_NAME: nome visualizzato dell'indice.
  • LOCATION: la regione in cui stai utilizzando Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui la persone che seguo :

Linux, macOS o 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

Dovresti ricevere una risposta simile alla seguente:

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

Per ulteriori informazioni, consulta le operazioni di gcloud ai sul comando describe.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • INDEX_NAME: nome visualizzato dell'indice.
  • LOCATION: la regione in cui stai utilizzando Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto.

Metodo HTTP e URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexes

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
 "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"
   }
 ]
}

Console

Utilizza queste istruzioni per visualizzare un elenco dei tuoi indici.

  1. Nella sezione Vertex AI della console Google Cloud, vai a nella sezione Deployment e utilizzo. Seleziona Vector Search (Ricerca vettoriale).

    Vai a Ricerca vettoriale

  2. Viene visualizzato un elenco degli indici attivi.

Ottimizzazione dell'indice

L'ottimizzazione dell'indice richiede l'impostazione dei parametri di configurazione che influiscono delle prestazioni degli indici di cui è stato eseguito il deployment, in particolare richiamo e latenza. Questi vengono impostati al momento della creazione dell'indice. Puoi usare indici di forza bruta per misurare il richiamo.

Parametri di configurazione che influiscono sulle prestazioni

I seguenti parametri di configurazione possono essere impostati al momento della creazione dell'indice possono influire su richiamo, latenza, disponibilità e costi quando utilizzi Ricerca vettoriale. Queste linee guida si applicano alla maggior parte dei casi. Tuttavia, sempre fai esperimenti con le tue configurazioni per assicurarti che siano adatte alle tue esigenze per verificare se è così.

Per le definizioni dei parametri, consulta la sezione Parametri di configurazione dell'indice.

Parametro Informazioni Impatto sulle prestazioni
shardSize

Controlla la quantità di dati su ogni macchina.

Quando scegli la dimensione dello shard, stima le dimensioni del set di dati per il futuro. Se la dimensione del set di dati ha un limite superiore, scegli della dimensione dello shard appropriato. Se non è previsto un limite superiore se il tuo caso d'uso è estremamente sensibile alla variabilità della latenza, scegli è consigliabile uno shard di grandi dimensioni.

Se configuri la configurazione per un numero maggiore di shard più piccoli, una dimensione di risultati candidati viene elaborato durante la ricerca. Possono essere più shard influisce sulle prestazioni nei seguenti modi:

  • Richiamo: aumentato
  • Latenza: potenzialmente aumentata, maggiore variabilità
  • Disponibilità: le interruzioni di shard interessano una percentuale inferiore di dati
  • Costo: può aumentare se la stessa macchina viene utilizzata con più shard

Se esegui la configurazione per un numero inferiore di shard più grandi, i risultati dei candidati vengono elaborati durante la ricerca. Può influire su un numero inferiore di shard il rendimento degli annunci nei seguenti modi:

  • Richiamo: diminuito
  • Latenza: ridotta, meno variabilità
  • Disponibilità: le interruzioni di shard interessano una percentuale maggiore di dati
  • Costo: può diminuire se la stessa macchina viene utilizzata con meno shard
distanceMeasureType

Determina l'algoritmo utilizzato per il calcolo della distanza tra i dati e il vettore di query.

Le seguenti impostazioni di distanceMeasureType possono aiutare a ridurre latenza delle query:

  • DOT_PRODUCT_DISTANCE è ottimizzato al meglio per ridurre la latenza
  • DOT_PRODUCT_DISTANCE combinato con l'impostazione Da FeatureNormType a UNIT_L2_NORM consigliato per la somiglianza coseno
leafNodeEmbeddingCount

Il numero di incorporamenti per ogni nodo foglia. Per impostazione predefinita, questo numero è impostato su 1000.

In genere, la modifica del valore di leafNodeEmbeddingCount ha ha un minore effetto rispetto alla modifica del valore di altri parametri.

Aumentare il numero di incorporamenti per ciascun nodo foglia può ridurre ma riduce la qualità del richiamo. Può influire sulle prestazioni nel nei seguenti modi:

  • Richiamo: diminuita a causa di una ricerca meno mirata
  • Latenza: ridotta, purché il valore non sia superiore a 15.000 per la maggior parte dell'uso casi
  • Disponibilità: nessun impatto
  • Costo: può diminuire perché sono necessarie meno repliche per le stesse QPS

La riduzione del numero di incorporamenti per ciascun nodo foglia può influire il rendimento degli annunci nei seguenti modi:

  • Richiamo: può aumentare perché vengono raccolte foglie più mirate
  • Latenza: aumentata
  • Disponibilità: nessun impatto
  • Costo: può aumentare perché sono necessarie più repliche per le stesse QPS

Utilizzo di un indice di forza bruta per misurare il richiamo.

Per ottenere i vicini più prossimi esatti, utilizza gli indici con l'algoritmo di forza bruta. L'algoritmo della forza bruta fornisce il 100% del richiamo, a scapito della maggiore latenza. Usare un indice di forza bruta per misurare il richiamo di solito non è una buona scelta per pubblicazione in produzione, ma potrebbe esserti utile per valutare il richiamo varie opzioni di indicizzazione offline.

Per creare un indice con l'algoritmo di forza bruta, specifica brute_force_config nei metadati dell'indice:

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: {}
          }
       },
    },
}'

Eliminare un indice

gcloud

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • INDEX_ID: l'ID dell'indice.
  • LOCATION: la regione in cui stai utilizzando Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.

Esegui la persone che seguo :

Linux, macOS o 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

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • INDEX_ID: l'ID dell'indice.
  • LOCATION: la regione in cui stai utilizzando Vertex AI.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto.

Metodo HTTP e URL:

DELETE https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/indexes/INDEX_ID

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
  }
}

Console

Utilizza queste istruzioni per eliminare uno o più indici.

  1. Nella sezione Vertex AI della console Google Cloud, vai a nella sezione Deployment e utilizzo. Seleziona Vector Search (Ricerca vettoriale).

    Vai a Ricerca vettoriale

  2. Viene visualizzato un elenco degli indici attivi.
  3. Per eliminare un indice, vai a Opzioni di che si trova nella stessa riga dell'indice e seleziona Elimina.

Passaggi successivi