恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

AI Agent白手起家32: MMR与最大余弦相似度选择示例

  • 首页
  • 资讯中心
  • /
  • AI Agent白手起家32: MMR与最大余弦相似度选择示例

相关资讯

Librecad标注显示正方形问题的诊断与修复 2026/8/5 1:12:34
Revit模型高效转换X_T格式的实践指南 2026/8/5 1:12:34
【Codex智能体实战:从零系统学习智能体应用】01:Codex环境搭建与基础操作——从工业仿真项目看Agent工程化落地 2026/8/5 1:12:34

最新资讯

从卷积神经网络到实战:图像识别核心原理与全流程开发指南
Linux系统开机直入命令行模式:systemd目标管理与服务器优化实战
告别抖音视频保存烦恼:用这款开源工具轻松搞定高清无水印批量下载
硬件工程师必修课:从原理图符号、网络到模块化设计的核心思维
Dockerfile全流程详解:从核心指令到生产级镜像构建与优化
Windows Server IIS FTP服务配置:用户隔离与权限管理实战

今日推荐

AI小程序创业陷阱大起底(92%新手踩坑的3个致命错误)
为什么92.7%的AI 3D生成项目卡在UV重拓扑?资深TD曝光内部验证过的5步自动化修复协议
三升四,比成绩下滑更可怕的,是孩子开始「认命」

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

AI Agent白手起家32: MMR与最大余弦相似度选择示例

发布时间:2026/8/5 1:17:35
AI Agent白手起家32: MMR与最大余弦相似度选择示例 内容纲要回顾余弦相似度选择器的优势与局限最大边际相关性MMR算法目标在相关性与多样性之间取得平衡核心机制惩罚与已选示例过于相似的样本LangChain 中的 MMR 示例选择器MaxMarginalRelevanceExampleSelector与余弦相似度选择器的对比完整可运行代码使用 FAISS 向量库与FakeEmbeddings模拟嵌入适用场景与选型建议引言在上一篇文章中我们介绍了基于余弦相似度的SemanticSimilarityExampleSelector它能够从示例池中精准地找出与输入语义最相似的 Top-K 个示例。然而当示例池中存在大量高度相似的样本时比如几乎相同的双语版本余弦相似度选择器往往会返回多个“同质化”的示例这些示例虽然都与输入相关但彼此之间却没有提供额外的多样性信息。为了解决这个问题LangChain 提供了基于最大边际相关性Maximal Marginal Relevance简称 MMR的示例选择器。MMR 在保证示例与输入相关的同时刻意避免选出过于雷同的样本从而让 Few Shot 提示中的示例更具代表性覆盖更多视角。MMR 算法原理MMR 最初应用于信息检索和文本摘要领域其核心思想是在每一步选择新的结果时既考虑该结果与查询的相关性又考虑其与已选择结果的差异性。在示例选择场景中MMR 会先找到与输入最相似余弦相似度最大的示例然后在对后续示例进行评分时对那些与已选示例相似度过高的样本施加“惩罚”使其得分降低。这样最终选出的 Top-K 个示例既能保持与任务的高度相关又能尽量分散在语义空间的不同方向上从而向模型提供更丰富的参考信息。MMR 与余弦相似度选择器的对比下表直观展示了两种选择器在相同输入下的行为差异以文中“难过”为例示例池包含中英文情绪词、天气词以及体型词选择器类型输入K 值返回示例特点余弦相似度难过2高兴/悲伤,happy/sad两个示例高度同质中英对照仅体现情绪维度MMR难过2高兴/悲伤,tall/short或big/small第一个示例最相关第二个示例来自不同语义方向增加多样性可见MMR 避免了“把鸡蛋放在一个篮子里”的问题尤其适用于示例池规模较大且存在多条近似示例的场景。完整可运行代码以下代码使用 FAISS 向量库和FakeEmbeddings模拟嵌入过程演示MaxMarginalRelevanceExampleSelector的用法。无需任何外部 API Key 即可运行。安装依赖pipinstalllangchain langchain-core langchain-community faiss-cpu核心代码fromlangchain_core.promptsimportPromptTemplate,FewShotPromptTemplatefromlangchain_core.example_selectorsimportMaxMarginalRelevanceExampleSelectorfromlangchain_community.embeddings.fakeimportFakeEmbeddingsfromlangchain_community.vectorstoresimportFAISS# 1. 构建示例池包含中英文、情绪与体型等多类反义词examples[{input:happy,output:sad},{input:高兴,output:悲伤},{input:sunny,output:gloomy},{input:晴朗,output:阴沉},{input:tall,output:short},{input:高,output:矮},]# 2. 示例格式化模板example_promptPromptTemplate(input_variables[input,output],template原词: {input}\n反义词: {output})# 3. 创建 MMR 示例选择器# 使用 FakeEmbeddings(size128) 模拟嵌入embedding_modelFakeEmbeddings(size128)mmr_selectorMaxMarginalRelevanceExampleSelector.from_examples(examplesexamples,embeddingsembedding_model,vectorstore_clsFAISS,k2,# 返回 2 个示例fetch_k5,# 先获取 5 个候选再从中做 MMR 筛选)# 4. 构建 Few Shot 提示词模板mmr_promptFewShotPromptTemplate(example_selectormmr_selector,example_promptexample_prompt,prefix给出每个输入词的反义词,suffix原词: {input}\n反义词:,input_variables[input],)# 5. 测试输入中文情绪词“难过”print( 输入: 难过 )print(mmr_prompt.format(input难过))运行后难过会优先匹配到高兴/悲伤这一最相关的示例而第二个示例可能是tall/short或big/small等与情绪无关但能提供其他维度信息的条目从而实现了多样化的 Few Shot 示例组合。适用场景与选型建议优先选用余弦相似度选择器的情况示例池规模较小且每条示例都具有不可替代的独特信息任务对多样性的要求不高最相关的一两条示例即可满足需求。推荐使用 MMR 选择器的情况示例池中包含大量语义重复或中英对照的“冗余”样本希望用较少的 K 覆盖更多的语义方向提高提示的泛化能力。参数调优fetch_k参数决定了从向量库中初筛出多少个候选然后再执行 MMR 算法从中选出k个。适当增大fetch_k可以给 MMR 提供更大的选择空间但也会增加计算开销。总结MMR 示例选择器是余弦相似度选择器的有力补充它通过引入多样性惩罚机制有效避免了示例同质化问题。在示例池庞大且存在大量相似样本的情况下MMR 能够以更少的示例数量提供更全面的参考信息从而进一步提升大模型 Few Shot 学习的效率与效果。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号