RAG의 품질을 종합적으로 향상시켜보세요! Zilliz는 Zhiyuan과 손을 잡고 Sparse Embedding 및 Reranker와 같은 다양한 BGE 오픈 소스 모델을 통합합니다.


Zilliz는 AI 애플리케이션 개발자에게 계속해서 힘을 실어주고 있습니다!


최근 Zilliz는 Zhiyuan Research Institute와 협력하여 다양한 BGE( BAAI General Embedding ) 오픈 소스 모델을 오픈 소스 벡터 데이터베이스 Milvus와 통합했습니다.Milvus 2.4에서 새로 출시된 Sparse Vector(sparse Vector) 및 Multi-Vector(다중 벡터) 지원 덕분에 개발자는 업계에서 널리 사용되는 Dense Em bedding(dense 벡터 모델) 뿐만 아니라 다양한 선택이 가능해졌습니다. 또한 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이든, 1차 수준 호출의 관련성을 향상하기 위해 Cross-Encoder Reranker를 사용하든, 모델 구성 요소가 제공하는 새로운 구성 요소를 추가했습니다. Milvus는 유연한 지상 지지대입니다.


예를 들어 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 作为向量数据库行业的引领者,此次与业界领先的智源研究院合作,支持基于开源 BGE 模型和 Milvus 向量数据库的多种召回方案,集成了两者对 Sparse Embedding 和 Reranker 的支持,极大地便利了 RAG 开发者。


Zilliz 生态集成和 AI 平台负责人陈将表示:“未来,Milvus 将持续与智源在模型研究、开发者推广等方面深度合作,助力 AI 应用的进一步普及和提升。”


智源研究院 BGE 团队负责人表示:“ 智源研究院 BGE 负责人表示:“ BGE 和 Milvus 的集成,为社区用户快速搭建“三位一体的”(稠密检索、稀疏检索、重排序)检索流水线带来的极大便利。未来期待与像 Zilliz 这样行业优秀的企业进一步合作,共同为 AI 应用开发者赋能。”


推荐阅读


本文分享自微信公众号 - ZILLIZ(Zilliztech)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

90后程序员开发视频搬运软件、不到一年获利超 700 万,结局很刑! 高中生自创开源编程语言作为成人礼——网友锐评:依托答辩 RustDesk 由于诈骗猖獗,暂停国内服务 淘宝 (taobao.com) 重启网页版优化工作 Java 17 是最常用的 Java LTS 版本 Windows 10 市场份额达 70%,Windows 11 持续下滑 开源日报 | 谷歌扶持鸿蒙上位;开源Rabbit R1;Docker加持的安卓手机;微软的焦虑和野心;海尔电器把开放平台关了 Apple 发布 M4 芯片 谷歌删除 Android 通用内核 (ACK) 对 RISC-V 架构的支持 云风从阿里离职,未来计划制作 Windows 平台的独立游戏
{{o.name}}
{{m.name}}

추천

출처my.oschina.net/u/4209276/blog/11104109