大模型外挂知识库优化-大模型辅助向量召回

大模型外挂知识库优化——如何利用大模型辅助召回 大模型外挂知识库优化旨在通过利用大模型辅助召回,提高文档召回和模型回答的质量。HYDE策略通过生成假答案并结合用户问题进行向量召回,增强召回效果,但在微调过的向量化模型上效果不佳。FLARE策略提出主动多次召回,通过设计prompt让模型在需要时自动触发召回,解决了传统一次召回的不足。策略1通过增加生成主动召回标识的概率来促进召回,策略2则基于生成词的概率进行召回,提高了召回的准确性和效率。总体而言,这些策略通过优化召回过程,显著提升了大模型外挂知识库的性能和回答质量。 阅读详情

写在前面

大模型时代,通常采用向量召回的方式从文档库里召回和用户问题相关的文档片段,输入到LLM中来增强模型回答质量。

但是很多时候,用户的问题是十分口语化的,描述的也比较模糊,这样会影响向量召回的质量,进而影响模型回答效果。今天给大家带来一篇来自战士金大佬(@知乎战士金)的博文-大模型辅助向量召回。接下来分享两篇通过大模型的能力增强召回效果的文章,这两篇文章的内容都已经加入了langchain的标准组件,易用性还是比较好的,但是都有一些特定的使用场景。
在这里插入图片描述

HYDE

HYDE论文-Precise Zero-Shot Dense Retrieval without Relevance Labels,文章中强调了该文章主要适用于Zero-Shot场景。Zero-Shot指的是模型没有见过某个场景(或者某个数据集)的数据,就应用于该场景,和用数据训练模型以及在语言模型上下文中加入示例相对应。Zero-Shot体现了模型的迁移能力,我猜大部分同学都是在zero shot场景上使用向量化模型的,比如从网上下载个向量化模型权重,直接在自己的业务场景上用。其实,如果自己的业务场景有数据,微调一下向量化模型,在对应业务场景下召回率能提升不少。

既然论文题目强调了zero-shot,论文看的比较多的同学一定能马上反应过来,是不是在非zero shot(比如微调向量化模型)的场景下这方法效果就很一般呢?文章作者也给出了实验结果,该方法在结合微调过的向量化模型时,效果就没那么好了,非常依赖打辅助的LLM的能力。如果您有微调向量化模型的能力,这部分就可以跳过了。再强调一下,这篇文章是篇纯讨论召回的文章,最后的衡量指标也是nDCG和召回率这些指标,使用LLM单纯是为了提高召回效果的。

langchain链接:https://python.langchain.com/docs/use_cases/question_answering/how_to/hyde

论文思路非常简单:

  • Step1:用LLM根据用户query生成k个“假答案”。(大模型生成答案采用sample模式,保证生成的k个答案不一样,不懂LLM生成答案原理的同学可以看我这篇文章。此时的回答内容很可能是存在知识性错误,因为如果能回答正确,那就不需要召回补充额外知识了对吧。不过不要紧,我们知识想通过大模型去理解用户的问题,生成一些“看起来”还不错的假答案)
  • Step2:利用向量化模型,将生成的k的假答案和用户的query变成向量。
  • Step3:根据如下公式,将k+1个向量取平均:其中dk为第k个生成的答案,q为用户问题,f为向量化操作。图片
  • Step4:利用融合向量v从文档库中召回答案。融合向量中既有用户问题的信息,也有想要答案的模式信息,可以增强召回效果。

接下来我们从论文中挑一个比较重要的实验结果进行讨论。测试集为TREC DL19/20数据集,向量化模型使用的是Contriever模型,原始的该模型并未在TREC DL19/20数据集上训练过。模型有上标FT指的是向量化模型在TREC DL相关的数据集上微调过的。黄框标出来的是未使用hyde技术的baseline结果。绿框标出来的是未微调的向量化模型使用hyde技术的实验结果。红框标出来的是微调过的向量化模型使用hyde技术的实验结果。图片实验指标为NDCG@10,可以发现,对于没有微调过的向量户化模型(zero shot场景),hyde还是非常有用的,并且随着使用的LLM模型的增大,效果不断变好(因为LLM的回答质量提高了)。非常有意思的一点是是对于微调过的向量化模型,如果使用比较小的LLM生成假答案(小于52B参数量),hdye技术甚至会带来负面影响。

