Consulta índices de PSA o PSC para obtener los vecinos más cercanos

Una vez que hayas creado un índice de PSA o PSC, puedes ejecutar consultas para obtener sus vecinos más cercanos.

Información sobre la consulta de índices de PSC

La dirección de procesamiento creada a partir de un índice de PSC se puede usar para enviarle consultas. En el siguiente ejemplo, reemplaza TARGET_IP por la dirección de procesamiento creada.

Información sobre la consulta de índices de PSA

Cada DeployedIndex tiene un TARGET_IP que puedes recuperar si enumeras IndexEndpoints.

Consultar un índice

Para consultar un DeployedIndex, conéctate a su TARGET_IP en el puerto 10000 y llama a los métodos Match o BatchMatch. Además, puedes realizar consultas con DOC_ID.

En los siguientes ejemplos, se usa la herramienta de código abierto grpc_cli para enviar solicitudes de grpc al servidor de índice implementado.

gRPC

En el primer ejemplo, envías una sola consulta con el método Match.

./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]'

En el segundo ejemplo, combina dos consultas separadas en la misma solicitud BatchMatch.

./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.BatchMatch 'requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]}, {deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.2,..]}]}]'

Debes realizar llamadas a estas APIs desde un cliente que se ejecute en la misma [VPC con la que el servicio intercambia tráfico](#vpc-network-peering-setup).

Para ejecutar una consulta mediante DOC_ID, usa el siguiente ejemplo.

./grpc_cli call ${TARGET_IP}:10000  google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"

En este ejemplo, envías una consulta con restricciones numéricas y de tokens.

./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [1, 1], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}, numeric_restricts: [{name: "double-ns", value_double: 0.3, op: LESS_EQUAL}, {name: "double-ns", value_double: -1.2, op: GREATER}, {name: "double-ns", value_double: 0., op: NOT_EQUAL}], restricts: [{name: "color", allow_tokens: ["red"]}]'

Para obtener más información, consulta Explicación de las bibliotecas cliente.

Console

Usa estas instrucciones para consultar un índice de VPC desde la consola.

  1. En la sección de Vertex AI de la consola de Google Cloud, ve a la sección Implementación y uso. Elige Vector Search

    Ir a Búsqueda de vectores

  2. Selecciona el índice de VPC que deseas consultar. Se abrirá la página Index info.
  3. Desplázate hacia abajo hasta la sección Índices implementados y selecciona el índice implementado que deseas consultar. Se abrirá la página Deployed index info.
  4. En la sección Query index, selecciona los parámetros de consulta. Puedes elegir hacer una consulta por vector o por dato específico.
  5. Ejecuta la consulta con la herramienta de código abierto grpc_cli o a través del SDK de Vertex AI para Python.

Configuración del tiempo de consulta que afecta el rendimiento

Los siguientes parámetros de tiempo de consulta pueden afectar la latencia, la disponibilidad y el costo cuando se usa Vector Search. Esta guía se aplica en la mayoría de los casos. Sin embargo, siempre experimenta con tus opciones de configuración a fin de asegurarte de que funcionen para tu caso de uso.

Para ver las definiciones de parámetros, consulta Parámetros de configuración de índices.

Parámetro Acerca de Impacto en el rendimiento
approximateNeighborsCount

Indica al algoritmo la cantidad de resultados aproximados que se recuperarán de cada fragmentación.

El valor de approximateNeighborsCount siempre debe ser mayor que el de setNeighborsCount. Si el valor de setNeighborsCount es pequeño, se recomienda usar 10 veces ese valor para approximateNeighborsCount. Para valores setNeighborsCount mayores, se puede usar un multiplicador más pequeño.

Aumentar el valor de approximateNeighborsCount puede afectar el rendimiento de las siguientes maneras:

  • Recuperación: Aumentada
  • Latencia: Posiblemente mayor
  • Disponibilidad: Sin impacto
  • Costo: Puede aumentar porque se procesan más datos durante una búsqueda

Disminuir el valor de approximateNeighborsCount puede afectar el rendimiento de las siguientes maneras:

  • Recuperación: Disminuida
  • Latencia: Posibles disminuciones
  • Disponibilidad: Sin impacto
  • Costo: puede disminuir el costo porque se procesan menos datos durante una búsqueda
setNeighborCount Especifica la cantidad de resultados que deseas que muestre la consulta.

Los valores inferiores o iguales a 300 siguen teniendo un rendimiento en la mayoría de los casos de uso. Para valores más altos, prueba tu caso de uso específico.

fractionLeafNodesToSearch Controla el porcentaje de nodos de hoja que se visitarán cuando se busquen vecinos más cercanos. Esto se relaciona con leafNodeEmbeddingCount, ya que cuantas más incorporaciones por nodo de hoja, más datos se examinan por hoja.

Aumentar el valor de fractionLeafNodesToSearch puede afectar el rendimiento de las siguientes maneras:

  • Recuperación: Aumentada
  • Latencia: Mayor
  • Disponibilidad: Sin impacto
  • Costo: Puede aumentar porque una latencia más alta ocupa más recursos de máquina

Disminuir el valor de fractionLeafNodesToSearch puede afectar el rendimiento de las siguientes maneras:

  • Recuperación: Disminuida
  • Latencia: Disminuida
  • Disponibilidad: Sin impacto
  • Costo: Puede disminuir porque una latencia más baja ocupa menos recursos de máquina

¿Qué sigue?