如何高效加载和查询数千个文档到向量存储中?
一、背景介绍
在网络上,我找不到一个好的实例来说明如何加载数千个相似文档到向量存储中并进行查询。虽然有很多人上传了少量文档的示例,但却没有涉及到数千个文档的情况。我计划使用PostgreSQL上的pgvectors作为我的主要向量存储,主要是因为它的灵活性和我对它的熟悉程度。如果有其他更高效的应用程序(例如weaviate、chromadb、in-memory等),我可以考虑将集合从PostgreSQL复制过来。
二、入职准备
在开始大规模向量化数千个文档之前,有哪些事情我需要注意呢?是否需要元数据?向量数据库的结构是否需要考虑?
三、查询问题
假设我有谷歌过去10年的10-Q和10-K表格(即50个文档),如果我提出一个宽泛的问题,比如“谷歌的净利润是多少?”,系统将返回前k个结果,然后将其输入到GPT中。但是,我期望对于这个问题会有50+个答案。那么,我该如何让系统提示查询过于宽泛,要求我指定一个时间段?或者让系统自动理解查询过于宽泛,并返回最新的净利润数据,例如:“谷歌报告的截至2023年第一季度的最新净利润为x%($ym)”。显然,这就是元数据的用处,我需要将“公司名称”、“季度”和“年份”等关键信息存储为元数据项。
四、结构设计
这些是我关心的一些问题,我很想知道其他人是如何考虑为这些用例设计结构的。我知道有Llama索引,但还没有深入研究过-乍一看,它似乎会严重影响API的性能,并不是很高效,但如果我有错误,我愿意接受更正。
总结
在本文中,我们讨论了如何高效加载和查询数千个文档到向量存储中。在入职准备阶段,我们需要考虑元数据和向量数据库的结构。在查询问题方面,我们需要解决宽泛查询的问题,并利用元数据来指定时间段和获取最新数据。设计结构时,我们可以探索Llama索引等解决方案。感谢您阅读本文!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容