Gérer les index

Les sections suivantes expliquent comment configurer, créer, répertorier et supprimer des index.

Présentation de l'index

Un index est un ou plusieurs fichiers constitués de vos vecteurs de représentations vectorielles continues. Ces vecteurs sont constitués de grandes quantités de données que vous souhaitez déployer et interroger avec Vector Search. Vector Search vous permet de créer deux types d'index, en fonction de la manière dont vous prévoyez de les mettre à jour avec vos données. Vous pouvez créer un index conçu pour les mises à jour groupées ou un index conçu pour diffuser vos mises à jour en continu.

Un index par lot vous permet de mettre à jour votre index dans un lot avec des données stockées sur une période définie, comme des systèmes traités chaque semaine ou chaque mois. Un index en continu consiste à mettre à jour les données d'index à mesure que de nouvelles données sont ajoutées à votre datastore, par exemple si vous possédez une librairie et que vous souhaitez afficher le nouvel inventaire en ligne dès que possible. Le type que vous choisissez est important, car la configuration et les exigences sont différentes.

Configurer les paramètres d'index

Avant de créer un index, vous devez configurer les paramètres de votre index.

Par exemple, créez un fichier nommé 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
      }
    }
  }
}

Vous pouvez trouver la définition de chacun de ces champs dans la section Paramètres de configuration de l'index.

Créer un index

Taille de l'index

Les données d'index sont divisées en parties égales à traiter, appelées segments. Lorsque vous créez un index, vous devez spécifier la taille des partitions à utiliser. Les tailles acceptées sont les suivantes :

  • SHARD_SIZE_SMALL : 2 Gio par segment.
  • SHARD_SIZE_MEDIUM : 20 Gio par segment.
  • SHARD_SIZE_LARGE : 50 Gio par segment.

Les types de machines que vous pouvez utiliser pour déployer votre index (à l'aide de points de terminaison publics ou à l'aide de points de terminaison VPC) dépendent de la taille de partition de l'index. Le tableau suivant indique les tailles de partition acceptées par chaque type de machine :

Type de machine SHARD_SIZE_SMALL SHARD_SIZE_MEDIUM SHARD_SIZE_LARGE
n1-standard-16
n1-standard-32
e2-standard-2 (par défaut)
e2-standard-16 (par défaut)
e2-highmem-16 (par défaut)
n2d-standard-32

Pour savoir comment la taille de la partition et le type de machine affectent la tarification, consultez la page des tarifs de Vertex AI.

Créer un index pour la mise à jour groupée

Suivez les instructions ci-dessous pour créer et déployer votre index. Si vous n'avez pas encore préparé vos représentations vectorielles continues, vous pouvez passer à l'étape Créer un index par lot vide. Avec cette option, aucune donnée de représentation vectorielle continue n'est requise au moment de la création de l'index.

Pour créer un index, procédez comme suit :

gcloud

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • LOCAL_PATH_TO_METADATA_FILE : chemin d'accès local au fichier de métadonnées.
  • INDEX_NAME : nom à afficher de l'index.
  • LOCATION : région dans laquelle vous utilisez Vertex AI.
  • PROJECT_ID : L'ID de votre projet Google Cloud.

Exécutez la commande suivante :

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

Vous devriez obtenir un résultat semblable à celui-ci :

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

Pour en savoir plus sur la commande describe, consultez la page gcloud ai operations.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • INPUT_DIR : chemin d'accès au répertoire Cloud Storage du contenu de l'index.
  • INDEX_NAME : nom à afficher de l'index.
  • LOCATION : région dans laquelle vous utilisez Vertex AI.
  • PROJECT_ID : L'ID de votre projet Google Cloud.
  • PROJECT_NUMBER : numéro de projet généré automatiquement pour votre projet.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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'exemple suivant utilise la ressource Terraform google_vertex_ai_index afin de créer un index pour les mises à jour groupées.

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de 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

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'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

Suivez ces instructions pour créer un index pour les mises à jour groupées.

  1. Dans la section "Vertex AI" de la console Google Cloud, accédez à la section Déployer et utiliser. Sélectionnez Vector Search.

    Accéder à Vector Search

  2. Cliquez sur Créer un index pour ouvrir le volet Index. Le volet Créer un index s'affiche.
  3. Dans le champ Nom à afficher, indiquez un nom permettant d'identifier de manière unique votre index.
  4. Dans le champ Description, indiquez une description de l'index.
  5. Dans le champ Région, sélectionnez une région dans la liste déroulante.
  6. Dans le champ Cloud Storage, recherchez et sélectionnez le dossier Cloud Storage dans lequel vos données vectorielles sont stockées.
  7. Dans la liste déroulante Type d'algorithme, sélectionnez le type d'algorithme utilisé par la recherche vectorielle pour effectuer une recherche efficace. Si vous sélectionnez l'algorithme "treeAh", saisissez le nombre approximatif de voisins.
  8. Dans le champ Dimensions, saisissez le nombre de dimensions de vos vecteurs d'entrée.
  9. Dans le champ Update method (Méthode de mise à jour), sélectionnez Batch (Par lot).
  10. Dans le champ Taille de segment, sélectionnez la taille du segment souhaitée dans le menu déroulant.
  11. Cliquez sur Créer. Votre nouvel index apparaît dans votre liste d'index une fois qu'il est prêt. Remarque : La compilation peut prendre jusqu'à une heure.

