prompt工程师必备:复旦重磅 | 最佳RAG实践长什么样的?

Faiss 简介 最近在做知识库问答的时候看到了Faiss,查询了一些资料了解其原理,下面做简单记录,方便以后查阅。(Facebook AI Similarity Search)是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前较成熟的近似近邻搜索库。Faiss整体流程图如下所示:图中,Faiss主要包含两个步骤:Faiss训练和Faiss查询。 阅读详情

一段时间以来,我们发现,任何AI应用几乎都离不开RAG,检索增强生成(Retrieval-Augmented Generation,RAG)技术正在静默而深刻的影响着生成式AI行业的进步。假如你是一位prompr工程师,如果不了解几种RAG技术,那你一定不合格。

图片

01

RAG:突破AI的认知界限

传统的大语言模型,尽管在处理各种任务时表现出色,但仍然存在固有的局限性。它们的知识仅限于训练数据,无法实时更新,也难以处理高度专业化的领域问题。RAG技术的出现,恰恰解决了这些痛点。

如果我们能赋予AI实时访问和利用海量外部知识的能力,会发生什么?这正是RAG所实现的。它不仅提高了AI输出的准确性和可靠性,还使AI具备了持续学习和适应新知识的能力。

来自复旦大学的研究团队在这一领域取得了突破性进展,他们系统性地探索了RAG的最佳实践,为开发者提供了宝贵的实施指南。研究团队深入分析了RAG系统的各个组成部分,包括查询分类、文档分块、检索、重排序、重新打包和总结等模块。他们不仅比较了每个模块的不同实现方法,还探讨了这些模块之间的相互影响,找到了目前技术环境下最优的组合策略。在此感谢复旦大学的研究团队,为我们在现有技术环境下总结了最优的RAG实践!论文在7月1日发表,代码链接在论文的摘要末尾。

图片

02

RAG:精密的知识管理系统

RAG系统的工作流程堪称一个精密的知识管理和利用系统。根据研究团队提供的检索增强生成(RAG)系统的架构图,我们可以清晰地看到RAG系统的各个关键组件及其相互关系:图片

1.大语言模型(Large Language Model): 作为系统的核心,负责理解查询和生成回答。

2.查询分类(Query Classification): 判断输入查询是否需要检索外部知识。

3.检索(Retrieval): 从外部知识源中检索相关信息。包括多种方法如BM25、Contriever等。

4.重排序(Reranking): 对检索结果进行进一步排序,提高相关性。

5.重新打包(Repacking): 调整检索文档的顺序,优化上下文。

6.总结(Summarization): 压缩检索到的文档,提取关键信息。

7.外部知识源(External Source): 包含分块(Chunking)和嵌入(Embedding)等处理步骤。

8.向量数据库(Vector Database): 存储和索引文档嵌入。

9.微调(Fine-tune): 通过不同策略优化模型性能。

10.评估(Evaluation): 从多个维度评估系统性能。

这个架构图全面展示了RAG系统的复杂性和各组件的相互作用,为理解和优化RAG系统提供了清晰的框架。它强调了从查询处理到知识检索、信息整合再到最终生成的完整流程,展现了现代AI系统如何结合大规模语言模型与外部知识以提升性能和可靠性。

2.1 查询分类:智能门卫

查询分类模块犹如RAG系统的智能门卫。它的任务看似简单——判断输入查询是否需要检索增强,但其重要性却不容忽视。研究发现,合理使用查询分类可将系统平均响应时间从16.58秒缩短到11.71秒,同时还略微提升了整体性能。

这一发现对Prompt工程师的启示是深远的。在设计RAG系统时,查询分类不应被视为可有可无的附加功能,而应该被视为核心组件之一。它不仅能显著提高系统响应速度,还能通过避免不必要的检索来优化资源利用。

2.1.1深入理解查询分类

为了更好地理解查询分类的工作机制,让我们分析一下下面这张图:

图片

这张图详细展示了RAG系统中查询分类模块的工作原理,它将输入的查询分为"需要检索"和"无需检索"两类。这种分类对于提高系统效率和性能至关重要。

2.1.1.1. 信息充分的查询:

- 这类查询包含足够的信息,可以直接由语言模型处理,无需额外检索。