因为领域微调过的向量化模型性能已经不错了,NDCG@10指标能达到60多,LLM生成的假答案的知识性错误带来的负面影响大于回答模式信息带来的正面影响。所以向量化模型模型还是能微调就微调吧。

FLARE

和上一篇文章相比,FLARE论文比较新一点,评估的指标是直接看最后LLM的回答效果的,而非是向第一篇文章那样只讨论召回准确率。这篇文章涉及到针对同一个问题的多次召回,因此比较适合长文本回答。如果您所面对的场景大部分问题用一两句话就能回答,那收益就不是太大了。

langchain链接:https://python.langchain.com/docs/use_cases/question_answering/how_to/flare

对于大模型外挂知识库,大家通常的做法是根据用户query一次召回文档片段,让模型生成答案。只进行一次文档召回在长文本生成的场景下效果往往不好,生成的文本过长,更有可能扩展出和query相关性较弱的内容,如果模型没有这部分知识,容易产生模型幻觉问题。一种解决思路是随着文本生成,多次从向量库中召回内容。

有三种常用的多次召回策略:

  • a. 每生成固定的n个token就召回一次。
  • b. 每生成一个完整的句子就召回一次。
  • c. 将用户query一步步分解为子问题,需要解答当前子问题时候,就召回一次。

已有的多次召回方案比较被动,召回文档的目的是为了得到模型不知道的信息,a、b策略并不能保证不需要召回的时候不召回,需要召回的时候触发召回。c.方案需要设计特定的prompt工程,限制了其通用性。作者在本文里提出了两种更主动的多次召回策略,让模型自己决定啥时候触发召回操作。

策略1

通过设计prompt以及提供示例的方式,让模型知道当遇到需要查询知识的时候,提出问题,并按照格式输出,和toolformer的模式类似。提出问题的格式为[Serch(“模型自动提出的问题”)](称其为主动召回标识)。利用模型生成的问题去召回答案。召回出答案后,将答案放到用户query的前边,然后去掉主动召回标识之后,继续生成。当下一次生成主动召回标识之后,将上一次召回出来的内容从prompt中去掉。下图展示了生成拜登相关答案时,触发多次召回的例子,分别面对拜登在哪上学和获得了什么学位的知识点上进行了主动召回标识的生成。图片该方法也存在一些缺陷:

  • 1.LLM不愿意生成主动召回标识。解决方法:对"[“对应的logit乘2,增加生成”[“的概率,”["为主动召回标识的第一个字,进而促进主动召回标识的生成。
  • 2.过于频繁的主动召回可能会影响生成质量。解决方法:在刚生成一次主动召回标识、得到召回后的文档、去掉主动召回标识之后,接下来生成的几个token禁止生成"["。
  • 3.不微调该方案不太可靠,很难通过few shot的方式让模型生成这种输出模式。

策略2

策略1存在的第3点缺陷比较知名。因此作者提出了另外一个策略。该策略基于一个假设:模型生成的词对应该的概率能够表现生成内容的置信度。(传统的chatgpt接口是用不了策略2的,因为得不到生成每个词的概率。)

分为4个步骤:

  • Step0:根据用户的query,进行第一次召回,让模型生成答案。
  • Step1:之后,每生成64个token,用NLTK工具包从64个token里边找到第一个完整句子,当作“假答案”,扔掉多余的token。(和第一篇文章思想一样,利用LLM生成符合回答模式的“假答案”)
  • Step2:如果“假答案”里有任意一个token对应的概率,低于某一阈值,那么就利用这个句子进行向量召回。触发召回的“假答案”很可能包含事实性错误,降低召回准确率。设计了两种方法解决这个问题。方法1:将“假答案”中生成概率低于某一阈值的token扔掉(低概率的token很有可能存在错误信息),然后再进行向量召回。方法2:利用大模型能力,对“假答案”中置信度低的内容进行提问,生成一个问题,用生成的问题进行向量召回。
  • Step3:利用召回出来的文本,重新生成新的“真答案”,然后进行下一个句子的生成。

依然针对拜登的问题,下图给出了例子。图片接下来介绍一下实验结果。先声明一下,这篇文章用的召回器(向量化模型)是BM25,2009年被提出,基于统计学的原理,属于一种词袋模型,效果一般。笔者认为,如果用一些效果更好的基于神经网络的召回器,本文提出的方法提升就没那么大了。

