Milvus를 활용한 AI 시스템의 생성형 피드백 루프 활용
생성적 피드백 루프는 AI 모델이 생성한 출력이 학습 데이터로 시스템에 다시 입력되는 순환적 프로세스입니다. 이를 통해 모델은 시간이 지남에 따라 지속적으로 학습하고 역량을 향상할 수 있습니다. 이 주기는 반복되며, AI가 점진적으로 결과를 최적화할 수 있게 합니다.
대규모 언어 모델 (LLMs)은 생성적 피드백 루프를 통해 상당한 이점을 얻을 수 있습니다. LLMs는 방대한 양의 텍스트 데이터로 학습되어 인간과 유사한 텍스트를 이해하고 생성할 수 있습니다. 그러나 기본 지식은 정적이며, 새로운 정보로부터 자동으로 학습하지 않습니다. 바로 이 지점에서 Milvus가 필요합니다.
Milvus는 방대한 양의 벡터 데이터를 실시간으로 저장, 인덱싱 및 검색하도록 설계된 오픈소스 벡터 데이터베이스입니다. LLMs의 맥락에서 Milvus는 텍스트 데이터의 의미론적 의미를 인코딩하는 벡터 표현을 효율적으로 저장하고 검색할 수 있습니다. 생성적 피드백 루프에서 Milvus를 LLMs와 통합하면 지속적으로 학습하고 개선되는 동적 시스템을 만들 수 있습니다.
이러한 구성 요소들이 어떻게 함께 작동하는지 더 잘 이해하기 위해, 먼저 AI와 머신 러닝의 맥락에서 생성적 피드백 루프의 개념을 살펴보겠습니다.
생성적 피드백 루프 이해하기
AI와 머신 러닝의 맥락에서 피드백 루프는 모델 자체를 개선하기 위해 모델의 출력 데이터를 활용하는 메커니즘입니다. 이 반복적 프로세스를 통해 모델은 지속적으로 학습하고 성능을 개선할 수 있습니다. 생성적 피드백 루프에 포함되는 핵심 요소는 다음과 같습니다:
모델 학습: 초기 단계에서는 레이블이 지정된 예제 데이터셋을 사용하여 AI 모델을 학습합니다. 이 데이터셋은 모델이 데이터 내의 기본 패턴과 관계를 학습할 수 있는 기반을 제공합니다.
모델 출력: 학습이 완료되면 모델은 예를 들어 예측, 분류 또는 창의적인 텍스트 형식일 수 있는 새로운 출력을 생성합니다.
평가 및 피드백: 그런 다음 생성된 출력은 사전에 정의된 기준 세트를 바탕으로 평가됩니다. 이 평가는 인간 전문가가 품질과 정확성을 평가하거나 정답 데이터와 비교하는 것을 포함할 수 있습니다.
데이터 통합: 평가된 출력과 관련 피드백 데이터는 이후 학습 데이터셋에 통합됩니다. 이렇게 강화된 데이터셋은 모델이 과거 성능으로부터 학습하고 이후 반복에서 출력 생성 프로세스를 개선할 수 있도록 합니다.
생성적 피드백 루프는 AI 시스템에서 모델 출력의 지속적인 개선을 보장하는 데 필수적입니다. 이러한 루프가 지속적인 개선을 어떻게 촉진하는지 구체적인 이점으로 나누어 살펴보면 다음과 같습니다:
새로운 데이터에 대한 적응성
루프는 새로운 데이터 입력과 상호작용을 학습 데이터에 통합합니다.
이를 통해 모델은 변화하는 패턴과 추세에 적응하여 향후 출력의 관련성과 정확성을 높일 수 있습니다.
편향 및 오류 감소
루프는 초기 학습 데이터의 편향을 식별하고 완화하는 데 도움이 됩니다.
- 인간 평가 또는 정답 데이터는 원하는 결과에서 벗어난 출력을 표시할 수 있습니다.
이는 학습 데이터와 모델 매개변수의 조정을 촉진하여 시간이 지남에 따라 편향과 오류를 줄입니다.
개인화된 모델 출력
사용자 피드백 또는 선호도를 피드백 루프에 통합할 수 있습니다.
- 모델은 특정 사용자 요구와 맥락에 더 잘 부합하도록 출력을 개인화합니다.
예를 들어, 제품 설명 모델은 사용자 클릭률을 기반으로 개선되어 더 매력적이고 설득력 있는 설명을 생성할 수 있습니다.
향상된 창의성과 혁신
피드백 루프는 모델이 생성형 AI 애플리케이션에서 새로운 창의적 방향을 탐색할 수 있도록 합니다.
모델은 과거의 성공적인 출력과 사용자 선호도를 분석합니다.
이는 모델이 더 혁신적이고 관련성 높은 창의적 콘텐츠를 생성하도록 안내합니다.
이러한 지속적인 학습은 창의적 탐구와 개선의 순환을 촉진합니다.
이제 피드백 루프가 LLM을 어떻게 향상시키는지 살펴보겠습니다.
LLM에서 피드백 루프의 역할
대규모 언어 모델(LLM)은 인간과 유사한 텍스트를 이해하고 생성하는 고급 AI 시스템입니다. 방대한 데이터셋으로 학습되어 번역부터 콘텐츠 제작에 이르기까지 다양한 언어 관련 작업을 수행할 수 있습니다. 맥락과 미묘한 뉘앙스를 이해하는 능력 덕분에 대화에 참여하고, 질문에 답하며, 특정 글쓰기 스타일을 모방할 수도 있습니다.
피드백 루프는 LLM의 성능을 개선하는 데 매우 중요합니다. 모델이 생성한 출력을 추가 학습을 위한 입력으로 사용하여, 모델이 예측과 텍스트 생성을 정교하게 다듬을 수 있게 합니다. 피드백 루프가 LLM을 향상시키는 방법은 다음과 같습니다:
지속적인 학습: 사용자 피드백을 통합함으로써 LLM은 상호작용에서 학습할 수 있습니다. 이는 수정이나 제안처럼 명시적일 수도 있고, 사용자가 어떤 응답에 더 많이 참여하는지와 같이 암묵적일 수도 있습니다.
사용자 선호도에 대한 적응: 시간이 지나면서 피드백 루프는 LLM이 개별 사용자 선호도에 적응하도록 도와, 생성된 텍스트의 스타일과 내용을 사용자 기대에 맞게 조정합니다.
오류 수정: 오류가 식별되면 피드백 루프를 통해 LLM은 내부 매개변수를 조정하여 동일한 실수를 반복할 가능성을 줄일 수 있습니다.
예측 정확도: 어떤 예측이 성공했고 어떤 예측이 그렇지 않았는지 분석함으로써, LLM은 사용자 요구를 이해하고 예측하는 정확도를 향상시킬 수 있습니다.
생성 능력: 피드백 루프는 이야기를 쓰거나, 시를 짓거나, 정보성 기사를 작성하는 등 LLM이 더 창의적이고 다양한 콘텐츠를 생성하도록 안내할 수 있습니다.
LLM은 피드백 루프를 활용함으로써 더 효율적이고, 정확하며, 친근하고, 사용자 친화적이 됩니다. 이는 사용자에게 직관적이면서도 뚜렷이 인간적인 느낌의 경험을 제공하는 것을 목표로 하는 지속적인 개선의 여정입니다.
향상된 데이터 처리를 위한 Milvus 통합
Milvus는 고성능 분산 벡터 데이터베이스로, LLM의 피드백 루프 시나리오에 필수적인 대규모 벡터 데이터를 관리하는 데 특히 유용합니다. 이러한 애플리케이션에 적합하게 만드는 Milvus의 주요 기능은 다음과 같습니다:
벡터 임베딩: Milvus는 머신 러닝 모델에서 파생된 수치 표현인 벡터 임베딩을 처리하는 데 특화되어 있습니다. 이러한 임베딩은 비정형 데이터의 의미론적 의미를 담아내어, 데이터의 본질을 포착하는 정교한 검색을 가능하게 합니다.
효율적인 쿼리 처리: 단순한 벡터 유사도 검색을 넘어 고급 쿼리 처리를 지원합니다. 이는 지속적으로 학습하고 적응하는 LLM에 중요한 효율적인 쿼리 처리를 보장하면서 빠른 업데이트를 위한 동적 데이터를 처리할 수 있음을 의미합니다.
확장성과 가용성: Milvus는 확장성과 고가용성을 달성하기 위해 여러 노드에 데이터를 분산합니다. 이는 새로운 정보가 지속적으로 통합됨에 따라 데이터 양이 빠르게 증가할 수 있는 피드백 루프에서 중요합니다.
이기종 컴퓨팅: 이 시스템은 최신 CPU와 GPU를 갖춘 이기종 컴퓨팅 플랫폼에 최적화되어 있으며, 이는 LLM 학습 및 응답 생성에 관련된 계산 집약적 작업에 도움이 됩니다.
사용하기 쉬운 인터페이스: Milvus는 SDK와 RESTful API를 포함한 사용하기 쉬운 애플리케이션 인터페이스를 제공하여 LLM 및 기타 AI 애플리케이션과의 통합을 용이하게 합니다.
동적 LLM 학습 및 응답 생성에 필요한 효율적인 데이터 인덱싱과 검색을 지원하는 측면에서, Milvus는 다음을 제공합니다:
검색 증강 생성 (RAG): Milvus는 검색 시스템과 생성 모델을 결합한 RAG 시스템을 구축하는 데 사용할 수 있습니다. 이를 통해 검색된 문서를 기반으로 새로운 텍스트를 생성할 수 있으며, 이는 동적 LLM 학습의 핵심 구성 요소입니다.
Vector Store: 텍스트 간 유사도 검색에 필수적인 벡터 임베딩을 저장하기 위해 벡터 스토어를 설정합니다. 이 기능은 LLM이 답변을 준비할 때 문서를 엿볼 수 있게 하여 응답 생성의 품질을 향상시킵니다.
Indexing and Search Framework: Milvus는 효율적인 벡터 데이터베이스 인덱스 및 검색 기능을 위해 NVIDIA Merlin과 같은 프레임워크와 통합됩니다. 이는 추천 워크플로에 매우 중요하며, 더 나은 예측 및 응답 정확도를 위해 LLM에 적용될 수 있습니다.
이러한 기능은 특히 예측 및 생성 정확도를 개선하기 위해 피드백 루프가 사용되는 시나리오에서 Milvus를 LLM의 데이터 처리 기능을 향상시키는 효과적인 도구로 만듭니다.
다음으로, Milvus를 사용하여 생성형 피드백 루프 시스템을 설정하는 방법을 살펴보겠습니다.
Milvus와 LLM을 사용한 생성형 피드백 시스템 설정
아래와 같이 필요한 패키지를 설치하는 것부터 시작하겠습니다. 텍스트 생성을 위해 Anthropic의 Claude 모델을 사용할 것입니다. Milvus 설치에 대한 자세한 내용은 공식 문서를 참조하세요: Milvus documentation.
# Milvus, model extra가 포함된 pymilvus, 그리고 지정된 grpcio 버전 설치
pip install pymilvus[model] grpcio==1.50.0 milvus
# Anthropic LLM 사용을 위한 anthropic 패키지 설치
pip install anthropic
# 텍스트 임베딩을 위한 sentence-transformers 패키지 설치
pip install sentence-transformers
다음으로 아래 단계에 따라 Milvus 서버를 시작합니다:
milvus패키지에서default_server모듈을 가져옵니다.pymilvus패키지에서connections및utility모듈을 가져옵니다.(선택 사항)
default_server의cleanup()메서드를 사용하여 이전 데이터를 정리합니다.default_server의start()메서드를 사용하여 Milvus 서버를 시작합니다.지정된 호스트와 포트로
connections의connect()메서드를 사용하여 Milvus 서버에 연결합니다.utility의get_server_version()메서드를 사용하여 서버 버전을 출력함으로써 서버가 준비되었는지 확인합니다.
아래 코드는 우리가 수행한 모든 단계를 보여줍니다.
from milvus import default_server
from pymilvus import connections, utility
# (OPTIONAL) Clean up any previous data
default_server.cleanup()
# Start the Milvus server
default_server.start()
# Connect to the Milvus server
connections.connect(host='127.0.0.1', port=default_server.listen_port)
# Check if the server is ready by printing the server version
print(utility.get_server_version())
다음으로 우리는 다음을 수행합니다:
pymilvus패키지에서MilvusClient클래스를 가져옵니다.MilvusClient()생성자를 사용하여client1이라는 Milvus 클라이언트 인스턴스를 생성합니다.
from pymilvus import MilvusClient
# Create an instance of the Milvus client
client1 = MilvusClient()
그 후, 인덱스 매개변수와 함께 스키마 및 컬렉션을 생성합니다. 컬렉션 이름은 taverns10으로 지정합니다. 아래와 같이 pymilvus를 사용하여 이를 수행합니다.
from pymilvus import Collection, FieldSchema, CollectionSchema, DataType
# Define the fields for the "Taverns" collection
fields = [
FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
FieldSchema(name="name", dtype=DataType.VARCHAR, max_length=255, description="Tavern name"),
FieldSchema(name="description", dtype=DataType.VARCHAR, max_length=3000, description="Tavern description", is_vector=False),
FieldSchema(name="location", dtype=DataType.VARCHAR, max_length=255, description="Location in Middle-Earth"),
FieldSchema(name="famous_visitor", dtype=DataType.VARCHAR, max_length=255, description="Famous visitors in the tavern"),
FieldSchema(name="vector_embedding", dtype=DataType.FLOAT_VECTOR, dim=384, description="Vector embedding for semantic search")
]
# Define the index parameters for similarity search
index_params = {
"metric_type": "IP",
"index_type": "HNSW",
"params": {"M": 48, "efConstruction": 200}
}
# 정의된 필드와 설명을 사용하여 CollectionSchema 객체 생성
schema = CollectionSchema(fields=fields, description="LOTR Taverns")
# 지정된 이름, 스키마, 인덱스 매개변수로 Collection 객체 생성
taverns10 = Collection(name="taverns10", schema=schema, index_params=index_params)
# 지정된 인덱스 매개변수를 사용하여 "vector_embedding" 필드에 인덱스 생성
taverns10.create_index("vector_embedding", index_params)
이제 문서를 벡터 임베딩과 함께 데이터베이스에 추가하겠습니다. claude opus를 사용하여 문서 설명을 생성한 뒤, sentence transformers를 사용하여 임베딩을 생성하겠습니다. 먼저 아래와 같이 Anthropic 클라이언트와 sentence transformers 임베딩 모델을 초기화합니다
import anthropic
from pymilvus import model
# 텍스트 임베딩을 위한 SentenceTransformerEmbeddingFunction 인스턴스 생성
sentence_transformer_ef = model.dense.SentenceTransformerEmbeddingFunction(
model_name='all-MiniLM-L6-v2',
device='cpu'
)
# 제공된 API 키로 Anthropic 클라이언트 인스턴스 생성
client = anthropic.Anthropic(
api_key="your_api_key_here"
)
다음으로, claude opus 모델을 사용하여 설명을 생성하는 generate 함수를 만듭니다. 그런 다음 이 함수를 사용하여 설명을 생성하고, 임베딩을 만든 뒤 컬렉션에 추가합니다
def generate_description(name, location, famous_visitor):
# 선술집에 대한 생생한 설명을 생성하기 위한 프롬프트 구성
prompt = f"Write a vivid description for a tavern named {name}, located in {location}, known for a visit by {famous_visitor}."
# Anthropic 클라이언트를 사용하여 지정된 모델에 프롬프트를 보내 메시지 생성
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0,
messages=[{"role": "user", "content": prompt}]
)
# 메시지 콘텐츠에서 생성된 설명 반환
return message.content[0].text
# 예시 선술집 데이터 목록 정의
tavern_data = [
{"name": "The Prancing Pony", "location": "Bree", "famous_visitor": "Aragorn"},
{"name": "Green Dragon", "location": "Bywater", "famous_visitor": "Frodo Baggins"}
]
# tavern_data 목록의 각 선술집을 반복 처리
for tavern in tavern_data:
# generate_description 함수를 사용하여 선술집 설명 생성
description = generate_description(tavern["name"], tavern["location"], tavern["famous_visitor"])
# encode_documents 메서드를 사용하여 생성된 설명을 벡터 임베딩으로 인코딩
vector_embedding = sentence_transformer_ef.encode_documents([description])[0]
# 선술집 데이터와 벡터 임베딩을 taverns10 컬렉션에 삽입
taverns10.insert([
[tavern["name"]],
[description],
[tavern["location"]],
[tavern["famous_visitor"]],
[vector_embedding]
])
이제 컬렉션을 생성하고 데이터베이스에 벡터 임베딩을 추가했습니다. 이를 사용하려면 아래와 같이 load_collection 메서드를 사용하여 컬렉션을 로드해야 합니다
# load_collection 메서드를 사용하여 "taverns10" 컬렉션을 메모리에 로드
client1.load_collection(collection_name="taverns10")
# get_load_state 메서드를 사용하여 "taverns10" 컬렉션의 로드 상태 조회
res = client1.get_load_state(collection_name="taverns10")
# 로드 상태 출력
print(res)
출력
{'state': <LoadState: Loaded>}
이제 임의의 입력 쿼리를 사용하여 의미론적 검색을 수행하는 함수를 만들어 보겠습니다. 아래와 같이 수행합니다
def search_taverns(query):
# encode_documents 메서드를 사용하여 쿼리 문자열을 벡터로 인코딩
vector = sentence_transformer_ef.encode_documents([query])[0]
# Perform a similarity search on the "taverns10" collection using the search method
results = taverns10.search(
data=[vector],
anns_field="vector_embedding",
param={"metric_type": "IP", "params": {"nprobe": 10}},
limit=3,
output_fields=["name", "description", "location", "famous_visitor"]
)
# Return the search results
return results
search 함수를 사용해 쿼리하고 첫 번째 생성 응답을 가져와 보겠습니다.
# Call the search_taverns function with a sample query and assign the results to search_results
search_results = search_taverns("A cozy place frequented by famous hobbits")
search_results[0][0]
출력
id: 449415822381617057, distance: 0.4701901376247406, entity: {'location': 'Bree', 'famous_visitor': 'Aragorn', 'name': 'The Prancing Pony', 'description': "The Prancing Pony is a cozy, rustic tavern nestled in the heart of the bustling village of Bree. As you approach the weathered wooden door, the warm glow of flickering lanterns and the merry sounds of laughter and clinking mugs beckon you inside.\n\nStepping over the threshold, you're greeted by the inviting aroma of hearty stew simmering in a cauldron over the crackling fireplace. The tavern's interior is a tapestry of rough-hewn wooden beams, well-worn tables, and benches polished smooth by countless patrons over the years. The walls are adorned with colorful banners and curious trinkets, each hinting at a tale waiting to be told.\n\nThe Prancing Pony's patrons are a lively and eclectic bunch, from local hobbits and farmers to wandering dwarves and mysterious rangers. Amidst the chatter and revelry, whispers of a recent visit by the enigmatic Aragorn, a man of legend, add an air of intrigue to the already enchanting atmosphere.\n\nAs you settle into a cozy nook, the attentive barkeep, a jovial fellow with a twinkle in his eye, brings you a frothing mug of the tavern's renowned ale and a plate of piping hot bread, fresh from the oven. The Prancing Pony is more than just a place to rest your weary feet; it's a sanctuary where stories are shared, bonds are forged, and the spirit of adventure thrives, making it a true gem in the heart of Bree."}
기대에 더 가까운 응답을 얻었습니다. 이 응답을 사용해 이후 응답을 더욱 개선할 수 있으며, 이를 통해 피드백 루프가 트리거됩니다. 이는 출력의 정확도를 효과적으로 높일 수 있습니다.
실제 적용 사례와 이점
Milvus는 사용자-아이템 매칭을 위한 유사도 검색을 가능하게 하여 개인화 추천과 같은 AI 애플리케이션을 강화하고, 맞춤형 콘텐츠 제공을 보장합니다. 적응형 학습 시스템은 교육 자료의 빠른 검색을 촉진하고 개인의 학습 속도에 맞게 조정됩니다. 실시간 콘텐츠 생성의 경우, Milvus의 효율적인 인덱싱은 동적 콘텐츠 생성을 지원합니다.
Milvus 사용의 이점에는 증가하는 데이터 규모를 처리할 수 있는 확장성, 즉각적인 쿼리 응답을 위한 속도, 가장 관련성 높은 데이터 포인트를 찾는 정밀도가 포함되며, AI 기반 애플리케이션을 위한 견고한 기반이 됩니다.
과제와 고려 사항
LLM과 Milvus를 사용해 생성형 피드백 루프를 구현하는 데에는 여러 가지 과제가 있습니다.
컴퓨팅 요구 사항: LLM은 상당한 컴퓨팅 리소스를 필요로 하며, 이는 비용이 많이 들고 관리가 복잡할 수 있습니다.
데이터 프라이버시: 이러한 시스템 내 데이터의 기밀성과 무결성을 보장하는 것은 특히 민감한 정보를 다룰 때 가장 중요합니다.
이러한 과제를 해결하려면 다음 솔루션과 모범 사례를 고려하세요.
리소스 사용 최적화: 컴퓨팅 부하를 효율적으로 처리하기 위해 확장 가능한 인프라를 갖춘 클라우드 서비스를 활용하세요.
데이터 익명화: 사용자 개인정보를 보호하기 위해 강력한 데이터 익명화 기법을 구현하세요.
정기 감사: 잠재적 취약점을 식별하고 완화하기 위해 보안 및 개인정보 보호 감사를 자주 수행하세요.
모범 사례: 프로세스를 간소화하고 시스템 무결성을 유지하기 위해 머신러닝 운영(MLOps)의 모범 사례를 적용하세요.
생성형 피드백 루프를 통한 AI의 미래
AI의 미래는 생성형 피드백 루프의 발전과 Large Language Models (LLMs) 및 Milvus와 같은 벡터 데이터베이스와의 통합을 통해 성장할 준비가 되어 있습니다. 앞으로 기대할 수 있는 사항은 다음과 같습니다:
피드백 루프 방법론: 향상된 피드백 루프는 AI가 더욱 역동적으로 학습하고 적응할 수 있게 하여, 실시간 애플리케이션에서 지속적인 개선을 촉진할 것입니다.
벡터 데이터베이스: 특히 Milvus를 비롯한 벡터 데이터베이스의 혁신은 복잡한 데이터의 효율적인 처리를 촉진하여, AI가 유사도 검색 및 콘텐츠 기반 검색을 수행하는 능력을 강화할 것입니다.
LLM 아키텍처: LLM 아키텍처의 개선은 언어에 대한 더욱 미묘한 이해와 생성을 가능하게 하여, AI 상호작용과 창의성을 위한 새로운 길을 열 것입니다.
핵심 사항:
생성형 피드백 루프는 AI의 학습 역량을 크게 향상시킬 것입니다.
Milvus 및 유사한 벡터 데이터베이스는 확장 가능하고 정밀한 AI 애플리케이션을 위한 중추를 제공할 것입니다.
LLM의 발전은 AI를 더욱 정교하고 맥락 인식적인 운영으로 이끌 것입니다.
이러한 기술에 대한 실험은 매우 중요합니다. 생성형 피드백 루프, Milvus, 개선된 LLM을 활용함으로써 개발자와 연구자는 개인화된 디지털 비서부터 고급 데이터 분석 도구에 이르기까지 AI 기반 애플리케이션의 새로운 잠재력을 열 수 있습니다. 이러한 기술의 시너지는 기존 애플리케이션을 개선하고 이전에는 상상하지 못했던 혁신적인 솔루션의 길을 열 것입니다.
Milvus와 Large Language Models (LLMs)의 기능을 탐색하는 데 관심이 있다면, Zilliz는 풍부한 리소스와 커뮤니티 포럼을 제공합니다. 참여할 수 있는 방법은 다음과 같습니다:
리소스 탐색: Zilliz는 벡터 검색 및 AI 기술을 이해하는 데 도움이 되는 다양한 백서, 웨비나, 교육을 제공합니다.
커뮤니티 참여: Zilliz Cloud Developer Hub에서 성장하는 개발자 및 사용자 커뮤니티와 교류하세요.
Milvus 사용해 보기: Milvus로 구축을 시작하고 AI 애플리케이션에서 그 강력함을 경험해 보세요. 무료 계정에 가입하고 사용 가능한 SDK로 실험해 보세요.
개발자이든 이제 막 시작하는 사람이든, 이러한 리소스와 포럼은 Milvus 및 LLM과 함께 AI의 미래에 연결되고, 배우고, 기여할 수 있는 훌륭한 방법입니다.
계속 읽기

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.

Zilliz Named "Highest Performer" and "Easiest to Use" in G2's Summer 2025 Grid® Report for Vector Databases
Zilliz shines in G2's Summer 2025 Grid® Report as both "Highest Performer" and "Easiest to Use," solving the performance-usability dilemma.

How to Build RAG with Milvus, QwQ-32B and Ollama
Hands-on tutorial on how to create a streamlined, powerful RAG pipeline that balances efficiency, accuracy, and scalability using the QwQ-32B and Milvus.