- 例子包括翻译任务、改写任务、总结任务等。

- 这些任务通常涉及对给定信息的处理,而不需要额外的背景知识。

2.1.1.2. 信息不足的查询:

- 这类查询需要额外的信息支持,因此需要进行检索。

- 例子包括搜索类任务、开放式问答、需要最新信息的查询等。

- 这些任务通常需要访问外部知识库来补充必要的信息。

2.1.1.3. 背景知识:

- 一些查询虽然提供了部分信息,但仍需要检索来补充完整的背景知识。

- 例如,继续写作任务可能需要检索相关的历史背景或人物信息。

2.1.1.4. 无背景知识:

- 一些查询完全依赖外部信息,需要全面的检索支持。

- 例如,询问未来事件的地点或寻求特定问题的建议。

这种细致的查询分类机制使RAG系统能够:

- 提高效率: 对不需要检索的查询直接处理,节省时间和计算资源。

- 提升准确性: 为需要额外信息的查询提供精确的知识支持。

- 优化用户体验: 根据查询类型提供最适合的响应方式。

- 资源管理: 合理分配系统资源,重点支持需要检索的复杂查询。

对于Prompt工程师来说,理解这种查询分类机制非常重要。它可以帮助设计更智能的提示策略,根据不同类型的查询来调整系统的行为,从而在各种场景下都能获得最佳性能。例如,对于信息充分的查询,可以设计直接利用给定信息的提示;而对于信息不足的查询,则可以设计引导系统进行有效检索的提示。

2.2 检索模块:RAG的"大脑"

检索模块是RAG系统的核心,它就像人类大脑中负责记忆检索的部分。研究团队比较了多种检索方法,包括原始检索、"假设性文档嵌入(Hypothetical Document Embeddings,HyDE)、混合检索以及HyDE与混合检索的结合。

HyDE 技术的核心思想是:对于给定的查询,首先生成一个假设性(或虚拟性)的理想文档(即可能包含答案的虚构文档),然后使用这个假设性文档的嵌入来检索实际的相关文档。这种方法旨在提高检索的相关性和准确性。

结果显示,HyDE与混合检索的结合方法在性能上表现最佳,RAG得分高达0.580。这种方法的优势在于它既利用了HyDE生成假设文档的创新性,又结合了混合检索的全面性。然而,这种高性能是以计算成本为代价的,每次查询需要11.71秒。

对于Prompt工程师来说,这一发现提供了重要的设计思路。在构建RAG系统时,需要根据具体应用场景来权衡性能和效率。例如,对于需要实时响应的客户服务chatbot,可以选择更快速的混合检索或原始检索方法。而对于追求高质量输出的内容生成系统,则可以考虑使用HyDE与混合检索的结合方法。

此外,工程师还可以考虑实现动态检索策略。系统可以根据查询的复杂度、时间要求等因素,自动选择最合适的检索方法。这种灵活性可以让RAG系统在各种应用场景中都能发挥最佳性能。

2.2.1 嵌入模型的选择

嵌入模型之前研究者详细全面地总结了分块(Chunking)相关的关键点,分块策略在RAG系统中的重要性,以及如何通过优化分块大小、技术和嵌入模型来提高系统性能。

2.2.1.1. 分块的重要性:

o 将文档分割成小段对提高检索精度和避免LLM的长度问题至关重要。

o 可以在不同粒度级别进行:标记级、句子级和语义级。

2.2.1.2. 分块级别:

o 标记级分块简单但可能分割句子,影响检索质量。

o 语义级分块使用LLM确定断点,保留上下文但耗时。

o 句子级分块在保留文本语义和简单高效之间取得平衡。

2.2.1.3. 句子级分块,从五个维度考察:

图片

2.2.1.4. 块大小:

o 大块提供更多上下文,但增加处理时间。

o 小块改善检索召回率并减少时间,但可能缺乏足够上下文。

o 最佳块大小为512,在忠实度(97.59)和相关性(97.41)之间取得平衡。

2.2.1.5. 分块技术:

o 高级技术如small-to-big和滑动窗口通过组织块关系改善检索质量。

o 滑动窗口技术表现最佳,平均忠实度为97.41,相关性为96.85。

