目录
1.FAISS
2.Chroma
Embedding 负责把文本变成向量;FAISS/Chroma 负责把这些向量建成可查询的本地索引(把向量和对应的文档/ID/元数据存到本地机器上,并建立最近邻搜索结构)。关于embedding,之前的博客有详细讲:
大模型---embedding
RAG的流程:文本切块-->生成 embedding-->建索引-->查询文本也做 embedding-->最近邻检索-->返回相关块。FAISS/Chroma就是负责建立索引。
为什么要先embedding在检索:
如果只用关键词检索,用户说法和文档说法不一致时,系统很容易漏召回。Embedding 检索的核心优势就是:即使字面不一样,只要意思接近,也能被找出来。Chroma 文档明确说,它会把 embedding 建索引,然后高效搜索相似内容;FAISS 文档则把“给定查询向量,寻找最相似向量”定义为它的核心工作。FAISS 偏底层,重点是“高效向量索引和相似搜索”;Chroma 更像“面向应用的本地向量数据库/数据层”,在向量索引之上又加了 collection、documents、metadata、filter、client 等更完整的接口。
1.FAISS
Faiss 中的数据结构就是一个 index,它有add方法把向量加进去,然后对查询向量做