벡터 유사도 검색 소개
이전 튜토리얼에서는 비정형 데이터, 벡터 데이터베이스, 그리고 유사도 검색에 사용되는 세계에서 가장 인기 있는 오픈 소스 벡터 데이터베이스인 Milvus를 살펴보았습니다. 또한 비정형 데이터의 뛰어난 의미론적 표현 역할을 하는 고차원 벡터인 임베딩이라는 개념도 간단히 다루었습니다. 기억해야 할 핵심 사항 하나는, 서로 "가까운" 임베딩과 벡터 표현은 의미론적으로 유사한 데이터 조각을 나타낸다는 것입니다.
벡터 검색(일명 유사도 검색)에 대한 이 소개에서는 벡터 검색이 무엇인지 정의하고, 이에 대한 몇 가지 근본적인 질문에 답하겠습니다. 그런 다음 단어 임베딩 예시를 살펴보며 이러한 지식을 확장하고, 의미론적으로 유사한 비정형 데이터 조각들이 서로 "가까이" 있는 반면, 유사하지 않은 비정형 데이터 조각들은 서로 "멀리" 있다는 것을 확인하겠습니다. 이는 통합된 거리 측정 기준을 기반으로 쿼리 벡터에 가장 가까운 벡터(들)를 찾는 계산 문제인 최근접 이웃 검색에 대한 개괄적인 개요로 이어질 것입니다. 일반적으로 사용되는 거리 측정 기준과 더불어, 최근접 이웃 검색을 위한 잘 알려진 방법들(벡터 유사도 검색 알고리즘), 제 개인적으로 가장 좋아하는 ANNOY를 포함하여 살펴보겠습니다.
시작해 봅시다.
벡터 검색 또는 벡터 유사도 검색이란 무엇인가요?
벡터 검색은 벡터 유사도 검색, 최근접 이웃 검색 또는 의미 검색이라고도 하며, 데이터 검색 및 정보 검색 시스템에서 주어진 쿼리 벡터와 유사하거나 밀접하게 관련된 항목 또는 데이터 포인트를 찾는 데 사용되는 기술입니다. 정확한 단어나 구문을 일치시키는 기존 키워드 검색과 달리, 의미 검색은 쿼리 뒤에 있는 의도와 문맥적 의미를 이해하여, 콘텐츠에 정확한 키워드가 없더라도 더 관련성 높은 결과를 반환할 수 있게 합니다. 벡터 검색에서는 이미지, 텍스트, 오디오와 같은 데이터 포인트를 고차원 공간의 벡터로 표현합니다. 벡터 검색의 목표는 쿼리 벡터와 유사하거나 가장 가까운 가장 관련성 높은 벡터를 효율적으로 검색하고 가져오는 것입니다.
일반적으로 유클리드 거리 또는 코사인 유사도와 같은 거리 측정 기준이 벡터 간의 유사도를 측정합니다. 벡터 공간에서 벡터의 근접성이 해당 벡터가 얼마나 유사한지를 결정합니다. 벡터에 대한 검색 결과를 효율적으로 구성하고 표시하기 위해, 벡터 검색 알고리즘은 트리 기반 구조나 해싱 기법과 같은 인덱싱 구조를 사용합니다.
벡터 검색은 벡터 데이터베이스의 핵심이며, 추천 시스템, 이미지 및 비디오 검색, 자연어 처리, 이상 탐지, 질의응답 챗봇 등 다양한 응용 분야를 가지고 있습니다. 의미 검색을 사용하면 고차원 데이터 내에서 관련 항목, 패턴 또는 관계를 찾을 수 있어, 더 정확하고 효율적인 정보 검색이 가능합니다.
벡터 검색은 고차원 공간에서 정보를 분석하고 검색하기 위한 강력한 방법입니다. 사용자가 주어진 쿼리와 유사하거나 밀접하게 관련된 항목을 찾을 수 있게 해 주므로, 다양한 분야에서 매우 중요합니다. 벡터 검색의 이점은 다음과 같습니다:
유사도 기반 검색— 의미 검색은 유사도 기반 검색을 가능하게 하여, 사용자가 주어진 쿼리와 유사하거나 밀접하게 관련된 항목을 찾을 수 있도록 합니다. 유사도 기반 검색은 추천 시스템과 같은 다양한 분야에서 매우 중요하며, 사용자는 자신의 선호도나 다른 사용자와의 유사성을 기반으로 한 개인화된 추천을 기대합니다.
고차원 데이터 분석 — 이미지, 오디오, 텍스트 데이터와 같은 고차원 데이터의 가용성이 증가함에 따라, 기존 검색 방법은 효과가 떨어집니다. 벡터 검색은 고차원 공간에서 정보를 분석하고 검색하는 강력한 방법을 제공하여, 더 정확하고 효율적인 데이터 탐색을 가능하게 합니다.
최근접 이웃 검색 — 효율적인 최근접 이웃 검색 알고리즘은 주어진 쿼리 벡터에 대한 최근접 이웃을 찾습니다. 최근접 이웃 검색은 가장 가까운 일치 항목이나 유사한 항목을 찾아야 하는 이미지 또는 문서 유사도 검색, 콘텐츠 기반 검색, 이상 탐지와 같은 중요한 작업에 유용합니다.
향상된 사용자 경험— 시맨틱 검색을 활용함으로써, 애플리케이션은 사용자에게 더 관련성 높고 개인화된 결과를 제공할 수 있습니다. 관련 추천을 제공하거나, 시각적으로 유사한 이미지를 검색하거나, 유사한 내용을 가진 문서를 찾는 등, 벡터 검색은 더 타깃화되고 의미 있는 결과를 제공하여 전반적인 사용자 경험을 향상시킵니다.
확장성 — 벡터 검색 알고리즘과 인덱싱 구조는 대규모 데이터셋과 고차원 공간을 효율적으로 처리합니다. 이들은 빠른 검색 및 검색 작업을 가능하게 하여, 방대한 데이터셋에서도 실시간으로 유사도 기반 쿼리를 수행할 수 있게 합니다.
벡터 검색 엔진은 어떻게 작동하나요?
AI와 LLM의 인기로 인해, 모든 개발자 도구, 검색 엔진, 데이터베이스가 기능 세트에 벡터 검색 기능을 추가하고 있으며, 이로 인해 벡터 엔진과 벡터 검색 엔진이라는 용어는 종종 벡터 데이터베이스와 혼용됩니다. 벡터 검색 엔진은 벡터 시맨틱 검색(때로는 벡터 검색이라고도 함)을 수행합니다. 벡터 검색은 고차원 공간에서 벡터로 표현된 데이터셋의 유사한 항목이나 데이터 포인트를 찾는 기술입니다. 각 항목은 이 공간의 한 점에 매핑되며, 각 벡터 차원은 특정 특징을 나타냅니다. 벡터 검색 프로세스에는 인덱싱, 쿼리, 순위 지정, 검색이 포함됩니다.
벡터 검색을 수행하려면, 먼저 Word2Vec 같은 기법을 사용하거나 텍스트 데이터의 경우 데이터 항목을 벡터로 표현합니다. 인덱스 데이터 구조는 KD-trees나 해시 테이블 같은 방법을 사용하여 빠른 검색을 위해 이러한 벡터를 효율적으로 저장합니다. 사용자가 쿼리 항목을 제출하면, 이는 벡터 표현으로 변환되고, 코사인 유사도나 유클리드 거리 같은 유사도 지표를 사용하여 인덱싱된 벡터와 비교되며, 가장 유사한 항목이 검색되어 순위가 매겨집니다.
벡터 검색 사용 사례
- 이미지, 비디오, 오디오 유사도 검색
- AI 신약 개발
- 시맨틱 검색 엔진
- DNA 서열 분류
- 질의응답 시스템
- 추천 시스템
- 이상 탐지
- 검색 증강 생성(RAG)
이제 벡터 검색의 기본 사항을 다루었으니, 단어 임베딩 예시를 살펴보며 더 기술적인 세부 사항을 알아보고 최근접 이웃 검색에 대한 상위 수준 개요로 마무리하겠습니다.
임베딩 비교
사용자가 자신의 솔루션에 벡터 검색을 구축하기로 결정하면, 다음으로 자주 묻는 질문은 “ 벡터 임베딩을 생성하려면 어떤 머신러닝 모델을 사용해야 하나요?”입니다. 모델을 선택하기 전에, 몇 가지 예시를 비교하여 벡터 임베딩을 이해하는 것이 중요합니다. 단어 임베딩 예시 몇 가지를 살펴보겠습니다. 단순화를 위해 skipgrams 기반의 학습 방법론을 사용하는 오래된 모델인 word2vec을 사용하겠습니다. BERT와 기타 최신 transformer 기반 모델은 더 문맥화된 단어 임베딩을 제공할 수 있지만, 단순화를 위해 word2vec을 사용하겠습니다. 머신러닝 모델을 조금 더 활용하는 데 관심이 있다면, Jay Alammar가 word2vec에 대한 훌륭한 튜토리얼을 제공합니다.
몇 가지 준비 작업
시작하기 전에, gensim 라이브러리를 설치하고 word2vec 모델을 로드해야 합니다.
% pip install gensim --disable-pip-version-check
% wget https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz
% gunzip GoogleNews-vectors-negative300.bin
Requirement already satisfied: gensim in /Users/fzliu/.pyenv/lib/python3.8/site-packages (4.1.2)
Requirement already satisfied: smart-open>=1.8.1 in /Users/fzliu/.pyenv/lib/python3.8/site-packages (from gensim) (5.2.1)
Requirement already satisfied: numpy>=1.17.0 in /Users/fzliu/.pyenv/lib/python3.8/site-packages (from gensim) (1.19.5)
Requirement already satisfied: scipy>=0.18.1 in /Users/fzliu/.pyenv/lib/python3.8/site-packages (from gensim) (1.7.3)
--2022-02-22 00:30:34-- https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz
Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.216.20.165
Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.216.20.165|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1647046227 (1.5G) [application/x-gzip]
Saving to: GoogleNews-vectors-negative300.bin.gz
GoogleNews-vectors- 100%[===================>] 1.53G 2.66MB/s in 11m 23s
2022-02-22 00:41:57 (2.30 MB/s) - GoogleNews-vectors-negative300.bin.gz saved [1647046227/1647046227]
gunzip: GoogleNews-vectors-negative300.bin: unknown suffix -- ignored
단어-벡터 임베딩을 생성하는 데 필요한 모든 준비 작업을 마쳤으니, 이제 학습된 word2vec 모델을 로드해 봅시다.
>>> from gensim.models import KeyedVectors
>>> model = KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
예제 0: Marlon Brando
word2vec가 유명 배우 Marlon Brando를 어떻게 해석하는지 살펴봅시다.
>>> print(model.most_similar(positive=['Marlon_Brando']))
[('Brando', 0.757453978061676), ('Humphrey_Bogart', 0.6143958568572998), ('actor_Marlon_Brando', 0.6016287207603455), ('Al_Pacino', 0.5675410032272339), ('Elia_Kazan', 0.5594002604484558), ('Steve_McQueen', 0.5539456605911255), ('Marilyn_Monroe', 0.5512186884880066), ('Jack_Nicholson', 0.5440199375152588), ('Shelley_Winters', 0.5432392954826355), ('Apocalypse_Now', 0.5306933522224426)]
Marlon Brando는 The Godfather에서 Al Pacino와, A Streetcar Named Desire에서 Elia Kazan과 함께 작업했습니다. 그는 또한 Apocalypse Now에도 출연했습니다.
예제 1: 모든 왕들이 왕좌에 자신들의 여왕을 앉혔다면
벡터는 서로 더하고 빼서 그 이면의 의미 변화들을 시연할 수 있습니다.
>>> print(model.most_similar(positive=['king', 'woman'], negative=['man'], topn=1))
[('queen', 0.7118193507194519)]
엔지니어들이 가끔 약간의 댄스 팝을 즐길 수 없다고 누가 말하나요?
예제 2: Apple, 회사, 과일, ... 아니면 둘 다?
"apple"이라는 단어는 회사뿐만 아니라 맛있는 빨간 과일도 가리킬 수 있습니다. 이 예제에서는 Word2Vec이 두 가지 의미를 모두 유지한다는 것을 볼 수 있습니다.
>>> print(model.most_similar(positive=['samsung', 'iphone'], negative=['apple'], topn=1))
>>> print(model.most_similar(positive=['fruit'], topn=10)[9:])
[('droid_x', 0.6324754953384399)]
[('apple', 0.6410146951675415)]
"Droid"는 Samsung의 첫 4G LTE 스마트폰을 가리키며("Samsung" + "iPhone" - "Apple" = "Droid"), 한편 "apple"은 "fruit"에 10번째로 가까운 단어입니다.
벡터 검색 전략
이제 벡터 임베딩의 강력함을 보았으니, 최근접 이웃 검색을 수행할 수 있는 몇 가지 방법을 간단히 살펴봅시다. 이것은 포괄적인 목록이 아닙니다. 벡터 검색이 대규모로 어떻게 수행되는지에 대한 개괄적인 개요를 제공하기 위해 몇 가지 일반적인 방법을 간단히 훑어볼 것입니다. 이러한 방법 중 일부는 서로 배타적이지 않다는 점에 유의하세요. 예를 들어, 양자화를 공간 분할과 함께 사용하는 것도 가능합니다.
(또한 앞으로의 튜토리얼에서 이러한 각 방법을 자세히 다룰 예정이니, 계속 지켜봐 주세요.)
선형 검색
가장 단순하지만 가장 순진한 최근접 이웃 검색 알고리즘은 오래된 선형 검색입니다. 즉, 쿼리 벡터와 벡터 데이터베이스에 있는 다른 모든 벡터 사이의 거리를 계산하는 것입니다.
명백한 이유로, 순진한 검색은 벡터 데이터베이스를 수천만 또는 수억 개의 벡터로 확장하려고 할 때 작동하지 않습니다. 하지만 데이터베이스의 전체 요소 수가 적을 때는, 인덱스를 위한 별도의 데이터 구조가 필요하지 않고 삽입과 삭제도 비교적 쉽게 구현할 수 있으므로, 실제로 벡터 검색을 수행하는 가장 효율적인 방법일 수 있습니다.
공간 복잡도가 없고 순진한 검색과 관련된 상수 공간 오버헤드가 없기 때문에, 이 방법은 중간 정도의 수의 벡터를 대상으로 쿼리할 때도 종종 공간 분할보다 더 나은 성능을 낼 수 있습니다.
공간 분할
공간 분할은 단일 알고리즘이 아니라, 동일한 개념을 사용하는 알고리즘들의 한 계열입니다.
K-차원 트리(kd-tree)는 아마도 이 계열에서 가장 잘 알려져 있으며, 이진 검색 트리와 유사한 방식으로 검색 공간을 계속 이등분(벡터를 “왼쪽” 및 “오른쪽” 버킷으로 분할)하여 작동합니다.
역파일 인덱스(IVF)도 공간 분할의 한 형태이며, 각 벡터를 가장 가까운 중심점에 할당하는 방식으로 작동합니다. 그런 다음 검색은 먼저 쿼리 벡터에 가장 가까운 중심점을 결정하고 그 주변에서 검색을 수행함으로써, 검색해야 하는 전체 벡터 수를 크게 줄입니다. IVF는 꽤 인기 있는 인덱싱 전략이며, 성능을 향상시키기 위해 다른 인덱싱 알고리즘과 흔히 결합됩니다.
양자화
양자화는 벡터의 정밀도를 낮춤으로써 데이터베이스의 전체 크기를 줄이는 기법입니다.
예를 들어 스칼라 양자화(SQ)는 고정밀 부동소수점 벡터에 스칼라 값을 곱한 다음, 결과 벡터의 요소를 가장 가까운 정수로 캐스팅하는 방식으로 작동합니다. 이는 전체 데이터베이스의 유효 크기를 줄일 뿐만 아니라(예: float64_t에서 int8_t로 변환할 경우 8분의 1), 벡터 간 벡터 거리 계산을 가속화하는 긍정적인 부수 효과도 있습니다.
제품 양자화(PQ)는 사전 압축과 유사하게 작동하는 또 다른 양자화 기법입니다. PQ에서는 모든 벡터가 동일한 크기의 하위 벡터로 분할되고, 각 하위 벡터는 그런 다음 중심점으로 대체됩니다.
계층적 탐색 가능 소세계(HNSW)
계층적 탐색 가능 소세계는 그래프 기반 인덱싱 및 검색 알고리즘입니다.
이는 제품 양자화와 다르게 작동합니다. 데이터베이스의 유효 크기를 줄여 검색 가능성을 개선하는 대신, HNSW는 원본 데이터로부터 다층 그래프를 생성합니다. 상위 계층은 데이터베이스의 벡터 간 “긴 연결”만 포함하고, 하위 계층은 “짧은 연결”만 포함합니다(벡터 거리 메트릭의 개요는 다음 섹션을 참조하세요). 개별 그래프 연결은 스킵 리스트 방식으로 생성됩니다.
이 아키텍처가 마련되면, 검색은 상당히 직관적이 됩니다. 우리는 쿼리 벡터에 가장 가까운 벡터를 찾기 위해 최상위 그래프(벡터 간 연결이 가장 긴 그래프)를 탐욕적으로 순회합니다. 그런 다음 첫 번째 계층 검색의 결과를 시작점으로 사용하여 두 번째 계층에서도 동일하게 수행합니다. 이는 최하위 계층에서 검색을 완료할 때까지 계속되며, 그 결과가 쿼리 벡터의 최근접 이웃이 됩니다.
HNSW, 시각화. 이미지 출처: https://arxiv.org/abs/1603.09320
근사 최근접 이웃 오 예
이것은 아마도 장난스럽고 직관적이지 않은 이름 덕분에 제가 가장 좋아하는 ANN 알고리즘일 것입니다. Approximate Nearest Neighbors Oh Yeah (ANNOY)는 Spotify가 대중화한 트리 기반 알고리즘입니다(그들의 음악 추천 시스템에서 사용됩니다). 이상한 이름에도 불구하고, ANNOY의 기반이 되는 핵심 개념은 사실 꽤 단순합니다 – 이진 트리입니다.
ANNOY는 먼저 데이터베이스에서 두 벡터를 무작위로 선택하고, 이 두 벡터를 분리하는 초평면을 따라 검색 공간을 이등분하는 방식으로 작동합니다. 이는 각 노드에 미리 정의된 어떤 매개변수 NUM_MAX_ELEMS보다 적은 수의 요소가 남을 때까지 반복적으로 수행됩니다. 결과 인덱스는 본질적으로 이진 트리이므로, 이를 통해 O(log n) 복잡도로 검색을 수행할 수 있습니다.
ANNOY, 시각화. 이미지 출처: https://github.com/spotify/annoy
일반적으로 사용되는 유사도 메트릭
very best vector databases도 유사도 메트릭 없이는 쓸모가 없습니다 – 두 벡터 사이의 거리를 계산하는 방법입니다. 수많은 메트릭이 존재하므로, 여기서는 가장 일반적으로 사용되는 일부만 논의하겠습니다.
부동소수점 벡터 유사도 메트릭
가장 일반적인 부동소수점 벡터 유사도 메트릭은 특별한 순서 없이 L1 거리, L2 거리, 그리고 코사인 유사도입니다. 처음 두 값은 거리 메트릭이며(값이 낮을수록 더 유사하고, 값이 높을수록 유사도가 낮음을 의미), 코사인 유사도는 유사도 메트릭입니다(값이 높을수록 더 유사함을 의미).
L1 거리는 흔히 맨해튼 거리라고도 불리며, 맨해튼에서 A 지점에서 B 지점으로 가려면 두 개의 수직 방향 중 하나를 따라 이동해야 한다는 사실에서 적절히 이름이 붙었습니다. 두 번째 방정식인 L2 거리는 단순히 유클리드 공간에서 두 벡터 사이의 거리입니다. 세 번째이자 마지막 방정식은 두 벡터 사이 각도의 코사인에 해당하는 코사인 거리입니다. 코사인 유사도의 방정식은 입력 벡터 a와 b의 정규화된 버전 사이의 내적으로 계산된다는 점에 유의하세요.
약간의 수학을 통해, 단위 노름 벡터의 유사도 순위에 있어 L2 거리와 코사인 유사도가 사실상 동일하다는 것도 보일 수 있습니다:
단위 노름 벡터의 크기는 1이라는 점을 떠올려 보세요:
이를 통해 다음을 얻습니다:
단위 노름 벡터이므로, 코사인 거리는 a와 b 사이의 내적으로 계산됩니다(위의 방정식 3에서 분모는 1이 됩니다):
본질적으로, 단위 노름 벡터의 경우 L2 거리와 코사인 유사도는 기능적으로 동일합니다! 임베딩을 정규화하는 것을 항상 기억하세요.
이진 벡터 유사도 메트릭
이진 벡터는 이름에서 알 수 있듯이 부동소수점 벡터처럼 산술에 기반한 메트릭을 갖지 않습니다. 대신 이진 벡터의 유사도 메트릭은 집합 수학, 비트 조작, 또는 둘의 조합에 의존합니다(괜찮아요, 저도 이산수학을 싫어합니다). 다음은 일반적으로 사용되는 두 가지 이진 벡터 유사도 메트릭의 공식입니다:
첫 번째 방정식은 Tanimoto/Jaccard 거리라고 하며, 본질적으로 두 이진 벡터 간의 겹침 정도를 측정하는 것입니다. 두 번째 방정식은 Hamming 거리이며, a와 b에서 서로 다른 벡터 요소의 개수를 세는 것입니다.
대부분의 애플리케이션은 부동소수점 임베딩에 대해 코사인 유사도를 사용하므로, 이러한 유사도 메트릭은 대부분 안전하게 무시해도 됩니다.
마무리
이 튜토리얼에서는 벡터 검색과 몇 가지 일반적인 벡터 검색 알고리즘 및 거리 메트릭을 살펴보았습니다. 다음은 몇 가지 핵심 요점입니다:
임베딩 벡터는 벡터 간 거리 측면과 벡터 산술 측면 모두에서 강력한 표현입니다. 임베딩에 충분한 양의 벡터 대수를 적용함으로써, 기본적인 수학 연산자만으로 확장 가능한 의미 분석을 수행할 수 있습니다.
의미 기반 벡터 검색은 쿼리의 의미를 기반으로 검색할 수 있게 함으로써 키워드 검색의 한계를 극복합니다. 이는 벡터 검색을 수행하여 답변을 빠르게 검색할 수 있게 해줍니다.
선택할 수 있는 근사 최근접 이웃 검색 알고리즘 및/또는 인덱스 유형은 매우 다양합니다. 오늘날 가장 일반적으로 사용되는 것은 HNSW이지만, 보유한 벡터 임베딩의 총 개수와 각 개별 벡터의 길이에 따라 특정 애플리케이션에는 다른 인덱싱 알고리즘이 더 잘 맞을 수 있습니다.
오늘날 사용되는 두 가지 주요 거리 메트릭은 L2/Euclidean 거리와 코사인 거리입니다. 이 두 메트릭은 정규화된 임베딩에 사용될 때 기능적으로 동일합니다.
이 튜토리얼에 함께해 주셔서 감사합니다! 벡터 검색은 Milvus의 핵심 부분이며, 앞으로도 계속 그럴 것입니다. 향후 튜토리얼에서는 가장 일반적으로 사용되는 ANNS 알고리즘인 HNSW와 ScaNN에 대해 더 깊이 살펴보겠습니다.
Vector Database 101 과정 다시 살펴보기
- 비정형 데이터 소개
- 벡터 데이터베이스란 무엇인가?
- 벡터 데이터베이스, 벡터 검색 라이브러리, 벡터 검색 플러그인 비교
- Milvus 소개
- Milvus 빠른 시작
- 벡터 유사도 검색 소개
- 벡터 인덱스 기본 사항과 Inverted File Index
- Scalar Quantization과 Product Quantization
- Hierarchical Navigable Small Worlds (HNSW)
- Approximate Nearest Neighbors Oh Yeah (ANNOY)
- 프로젝트에 적합한 벡터 인덱스 선택하기
- DiskANN과 Vamana Algorithm
계속 읽기

What Is a Vector Lakebase?
A Vector Lakebase is a unified, lake-native data architecture for AI that combines vector-database-grade serving with open lake storage, reusable lake-level indexes, and a shared semantic layer.

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.

Introducing Zilliz MCP Server: Natural Language Access to Your Vector Database
Developers can easily manage and query vector databases with natural language via Zilliz MCP Server in AI-native environments.



