Zilliz는 AI 애플리케이션 개발자에게 계속해서 힘을 실어주고 있습니다!
최근 Zilliz는 Zhiyuan Research Institute와 협력하여 다양한 BGE(BAAI General Embedding) 오픈 소스 모델을 오픈 소스 벡터 데이터베이스 Milvus와 통합했습니다. Milvus 2.4에서 새로 출시된 Sparse Vector(스파스 벡터) 및 다중 벡터(다중 벡터) 지원 덕분에 개발자는 업계에서 널리 사용되는 Dense Embedding(고밀도 벡터 모델)뿐만 아니라 또한 새로 출시된 BGE Sparse Embedding(희소 검색 모델) 및 Reranker(재정렬) 모델을 사용합니다. 개발자는 이러한 도구를 쉽게 결합하여 의미 검색, 전체 텍스트 검색 및 개선된 순위 기능을 포함하는 보다 강력한 회상 솔루션을 구축할 수 있습니다.
BGE와 Milvus의 통합은 유연성을 유지하면서 RAG의 품질을 포괄적으로 향상시키고 AI 애플리케이션 개발자에게 더 나은 서비스를 제공할 수 있습니다.
01.Sparse Embedding 및 Reranker: RAG 개선의 새로운 트렌드
RAG(Retrieval Augmented Generation)는 외부 지식 베이스에서 검색된 정보를 활용하여 대규모 언어 모델의 정확성과 신뢰성을 높이는 기술입니다. RAG는 대규모 모델의 적용을 방해하는 일련의 핵심 문제(환각, 적시성 부족, 전문 도메인 지식 부족, 데이터 보안 문제 등)를 효과적으로 해결할 수 있는 것으로 입증되었습니다. 모델과 벡터 데이터베이스를 내장하는 것이 이 솔루션을 실현하는 핵심입니다. 더 풍부한 기능을 갖춘 더 나은 모델과 벡터 데이터베이스는 RAG 응답의 품질을 효과적으로 향상시키고 대규모 언어 모델이 더 나은 터미널 Q&A 경험을 달성하는 데 도움이 됩니다.
그러나 기본 Dense Embedding 및 벡터 리콜 방식의 한계로 인해 일부 시나리오에서는 RAG의 최종 효과가 만족스럽지 않습니다. 현재 업계에서는 RAG의 Q&A 품질을 향상하기 위해 두 가지 솔루션을 채택하는 경향이 있습니다.
옵션 1은 Sparse Vector와 Dense Vector를 사용하여 양방향 재현을 수행하는 것입니다. 그중 Sparse Vector는 기존 전체 텍스트 검색 기능을 포괄하고 특정 키워드를 식별하고 캡처하는 데 도움이 되는 반면, Dense Vector는 텍스트의 전체 의미 정보를 보다 효과적으로 캡처할 수 있습니다. 이 두 가지 벡터 리콜 결과를 통합하면 보다 풍부하고 포괄적인 정보를 얻을 수 있어 RAG의 효율성이 향상됩니다.
옵션 2, 정밀 순위의 두 번째 레이어로 Cross-Encoder Reranker를 사용합니다. 먼저 대략적인 순위를 매기기 위해 Dense Vector, Sparse Vector 또는 이 둘의 조합을 사용한 다음 Reranker 모델을 사용하여 첫 번째 단계의 결과를 추가로 필터링하고 정렬하여 최종 결과의 품질을 향상시킵니다.
옵션 1은 독립적으로 사용할 수 있다는 점, 즉 일반적으로 사용되는 RRF(Reciprocal Rank Fusion)와 같은 양방향 회상 결과를 병합하기 위해 규칙 기반 알고리즘을 사용하거나 다음과 같은 방식으로 사용할 수 있다는 점은 주목할 가치가 있습니다. 옵션 2와 결합, 즉 Cross-Encoder Reranker Merge를 사용하고 양방향 결과를 재정렬합니다.
02.Milvus, BGE와 손잡고 RAG의 품질 문제를 유연하게 해결
Milvus는 벡터 검색 및 비정형 데이터 관리를 제공하는 AI 애플리케이션용 오픈 소스 벡터 데이터베이스입니다. 원래 Zilliz 회사에서 출시되었으며 2019년에 오픈 소스로 제공되었습니다. 출시 이후 Milvus는 AI 개발자 커뮤니티와 기업 사용자들 사이에서 인기를 얻고 널리 채택되었습니다. GitHub에서 26,000명 이상의 별과 260명 이상의 기여자를 보유한 Milvus는 전 세계적으로 2천만 번 이상 다운로드 및 설치되었습니다. 세계에서 가장 널리 사용되는 벡터 데이터베이스 중 하나입니다.
얼마 전 Zilliz 창립자이자 CEO인 Xingjue는 NVIDIA GTC 컨퍼런스에서 업계의 혁명적인 업그레이드라고 할 수 있는 Milvus 2.4 버전을 공식 출시했습니다. 뜨거운 논의를 불러일으키는 GPU 기반 벡터 인덱싱 및 검색 가속 기능 외에도 Sparse Vector 및 Multi-Vector에 대한 지원도 주목할 만한 점입니다. Milvus와 Zhiyuan BGE의 통합은 RAG 품질을 향상하는 데 필요한 Sparse Embedding, 다중 채널 리콜 및 Reranker 기능을 한 번에 수집할 뿐만 아니라 개발자에게 실제 요구 사항에 따라 다양한 유형 및 다단계 리콜 솔루션을 제공합니다. AI 애플리케이션을 유연하게 구축하세요.
이번에 Milvus와 공동 개발한 BGE는 지능형소스연구소에서 만든 보편적 의미모델이다. Zhiyuan 팀은 2023년 8월 첫 출시 이후 중국어 및 영어 모델 BGE v1.0, v1.5, 100개 이상의 언어와 다중 리콜 방법을 지원하는 BGE-M3 모델을 연속 출시했습니다. 현재까지 BGE 시리즈 모델은 전 세계적으로 1,500만 회 이상 다운로드돼 국내 오픈소스 AI 모델 중 1위를 기록했다. BGE-M3 모델은 한때 인기 있는 Hugging Face 모델 3위 안에 들었습니다. 최신 Milvus 2.4 클라이언트에서는 BGE 모델에 대해 간단하고 사용하기 쉬운 기능 캡슐화가 제공됩니다. 개발자는 다양한 BGE 오픈 소스 모델을 보다 쉽게 사용할 수 있으며 Milvus 벡터 데이터베이스와 협력하여 다중 채널 및 다중 레벨 리콜 솔루션을 구축하여 RAG 품질을 종합적으로 향상시킬 수 있습니다. 지금까지 통합된 BGE 오픈 소스 모델은 다음과 같습니다.
임베딩 모델
-
BAAI/bge-m3
-
BAAI/bge-large-en-v1.5
-
BAI/bge-base-en-v1.5
-
BAY/bge-small-en-v1.5
-
BAAI/bge-large-zh-v1.5
-
BAAI/bge-base-zh-v1.5
-
BAAI/bge-small-zh-v1.5
리랭커 모델
-
BAAI/bge-reranker-v2-m3
-
BAAI/bge-리앵커-대형
-
BAAI/bge-reranker-base
03.코드 샘플 표시
버전 2.4부터 Milvus Python 클라이언트는 pymilvus[model] 구성 요소를 추가했습니다. Dense Vector의 다중 방향 호출과 결합된 Sparse Vector이든, 첫 번째 호출 계층의 관련성을 향상하기 위해 Cross-Encoder Reranker를 사용하든, Milvus Components가 제공하는 모델은 모두 유연하게 지원될 수 있습니다.
예를 들어 pip install pymilvus[model]만 사용하면 BGE-M3 모델에서 생성된 Dense Vector를 쉽게 사용하여 가장 가까운 이웃 검색을 수행하고 BGE Reranker 모델을 사용하여 결과를 세분화할 수 있습니다.
from pymilvus.model.hybrid import BGEM3EmbeddingFunction
from pymilvus.model.reranker import BGERerankFunction
client = MilvusClient(uri="http://localhost:19530")
embed_fn = BGEM3EmbeddingFunction(device='cuda:0')
rerank_fn = BGERerankFunction(device="cuda:0")
query = "tell me information about France."
query_vector = [embed_fn([query])["dense"][0]]
# Search for top 20 nearest neighbour vectors
retrieved_results = client.search(collection_name="my_collection", data=query_vector, limit=20, output_fields=["text"])
# Rerank the vector search results and select the top 5
final_results = rerank_fn(query, [result['entity']['text'] for result in retrieved_results[0]], top_k=5)
그 외에도 링크( https://github.com/milvus-io/pymilvus/blob/master/examples/hello_hybrid_sparse_dense.py )에서 더 많은 사례를 보실 수 있습니다.
04.향후전망
벡터 데이터베이스 업계의 선두주자인 Zilliz는 업계 최고의 Zhiyuan Research Institute와 협력하여 오픈 소스 BGE 모델과 Milvus 벡터 데이터베이스를 기반으로 하는 다양한 리콜 솔루션을 지원하고 Sparse Embedding과 Reranker 지원을 통합했습니다. RAG 개발자에게 매우 편리합니다.
Zilliz 생태 통합 및 AI 플랫폼 책임자 Chen Jiang은 "앞으로 Milvus는 모델 연구, 개발자 홍보 및 기타 측면에서 Zhiyuan과 긴밀한 협력을 계속하여 AI 애플리케이션의 대중화와 개선을 지원할 것입니다."라고 말했습니다.
Zhiyuan Research Institute의 BGE 팀장은 다음과 같이 말했습니다. “BGE와 Milvus의 통합으로 커뮤니티 사용자는 "삼위일체"(밀도 검색, 희소 검색 및 재정렬) 검색 파이프라인을 신속하게 구축할 수 있습니다. 앞으로 우리는 Zilliz와 같은 업계 선두 기업과의 협력을 더욱 강화하여 AI 애플리케이션 개발자에게 공동으로 힘을 실어주기를 기대합니다. "
- 좋은 소식은 Milvus 커뮤니티가 전체 네트워크에서 " Beichen 메신저 "를 검색하고 있다는 것입니다! ! !
- Milvus 또는 Zilliz 제품을 사용하는 데 문제가 있는 경우 WeChat 도우미 "zilliz-tech"를 추가하여 커뮤니케이션 그룹에 참여할 수 있습니다.
- 최신 정보를 알아보려면 WeChat 공개 계정 "Zilliz"를 팔로우하는 것을 환영합니다.