召回器榜单:
中文:https://github.com/FlagOpen/FlagEmbedding/tree/master/C_MTEB
英文:MTEB Leaderboard - a Hugging Face Space by mteb

多次召回方案在更加开放的任务类型上提升比较小。如果是召回并回答一些模型不知道的垂类知识,FLARE效果提升应该是还不错的。图片作者证明了用生成”假答案“进行召回(Next)效果比用前一句进行召回效果更好(印证了HYDE观点)。图片当一个句子里生成的所有单词的概率都大于一个阈值t时,才不触发召回文档。当t=0%时,不触发召回文档;t=100%时,每次都触发召回。下图展示了不同的t的情况下LLM回答效果。可以发现t过大或者过小都不是最好的。总体上来看t=50%比较好。图片

总结

分享的这两篇文章都需要多次调用LLM,来增强召回,虽然在一些场景下比较有效,不过开销感觉有点太大了。其实最简单有效的提高召回效果的方式就是在自己业务的数据集上微调一下向量化模型。

​

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

20-大模型外挂知识库优化——负样本样本挖掘篇 负样本样本挖掘在大模型外挂知识库优化中至关重要。通过构建高质量的负例,可以显著提升检索模型的性能。本文介绍了多种负样本构建方法,包括随机采样、Top-K负例采样、困惑负样本采样、对比学习微调、基于批内负采样的对比学习、相同文章采样以及LLM辅助生成软标签及蒸馏。每种方法都有其优缺点和适用场景。通过这些方法,可以有效提高模型对负例的区分能力,从而提升整体检索效果。 阅读详情

相关推荐

大模型中的召回率是什么?

text{召回率} = \frac{\text{模型检索到的相关结果数量}}{\text{数据集中所有相关结果的总数量}}是衡量模型从候选集中找出所有相关结果能力的关键指标。在大模型(如LLM)及相关应用(如RAG、推荐系统)中,最终目标:在可接受的精确率损失下,最大化召回关键信息。

qq_36929638的博客 1741

AI大模型中的「召回」功能:技术原理与应用场景解析

召回(Recall)是推荐系统或信息检索中的关键步骤,其核心目标是从海量数据(如商品、内容、用户行为等)中快速筛选出与用户需求或兴趣最相关的候选项。在推荐系统的典型架构中,召回通常作为第一阶段,生成一个初步的候选集合,后续的排序模型(Ranking)则进一步优化和排序这些候选项。AI大模型的召回功能通过整合知识图谱、深度学习和实时意图分析,显著提升了推荐系统的精准度与用户体验。无论是电商、广告还是系统级应用,召回技术都在推动个性化服务向更智能、更高效的方向发展。

JakeMa1024的博客 5468

4. 如何减少大模型幻觉?⸺大模型外挂向量数据库的分析(知识延伸版)

语言模型(LLM)有两个突出能力:一个是自然语言的理解和生成能力🗣️,另一个是逻辑推理能力🧠。然而,大模型也存在短板,比如大模型会产生幻觉:即大模型的输出内容,与输入内容或现实不相符😵,也就是“大模型在绘声绘色地胡说八道”🎭。不同的应用场景,对大模型幻觉的容忍度不同⚖️。比如,在要求严谨和精确的领域📊,大模型幻觉就是个必解的问题❗

qq_25438419的博客 2026

大模型检索召回系统:RAG技术的全面调查与未来展望

随着人工智能技术的飞速发展,大型语言模型(LLMs)在自然语言处理(NLP)领域取得了显著成就。然而,这些模型在处理特定领域或知识密集型任务时仍面临挑战,如产生错误信息或“幻觉”。为了克服这些难题,检索增强生成(Retrieval-Augmented Generation,简称RAG)技术应运而生,它通过整合外部数据库的知识来增强模型的生成能力,特别是在知识密集型任务中表现出色。

人工智能讲师分享前沿技术 2039

零基础实战:YOLO检测头自定义替换全攻略

本文为零基础用户提供了YOLO检测头自定义替换的完整实战指南。通过将检测头比作汽车的“方向盘”,文章详细阐述了为何需要替换、如何寻找和集成新检测头模块、修改配置文件以及最终训练验证的全过程,旨在帮助用户针对特定任务(如小目标检测)提升模型性能。

