LLM 微调 最近 OpenAI 开始提供 LLM 微调 API,LlamaIndex 提供了在 RAG 设置中微调 GPT-3.5-turbo 的教程,旨在 “提炼” GPT-4 的部分知识。 这里的思路是取一个文档,用 GPT-3.5-turbo 生成若干问题,然后用 GPT-4 根据文档内容回答这些问题(构建一个 GPT-4 驱动的 RAG 管道),接着对 GPT-3.5-turbo 在这些问题 技术上,它将信息检索与微调、强化学习等技术相结合。从流程上看,RAG 的各个模块被精心设计和调配,形成了多种RAG模式。 但模块化 RAG 并非一蹴而就;它是在前两个范式基础上逐步演化而来的。 发展前景 我们可以预见大模型和RAG技术将会共同进步,并可能融合发展。大模型可能会内置更加高效的检索机制,而RAG技术也会不断优化,使得检索过程更加精准、生成过程更加自然。 目前,包括推荐系统、信息提取和报告生成在内的多种任务已经开始受益于 RAG 技术的应用。 同时,RAG 技术栈也在迅速壮大。
❝本文系统介绍静态 RAG 与动态 RAG 的核心原理、技术对比、主流实现方案及代码实践,适合技术选型和深入学习参考。 ❞ 目录 一、RAG 技术概述 二、静态 RAG 2.1 核心原理 2.2 优化技术 2.3 主流实践方案 2.4 代码示例 三、动态 RAG 3.1 核心原理 3.2 主流实现方案 四、Self-RAG 7.1 静态 vs 动态 RAG 7.2 Self-RAG vs CRAG 7.3 选型建议 八、参考资源 一、RAG 技术概述 RAG(Retrieval-Augmented Generation, /chroma_db" ) # 4. ] # 边定义 } } ) # 列出已有 Agent agents = rag.list_agents() 七、技术对比与选型建议 7.1 静态 vs 动态 RAG 维度
Trends》 ,RAG 范式、技术和趋势。 随着RAG技术的进一步发展和进化,产生了模块化RAG的概念。在结构上,它更自由、更灵活,引入了更具体的功能模块,如查询搜索引擎和多个答案的融合。在技术上,它将检索与微调、强化学习和其他技术相结合。 技术发展树 RAG 关键技术 数据索引优化 核心是chunk的策略: Small-2-Big 在sentense级别做embedding Slidingwindow 滑动窗口,让chunk覆盖整个文本 RAG 技术栈与工业界实践 当前有LangChain、LlamaIndex、AutoGen等流行的开发框架,可以方便开发RAG应用。 工业界也有很多RAG应用。 总结与展望 RAG 技术框架 RAG 的三个研究热点 RAG 的挑战 长上下文 与FT的协同 如何应用好LLM,充分挖掘利用LLM 提升鲁棒性,比如如何处理错误的召回内容,如何过滤和验证召回内容 RAG
所以在同样精度的情况下,利用 RAG 技术可以大大地降低整个成本。 智谱 -RAG 解决方案 技术方案 下图是技术方案的全景图 整个技术方案包括三个层面:文件上传、用户提问和答案输出。 4、知识晦涩难懂。虽然涉及日常场景,但政策内容复杂,不易为大众理解。 此外,在交互层面,也同样存在问题: FAQ 模式的回答范围有限,无法涵盖所有问题,容易导致用户体验下降。 针对同样的场景问题,智谱通过“ChatGLM 大模型 +RAG”的方案来解决。整个成本和效果可以有大幅提升如,下图所示: 此项目面临如下几个技术挑战: Embedding 第一个挑战是知识召回。 结 尾 展望未来,RAG 技术将会在更多领域得到应用,并与其它 AI 技术相结合,例如多模态交互、个性化推荐、用户长期记忆等。 智谱 AI 将继续致力于 RAG 技术的探索与实践,为企业在更多的领域落地大模型应用,提供更加智能、高效的服务体验。
本文将带您深入探索GitHub上备受瞩目的RAG_Techniques项目,这是目前最全面的RAG技术集锦之一,为研究人员和实践者提供了丰富的高级技术实现和示例。 ,而无需重新训练整个模型 4、提高透明度:能够引用信息来源,让用户了解答案的依据 这使得 RAG 成为构建可信 AI 系统的重要技术,特别适用于需要精确、可验证信息的应用场景,如客户支持、医疗、法律和技术文档咨询等领域 分类清晰的技术体系 RAG_Techniques 项目将 33 种技术分为几大类别,使开发者能够根据需求快速定位: 基础技术(Foundational) - 包括基本 RAG、CSV 文件集成的 RAG files_path, chunk_size=500, chunk_overlap=100): self.llm = ChatOpenAI(temperature=0, model_name="gpt-4o-mini 4、环境要求 Python 3.8+ 相关依赖包(LangChain、LlamaIndex、OpenAI等) 访问 LLM API(如 OpenAI API 密钥) 应用场景和实际价值 RAG_Techniques
langchain4j 中的 Advanced RAG 涉及到诸多策略,今天和大家聊一聊这里涉及到的一些策略。 智能路由器会: 识别到"技术术语+架构分析"特征 自动选择学术论文库和 AI 技术文档库检索 跳过无关的新闻和百科内容 优势: • 减少无效检索,响应速度提升 40% • 避免多路检索的资源浪费 3.2.3 4.2.4 其他 其他的还有像 AzureAiSearchContentRetriever 主要负责和 Azure AI 进行交互,Neo4jContentRetriever 则主要负责和 Neo4j with LangChain4j?") with LangChain4j?")
序本文主要研究一下langchain4j的RAG概述RAG(Retrieval-Augmented Generation)即检索增强生成,它通过检索来获取相关信息,注入到prompt,然后用增强的prompt Advanced RAG通过引入更高级的技术(如语义分块、查询扩展与压缩、元数据过滤等)来提高检索质量和生成答案的相关性。 Easy RAGpom.xml<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-easy-rag RAG Flavors**LangChain4j offers three RAG flavors:* **Easy RAG:** The simplest, quickest way to get LangChain4j 提供了三种RAG(Retrieval-Augmented Generation,检索增强生成)的实现方式:Easy RAG、Naive RAG、Advanced RAG。
java程序员肯定就会想到写个filter或者intercepter,RAG就是在做类似的事情,只不过流程更加复杂。 RAG是什么 检索增强生成(RAG)是对大型语言模型输出进行优化的方法,使其能够在生成响应之前引用训练数据来源之外的权威知识库。 为什么需要RAG 大模型在没有答案的情况下提供幻象数据,也就是胡说八道。 当用户需要特定的当前响应时,提供过时或通用的信息,模型提供的最新信息为训练模型时的数据。 敏感词、停止词过滤 RAG的基石:向量数据库 复习一下向量的概念:在几何中一个同时具有大小和方向的对象就叫向量,还有一个定义大家可能更加熟悉,“既有大小,又有方向的量叫做向量”。 - 哔哩哔哩 (bilibili.com) 我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!
在这一领域中, RAG 技术将传统信息检索技术与大语言模型技术相结合,为知识理解、知识获取提供了全新的解决方案。然而,尽管 RAG 在很多任务上表现出色,其在深度应用上仍面临诸多挑战。 当然, RAG 技术的发展和应用正在不断演进,随着技术的成熟和优化,预计 RAG 将在更多场景下发挥关键作用。接下来,我们进入今天的第二个话题。如何提高公众对 RAG 技术的认识和理解? 总结来说,我认为 RAG 技术的关键还是要有爆款产品,而从事 RAG 技术的人的关键是解决其基本问题,让 RAG 技术在这些爆款产品中可用,满足用户的期望体验。 RAG 技术未来展望 郭瑞杰: 前面 3 个话题主要讨论了 RAG 技术的现状、应用情况、高级 RAG 技术解法等,最后,咱们聊聊 RAG 技术未来的发展方向,有哪些新兴的技术和方法可能会给 RAG 这些新兴技术和方法可能会给 RAG 技术带来新的冲击和发展机遇,推动 RAG 技术在更多领域和场景中的深度应用,并实现更高的性能和可用性。
同时也能明显感受到仅仅靠RAG技术已经完全满足不了用户的需求了,本文就介绍 从RAG到DeepResearch,我们的技术实践之旅。 话不多说,先上技术路线图: 1. (关于上下文工程和RAG的关系后面单开一篇~) 对于通用知识,大模型底座已经具备。但要让它懂“你的业务”,能回答“你的问题”,就必须构建属于"你的知识库",然后上RAG技术,RAG就是输入优化技术。 RAG相关技术我在之前分享的文档中其实已经介绍多次,本文就不做过多技术介绍。 4. 深度报告 深度检索通常面向的是某个具体问题,生成篇幅较短的回答。但随着技术发展,用户需求已经从“问答式检索”升级到“让 AI 自主开展系统性研究并生成深度报告”。 (4)系统级性能优化 为了在企业环境中真正可落地,我们对全链路进行了专项性能优化,包括: 模型层面:在保证关键指标的前提下尽量使用小模型;量化、加速框架、prompt 压缩、投机解码等多项优化方案加速推理
本文详细解析了RAG技术,包括其定义、作用、技术架构和检索模块的实现与优化,全面展示了RAG在自然语言处理中的重要性和广泛应用前景。 关注TechLead,复旦AI博士,分享AI领域全维度知识与研究。 一、RAG的定义和作用 RAG的定义 Retrieval-Augmented Generation(RAG)是一种结合了检索和生成技术的自然语言处理(NLP)模型。 RAG的应用场景 RAG技术在多个领域中展现了其强大的应用潜力,以下是一些典型的应用场景: 开放域问答 在开放域问答任务中,RAG通过检索相关文档并生成基于这些文档的回答,能够处理范围更广、问题更复杂的用户提问 二、RAG的技术架构 RAG模型整体架构 RAG(Retrieval-Augmented Generation)模型的技术架构包括两个主要部分:检索模块(Retriever)和生成模块(Generator 技术架构图 以下是RAG模型的技术架构图,展示了检索模块和生成模块的工作流程: 输入查询 │ ▼ 检索模块 │ ├──> 文档1 │ ├──> 文档2
今天我们继续剖析 RAG,将为大家详细介绍 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技术的发展历程和基本原理,以及它们是如何应用的。 01. Embedding 是将离散的非结构化数据转换为连续的向量表示的技术。 这强大的功能背后,是从人类反馈中强化学习(Reinforcement Learning from Human Feedback,RLHF)等技术的支持,通过这些技术使得它和人类的对话更让人满意。 好在,我们可以使用 Retrieval Augmented Generation (RAG) 技术解决产生幻觉,和无法实时更新知识这两点不足。 RAG 是结合向量数据库和 LLM 的一项技术应用,关于 RAG 的介绍以及优化技巧,可以参考其它的文章。 03.
什么是RAG RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将大语言模型(LLM)与模型外知识库检索相结合的技术架构。 关键技术: 混合检索:结合向量检索(如 rank_model_type="bge" 的 BGE 模型)与关键词检索(如 search_engine="sogou"),提升召回多样性。 Modular RAG(模块化 RAG) 核心思想:将 RAG 流程拆解为独立模块,支持灵活替换与组合。 优势: 系统可扩展性强,易于迭代优化。 4. Graph RAG(图增强 RAG) 核心改进:引入图结构(如知识图谱)增强知识表示与推理能力。 关键技术: 图化知识库:将文档中的实体、关系构建为图结构,支持多跳推理。 Agentic RAG(智能体化 RAG) 核心思想:引入自主智能体(Agent)动态控制 RAG 流程。 关键技术: 调用 search_engine="sogou" 或向量检索。
前面的文章中,为大家介绍过大模型领域的核心技术:RAG(Retrieval-Augmented Generation),即检索增强生成。 从2022年底ChatGPT横空出世以来,大模型的信息幻觉(生成错误信息)、知识过时、推理过程不透明等问题,一直困扰着业内各方技术人员,直至RAG技术出现,才算缓解了这个难题。 》,对RAG的三大范式演进(基础RAG、高级RAG、模块化RAG)和检索、生成与增强三大核心组件的关键技术进行了深入探讨。 一、RAG的三大技术范式 1、基础RAG(Naive RAG) 流程:索引(Indexing)→ 检索(Retrieval)→ 生成(Generation)。 二、RAG的核心技术组件 1、检索优化 数据源选择:结构化数据(数据库表)与非结构化数据(文本、PDF)的混合使用。
序本文主要研究一下langchain4j的Naive RAG示例public class Naive_RAG_Example { /** * This example demonstrates 技术,Easy RAG使用了EmbeddingStoreIngestor来隐藏了文档解析、分割、嵌入、嵌入存储,Naive RAG亦可使用。 EmbeddingStoreContentRetrieverdev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.javapublic 小结langchain4j提供了EmbeddingStoreContentRetriever来开启Naive RAG的功能,EmbeddingStoreContentRetriever.builder( docNaive RAG
序本文主要研究一下langchain4j的Advanced RAG核心流程将UserMessage转换为一个原始的QueryQueryTransformer将原始的Query转换为多个Query每个Query *
* Advanced RAG in LangChain4j is described here: https://github.com/langchain4j/langchain4j DefaultQueryTransformerdev/langchain4j/rag/query/transformer/DefaultQueryTransformer.javapublic class ReRankingContentAggregatordev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.javapublic ContentInjectordev/langchain4j/rag/content/injector/ContentInjector.java@Experimentalpublic interface
继续我们的langchain4j之旅,今天来看看RAG如何实现,“RAG萌宠新手盆友们”建议先看看B站大佬的视频RAG 工作机制详解—哔哩哔哩_bilibili,核心步骤就是下面这3张图: 最简单的RAG error: " + e.getMessage() + "\"}"); } } 略做解释: 为了简单起见, 这里分片我们略过,直接手动用二个句子,当成2个分片 使用langchang4j prompt_eval_count":11} 3、重排/生成 private interface Assistant { String chat(String userMessage); } /** * 基于RAG "" + e.getMessage() + "\"}"); } } 日志输出: 2025-12-03T21:06:00.218+08:00 INFO 16956 --- [langchain4j-study "done_reason":"stop","total_duration":1059949995,"prompt_eval_count":21,"eval_count":22} 从日志上看,先做了1次RAG
我们常见的各种ChatBot(即聊天机器人),就是基于这种技术原理实现的。与之相关的技术框架,常见的有如下几种: LangChain:开源框架,提供了丰富的组件和工具,用于构建RAG系统。 LLama-Index:专为LLama模型设计的RAG框架,适用于特定场景下的应用。 RAGFlow:一个较新的RAG框架,注重简洁性和效率,提供预设组件和工作流。 Haystack:一个常用的开源框架,支持向量存储和编排层,是RAG系统的重要组成部分。 GraphRAG:专注于大模型驱动的RAG技术,通过优化向量库构建与推理性能来提升RAG系统的效率。 文本向量化:将切割后的文本小块,通过EMB(数据拆分和映射)技术转换为算法可以处理的向量,并存入向量数据库。 问句向量化:将用户的提问内容进行向量化处理(切割+拆分+映射)。 按照技术领域的通用测试原则,需要构建评测集(即IT技术领域的测试用例),对其展开评测。 评测集需要满足如下几点要求: 可以理解用户提问内容。 可以匹配正确的知识库内容。
RAG技术概述 什么是RAG RAG是一种结合信息检索和文本生成的AI架构,工作流程如下: 用户查询 → 检索相关文档 → 生成增强回答 → 返回结果 ↓ ['retrieved_docs'] } # ==================== 高级RAG技术 ==================== class HybridRAG """, """ 计算机视觉是使计算机能够理解和解释视觉信息的技术。 应用包括人脸识别、物体检测、图像分割和自动驾驶中的视觉感知。 ") # RAG技术对比表 print("\n" + "="*70) print("RAG技术对比") print("="*70) comparison_table 随着向量数据库、嵌入模型和LLM的不断发展,RAG将成为知识密集型AI应用的核心架构。 掌握RAG技术,开发者可以构建更准确、可靠、可解释的AI应用,满足企业级应用的需求。
一、背 景在 RAG 系统中,即便采用性能卓越的 LLM 并反复打磨 Prompt,问答仍可能出现上下文缺失、事实性错误或拼接不连贯等问题。 某种意义上,分块质量几乎决定了RAG的性能上限——它决定知识是以连贯的上下文呈现,还是退化为无法拼合的碎片。 初始的配置建议(仅限于中文技术/说明文档):窗口大小 window_size:2–4 句最小/最大块长:min_chunk_chars=300–400,max_chunk_chars=1000–1200 目标:为RAG检索创建高内聚、可追溯的块。 从一次启动失败深入剖析:Spring循环依赖的真相|得物技术3. Apex AI辅助编码助手的设计和实践|得物技术4.