milvus-logo
LFAI
홈페이지
  • 시작하기
    • Milvus 설치

Milvus Lite 로컬 실행

이 페이지는 Milvus Lite를 로컬에서 실행하는 방법을 설명합니다. Milvus Lite는 벡터 임베딩 및 유사도 검색을 통해 AI 애플리케이션을 지원하는 오픈 소스 벡터 데이터베이스인 Milvus의 경량 버전입니다.

개요

Milvus Lite는 Python 애플리케이션으로 가져올 수 있으며, Milvus의 핵심 벡터 검색 기능을 제공합니다. Milvus Lite는 이미 Milvus의 Python SDK에 포함되어 있습니다. pip install pymilvus 를 통해 간단히 배포할 수 있습니다.

Milvus Lite를 사용하면 몇 분 안에 벡터 유사도 검색이 가능한 AI 애플리케이션을 구축할 수 있습니다! Milvus Lite는 다음 환경에서 실행하기에 좋습니다:

  • 주피터 노트북 / 구글 콜랩
  • 노트북
  • 엣지 디바이스

Milvus Lite는 Milvus 독립형 및 분산형과 동일한 API를 공유하며 벡터 데이터 지속성 및 관리, 벡터 CRUD 작업, 스파스 및 고밀도 벡터 검색, 메타데이터 필터링, 멀티 벡터 및 hybrid_search와 같은 대부분의 기능을 다룹니다. 이러한 기능을 함께 사용하면 에지 디바이스에서 클라우드의 클러스터에 이르기까지 다양한 유형의 환경에서 일관된 경험을 제공하여 다양한 규모의 사용 사례에 적합합니다. 동일한 클라이언트 측 코드를 사용하여 노트북이나 Jupyter Notebook에서 Milvus Lite로 GenAI 앱을 실행하거나, Docker 컨테이너에서 Milvus Standalone으로, 또는 운영 환경에서 수십억 개의 벡터를 제공하는 대규모 Kubernetes 클러스터에서 Milvus Distributed로 실행할 수 있습니다.

전제 조건

Milvus Lite는 현재 다음 환경을 지원합니다:

  • Ubuntu >= 20.04(x86_64 및 arm64)
  • MacOS >= 11.0(Apple Silicon M1/M2 및 x86_64)

Milvus Lite는 소규모 벡터 검색 사용 사례에만 적합하다는 점에 유의하세요. 대규모 사용 사례의 경우, Milvus Standalone 또는 Milvus Distributed를 사용하는 것이 좋습니다. Zilliz Cloud의 완전 관리형 Milvus도 고려해볼 수 있습니다.

Milvus Lite 설정

pip install -U pymilvus

pymilvus 을 사용하는 것을 권장합니다. pymilvus 버전 2.4.2 이상에는 milvus-lite 이 포함되어 있으므로 pip install 으로 -U 을 입력하여 최신 버전으로 강제 업데이트하면 milvus-lite 이 자동으로 설치됩니다.

milvus-lite 패키지를 명시적으로 설치하거나 이전 버전의 milvus-lite 을 설치한 후 업데이트를 원하는 경우 pip install -U milvus-lite 을 수행하면 됩니다.

Milvus Lite에 연결

pymilvus 에서 MilvusClient의 uri 파라미터로 로컬 파일 이름을 지정하면 Milvus Lite가 사용됩니다.

from pymilvus import MilvusClient
client = MilvusClient("./milvus_demo.db")

위의 코드 스니펫을 실행하면 현재 폴더에 milvus_demo.db라는 데이터베이스 파일이 생성됩니다.

참고: 밀버스 스탠드얼론, 밀버스 디스트리뷰티드, 질리즈 클라우드에도 동일한 API가 적용되며, 로컬 파일 이름을 원격 서버 엔드포인트와 자격 증명으로 대체하는 것만 다릅니다(예:client = MilvusClient(uri="http://localhost:19530", token="username:password")).

예제

다음은 Milvus Lite를 텍스트 검색에 사용하는 방법을 보여주는 간단한 데모입니다. Milvus Lite를 사용하여 RAG, 이미지 검색과 같은 애플리케이션을 구축하고 LangChainLlamaIndex와 같은 인기있는 RAG 프레임워크에서 Milvus Lite를 사용하는 더 포괄적인 예제가 있습니다!

from pymilvus import MilvusClient
import numpy as np

client = MilvusClient("./milvus_demo.db")
client.create_collection(
    collection_name="demo_collection",
    dimension=384  # The vectors we will use in this demo has 384 dimensions
)

# Text strings to search from.
docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]
# For illustration, here we use fake vectors with random numbers (384 dimension).

