VPC 네트워크 피어링 또는 Private Service Connect 색인 엔드포인트를 배포한 후 쿼리는 배포 방법에 따라 약간 다릅니다.
Private Service Connect 자동화로 배포됨
Private Service Connect 자동화로 배포된 IndexEndpoints
의 경우 Python SDK가 Private Service Connect 네트워크를 적절한 엔드포인트에 자동으로 매핑합니다. Python SDK를 사용하지 않는 경우 Private Service Connect 수동 배포 쿼리 안내에 따라 생성된 엔드포인트의 IP 주소에 직접 연결해야 합니다.
Python
Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 확인하세요.
Private Service Connect 수동 구성으로 배포됨
수동으로 구성된 연결을 사용하여 배포된 Private Service Connect IndexEndpoints
의 경우 엔드포인트의 Private Service Connect 서비스 연결에 전달된 컴퓨팅 주소의 IP 주소를 사용하여 엔드포인트에 액세스합니다.
아직 알 수 없는 경우 gcloud ai index-endpoints describe
및 gcloud compute forwarding-rules list
명령어를 사용하여 서비스 첨부파일 URI로 전달된 IP 주소를 가져올 수 있습니다.
다음을 바꿉니다.
- INDEX_ENDPOINT_ID: 정규화된 색인 엔드포인트 ID입니다.
- REGION: 색인 엔드포인트가 배포된 리전입니다.
SERVICE_ATTACHMENT_URI=`gcloud ai index-endpoints describe INDEX_ENDPOINT_ID \ --region=REGION \ --format="value(deployedIndexes.privateEndpoints.serviceAttachment)"` gcloud compute forwarding-rules list --filter="TARGET:${SERVICE_ATTACHMENT_URI}"
출력에는 IndexEndpoint
를 쿼리할 때 사용할 내부 IP 주소가 포함됩니다.
Python
Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 확인하세요.
명령줄
DeployedIndex
를 쿼리하려면 포트 10000
에서 TARGET_IP
에 연결하고 Match
또는 BatchMatch
메서드를 호출합니다. 또한 특정 임베딩 ID를 사용하여 쿼리할 수 있습니다.
다음 예시에서는 오픈소스 도구인 grpc_cli
를 사용하여 배포된 색인 서버로 gRPC 요청을 보냅니다.
Match
메서드를 사용하여 단일 쿼리를 보냅니다.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]'
두 번째 예시에서는 두 개의 개별 쿼리를 동일한 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,..]}]}]'
[서비스가 피어링된 동일한 VPC](#vpc-network-peering-setup)에서 실행 중인 클라이언트에서 이러한 API를 호출해야 합니다.
embedding_id
를 사용하여 쿼리를 실행하려면 다음 예시를 사용하세요.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"
이 예에서는 토큰 및 숫자 제한을 사용하여 쿼리를 전송합니다.
./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"]}]'
자세한 내용은 클라이언트 라이브러리 설명을 참조하세요.
콘솔
다음 안내에 따라 콘솔에서 VPC 색인을 쿼리합니다.
- Google Cloud 콘솔의 Vertex AI 섹션에서 배포 및 사용 섹션으로 이동합니다. 벡터 검색을 선택합니다.
- 쿼리할 VPC 색인을 선택합니다. 색인 정보 페이지가 열립니다.
- 배포된 색인 섹션까지 아래로 스크롤하고 쿼리할 배포된 색인을 선택합니다. 배포된 색인 정보 페이지가 열립니다.
- 쿼리 색인 섹션에서 쿼리 매개변수를 선택합니다. 벡터 또는 특정 데이터 포인트로 쿼리하도록 선택할 수 있습니다.
- 오픈소스 도구인 grpc_cli를 사용하거나 Vertex AI SDK for Python을 사용하여 쿼리를 실행합니다.
VPC 네트워크 피어링으로 배포됨
Python
Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 확인하세요.
참고: Python SDK는 VPC 네트워크 피어링으로 배포된 IndexEndpoint
의 IP 주소를 자동으로 조회합니다.
명령줄
각 DeployedIndex
에는 TARGET_IP
가 있으며, 이는 IndexEndpoints
목록에서 검색할 수 있습니다.
DeployedIndex
를 쿼리하려면 포트 10000
에서 TARGET_IP
에 연결하고 Match
또는 BatchMatch
메서드를 호출합니다. 또한 특정 임베딩 ID를 사용하여 쿼리할 수 있습니다.
다음 예시에서는 오픈소스 도구인 grpc_cli
를 사용하여 배포된 색인 서버로 gRPC 요청을 보냅니다.
Match
메서드를 사용하여 단일 쿼리를 보냅니다.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]'
두 번째 예시에서는 두 개의 개별 쿼리를 동일한 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,..]}]}]'
[서비스가 피어링된 동일한 VPC](#vpc-network-peering-setup)에서 실행 중인 클라이언트에서 이러한 API를 호출해야 합니다.
embedding_id
를 사용하여 쿼리를 실행하려면 다음 예시를 사용하세요.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"
이 예에서는 토큰 및 숫자 제한을 사용하여 쿼리를 전송합니다.
./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"]}]'
자세한 내용은 클라이언트 라이브러리 설명을 참조하세요.
콘솔
다음 안내에 따라 콘솔에서 VPC 색인을 쿼리합니다.
- Google Cloud 콘솔의 Vertex AI 섹션에서 배포 및 사용 섹션으로 이동합니다. 벡터 검색을 선택합니다.
- 쿼리할 VPC 색인을 선택합니다. 색인 정보 페이지가 열립니다.
- 배포된 색인 섹션까지 아래로 스크롤하고 쿼리할 배포된 색인을 선택합니다. 배포된 색인 정보 페이지가 열립니다.
- 쿼리 색인 섹션에서 쿼리 매개변수를 선택합니다. 벡터 또는 특정 데이터 포인트로 쿼리하도록 선택할 수 있습니다.
- 오픈소스 도구인 grpc_cli를 사용하거나 Vertex AI SDK for Python을 사용하여 쿼리를 실행합니다.
성능에 영향을 주는 쿼리 시간 설정
다음 쿼리 시간 매개변수는 벡터 검색을 사용할 때 지연 시간, 가용성, 비용에 영향을 미칠 수 있습니다. 이 가이드는 대부분의 케이스에 적용됩니다. 하지만 항상 구성으로 실험하여 사용 사례에 적합한지 확인해야 합니다.
매개변수 정의는 색인 구성 매개변수를 참조하세요.
매개변수 | 정보 | 성능 영향 |
---|---|---|
approximateNeighborsCount |
각 샤드에서 검색할 적합한 결과 수를 알고리즘에 알려줍니다.
|
|
setNeighborCount |
쿼리에서 반환할 결과 수를 지정합니다. |
값이 300이하면 대부분의 사용 사례에서 성능이 유지됩니다. 값이 더 크면 특정 사용 사례에 맞게 테스트합니다. |
fractionLeafNodesToSearch |
최근접 이웃을 검색할 때 방문할 리프 노드 비율을 제어합니다. 이는 리프 노드당 임베딩이 많을수록 리프당 더 많은 데이터가 검사된다는 점에서 leafNodeEmbeddingCount 와 관련이 있습니다.
|
|
다음 단계
- 색인 업데이트 및 다시 빌드 방법 알아보기
- 벡터 일치 필터링 방법 알아보기
- 색인 모니터링 방법 알아보기