perl8的博客 255

论文阅读《Eigen-GNN: A Graph Structure Preserving Plug-in for GNNs》

好久没看论文了,感觉好生疏 关于这篇文章的大致脉络,这篇文章已经介绍过了。

且视他人之疑目如盏盏鬼火,大胆地去走你的夜路 461

一文读懂大模型召回机制和chunk

本文系统介绍了大模型召回机制及相关技术要点。主要内容包括: 召回定义与应用:在RAG架构中通过向量检索从知识库获取相关文本块(chunk)以补充模型知识,应用于问答、语义搜索等场景; 关键技术要素:涵盖Embedding模型、chunk切分策略(100-500 tokens)、向量数据库(FAISS等)及评估指标(Recall@K); 上下文窗口对比:列举主流模型(如GPT-4达32K、Gemini 1.5Pro支持2M tokens)的处理能力; 优化方法:采用混合召回策略、滑动窗口切分及高质量Embed

何哥的博客 4670

基于传输门与传输管逻辑的全加器设计

全加器是指对输入的两个二进制数相加(A与B)同时会输入一个低位传来的进位(Ci-1),得到和数(SUM)和进位(Ci)。一位全加器可以处理低位进位,并输出本位加法进位。由于这种晶体管的漏极和源极完全可以互换使用,因此这种电路的输入端与输出端也可以互换,这就是具有信号传输双向特性的传输管。传输管的输入信号可以传输到输出端,同时输出端的信号也可以传输到输入端。半加器是指对输入的两个一位二进制数相加(A与B),输出一个结果位(SUM)和进位(C),没有进位的输入加法器电路,是一个实现一位二进制数的加法电路。

qq_40353731的博客 4384

基于开源大模型快速构建本地知识库应用

人工智能(Artificial Intelligence,AI)技术自20世纪50年代诞生以来,已经成为一门引领未来的综合性高技术学科。它在多个领域大放异彩,如大数据分析、自动驾驶、智慧金融和智能机器人等。其发展历程经历了初级期、发展期、低谷期、进步期和繁荣期。艾伦·图灵的图灵测试为人工智能的定义奠定了基础。在初级期和发展期,人工智能技术初步发展,移动机器人Shakey和聊天机器人Eliza相继诞生。在低谷期,人工智能遭遇发展瓶颈,受限于计算机的内存和处理速度,进展缓慢。

2401_85343303的博客 2400

最新Python爬虫实战(入门爬虫篇)——案例18:某气象局全国天气预报数据采集(详细爬虫思路截图 + 抓包动图演示+完整爬虫代码+详细注释)

本次案例针对某气象局天气预报网的静态HTML页面,实现了全国各地区天气数据的全自动化爬取,和之前案例17的动态接口爬虫不同,本次案例聚焦于静态页面的爬虫实现,覆盖了从抓包分析、请求模拟、数据解析到数据存储的完整爬虫流程,非常适合入门学习者巩固基础,核心知识点和实现要点总结如下:首先是页面分析的核心逻辑,静态HTML页面的数据爬取,核心在于通过浏览器开发者工具,完成完整的抓包分析和标签结构定位。

努力让自己发光,对的人才能迎着光而来 27万+

[QMT量化交易小白入门]-二十八、有了回测年化收益好的策略,如何在QMT量化实盘呢(附python代码解析)

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 2927

RAG 外挂知识库

RAG介绍

sunnyrain1的博客 529

用 deepseek 写小说(通用版提示词模板)

#Initialization:作为[Role],在[Goals]下,回顾你的[Skill],严格遵守[Constraints],5.第五步:人物大纲,给小说里的每个人物撰写背景故事,深挖人物过去的经历,原生家庭,住所:一栋位于市郊的房子,有三个卧室,房龄 10 年,厨房很大,当中有一个鸟式大理石。示例 2.戈德里洛克先去了熊老爹的工作坊,尝试用大纲法写作,却发现这种方法无聊透顶,1.第一步:一句话概括,一句话概述小说内容,主要包含小说癸型,主角,以及故事中需要。大灰狼的暴行彻底激怒了戈德里洛克,

陈奕昆的博客 2969

大模型面试:LLM+向量库的文档对话系统

