|
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-wrap: wrap;background-color: rgb(255, 255, 255);visibility: visible;text-align: center;">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 19.125px;letter-spacing: 0.544px;text-align: center;text-wrap: wrap;background-color: rgb(255, 255, 255);visibility: visible;">03 略高级的RAG 与多向量数据库支持 在使用 ChatOllama 中,用户的反馈集中在两大块:
问答质量 就目前而言,问答质量主要依赖于RAG实现。 多平台的支持 关于多平台的支持,关注点集中在对多种模型API的支持与多种向量数据库产品的支持。 今天的分享集中在RAG的改进与多种向量数据库的支持。更具体地说,就是对向量数据库 Milvus 的支持。 01.
略高级的RAG 早期的ChatOllama基本上还是采用的naive RAG。问答质量一般。 RAG主要依赖于知识库数据的索引。在最近的一波更新中,我们对知识库数据的索引方案做了改进,采用了略高级的父子文档策略。其核心奥义是,每个文档的分块策略为二级分块。文档先拆分为较大的分块,再将大分块切为更小的子分块。每个子分块通过元数据来关联它的父分块。 相关性搜索基于子分块,而返回的数据分块是命中的子分块的父分块。 该策略的思想是在检索中返回尽可能大的文本块,以此降低语意被分块边界截断的概率。 
当然,这只能一定程度上提高问答质量。不过,至少,ChatOllama又进化了! 接下来的计划是给RAG加上re-ranking。有兴趣贡献力量的同学请联系我! 02.
向量数据库Milvus的支持 早期的ChatOllama使用的是Chroma作为唯一的向量存储。 圈内目前流行的向量数据库众多。开源的包括:Chroma,Milvus,Weaviate等。商业化的包括AWS,Azure这些云端平台提供的服务,以及Pinecone等。 在ChatOllama圈内,有不少用户期望能够支持不同的向量数据库。这完全可以理解,毕竟萝卜青菜,各有所爱。 在最近的更新中,我们添加了Milvus的支持。目前用户除了安装部署Milvus服务器,在ChatOllama中只需要两个环境变量就能将向量数据存储切换到Milvus。请参考以下 .env 示例: VECTOR_STORE=chromaMILVUS_URL=http://localhost:19530 更多详情请参考文档: https://github.com/sugarforever/chat-ollama?tab=readme-ov-file#supported-vector-databases 好了,今天的分享就到这里。用过的同学赶紧去升级新版本吧,还没用过的同学请不要错过。ChatOllama在GitHub等你!
|