图片

接着研究者将目前流行的五种不同的向量数据库,从四个关键方面进行了评估:

2.2.2.1.多重索引类型(Multiple Index Type):

o Milvus和Faiss支持多重索引类型,这提供了更灵活的搜索优化选项。

o 其他数据库(Weaviate,Chroma,Qdrant)不支持多重索引类型。

2.2.2.2.十亿级扩展(Billion-Scale):

o Milvus和Qdrant能够处理十亿级别的向量,适合大规模应用。

o 其他数据库在这方面的能力有限。

2.2.2.3.混合搜索(Hybrid Search):

o 除Faiss外,所有数据库都支持混合搜索,结合了向量搜索和传统关键词搜索。

2.2.2.4.云原生(Cloud-Native):

o 除Faiss外,所有数据库都具有云原生特性,便于在云环境中部署和管理。

图片

· Milvus是唯一一个在所有四个方面都表现出色的数据库,显示出其全面性和versatility。

· Faiss虽然支持多重索引类型,但在其他方面表现较弱,特别是在云部署方面。

· Qdrant在除多重索引类型外的所有方面都表现良好。

· Weaviate和Chroma虽然支持混合搜索和云原生,但在处理大规模数据和索引灵活性方面有限制。

这个比较突出了Milvus作为一个全面解决方案的优势,同时也展示了不同数据库在各个方面的strengths and weaknesses。选择合适的向量数据库时,需要根据具体项目的需求和scale来权衡这些特性。

检索模块的效果很大程度上依赖于所使用的嵌入模型。让我们看看下面这张表格,它展示了不同嵌入模型在namespace-Pt/msmarco数据集上的性能对比:图片

这些数据对于理解和选择RAG系统中的嵌入模型至关重要。让我们深入分析这些结果:

2.2.3.1. 评估指标:

- MRR@k (Mean Reciprocal Rank at k):衡量模型在前k个结果中找到相关文档的能力。

- R@k (Recall at k):衡量模型在前k个结果中检索到相关文档的比例。

2.2.3.2. 性能最佳的模型:

- BAAI/LLM-Embedder和BAAI/bge-large-en 在多个指标上表现最佳。

- 这两个模型在 MRR@1、MRR@10和R@10 上都取得了最高分。

2.2.3.3. 模型大小与性能:

- 通常,较大的模型(如 large 版本)性能优于较小的模型。

- 但BAAI/bge-small-en-v1.5 在某些指标上表现也很不错,显示了小模型的潜力。

2.2.3.4. 版本迭代的影响:

- 新版本的模型(如 v1.5)通常比旧版本表现更好,体现了模型迭代的重要性。

这些结果对RAG系统的设计有重要启示:

一. 模型选择: 根据具体应用场景的需求(如对准确性、速度的不同要求)选择合适的嵌入模型。

二. 性能与效率平衡: 在高性能大模型和计算效率高的小模型之间权衡。

三. 版本更新: 及时关注和采用最新版本的模型,以获得性能提升。

四. 任务适配: 根据特定任务的重要指标(如更看重MRR还是Recall)来选择模型。

对Prompt工程师而言,理解这些嵌入模型的性能特征非常重要。它可以帮助他们为不同的应用场景设计更有效的提示策略,如针对高召回率的任务使用不同于追求高精度任务的提示方式。

2.3 重排序:精准定位关键信息

重排序模块就像是RAG系统的"信息过滤器"。它的作用是进一步提升检索结果的相关性,确保最重要的信息能被优先处理。研究比较了多种重排序方法,包括monoT5、monoBERT、RankLLaMA和TILDEv2。

实验结果表明,使用monoT5进行重排序能够获得最高的平均得分。这一发现强调了重排序在提升生成质量中的关键作用。对于Prompt工程师来说,这意味着在RAG系统中集成有效的重排序机制可以显著提高最终输出的质量。

在实际应用中,工程师可以考虑实现多级重排序策略。例如,可以先使用计算速度较快的方法(如TILDEv2)进行初步筛选,然后再使用更精确但计算成本较高的方法(如monoT5)对Top-K结果进行精细重排序。这种策略可以在保证性能的同时,有效控制计算成本。

2.4 重新打包:优化上下文排列

