Attu 데스크톱 빠른 시작
1. 소개
Attu는 Milvus를 위한 올인원 오픈소스 관리 도구입니다. 직관적인 그래픽 사용자 인터페이스(GUI)를 갖추고 있어 데이터베이스와 쉽게 상호 작용할 수 있습니다. 몇 번의 클릭만으로 클러스터 상태를 시각화하고, 메타데이터를 관리하고, 데이터 쿼리를 수행하는 등의 작업을 수행할 수 있습니다.
2. 데스크톱 애플리케이션 설치
Attu GitHub 릴리즈 페이지를 방문하여 데스크톱 버전의 Attu를 다운로드하세요. 사용 중인 운영 체제에 적합한 버전을 선택하고 설치 단계를 따르세요.
macOS(M 시리즈 칩)의 경우 참고:
오류가 발생하는 경우
attu.app is damaged and cannot be opened.
터미널에서 다음 명령을 실행하여 이 문제를 우회하세요:
sudo xattr -rd com.apple.quarantine /Applications/attu.app
3. Milvus에 연결하기
Attu는 밀버스 스탠드얼론과 질리즈 클라우드 모두 연결을 지원하여 로컬 또는 클라우드에 호스팅된 데이터베이스로 작업할 수 있는 유연성을 제공합니다.
Milvus Standalone을 로컬에서 사용하려면 다음과 같이 하세요:
- Milvus 설치 가이드에 따라 Milvus Standalone을 시작합니다.
- Attu를 열고 연결 정보를 입력합니다:
- Milvus 주소: Milvus Standalone 서버 URI(예: http://localhost:19530)
- 기타 선택적 설정: Milvus 구성에 따라 설정하거나 기본값으로 그대로 둘 수 있습니다.
- 연결을 클릭하여 데이터베이스에 액세스합니다.
Zilliz Cloud에서 완전 관리형 Milvus를 연결할 수도 있습니다.
Milvus Address
및token
을 질리즈 클라우드 인스턴스의 퍼블릭 엔드포인트와 API 키로 설정하기만 하면 됩니다.
- 클릭하여 데이터베이스에 접속합니다.
4. 데이터 준비, 수집 생성, 데이터 삽입하기
4.1 데이터 준비
이 예제에서는 Milvus 문서 2.4.x의 FAQ 페이지를 데이터셋으로 사용합니다.
데이터를 다운로드하고 추출합니다:
wget https://github.com/milvus-io/milvus-docs/releases/download/v2.4.6-preview/milvus_docs_2.4.x_en.zip
unzip -q milvus_docs_2.4.x_en.zip -d milvus_docs
마크다운 파일 처리하기:
from glob import glob
text_lines = []
for file_path in glob("milvus_docs/en/faq/*.md", recursive=True):
with open(file_path, "r") as file:
file_text = file.read()
text_lines += file_text.split("# ")
4.2 임베딩 생성하기
milvus_model
을 사용하여 텍스트 임베딩을 생성할 임베딩 모델을 정의합니다. 여기서는 사전 학습된 경량 임베딩 모델인 DefaultEmbeddingFunction
모델을 예로 사용합니다.
from pymilvus import model as milvus_model
embedding_model = milvus_model.DefaultEmbeddingFunction()
# Generate test embedding
test_embedding = embedding_model.encode_queries(["This is a test"])[0]
embedding_dim = len(test_embedding)
print(embedding_dim)
print(test_embedding[:10])
출력합니다:
768
[-0.04836066 0.07163023 -0.01130064 -0.03789345 -0.03320649 -0.01318448
-0.03041712 -0.02269499 -0.02317863 -0.00426028]
4.3 컬렉션 만들기
Milvus에 연결하여 컬렉션을 생성합니다:
from pymilvus import MilvusClient
# Connect to Milvus Standalone
client = MilvusClient(uri="http://localhost:19530")
collection_name = "attu_tutorial"
# Drop collection if it exists
if client.has_collection(collection_name):
client.drop_collection(collection_name)
# Create a new collection
client.create_collection(
collection_name=collection_name,
dimension=embedding_dim,
metric_type="IP", # Inner product distance
consistency_level="Strong"
)
4.4 데이터 삽입
텍스트 줄을 반복하고 임베딩을 생성한 다음 데이터를 Milvus에 삽입합니다:
from tqdm import tqdm
data = []
doc_embeddings = embedding_model.encode_documents(text_lines)
for i, line in enumerate(tqdm(text_lines, desc="Creating embeddings")):
data.append({"id": i, "vector": doc_embeddings[i], "text": line})
client.insert(collection_name=collection_name, data=data)
4.5 데이터 및 스키마 시각화
이제 Attu의 인터페이스를 사용하여 데이터 스키마와 삽입된 엔티티를 시각화할 수 있습니다. 스키마에는 Int64
유형의 id
필드와 vector
유형의 FloatVector(768)
필드( Inner Product (IP)
메트릭 포함) 등 정의된 필드가 표시됩니다. 컬렉션에는 72개의 엔티티가 로드되어 있습니다.
또한 ID, 벡터 임베딩 및 텍스트 콘텐츠와 같은 메타데이터를 저장하는 동적 필드를 포함하여 삽입된 데이터를 볼 수 있습니다. 이 인터페이스는 지정된 조건 또는 동적 필드를 기반으로 필터링 및 쿼리를 지원합니다.
5. 검색 결과 및 관계 시각화
Attu는 데이터 관계를 시각화하고 탐색할 수 있는 강력한 인터페이스를 제공합니다. 삽입된 데이터 포인트와 그 유사성 관계를 조사하려면 다음 단계를 따르세요:
5.1 검색 수행
Attu의 벡터 검색 탭으로 이동합니다.
- 무작위 데이터 생성 버튼을 클릭하여 테스트 쿼리를 생성합니다.
- 검색을 클릭하여 생성된 데이터를 기반으로 결과를 검색합니다.
결과는 테이블에 표시되며, 일치하는 각 엔티티의 ID, 유사도 점수 및 동적 필드가 표시됩니다.
5.2 데이터 관계 탐색
결과 패널에서 탐색 버튼을 클릭하면 쿼리 벡터와 검색 결과 사이의 관계를 지식 그래프와 같은 구조로 시각화할 수 있습니다.
- 중앙 노드는 검색 벡터를 나타냅니다.
- 연결된 노드는 검색 결과를 나타내며, 해당 노드를 클릭하면 해당 노드의 상세 정보가 표시됩니다.
5.3 그래프 펼치기
결과 노드를 더블클릭하여 연결을 확장합니다. 이 작업은 선택한 노드와 컬렉션의 다른 데이터 포인트 사이의 추가 관계를 표시하여 더 크고 상호 연결된 지식 그래프를 만듭니다.
이 확장된 보기를 사용하면 벡터 유사성을 기반으로 데이터 포인트가 어떻게 연관되어 있는지 더 깊이 탐색할 수 있습니다.
6. 결론
Attu는 Milvus에 저장된 벡터 데이터의 관리와 시각화를 간소화합니다. 데이터 삽입부터 쿼리 실행, 대화형 탐색에 이르기까지 복잡한 벡터 검색 작업을 처리할 수 있는 직관적인 인터페이스를 제공합니다. 동적 스키마 지원, 그래픽 검색 시각화, 유연한 쿼리 필터와 같은 기능을 통해 Attu는 사용자가 대규모 데이터 세트를 효과적으로 분석할 수 있도록 지원합니다.
Attu의 시각적 탐색 도구를 활용하면 데이터를 더 잘 이해하고, 숨겨진 관계를 파악하고, 데이터 기반의 의사 결정을 내릴 수 있습니다. 지금 바로 Attu와 Milvus로 데이터 세트 탐색을 시작하세요!