将用户知识库内容经过 embedding 存入向量知识库,然后用户每一次提问也会经过 embedding,利用向量相关性算法(例如余弦算法)找到最匹配的几个知识库片段,将这些知识库片段作为上下文,与用户问题一起作为 prompt 提交给 LLM 回答。: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。思路:构建几十万量级的数据,然后利用这些数据对大模型进行微调,以将额外知识注入大模型?

python12345678_的博客 1460

YOLOv8【第十章:多任务扩展深度篇·第18节】不规则工业缺陷分割——针对划痕、裂纹的 Seg 模型调优!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 3981

从0到全栈:C#/.NET/.NET Core终极学习路线——2025年开发者必修的12个阶段与30个实战项目

【代码】从0到全栈:C#/.NET/.NET Core终极学习路线——2024年开发者必修的12个阶段与30个实战项目。

墨夶的博客 2042

本地知识库构建攻略:利用开源大模型快速实现,非常详细收藏这一篇就够了

人工智能(Artificial Intelligence,AI)技术自20世纪50年代诞生以来,已经成为一门引领未来的综合性高技术学科。它在多个领域大放异彩,如大数据分析、自动驾驶、智慧金融和智能机器人等。其发展历程经历了初级期、发展期、低谷期、进步期和繁荣期。艾伦·图灵的图灵测试为人工智能的定义奠定了基础。在初级期和发展期,人工智能技术初步发展,移动机器人Shakey和聊天机器人Eliza相继诞生。在低谷期,人工智能遭遇发展瓶颈,受限于计算机的内存和处理速度,进展缓慢。

2401_84495872的博客 2982

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

基于开源大模型从零到一快速构建本地知识库应用

作为新一代人工智能产业的核心动力,AI大模型广泛应用于各行各业,打开了迈向通用人工智能的大门。本文通过大模型相关技术背景、构建需求、实现原理、模型选型及工程实践等方面介绍了如何基于开源大模型快速构建本地知识库应用。通过分析大模型应用的存在的问题,提出并详细描述了知识库构建思路及RAG技术路线应用的解决方法,最后,基于LangChain-Chatchat工程实现,为快速构建本地知识库应用提供了一种有效的解决方案。

大模型教程的博客 1507

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

了解大模型 RAG :大模型外挂知识库 (检索增强技术)

了解大模型 RAG (Retrieval-Augmented Generation):大模型外挂知识库 (检索增强技术)为了弥补通用的预训练大模型在某些专业领域的短板、或者特别强化大模型在某个细分场景下的能力,我们使用 RAG 外挂知识库来增强大模型的能力检索增强生成(RAG,Retrieval-Augmented Generation)是一种新型AI模型,集检索和生成于一体。

xiangxueerfei的博客 1238

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

快速构建本地知识库:基于开源大模型的应用指南,非常详细收藏这一篇就够了!

人工智能(Artificial Intelligence,AI)技术自20世纪50年代诞生以来,已经成为一门引领未来的综合性高技术学科。它在多个领域大放异彩,如大数据分析、自动驾驶、智慧金融和智能机器人等。其发展历程经历了初级期、发展期、低谷期、进步期和繁荣期。艾伦·图灵的图灵测试为人工智能的定义奠定了基础。在初级期和发展期,人工智能技术初步发展,移动机器人Shakey和聊天机器人Eliza相继诞生。在低谷期,人工智能遭遇发展瓶颈,受限于计算机的内存和处理速度,进展缓慢。

m0_65555479的博客 1436

【收藏】RAG技术深度解析:从原理到企业应用,打造大模型“外挂知识库“

检索增强生成(RAG)技术通过"检索-生成"闭环,为大模型提供实时知识库,解决知识截止和幻觉问题。文章详解了RAG系统的三大核心组件:智能检索模块(语义检索与重排序)、文档处理模块(高质量知识输入)和生成优化模块(信息整合与幻觉抑制)。在企业知识库、医疗问诊、法律咨询和客服等场景中,RAG技术可将回答准确率提升90%以上,是当前大模型应用的重要技术方向。

2401_84815887的博客 902
上一篇: AI大模型LLM微调技术—Activation Checkpointing
下一篇: 文本向量化、RAG、langchain、Agent技术:大模型行业问答技术总结
AI大模型_学习君
博客等级 码龄3年 6137粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值