我认为有必要提前适应未来的多向量列场景,原因如下:
- 越来越多的向量数据库支持多向量列,多向量字段具有更好的业务扩展性,例如milvus。
- 许多业务无法通过RAG基线实现满意的结果,可能需要在数据集本身进行处理,例如使用父子文档分割、LLM模型生成段落文档摘要、假设性提问等。在这一点上,有必要将处理后的向量插入到多向量列中。
基于以上原因,我个人认为EmbeddingStore接口类需要添加一个混合检索接口。Milvus SDK Java已经提供了混合检索的能力,可以通过langchain4j-milvus中的接口实现进行扩展。
2条答案
按热度按时间mwyxok5s1#
你好,@243006306,你想帮忙吗?分析哪些商店支持这个功能并原型化一个概念验证会很好。
vfwfrxfs2#
我真的很抱歉,我真的很想为langchain4j贡献我的力量,但是我现在负责的项目太重了,所以我没有太多的个人空闲时间。目前,我了解到Milvus和Vearch支持在向量数据库中进行混合检索,我认为对于这项任务仍然有一些需要考虑的问题:
EmbeddingSearchRequest类中的Embedding类目前只考虑类型为float的向量。然而,在业务中,可能使用多种类型的向量列,例如float16、Bfloat16、Binary、Sparse等。此外,一些模型现在支持多种类型的向量化,例如BGE-M3,它可以同时处理密集和稀疏向量。即使对于后续的基于图像的问题向量检索(例如bge-visualized-m3模型),是否已经提前考虑到这一点?