vectors = [[ np.random.uniform(-1, 1) for _ in range(384) ] for _ in range(len(docs)) ]
data = [ {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"} for i in range(len(vectors)) ]
res = client.insert(
    collection_name="demo_collection",
    data=data
)

# This will exclude any text in "history" subject despite close to the query vector.
res = client.search(
    collection_name="demo_collection",
    data=[vectors[0]],
    filter="subject == 'history'",
    limit=2,
    output_fields=["text", "subject"],
)
print(res)

# a query that retrieves all entities matching filter expressions.
res = client.query(
    collection_name="demo_collection",
    filter="subject == 'history'",
    output_fields=["text", "subject"],
)
print(res)

# delete
res = client.delete(
    collection_name="demo_collection",
    filter="subject == 'history'",
)
print(res)

제한 사항

밀버스 라이트 실행 시 일부 기능이 지원되지 않는다는 점에 유의하세요. 다음 표에는 Milvus Lite의 사용 제한이 요약되어 있습니다.

수집

메서드 / 매개변수밀버스 라이트에서 지원되는
create_collection()제한된 매개변수 지원
collection_nameY
dimensionY
primary_field_nameY
id_typeY
vector_field_nameY
metric_typeY
auto_idY
schemaY
index_paramsY
enable_dynamic_fieldY
num_shardsN
partition_key_fieldN
num_partitionsN
consistency_levelN ( Strong 만 지원하며, 모든 구성은 Strong 으로 처리됩니다.)
GET_COLLECTION_STATS()컬렉션 통계 가져오기를 지원합니다.
collection_nameY
timeoutY
describe_collection()num_shards, consistency_level, collection_id 의 응답이 유효하지 않습니다.
timeoutY
has_collection()컬렉션이 존재하는지 확인을 지원합니다.
collection_nameY
timeoutY
list_collections()모든 컬렉션 목록을 지원합니다.
drop_collection()컬렉션 삭제 기능을 지원합니다.
collection_nameY
timeoutY
rename_collection()컬렉션 이름 변경은 지원되지 않습니다.

필드 및 스키마

메서드/파라미터Milvus Lite에서 지원
create_schema()제한된 매개변수 지원
auto_idY
enable_dynamic_fieldY
primary_fieldY
partition_key_fieldN
add_field()제한된 매개변수 지원
field_nameY
datatypeY
is_primaryY
max_lengthY
element_typeY
max_capacityY
dimY
is_partition_keyN
메서드 / 매개변수밀버스 라이트에서 지원
search()제한된 매개변수 지원
collection_nameY
dataY
filterY
limitY
output_fieldsY
search_paramsY
timeoutY
partition_namesN
anns_fieldY
query()제한된 매개변수 지원
collection_nameY
filterY
output_fieldsY
timeoutY
idsY
partition_namesN
get()제한된 매개변수 지원
collection_nameY
idsY
output_fieldsY
timeoutY
partition_namesN
delete()제한된 매개변수 지원
collection_nameY
idsY
timeoutY
filterY
partition_nameN
insert()제한된 매개변수 지원
collection_nameY
dataY
timeoutY
partition_nameN
upsert()제한된 매개변수 지원
collection_nameY
dataY
timeoutY
partition_nameN

로드 및 릴리스

메서드 / 파라미터밀버스 라이트에서 지원
load_collection()Y
collection_nameY
timeoutY
release_collection()Y
collection_nameY
timeoutY
GET_LOAD_STATE()로드 상태 가져오기는 지원되지 않습니다.
refresh_load()로드된 컬렉션의 언로드된 데이터를 로드하는 것은 지원되지 않습니다.
close()Y

Index

메서드/파라미터밀버스 라이트에서 지원
list_indexes()목록 인덱스가 지원됩니다.
collection_nameY
field_nameY
create_index()FLAT 인덱스 유형만 지원합니다.
index_paramsY
timeoutY
drop_index()인덱스 삭제가 지원됩니다.
collection_nameY
index_nameY
timeoutY
describe_index()인덱스 설명이 지원됩니다.
collection_nameY
index_nameY
timeoutY

벡터 인덱스 유형

Milvus Lite는 FLAT 인덱스 유형만 지원합니다. 컬렉션에 지정된 인덱스 유형에 관계없이 FLAT 유형을 사용합니다.

검색 기능

밀버스 라이트는 스파스 벡터, 멀티 벡터, 하이브리드 검색을 지원합니다.

파티션

Milvus Lite는 파티션 및 파티션 관련 메서드를 지원하지 않습니다.

사용자 및 역할

Milvus Lite는 사용자 및 역할과 관련 메서드를 지원하지 않습니다.

별칭

Milvus Lite는 별칭 및 별칭 관련 메서드를 지원하지 않습니다.

Milvus Lite에서 데이터 마이그레이션하기

Milvus Lite에 저장된 모든 데이터는 쉽게 내보내고 다른 유형의 Milvus 배포(예: Docker의 Milvus Standalone, K8s의 Milvus Distributed 또는 Zilliz Cloud의 완전 관리형 Milvus)로 로드할 수 있습니다.

밀버스 라이트는 데이터를 json 파일로 덤프할 수 있는 명령줄 도구를 제공하며, 이를 밀버스질리즈 클라우드(밀버스를 위한 완전 관리형 클라우드 서비스)로 가져올 수 있습니다. milvus-lite 명령은 milvus-lite 파이썬 패키지와 함께 설치됩니다.

# Install
pip install -U "pymilvus[bulk_writer]"

milvus-lite dump -h

usage: milvus-lite dump [-h] [-d DB_FILE] [-c COLLECTION] [-p PATH]

optional arguments:
  -h, --help            show this help message and exit
  -d DB_FILE, --db-file DB_FILE
                        milvus lite db file
  -c COLLECTION, --collection COLLECTION
                        collection that need to be dumped
  -p PATH, --path PATH  dump file storage dir

다음 예제는 ./milvus_demo.db (Milvus Lite 데이터베이스 파일)에 저장된 demo_collection 컬렉션의 모든 데이터를 덤프합니다.

데이터를 내보내려면:

milvus-lite dump -d ./milvus_demo.db -c demo_collection -p ./data_dir
# ./milvus_demo.db: milvus lite db file
# demo_collection: collection that need to be dumped
#./data_dir : dump file storage dir

덤프 파일을 가지고 데이터 가져오기를 통해 질리즈 클라우드에 데이터를 업로드하거나, 대량 삽입을 통해 밀버스 서버에 데이터를 업로드할 수 있습니다.

다음 단계

Milvus Lite에 연결했으면 다음을 수행할 수 있습니다:

번역DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
피드백

이 페이지가 도움이 되었나요?