Créer un index de traitement par lot vide

Pour créer et déployer votre index immédiatement, vous pouvez créer un index par lot vide. Avec cette option, aucune donnée de représentation vectorielle continue n'est requise au moment de la création de l'index.

Pour créer un index vide, la requête est presque identique à la création d'un index pour les mises à jour groupées. La différence est que vous supprimez le champ contentsDeltaUri, car vous n'associez pas d'emplacement de données. Voici un exemple d'index de traitement par lot vide :

Exemple de requête d'index vide

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

Créer un index pour les mises à jour en streaming

Suivez ces instructions pour créer et déployer votre index en continu. Si vos représentations vectorielles continues ne sont pas encore prêtes, passez à la section Créer un index vide pour les mises à jour en continu. Avec cette option, aucune donnée de représentation vectorielle continue n'est requise au moment de la création de l'index.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • INDEX_NAME : nom à afficher de l'index.
  • DESCRIPTION : description de l'index.
  • INPUT_DIR : chemin d'accès au répertoire Cloud Storage du contenu de l'index.
  • DIMENSIONS : nombre de dimensions du vecteur de représentation vectorielle continue.
  • PROJECT_ID : L'ID de votre projet Google Cloud.
  • PROJECT_NUMBER : numéro de projet généré automatiquement pour votre projet.
  • LOCATION : région dans laquelle vous utilisez Vertex AI.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Suivez ces instructions pour créer un index pour les mises à jour en streaming dans la console Google Cloud.

Pour créer un index disponible pour les mises à jour en streaming, vous devez suivre des étapes semblables à celles permettant de configurer un index de mise à jour groupée, sauf que vous devez définir indexUpdateMethod sur STREAM_UPDATE.

  1. Dans la section Vertex AI de la console Google Cloud, accédez à la section Déployer et utiliser. Sélectionnez Vector Search.

    Accédez à Vector Search

  2. Cliquez sur Créer un index pour ouvrir le volet Index. Le volet Créer un index s'affiche.
  3. Dans le champ Nom à afficher, indiquez un nom permettant d'identifier de manière unique votre index.
  4. Dans le champ Description, indiquez une description de l'index.
  5. Dans le champ Région, sélectionnez une région dans la liste déroulante.
  6. Dans le champ Cloud Storage, recherchez et sélectionnez le dossier Cloud Storage dans lequel vos données vectorielles sont stockées.
  7. Dans la liste déroulante Type d'algorithme, sélectionnez le type d'algorithme que Vector Search utilisera pour effectuer votre recherche. Si vous sélectionnez l'algorithme "treeAh", saisissez le nombre approximatif de voisins.
  8. Dans le champ Dimensions, saisissez le nombre de dimensions de vos vecteurs d'entrée.
  9. Dans le champ Update method (Méthode de mise à jour), sélectionnez Stream (Flux).
  10. Dans le champ Taille de segment, sélectionnez la taille du segment souhaitée dans le menu déroulant.
  11. Cliquez sur Créer. Votre nouvel index apparaît dans votre liste d'index une fois qu'il est prêt. Remarque : La compilation peut prendre jusqu'à une heure.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'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)

Créer un index vide pour les mises à jour en continu

Pour créer et déployer votre index immédiatement, vous pouvez créer un index vide pour l'insertion en flux continu. Avec cette option, aucune donnée de représentation vectorielle continue n'est requise au moment de la création de l'index.

Pour créer un index vide, la requête est presque identique à la création d'un index pour la diffusion en flux continu. La différence est que vous supprimez le champ contentsDeltaUri, car vous n'associez pas d'emplacement de données. Voici un exemple d'index en continu :

Exemple de requête d'index vide

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

Répertorier les index

gcloud

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • INDEX_NAME : nom à afficher de l'index.
  • LOCATION : région dans laquelle vous utilisez Vertex AI.
  • PROJECT_ID : L'ID de votre projet Google Cloud.

Exécutez la commande suivante :

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

Vous devriez obtenir un résultat semblable à celui-ci :

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

Pour en savoir plus sur la commande describe, consultez la page gcloud ai operations.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • INDEX_NAME : nom à afficher de l'index.
  • LOCATION : région dans laquelle vous utilisez Vertex AI.
  • PROJECT_ID : L'ID de votre projet Google Cloud.
  • PROJECT_NUMBER : numéro de projet généré automatiquement pour votre projet.

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Suivez ces instructions pour afficher la liste de vos index.

  1. Dans la section "Vertex AI" de la console Google Cloud, accédez à la section Déployer et utiliser. Sélectionnez Vector Search.

    Accéder à Vector Search

  2. La liste de vos index actifs s'affiche.

Régler l'index

Pour ajuster l'index, vous devez définir les paramètres de configuration qui ont une incidence sur les performances des index déployés, en particulier le rappel et la latence. Ces paramètres sont définis lors de la création de l'index. Vous pouvez utiliser des index de force brute pour mesurer le rappel.