重新打包模块的作用类似于给检索到的信息"排版"。研究者比较了正向排序、反向排序和两侧排序三种策略。结果显示,反向排序策略表现最佳,RAG得分达到0.560。

这一发现揭示了一个重要的认知原理:将最相关的信息放在靠近查询的位置,有助于生成模型更好地理解和利用上下文。对Prompt工程师而言,这提供了一个优化RAG系统输出质量的重要方向。

在实际应用中,工程师可以考虑实现动态打包策略。例如,可以根据任务类型、查询长度等因素,自动选择最合适的排序方法。甚至可以尝试使用机器学习模型来学习最优的文档排序方式,进一步提升系统性能。

2.5 总结模块:提炼精华信息

总结模块就像是RAG系统的"信息压缩器"。研究比较了Recomp和LongLLMLingua两种总结方法。结果表明,Recomp方法在性能上略胜一筹。然而,研究者也发现,在某些情况下,完全移除总结模块反而能获得更好的性能和更低的延迟。

这一发现为Prompt工程师提供了一个重要的设计思路:总结模块并非必不可少,其使用与否应该根据具体应用场景和系统要求来决定。在一些对实时性要求极高的应用中,可以考虑省略总结步骤以提高响应速度。

在实际应用中,工程师可以考虑实现自适应总结策略。系统可以根据检索结果的长度、复杂度等因素,动态决定是否进行总结,以及使用何种总结方法。这种灵活性可以让RAG系统在各种应用场景中都能保持最佳性能。

2.6 生成器微调:提升模型适应性

研究团队探讨了生成器微调对RAG系统性能的影响,尝试了使用相关文档、随机文档以及混合文档进行微调的策略。结果表明,使用相关和随机文档混合进行微调的策略效果最佳。

这一发现对Prompt工程师具有重要的指导意义。在微调RAG系统的生成器时,不应只关注与任务直接相关的文档,还应引入一定比例的随机文档。这种方法不仅可以提高模型对相关信息的利用能力,还能增强其对不相关信息的鲁棒性,从而提高模型的泛化能力和抗干扰能力。

在实际应用中,工程师可以考虑实现动态微调策略。例如,可以根据系统的实际使用情况,定期收集用户查询和系统响应,用这些真实数据来持续微调模型。这种方法可以让RAG系统不断适应新的应用场景和用户需求,保持长期的高性能。

03

RAG的最佳实践:性能与效率的平衡艺术

基于大量实验结果,研究团队提出了两种RAG实施策略,分别针对追求最高性能和平衡性能与效率的场景。让我们通过下面这张详细的实验结果表格来深入分析这些策略:

图片

这张表格提供了对RAG系统不同组件和配置的全面评估结果,为我们提供了宝贵的洞察。让我们深入分析这些数据:

3.1 评估指标解读

- 表格涵盖了多个任务领域:常识推理(Commonsense)、事实检查(Fact Check)、开放域问答(ODQA)、多跳问答(Multihop)和医疗问答(Medical)。

- 使用了准确率(Acc)、精确匹配(EM)、F1分数等指标,以及综合的RAG得分。

- 同时考虑了平均延迟(Latency),体现了性能与效率的权衡。

3.2 关键发现

3.2.1. 查询分类模块的影响:

- 引入查询分类后,整体性能略有提升(平均分从0.465提高到0.478)。

- 查询分类显著降低了延迟(从16.58秒减少到11.71秒)。

3.2.2. 检索模块比较:

- "Hybrid with HyDE"方法在多数指标上表现最佳,平均分达到0.478。

- 然而,它也带来了较高的延迟(11.71秒)。

- 纯Hybrid方法在医疗任务上表现突出(0.750),同时保持较低延迟(1.45秒)。

3.2.3. 重排序模块的作用:

- monoT5重排序方法整体表现最佳,平均分为0.478。

- 不同重排序方法在性能和延迟上存在差异,如RankLLaMA性能好但延迟高。

3.2.4. 重新打包策略:

- 反向排序(reverse)策略略优于其他方法,在医疗和RAG任务上表现尤为出色。

3.2.5. 总结模块的影响:

- Recomp总结方法略优于LongLLMLingua。

