IBM Cloud Docs
Milvus 함께 일하기

Milvus 함께 일하기

Milvus 컬렉션 만들기

Milvus 컬렉션을 사용하여 엔티티를 저장하고 관리합니다. Milvus 컬렉션은 관계형 데이터베이스 관리 시스템(RDBMS)의 테이블과 동일합니다.

Milvus 에서 컬렉션을 만들려면 컬렉션 만들기를 참조하세요.

Milvus 데이터 삽입하기

Milvus 기본 키 필드를 제외한 스칼라 필드에 대한 기본값을 지원합니다. 데이터 삽입 중에 일부 필드를 비워 둘 수 있습니다.

자세한 내용은 다음을 참조하세요.항목 삽입.

다음과 같은 이유로 데이터를 일괄 삽입하는 것이 좋습니다:

  • 단일 GRPC API 호출에서 수집될 수 있는 벡터 수는 허용되는 최대 메시지 크기에 의해 제한됩니다.Kafka. IBM Cloud에서 메시지 크기의 최대 한계는 1MB로 제한됩니다.

  • 한 번에 삽입할 수 있는 최대 행 수는 수집하려는 데이터의 총 크기에 따라 다릅니다. 정확한 수는 벡터의 차원이 증가하고 행에 비벡터 필드가 있는 경우 감소합니다.

500,000벡터보다 큰 데이터 세트를 삽입하려면 대량 삽입 API를 사용하십시오. 대량 삽입 API는 더 큰 데이터 세트를 수집할 때 일괄처리 삽입 API보다 더 잘 수행됩니다. .npy 파일을 사용하는 것이 대용량 데이터 세트를 수집하는 데 권장되는 방법입니다. 일괄처리 삽입 API를 사용하는 경우 500 ,000개 행마다 콜렉션을 수동으로 비우십시오. 자세한 내용은 다음을 참조하세요.대량 삽입 API.

Milvus 색인 만들기

Milvus 근사 근사 이웃(ANN) 검색을 수행하기 전에 색인을 만드십시오.

IBM 은 공식적으로 다음 색인을 지원합니다.

이 목록에 나열되지 않은 인덱스는 작동할 수 있지만 IBM에 의해 유효성이 검증되지 않습니다.

세그먼트의 행 수가 1024개 미만인 경우, Milvus 해당 세그먼트에 대한 인덱스를 생성하지 않습니다. 대신, 쿼리 작업에 대해 기본적으로 brute-force 검색을 사용합니다. 세그먼트의 행 수가 이 임계값을 초과하면, Milvus 자동으로 색인 작성을 시작합니다.

  • HNSW
  • SCANN
  • FLAT
  • IVF_FLAT
  • IV_큐

벡터 필드 이름 및 색인 매개변수를 지정하여 색인을 작성할 수 있습니다. 자세한 내용은 다음을 참조하세요.인덱스 벡터 필드.

벡터 유사성 검색을 Milvus 에서 수행하기

Milvus 검색 시나리오에 대한 매개변수를 준비한 후에 벡터 유사성 검색을 수행할 수 있습니다.

  • 단일 벡터 및 다중 벡터 검색에 대한 자세한 내용은 다음을 참조하세요.벡터 유사성 검색.
  • 하이브리드(다중 벡터) 검색에 대한 자세한 내용은 다음을 참조하세요.하이브리드 검색.
  • GroupBy 를 이용한 하이브리드 검색에 대한 자세한 정보는 하이브리드 GroupBy 검색의 GroupBy 향상된 기능 섹션을 참조하십시오.

Milvus 필터링을 기반으로 한 쿼리 수행하기

Milvus 스칼라 필터링을 기반으로 쿼리를 수행할 수 있습니다. 자세한 내용은 다음을 참조하세요.가져오기 및 스칼라 쿼리.

다음 검색 유형을 수행할 수 있습니다.

  • 범위 검색: 쿼리 벡터로부터 특정 거리 범위 내의 벡터를 찾습니다. 자세한 내용은 다음을 참조하세요.범위 검색.
  • 그룹화 검색: 결과의 다양성을 보장하기 위해 특정 필드를 기반으로 결과를 얻는 것입니다. 자세한 내용은 다음을 참조하세요.그룹핑 검색.

대형 데이터 세트에서 스칼라 필터링을 사용하여 검색 조회를 실행하는 경우 조회 결과를 효과적으로 관리하도록 한계 매개변수를 조정하는 것이 중요합니다. 다음 접근 방식을 사용하여 limit 매개변수:

hello_milvus.query(expr=query_condition, output_fields=["random", "embeddings"], limit=100,offset=0)

값의 합 limit 그리고 offset 매개변수는 다음 범위에 있어야 합니다.[ 1, 16384] .

기본 키를 사용하여 Milvus 에서 엔티티 삭제하기

Milvus 기본 키를 사용하여 엔티티를 삭제할 수 있습니다. 삭제할 엔터티를 필터링하는 부울 표현식을 준비합니다.

자세한 정보는 엔티티 삭제 를 참조하십시오.

Milvus 컬렉션 삭제하기

Milvus 컬렉션을 삭제하면 되돌릴 수 없습니다. 삭제된 데이터를 복구할 수 없습니다.

컬렉션을 드롭하려면 .ipynb 또는 Python 스크립트에 다음을 추가하세요.

from pymilvus import utility
utility.drop_collection(<collection name>)

우수 사례

다음은 몇 가지 모범 사례입니다.

  • 길이가 긴 Varchar 필드(256자 이상)가 있는 경우, 비벡터 필드는 Milvus 외부에 두십시오. COS 버킷이나 스토리지 버킷에 보관하고 참조 검색을 수행할 수 있습니다.
  • 다음을 확인하세요.PyMilvus 버전은2.4.0 또는 나중에. Milvus 2.4.0 이상 버전은 희소 벡터 검색, 하이브리드 검색을 지원합니다. sparse_dense ), 및 다중 벡터 검색.
  • 일괄 삽입을 사용하여 컬렉션을 로드하는 동안 일괄 삽입, 메모리 해제 후 프로세스를 반복하는 패턴을 따르세요.
  • 한 번에 모든 컬렉션을 병렬로 수집하지 마세요. 순차적으로 수집하고 수집 사이에 플러시합니다.
  • 각 컬렉션의 최대 크기는 티셔츠 크기에서 지원되는 최대 벡터 수에 해당해야 합니다.
  • 여러 컬렉션 또는 파티션이 로드된 경우 로드된 모든 엔티티의 벡터 합이 티셔츠 크기 제한을 초과하지 않는지 확인하세요. 로드된 벡터 수가 제한 내에 있는 한 티셔츠 크기 제한보다 더 많은 벡터를 저장할 수 있습니다.

Milvus 업그레이드 중에는 약 20초 동안 응답이 약간 지연될 수 있습니다. 진행 중인 검색 및 업서트 쿼리가 실패할 수 있습니다. 쿼리를 즉시 다시 시도할 수 있습니다.

노트북 샘플 Milvus

이 샘플 노트북을 통해 단계별 튜토리얼을 통해 Milvus 의 기능을 시험해 볼 수 있습니다. 샘플 노트북에 액세스하려면 샘플 Milvus 노트북을 참조하십시오.