TDA 클러스터링을 통한 임베딩 모델 선택 최적화: 벡터 데이터베이스를 위한 전략 가이드
최근 Zilliz가 주최하고 Gunnar Carlsson과 Gabriel Alon이 연사로 참여한 웨비나의 인사이트를 해석하여 – 작성 Wania Shafqat
대규모 언어 모델 (LLMs)은 데이터 처리를 변화시켰지만, 그 성능은 이를 구동하는 임베딩의 품질과 밀접하게 연결되어 있습니다. 최근 웨비나에서 Gunnar Carlsson, Blue Light AI의 공동 창립자 겸 CTO, Gabriel Alon, 시니어 데이터 사이언티스트, 그리고 Stefan Webb, Zilliz,의 Developer Advocate가 위상적 데이터 분석(TDA) 클러스터링이 임베딩 모델의 숨겨진 약점을 어떻게 드러내는지 살펴보았습니다. 이 글에서는 세션의 핵심 인사이트와 성능 향상을 위한 기법을 정리하고, 여러분의 고유한 요구에 맞는 모델을 자신 있게 선택하고 개발하는 데 도움이 되는 추가 연구와 실용적인 팁을 함께 제공합니다.
과제: 임베딩 모델 평가
임베딩 모델은 원시 비정형 데이터(텍스트, 이미지, 동영상)를 의미론적 의미를 담은 고차원 벡터로 변환합니다. 그러나 어떤 벡터 데이터베이스 배포에서도 적절한 임베딩 모델을 선택하는 것은 어렵습니다.
그림: 적절한 임베딩 모델 선택.
전통적인 임베딩 방법은 대개 다음에 의존합니다.
공개 리더보드(MTEB): 모델이 공개 데이터에 과적합되어 실제 작업에서 성능이 저조합니다.
평균 지표: NDCG@10과 같은 지표는 중요한 쿼리가 낮은 성능을 보이는 실패 클러스터를 숨깁니다.
확장성 문제: 100K+ 쿼리가 포함된 대규모 데이터셋을 수동으로 검사하는 것은 현실적이지 않습니다.
Gabriel Alon이 웨비나에서 언급했듯이, 0.34 NDCG(정규화 할인 누적 이득)의 평균 점수는 받아들일 만해 보일 수 있지만, 상당한 비율의 쿼리가 0.1 미만의 점수를 받는다면 해당 모델은 실제 애플리케이션에 적합하지 않을 수 있으며 사용자 신뢰를 위협할 수 있습니다. 따라서 학습-테스트 불일치를 극복하고 공개 벤치마크에 대한 과적합을 피하기 위해, 자신의 데이터에서 모델을 평가할 것을 강력히 권장했습니다.
예를 들어, ‘Television Stands’에 대한 결과를 검색하는 두 모델을 생각해 보겠습니다.
Model A는 [Mobile TV Cart, Universal TV Stand, Black Television]를 반환합니다.
Model B는 [Mobile TV Cart, Universal TV Stand, TV Stand (2 feet)]를 반환합니다.
Model B의 재현율이 더 높지만, 평균 지표나 리더보드만으로는 이 차이를 드러낼 수 없습니다.
해결책: 탐색 가능한 TDA 클러스터링
위상적 데이터 분석(TDA)은 데이터의 ‘형태’를 연구하는 수학적 프레임워크이며, 탐색 가능한 클러스터링은 세분화된 인사이트를 위해 하이퍼파라미터(예: 해상도)를 조정할 수 있는 유연성을 더합니다. Mapper 알고리즘과 같은 TDA 클러스터링 기법을 적용하면, 기존 평균 지표가 놓치는 고차원 임베딩 내의 기저 구조, 클러스터, 이상치를 드러내는 시각적 표현을 만들 수 있습니다. 탐색 가능한 TDA 클러스터링은 이를 다음과 같이 확장합니다.
데이터 토폴로지 매핑: 임베딩 공간의 그래프 기반 구조를 생성합니다.
중요 클러스터 식별: 획일적인 솔루션이 아니라 타겟 개선을 위해 성능이 낮은 쿼리 그룹을 강조합니다.
자동화된 해석 가능성: 클러스터와 모델 동작을 설명하기 위해 키워드와 히트맵을 생성합니다.
그림: TDA 클러스터링 워크플로: 성능이 낮은 그룹 강조.
작동 방식:
유사도별 쿼리 클러스터링: 벡터 임베딩을 사용하여 쿼리를 그룹화합니다.
클러스터별 지표 평가: 각 클러스터에 대해 정밀도, 재현율 또는 NDCG를 계산합니다.
전략적으로 최적화: 취약한 클러스터에 대해 하이퍼파라미터를 조정하거나 모델을 전환합니다.
정적 클러스터링 방법(예: K-means 또는 DBSCAN)과 달리, 탐색 가능한 TDA 클러스터링은 평균 지표로는 보이지 않는 실패 핫스팟을 감지하고, 사용자 데이터에서 모델(E5 vs. SBERT)을 객관적으로 순위화하며, 100K+ 쿼리를 몇 분 안에 처리합니다.
사례 연구: 전자상거래 쿼리 최적화
Marqo-GS-10M 데이터셋(1,000만 개 Google Shopping 쿼리)의 하위 집합을 사용하여 Blue Light AI는 인기 임베딩 모델(E5)의 심각한 결함을 발견했습니다. TDA 클러스터링을 적용한 후:
| 쿼리 클러스터 | 크기 | NDCG |
| 임부복 | 35 | 0.10 |
| 에스프레소 머신 | 32 | 0.11 |
| 남아용 트랙수트 | 35 | 0.13 |
핵심 요점:
평균 NDCG가 0.34임에도 불구하고, 약 30%의 클러스터가 훨씬 더 낮은 성능(<0.15)을 보였습니다.
파인튜닝은 중요 클러스터의 성능을 악화시켰습니다.
TDA가 없으면 이러한 미묘한 결함은 숨겨진 채로 남습니다.
머신 러닝 라이프사이클: TDA 인사이트
모델 비교:
E5(NDCG 0.34)는 평균적으로 SBERT(0.26)를 능가했지만, SBERT는 ‘novelty wallets’와 같은 클러스터에서 뛰어난 성능을 보였습니다:
| 클러스터 | E5 NDCG | SBERT NDCG | 최고 모델 |
| Novelty wallets | 0.16 | 0.28 | SBERT |
| Air mattresses | 0.38 | 0.38 | 동률 |
비용 절감 트레이드오프:
E5-large에서 E5-small로 전환하면 스토리지를 절약할 수 있었지만, 중요 클러스터에서 상당한 성능 저하가 발생했습니다:
| 쿼리 유형 | 성능 저하 |
| Adaptive waistbands | -35% |
| Polo activities | -65% |
파인튜닝의 함정
배포 후 모니터링 결과, 파인튜닝은 평균 NDCG를 0.35에서 0.45로 개선했지만 특정 클러스터의 성능을 저하시켰습니다:
| 쿼리 유형 | 성능 저하 |
| Privacy films | -29% |
| Garlic peeling | -22% |
교훈: 파인튜닝은 전역 수준에서만이 아니라 항상 클러스터 수준에서 검증하세요.
배포 후 전략
위험 완화: 모델이 개선될 때까지 낮은 점수의 클러스터에서 제품을 홍보하지 마세요.
휴먼 인 더 루프: 성능이 낮은 쿼리를 인간 상담원에게 라우팅합니다.
모델 라우팅: 클러스터 성능에 따라 모델을 동적으로 전환합니다(예: 특정 쿼리 유형에는 SBERT 사용).
Zilliz Cloud 및 Milvus와 TDA 통합
Zilliz Cloud와 Milvus는 임베딩 저장 및 쿼리를 단순화합니다. TDA 클러스터링을 적용하면 검색 효율성, 상호작용성, 최적화된 리소스 할당을 개선할 수 있습니다. TDA와 함께 사용하는 방법은 다음과 같습니다:
임베딩 저장
인덱싱 전에 임베딩을 검증하여 낭비되는 리소스를 줄입니다:
from pymilvus import connections, Collection
# Connect to Zilliz Cloud
connections.connect(
alias="default",
uri="YOUR_CLUSTER_ENDPOINT", # Example: "https://your-cluster.zillizcloud.com"
token="YOUR_API_KEY"
)
# Load your collection
collection = Collection("product_embeddings")
collection.load()
TDA로 평가 및 클러스터링
import pandas as pd
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
# Load embeddings from Zilliz
embeddings = collection.query(expr="", output_fields=["embedding"])
# Reduce dimensionality for visualization
tsne = TSNE(n_components=2)
embeddings_2d = tsne.fit_transform(embeddings)
plt.scatter(embeddings_2d[:, 0], embeddings_2d[:, 1], c=cluster_labels)
plt.title("T-SNE Visualization of Query Clusters")
plt.show()
Zilliz가 TDA 워크플로에서 뛰어난 이유
확장성: 수십억 개의 벡터를 처리하며, 대규모 TDA에 이상적입니다.
실시간 인사이트: 새로운 데이터가 스트리밍될 때 클러스터를 동적으로 업데이트합니다.
원활한 통합: Python SDK와 REST API가 기존 파이프라인에 잘 맞습니다.
더 깊은 인사이트를 얻으려면 Zilliz의 벡터 데이터베이스 가이드를 살펴보세요.
임베딩 모델 개발을 위한 모범 사례
로컬에서 검증: 벤치마크에만 의존하지 말고, 자체 데이터로 모델을 테스트하세요.
TDA를 조기에 도입: 프로토타이핑 중 문제를 포착하기 위해 탐색 가능한 클러스터링을 통합하세요.
배포 후 모니터링: Zilliz Cloud의 도구를 사용해 클러스터 성능을 지속적으로 추적하세요.
Q&A: 웨비나의 주요 질문
웨비나 중 여러 질문을 받았습니다. 아래는 가장 자주 나온 질문들과 Gunnar 및 Gabriel의 답변입니다:
Q: TDA 클러스터링을 적용하면서 가장 놀라웠던 점은 무엇인가요?
우리 사례 연구에서는 파인튜닝이 클러스터의 30-40%에서 성능을 악화시켰습니다. 예를 들어, 에스프레소 머신 관련 쿼리는 튜닝 후 훨씬 더 나쁜 성능을 보였습니다. 더욱 중요한 점은, 이커머스에서는 단일 쿼리가 $20짜리 제품을 나타낼 수 있다는 것입니다. 모델이 여기서 실패하면 실제 매출 손실이 발생합니다.
Q: 임베딩 모델 대비 검색 모델의 파인튜닝을 살펴본 적이 있나요?
네! RAG 설정에서, 우리는 TDA를 사용해 모호한 쿼리를 서로 다른 클러스터로 분리했습니다. 예를 들어 ‘tell me about the draft’라는 쿼리의 경우, TDA는 결과를 NBA draft와 military draft 클러스터로 분리합니다. 이는 검색 모델이 맥락의 우선순위를 정하고 관련 없는 결과를 피하는 데 도움이 됩니다.
Q: TDA는 DBSCAN 같은 방법과 어떻게 비교되나요?
TDA는 탐색 가능한 하이퍼파라미터를 통해 유연성을 제공합니다. DBSCAN 같은 전통적인 방법은 고정된 데이터 맵에서 작동합니다. TDA를 사용하면 지역 최솟값(예: 성능이 낮은 쿼리 클러스터)을 분리하기 위해 지리적 투영을 전환하듯 ‘맵 해상도’를 조정할 수 있습니다.
Q: 쿼리 의존적 임베딩 모델에 대해 어떻게 생각하시나요?
TDA의 토폴로지 매핑은 이러한 추세를 자연스럽게 보완합니다. 예를 들어 OpenAI 같은 모델의 sparse autoencoder features는 전통적인 방법이 놓치는 클러스터를 드러냅니다. 한 사례에서는 ‘rules’를 compliance와 breaking rules 클러스터로 나누며, 임베딩이 쿼리 맥락에 어떻게 적응할 수 있는지 보여줍니다.
Q: 팀은 어떻게 TDA를 시작할 수 있나요?
pip install cobalt-ai를 실행해 Python 패키지 Cobalt를 사용해 보고, 문제 해결에 도움이 되는 documentation과 GitHub 및 Slack의 리소스를 살펴보세요. 이 패키지는 기존 워크플로에 TDA 클러스터링을 통합하는 작업을 단순화합니다. 100K개의 쿼리를 몇 분 만에 처리하며 Zilliz와 통합됩니다.
결론
이 웨비나는 TDA 클러스터링이 임베딩 모델 평가를 어떻게 혁신할 수 있는지에 대한 종합적인 개요를 제공했습니다. 탐색 가능한 클러스터링을 통해 상세한 성능 분석을 드러냄으로써, 팀은 모델 선택을 최적화하고, 리소스 할당을 개선하며, 사용자 경험을 향상할 수 있습니다. Zilliz Cloud 또는 Milvus와 함께 활용하면 이러한 인사이트는 다음으로 이어집니다:
투명성: 임베딩의 숨겨진 결함을 발견합니다.
정밀도: 세분화된 성능 인사이트를 바탕으로 모델을 배포합니다.
비용 절감: 낭비되는 컴퓨팅 및 스토리지 리소스를 줄입니다.
오늘부터 더 스마트한 클러스터링을 시작하려면 Zilliz Cloud 를 살펴보세요.
전체 웨비나 녹화본 및 슬라이드 보기
Zilliz의 YouTube 채널에서 웨비나 녹화본을 시청하고, 위상 데이터 분석(Topological Data Analysis, TDA) 클러스터링 및 Gunnar와 Gabriel 간의 논의에 대한 추가 인사이트를 얻기 위해 프레젠테이션 슬라이드에 액세스할 수 있습니다.
관련 리소스
계속 읽기

How Zilliz Saw the Future of Vector Databases—and Built for Production
An inside look at how Zilliz built vector databases for real-world use, focusing on scalability, stability, and running them reliably at scale.

What is the K-Nearest Neighbors (KNN) Algorithm in Machine Learning?
KNN is a supervised machine learning technique and algorithm for classification and regression. This post is the ultimate guide to KNN.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.