- 有趣的是,移除总结模块在某些任务上反而提高了性能,同时减少了延迟。

基于这些发现,研究团队提出了两种RAG实施策略:

3.3 追求最佳性能的RAG配置:

3.3.1. 集成查询分类模块

3.3.2. 采用"Hybrid with HyDE"检索方法

3.3.3. 使用monoT5进行重排序

3.3.4. 采用反向排序策略

3.3.5. 使用Recomp进行总结

这种配置在实验中获得了最高的平均得分0.483,但计算开销较大。它适合那些对输出质量要求极高,且能够容忍较长响应时间的应用场景。例如,在生成高质量的研究报告、详细的技术文档或复杂的数据分析时,这种配置可以发挥其优势。

3.4 平衡效率和性能的RAG配置:

3.4.1. 集成查询分类模块

3.4.2. 采用Hybrid检索方法

3.4.3. 使用TILDEv2进行重排序

3.4.4. 采用反向排序策略

3.4.5. 使用Recomp进行总结

这种配置在保持较好性能的同时,大幅降低了系统延迟。它适合那些需要在性能和效率之间取得平衡的应用场景。例如,在开发实时性要求较高的客户服务chatbot或交互式学习系统时,这种配置可能是更好的选择。

04

RAG的实践启示

对于Prompt工程师和AI系统开发者来说,这些研究结果提供了丰富的实践启示:

4.1. 模块化设计的重要性:

每个模块都对整体性能有显著影响,证实了RAG系统模块化设计的价值。在实际开发中,应该注重系统的模块化,以便灵活调整和优化各个组件。

4.2. 性能与效率的权衡:

高性能配置(如Hybrid with HyDE)通常伴随较高延迟,实际应用中需要根据具体需求权衡。工程师应该根据应用场景的特点,选择合适的性能-效率平衡点。

4.3. 任务特异性:

不同配置在各类任务上表现不一,突显了为特定领域定制RAG系统的重要性。在开发针对特定领域的AI应用时,应该进行针对性的优化和调整。

4.4. 查询分类的价值:

查询分类不仅提升了性能,更大幅降低了延迟,是一个值得重视的优化点。工程师应考虑在RAG系统中实现智能的查询分类机制。

4.5. 灵活配置的必要性:

最佳配置因任务而异,强调了设计灵活、可配置RAG系统的重要性。开发可动态调整的RAG系统架构,能够适应不同的应用需求。

4.6. 意外发现的价值:

某些情况下,简化系统(如移除总结模块)反而能提升性能,提醒我们要警惕过度复杂化。在系统设计中,应该保持开放心态,不断测试和验证各种可能性。

检索增强生成技术无疑是AI领域的一个重要突破。研究团队已经在探索将RAG扩展到图像生成和理解任务中。未来,我们可能会看到更多跨模态的RAG应用,如视频分析、音频处理等。未来的RAG系统可能会具备实时学习能力,能够从每次交互中学习并更新其知识库,实现真正的持续学习。RAG系统可能会更加个性化,能够根据用户的历史交互和偏好来定制检索和生成策略。为了处理更大规模的知识库,未来可能会出现分布式RAG​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

img

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。 系统,能够在多个服务器或设备上协同工作。这项研究通过系统性地探索RAG的最佳实践,为Prompt工程师和AI开发者提供了宝贵的指导,在此推荐给大家。

一文读懂 Faiss:开启高维向量高效检索的大门 Faiss(Facebook AI Similarity Search),如同一位身怀绝技的武林高手,为高维向量相似性搜索带来了高效的解决方案。本文将以清晰的章节结构、完整的内容和严谨的逻辑,深入剖析 Faiss,带你领略其独特的魅力。 阅读详情

相关推荐

主流向量数据库全面解析

随着大语言模型(LLM)的快速发展,RAG(检索增强生成)技术成为解决模型“幻觉”、提升专业领域回答精度的核心方案,而向量数据库则是RAG技术的底层支撑。向量数据库专门用于存储、管理和检索高维嵌入向量(Embedding),通过高效的相似度匹配算法,快速从海量数据中找到与查询向量最相关的结果。FAISS是由Meta(原Facebook)AI团队开源的轻量级向量检索库,并非严格意义上的“完整数据库”,而是专注于高维向量的高效相似度检索的核心算法库。

