​RAG与LLM原理及实践(7)--- Chroma query应用层策略及实现原理

目录

背景

Similarity & Redundancy

相似度 (Similarity)

冗余度 (Redundancy)

区别

Chroma中的 query API及代码逻辑

similarity 方式

similarity_search

代码原理

with_relevance_scores

MMR方式

实现方式

源码分析


背景

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 在应用层上的调

  • 35
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值