ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Chroma 的边际相关性检索 - Maximal Marginal Relevance,检索的多样性

Chroma 的边际相关性检索 - Maximal Marginal Relevance,检索的多样性 “边际相关性检索” 是 Chroma 里的高级查询模式MMRMaximal Marginal Relevance最大边际相关它解决什么问题普通相似度检索只按 “和查询最像” 返回结果往往扎堆重复比如查 “如何健身”可能返回的 10 条全是讲举铁的MMR 的目标是既相关又不重复让你拿到一个 “相关且多样” 的结果集核心公式对每一条候选结果算一个分数最终分 λ × 与查询的相似度 − (1−λ) × 与已选结果的相似度第一项越相关分越高跟查询像第二项跟已选的越重复扣分越多多样性惩罚选结果时贪婪地一条条挑每轮选当前 “相关度高 与已选最不重复” 的那条直到选满λ 参数的作用在 Chroma 里怎么用results collection.query( query_texts[健身], n_results10, # MMR 相关参数 lambda_param0.5, # 多样性 vs 相关性的权衡 fetch_k50, # 先取50个候选再从中做MMR挑10个 mmr_threshold0.8 # 相似度低于此阈值的不选可选 )关键点fetch_k 要大于 n_results否则没有多余候选可做去重系统先粗取 fetch_k 个再用 MMR 精挑出 n_results 个什么时候该用RAG 检索增强生成给大模型喂上下文时避免喂一堆同质化片段让回答覆盖面更广推荐系统推荐结果不想全是同一个类型的商品 / 文章知识库问答同一问题想看多个角度的答案什么时候不要用就是要最相关的 N 条比如精确找最相似的向量做匹配用普通similarity就行MMR 反而可能丢掉最相关的 1 条数据量很小或本身就多样MMR 收益不大总结MMR 在 “跟查询相关” 和 “结果彼此不重复” 之间做平衡用 λ 控制天平在 Chroma 里就是query时传上lambda_param、fetch_k等参数即可
返回列表