h a 6 6 6 c k 为 你解决复杂难题! 1745

深度学习--FAISS向量数据库

faiss 是相似度检索方案中的佼佼者,是来自 Meta AI(原 Facebook Research)的开源项目,也是目前最流行的、效率比较高的相似度检索方案之一。虽然它和相似度检索这门技术颇受欢迎,在出现在了各种我们所熟知的“大厂”应用的功能中,但毕竟属于小众场景,有着不低的掌握门槛和复杂性。

积木的笔记 2万+

防雷防浪涌电路设计

通信线路或者电源线路通常会铺设到户外,一旦线路铺到户外后,就需要考虑防雷的问题了,那么怎么设计保护电路,能够防止雷电等浪涌对电路的破坏呢?

manhuami2007的博客 1万+

相似向量检索库-Faiss-简介及原理

前言 由于项目需要,需要对某些种子用户进行look-alike,找到相似用户,所以近期对相似向量检索库Faiss进行一定的了解,接下来,结合相关资料,把我对这个库的了解记录在这里,也希望对你有所帮助! 一:Faiss简介 Faiss全称(Facebook AI Similarity Search)是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前较成熟的近似近邻搜索库。 它包含多种搜索任意大小向量集(备注:向量集大小由RAM内存决定)

Catcher 3万+

ChatGPT Plus完整开通指南:从账号注册到稳定使用全流程

自然语言处理(NLP)技术通过深度学习模型实现对人类语言的理解与生成,其核心原理是基于Transformer架构的大规模预训练。GPT-4作为当前最先进的生成式AI模型,在代码编写、文档分析等场景展现出显著的技术价值。在实际应用中,稳定的网络环境和合规的支付方式是确保AI助手持续服务的关键因素。针对ChatGPT Plus的开通,需要系统性地解决账号验证、虚拟信用卡支付等工程实践问题,才能实现工作流的高效整合。

weixin_34239592的博客 431

Innovus ECO修复时序违例:ecoAddRepeater插Buffer原理与实战

芯片物理设计越到后期,时序收敛越依赖局部修正而非全局重跑。ECO(Engineering Change Order)作为数字后端高频操作,能在不破坏既有布局布线结果的前提下,精准修复DRV违例、hold时序问题或实现功能补丁。其中,插入Buffer或Inverter是拆解长线RC负载、改善max_transition/max_capacitance最直接的手段。Innovus提供的ecoAddRepeater命令封装了单元选择、坐标摆放和网表重连等底层细节,配合ecoRoute可快速完成绕线。合理选型Buf

weixin_31858171的博客 301

Prompt工程师必备:复旦重磅 | 最佳RAG实践长什么样的?

总结模块就像是RAG系统的"信息压缩器"。研究比较了Recomp和LongLLMLingua两种总结方法。结果表明,Recomp方法在性能上略胜一筹。然而,研究者也发现,在某些情况下,完全移除总结模块反而能获得更好的性能和更低的延迟。这一发现为Prompt工程师提供了一个重要的设计思路:总结模块并非必不可少,其使用与否应该根据具体应用场景和系统要求来决定。在一些对实时性要求极高的应用中,可以考虑省略总结步骤以提高响应速度。在实际应用中,工程师可以考虑实现自适应总结策略。

m0_59163425的博客 2115

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(c++)

本文介绍了YOLOv26在RK3588平台的C++推理部署方案。重点包括:1)扩展Ultralytics导出格式,新增RKNN_ONNX专用导出选项;2)重构Detect Head结构,使其更适合RKNN推理;3)提供C++侧后处理实现建议。该方案保留了Ultralytics训练生态,通过优化模型结构输出,将解码等操作移至C++端,充分发挥Rockchip NPU性能。适用于RK3588/RK356x等平台,需配合rknn-toolkit2使用,为YOLOv26的嵌入式部署提供完整解决方案。

qq_64366203的博客 2178

权威力作升级!《大语言模型:从理论到实践》第二版(预览版)重磅来袭!

这本书是国内 LLM 领域的集大成之作,旨在为所有对 LLM 感兴趣的读者提供一座坚实的桥梁,连接理论的深度与实践的广度。

