开启左侧

LLM-向量数据库中的索引算法总结

[复制链接]
爱爱尔尔兰 发表于 前天 08:08 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:一切如来心秘密
文章目录

    前言向量数据库介绍索引方法
      倒排索引KNN 搜索近似 KNN 搜索Product Quantization(PQ)NSW 算法搜索HNSW


前言

向量数据库是当今大模型知识库检索落地实践的核心组件,下图是构建知识库检索的架构图:

LLM-向量数据库中的索引算法总结-1.png


    首先会将相关文档数据向量化嵌入到向量化数据库中,然后将用户的查询语句转为向量化查询,从向量数据库中召回相似度高的 TOP N 条数据。然后在对这 TOP N 进行排序,取其中几条,构造成 prompt ,和 LLM 交互查询。
向量查询的数据与 query 的相似度,直接影响到 prompt 的好坏,本文将对市面上已有的向量数据库进行简单介绍,然后会对其使用到的索引方法进行说明,包括倒排索引,KNN,Approximate KNN, Product Quantization, HSNW 等,会对这些算法的设计理念和方法进行说明。

向量数据库介绍

LLM-向量数据库中的索引算法总结-2.png

目前开源的比较火的三大向量数据库为 Chroma, Milvus, Weaviate,关于他们的介绍与区别这篇文章我觉得讲的不错,感兴趣的可以看下:三大开源向量数据库大比拼。
下边是开源向量数据库的发展历程:

LLM-向量数据库中的索引算法总结-3.png

它们用到的索引方法如下:

LLM-向量数据库中的索引算法总结-4.png


索引方法

倒排索引

LLM-向量数据库中的索引算法总结-5.png

假如现在我有一个使用倒排索引的数据库,其中存储了10的12次方个索引数据,我们在往数据库中存储数据的时候,会将数据切分,然后记录被切分后的单词对应的索引位置有哪些, 因为不同句子可能会出现相同的单词,因此每个单词对应的是一个索引集合:

原文地址:https://blog.csdn.net/qq_42586468/article/details/140368129
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )