目录
背景
Chroma query 底层查询的 query 思想是相同的,甚至在vector db 的世界中,都大同小异。如果你有看前面写的 RAG与LLM原理及实践(5)--- Chroma query 源码分析
应该比较清楚query的运作原理,说直白就是在memory或是disk中通过暴力查询比较与HNSW算法(NSW算法的变种,分层可导航小世界)进行分析得到。应该说在所有db 的vector query 中上层的基本逻辑都大同小异,如果你后面看了Milvus,再回来看Chroma,虽然说底层保存逻辑及顶层设计不一样,但是就query 的应用逻辑而言,大同小异。
其中向量比较的几种方式,如果你看了前面写的 RAG与LLM原理及实践(4)--- 语义相似度距离衡量的三种方式chroma示例 应该也比较清楚,就是cosine,l2,ip 几种比较方式。
这是底层运作的基本思想。但是站在应用层的角度,query可以有所不同。下面的内容聚焦在站在应用层的角度,从chroma源码进行分析,彻底理解 query 在应用层上的调