瓦罗兰特顶级C位的博客 958

Android Settings 设置Preference置灰显示

使Preference置灰显示,不能点击。先调用Preference的setEnabled(false),再调用setShouldDisableView(true); 如果使置灰项恢复正常可点击,可调用setEnabled(true)。

随风而动 1049

【同花顺公式编辑教程】第4章 功能函数

本章节主要给出大部分能够运行且常用的同花顺指标编辑器提供的函数。其中,计算类函数不作演示,绘图类函数提供示例及示例运行结果。

LiaoYi2016218的博客 2万+

权威力作升级!《大语言模型:从理论到实践》(预览版)重磅来袭!

这本书是国内 LLM 领域的集大成之作,旨在为所有对 LLM 感兴趣的读者提供一座坚实的桥梁,连接理论的深度与实践的广度。

2301_81888214的博客 519

RDKit实战:5分钟搞定药物分子相似性分析(附Python代码)

本文提供了一套基于RDKit的快速药物分子相似性分析实战指南。通过Python代码演示,从环境搭建、分子指纹(如Morgan指纹)计算到Tanimoto相似性排序与可视化验证,帮助研究者在5分钟内完成从海量化合物库中精准筛选潜在活性分子的全流程,提升药物发现效率。

weixin_29193359的博客 316

一文讲透 FAISS:向量检索原理 × 本地部署 × RAG 实战全流程指南

一句话可以用一个固定长度的向量表示。例如用768[0.24, -0.88, 0.12, ..., 0.01] ← 共 768 个维度系列你给出一个查询向量,FAISS 会返回前 K 个最相似的向量及其原文索引。D是距离值(越小越相似)I是命中向量的索引列表(用来查原文)这就是 RAG 系统中“文档召回”最关键的一步。你想要…推荐选型本地轻量 / 纯离线FAISS(嵌入式 / 超快)中型项目 / 有 API 需求Qdrant(部署友好 + REST 原生)图结构 + 多属性检索。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1万+

C# WPS操作PPT,全屏,缩率图,备注,跳转播放

本文介绍了一个使用C#开发的PPT操作工具,主要功能包括检测当前打开的PPT文件、获取选中PPT路径、指定播放PPT、获取PPT页面序号和缩略图、提取备注内容等。文章展示了操作界面效果图,并重点解决了用户手动退出PPT后重新获取路径时报错的问题。核心代码实现了通过WPS API进行PPT文件的打开、全屏播放、页面跳转、获取当前页位置等功能,同时支持生成PPT缩略图预览和备注信息提取。当用户未通过工具按钮打开PPT时,程序会自动初始化PPT信息确保功能正常使用。

遇见--专栏 312

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Github 15K! 亿级向量相似度检索库Faiss 原理+应用

作者|Chilia整理|NewBeeNLP最近在使用ColBERT双塔结构进行文本召回,其中必然要涉及到向量相似度查询,如果只用brute-force方法的复杂度实在太高,...

Kaiyuan_sjtu的博客 9694

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

算法工程-Faiss原理和使用总结

1.Faiss的概念 faiss是一个Facebook AI团队开源的库,全称为Facebook AI Similarity Search,该开源库针对高维空间中的海量数据(稠密向量),提供了高效且可靠的相似性聚类和检索方法,可支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库。 官方资源地址https://github.com/facebookresearch/faiss 2.Faiss基础依赖 1)矩阵计算框架:Faiss与计算资源之间需要一个外部依赖框架,这个框架是一个矩阵计算框架,官方默

weixin_40375871的博客 2万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

大规模向量检索库Faiss学习总结记录

大规模向量检索库Faiss学习总结记录

Together_CZ的博客 4499

Faiss原理与使用总结

另一种方法是构建多个模态的独立索引,查询时分别计算查询向量与各模态数据的相似度,通过加权融合或其他策略综合决策。假设我们拥有一个包含数万张图像的数据库,目标是构建一个图像检索系统,用户上传一张图片,系统返回与之最相似的若干张图片。本案例将利用Faiss强大的向量相似度搜索能力,结合深度学习模型进行图像特征提取,实现高效准确的图像检索。查询时,将查询向量广播到各服务器,分别搜索子索引,然后汇总结果。查询时,输入视觉和文本特征,混合索引将分别在两个子索引中搜索,返回综合结果。首先,确保已安装Faiss库。