Paramètres de configuration ayant un impact sur les performances

Les paramètres de configuration suivants peuvent être définis au moment de la création de l'index et peuvent affecter le rappel, la latence, la disponibilité et les coûts lors de l'utilisation de Vector Search. Cette recommandation s'applique à la plupart des cas. Toutefois, testez toujours vos configurations pour vous assurer qu'elles conviennent à votre cas d'utilisation.

Pour les définitions de paramètres, consultez la section Paramètres de configuration de l'index.

Paramètres À propos Impact sur la performance
shardSize

Contrôle la quantité de données sur chaque machine.

Lorsque vous choisissez une taille de segment, estimez la taille de votre ensemble de données à l'avenir. Si la taille de votre ensemble de données comporte une limite supérieure, choisissez la taille de segment appropriée pour l'adapter. S'il n'y a pas de limite supérieure ou si votre cas d'utilisation est extrêmement sensible à la variabilité de la latence, il est recommandé de choisir une grande taille de segment.

Si vous configurez un plus grand nombre de segments plus petits, le nombre de résultats candidats sera plus élevé lors de la recherche. Un plus grand nombre de segments peut affecter les performances des manières suivantes :

  • Rappel : augmentation
  • Latence : augmentation potentielle, plus de variabilité
  • Disponibilité : les interruptions de service affectent un faible pourcentage de données
  • Coût : peut augmenter si la même machine est utilisée avec davantage de segments

Si vous configurez un plus petit nombre de segments plus volumineux, moins de résultats candidats seront traités lors de la recherche. Un nombre réduit de segments peut affecter les performances des manières suivantes :

  • Rappel : diminution
  • Latence : réduite, moins de variabilité
  • Disponibilité : les interruptions de partitions affectent un pourcentage plus élevé de données
  • Coût : peut diminuer si la même machine est utilisée avec moins de segments
distanceMeasureType

Détermine l'algorithme utilisé pour le calcul de la distance entre les points de données et le vecteur de requête.

Les paramètres distanceMeasureType suivants peuvent vous aider à réduire la latence des requêtes :

  • DOT_PRODUCT_DISTANCE est le plus optimisé pour réduire la latence
  • Il est recommandé d'utiliser DOT_PRODUCT_DISTANCE conjointement avec la définition de FeatureNormType sur UNIT_L2_NORM pour la similarité cosinus
leafNodeEmbeddingCount

Nombre de représentations vectorielles continues pour chaque nœud feuille. Par défaut, ce nombre est défini sur 1 000.

En règle générale, modifier la valeur de leafNodeEmbeddingCount a moins d'effet que modifier la valeur des autres paramètres.

L'augmentation du nombre de représentations vectorielles continues pour chaque nœud feuille peut réduire la latence, mais également la qualité de rappel. Cela peut affecter les performances des manières suivantes :

  • Rappel : diminution en raison d'une recherche moins ciblée
  • Latence : réduite, tant que la valeur n'est pas supérieure à 15 000 dans la plupart des cas d'utilisation
  • Disponibilité : aucun impact
  • Coût : peut diminuer, car moins d'instances répliquées sont nécessaires pour un même RPS.

La réduction du nombre de représentations vectorielles continues pour chaque nœud feuille peut affecter les performances des manières suivantes :

  • Rappel : peut augmenter, car des feuilles plus ciblées sont collectées.
  • Latence : augmentation
  • Disponibilité : aucun impact
  • Coût : peut augmenter, car davantage d'instances répliquées sont nécessaires pour un même RPS.

Utiliser un index de force brute pour mesurer le rappel

Pour obtenir les voisins les plus proches, utilisez des index avec l'algorithme de force brute. L'algorithme de force brute offre un rappel de 100 % au détriment de la latence. L'utilisation d'un index de force brute pour mesurer le rappel n'est généralement pas un choix approprié pour la diffusion en production, mais elle peut être utile pour évaluer le rappel de diverses options d'indexation hors connexion.

Pour créer un index à l'aide de l'algorithme de force brute, spécifiez brute_force_config dans les métadonnées de l'index :

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

Supprimer un index

gcloud

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • INDEX_ID : ID de l'index.
  • LOCATION : région dans laquelle vous utilisez Vertex AI.
  • PROJECT_ID : L'ID de votre projet Google Cloud.

Exécutez la commande suivante :

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

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • INDEX_ID : ID de l'index.
  • LOCATION : région dans laquelle vous utilisez Vertex AI.
  • PROJECT_ID : L'ID de votre projet Google Cloud.
  • PROJECT_NUMBER : numéro de projet généré automatiquement pour votre projet.

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Suivez les instructions ci-dessous pour supprimer un ou plusieurs index.

  1. Dans la section "Vertex AI" de la console Google Cloud, accédez à la section Déployer et utiliser. Sélectionnez Vector Search.

    Accéder à Vector Search

  2. La liste de vos index actifs s'affiche.
  3. Pour supprimer un index, accédez au menu d'options situé sur la même ligne que l'index, puis sélectionnez Supprimer.

Étapes suivantes