langchain4j [特性]我们是否可以添加多向量检索功能?

bwntbbo3  于 3个月前  发布在  其他
关注(0)|答案(2)|浏览(31)

我认为有必要提前适应未来的多向量列场景,原因如下:

  1. 越来越多的向量数据库支持多向量列,多向量字段具有更好的业务扩展性,例如milvus。
  2. 许多业务无法通过RAG基线实现满意的结果,可能需要在数据集本身进行处理,例如使用父子文档分割、LLM模型生成段落文档摘要、假设性提问等。在这一点上,有必要将处理后的向量插入到多向量列中。

基于以上原因,我个人认为EmbeddingStore接口类需要添加一个混合检索接口。Milvus SDK Java已经提供了混合检索的能力,可以通过langchain4j-milvus中的接口实现进行扩展。

mwyxok5s

mwyxok5s1#

你好,@243006306,你想帮忙吗?分析哪些商店支持这个功能并原型化一个概念验证会很好。

vfwfrxfs

vfwfrxfs2#

我真的很抱歉,我真的很想为langchain4j贡献我的力量,但是我现在负责的项目太重了,所以我没有太多的个人空闲时间。目前,我了解到Milvus和Vearch支持在向量数据库中进行混合检索,我认为对于这项任务仍然有一些需要考虑的问题:
EmbeddingSearchRequest类中的Embedding类目前只考虑类型为float的向量。然而,在业务中,可能使用多种类型的向量列,例如float16、Bfloat16、Binary、Sparse等。此外,一些模型现在支持多种类型的向量化,例如BGE-M3,它可以同时处理密集和稀疏向量。即使对于后续的基于图像的问题向量检索(例如bge-visualized-m3模型),是否已经提前考虑到这一点?

相关问题