zevjay的博客 4629

Faiss为啥这么快?原来是量化器在做怪!

Faiss(Facebook AI Similarity Search)是一个面向相似性搜索和聚类的开源库,专注于高维向量的快速相似性搜索。该库提供了一系列高效的算法和数据结构,可用于处理大规模高维向量数据,广泛应用于信息检索、机器学习和深度学习等领域。本文主要介绍Faiss中包含的量化器,量化器可以将高维向量映射到低维码本(codebook)以便进行快速近似最近邻搜索。当然在介绍量化器之前还有说一些前置的概念。

xian0710830114的专栏 4472

Faiss入门心得---向量数据库Faiss的搭建与使用

向量数据库Faiss(Facebook AI Similarity Search)是由Facebook AI Research(FAIR)团队开发的一款用于快速、高效的向量数据库构建和相似性搜索的开源库。它特别适用于处理大规模向量数据集,能够迅速在海量向量中搜索与查询向量最为匹配的项,从而加速搜索流程。Faiss常用于推荐系统、图像搜索、自然语言处理等场景。

cesske的博客 3309

[python] 向量检索库Faiss使用指北

Faiss是一个由facebook开发以用于高效相似性搜索和密集向量聚类的库。它能够在任意大小的向量集中进行搜索。它还包含用于评估和参数调整的支持代码。Faiss是用C++编写的,带有Python的完整接口。一些最有用的算法是在GPU上实现的。。所谓相似性搜索是指通过比较多维空间中数据之间的相似性来搜索与输入数据最相似的目标数据。例如人脸识别中,通过比较人脸向量之前的距离来识别当前人脸与哪张人脸相似。因此,该技术被广泛应用于信息检索、计算机视觉、数据分析等领域。。...

You and Me 2万+

RAG系统优化:性能与效率的完美平衡

RAG(Retrieval-Augmented Generation)系统的性能与效率受多个组件影响,包括查询分类、分块技术、嵌入模型、向量数据库、查询转换、文档重排序和总结等。优化这些组件是提升系统整体表现的关键。查询分类模块通过判断查询类型减少延迟,分块技术则影响文档检索的效率和上下文保留。嵌入模型和向量数据库的选择决定了检索的准确性和扩展性,而查询转换和文档重排序则进一步提升了检索的相关性。总结模块通过压缩信息减少冗余,提高生成质量。实验表明,某些组件如Hybrid with HyDE、monoT5和

XianxinMao的博客 1237

chatgpt 数据相关应用论文策略简介

从ChatGPT里借训练数据

消极的人永远是对的,积极的人选择勇往直前 3196

faiss简介及示例

简介 faiss是为稠密向量提供高效相似度搜索和聚类的框架。由Facebook AI Research研发。 具有以下特性。 1、提供多种检索方法 2、速度快 3、可存在内存和磁盘中 4、C++实现,提供Python封装调用。 5、大部分算法支持GPU实现 下面给出一些快速链接方便查找更多内容。 github 官方文档 c++类信息 Troubleshooting 官方安装文档...

JC的博客 5万+

复旦大学AI团队:检索增强生成最佳实践搜索

检索结果可能包含冗余或不必要的信息,可能会阻止LLMs生成准确的响应。此外,长提示可能会减慢推理过程。因此,在RAG管道中,总结检索文档的有效方法至关重要。摘要任务可以是抽取式的或生成式的。抽取式方法将文本分段成句子,然后根据重要性对其进行评分和排序。生成式压缩器从多个文档中合成信息,重新表述并生成一个连贯的摘要。这些任务可以是基于查询的或非基于查询的。在这篇论文中,由于RAG检索与查询相关的信息,我们专注于基于查询的方法。1.Recomp: Recomp [23] 具有抽取和生成压缩器。

m0_59164304的博客 1782
上一篇: 一文带你了解大模型的RAG(检索增强生成) | 概念理论介绍+ 代码实操
下一篇: RAG应用的典型工作流程
爱喝白开水a
博客等级 码龄3年 6793粉丝 763原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值