当前位置: 首页 > article >正文

大模型检索增强生成(RAG)有哪些好用的技巧?

RAG算是大模型时代的hello world项目了但是开源方案基本都是文章切块向量召回llm生成 3步实际业务落地过程中有哪些好用的技巧呢说实话RAG 这东西我一开始觉得挺简单——文档切片、向量化、检索、生成四步完事。结果真上手才发现能跑通和能用是两码事。我花了几周时间从 FAISS 换到 Chroma从基础检索加到 Reranker 精排中间踩的坑足够写本小册子。今天就把这些实战里摸出来的技巧摊开讲讲都是真金白银换来的经验。一、Chunk 参数别瞎设这是检索质量的根基很多人做 RAG上来就chunk_size1000觉得切大块点上下文更完整。大错特错。向量模型是有上限的。比如bge-small-zh-v1.5最大支持 512 token你切 1000 字符直接超限向量化直接报错。就算不报错大块里混杂的噪声也会让检索精度直线下降。我调试下来的经验值PYTHON text_splitter RecursiveCharacterTextSplitter( chunk_size250, # 中文场景安全值 chunk_overlap40 # 约 15-20% 的重叠 )为什么是 250小于 Embedding 模型上限512 token留足余量大于一般段落长度能保持语义完整中文 1 字符≈1 token好计算overlap 的作用是兜底。理想情况是根本用不到它——如果切出来的 chunk 都没触达 250 上限说明分块策略成功。我用教学文档测试切出来最大片段 236 字符overlap 闲置这才是最佳状态。二、FAISS 适合学习生产环境请用 Chroma刚开始我用 FAISS代码确实爽PYTHON db FAISS.from_documents(splits, embeddings_model) db.save_local(faiss_index)三行代码搞定适合快速验证想法。但问题很快就来了FAISS 是内存索引保存的是静态快照。知识库要更新只能全量重建。文档要增删改做不到。换 Chroma 之后持久化问题解决了PYTHON dbChroma( persist_directory./chroma_db, embedding_functionembeddings_model )但 Chroma 有个巨坑一次插入不能超过 5461 条记录。LangChain 默认会一次性把所有 chunk 丢过去直接报错。我查源码才发现这个限制解决办法是分批插入PYTHON batch_size 5000 for i in range(0, len(splits), batch_size): batch splits[i:i batch_size] db.add_documents(batch) print(f已插入 {min(i batch_size, len(splits))} / {len(splits)} 条)这个细节官方文档没写我卡着调试半天才弄明白。三、基础检索不准上 Reranker 精排这是提升检索质量最立竿见影的技巧。基础 RAG 流程是用户提问→向量化→向量库相似度检索→返回 top_k→给 LLM 生成。问题在于向量相似度≠语义相关性。我用《战争与和平》测试问皮埃尔是共济会成员吗基础检索召回的全是兄弟会相关内容——向量距离近但事实无关。解决方案粗召回 精排序PYTHON # 第一步粗召回扩大候选范围 base_retriever db.as_retriever(search_kwargs{k: 50}) # 第二步Reranker 精排重打分 encoder HuggingFaceCrossEncoder(model_nameBAAI/bge-reranker-base) reranker CrossEncoderReranker(modelencoder, top_n6) # 第三步管道封装 compression_retriever ContextualCompressionRetriever( base_retrieverbase_retriever, base_compressorreranker )这里涉及两个关键参数k 和 top_nk50粗召回数量决定 Reranker 的工作量。CPU 环境下每增加 1 个 k耗时约 0.05stop_n6最终给 LLM 的片段数决定 Token 消耗博弈关系不怕花时间→提升 k如 k100确保不漏检不怕花钱→提升 top_n如 top_n10给 LLM 更多上下文但 top_n 不是越大越好。过大会导致中间迷失效应——噪声太多反而干扰 LLM 提取关键信息。四、把 RAG 封装成 Tool而不是独立系统这是我踩过之后才醒悟的一点。一开始我把 RAG 做成独立问答系统用户提问直接走 RAG 链条。后来发现两个问题没有记忆——用户问他加入什么组织了RAG 不知道他是谁无法自主决策——有些问题根本不需要查知识库但 RAG 每次都检索正确做法把 RAG 封装成 Tool交给 Agent 调度PYTHON # 一次性初始化 RAG 链避免每次调用都重载模型 rag_chain_instance build_rag_chain(llm) tool def search_war_and_peace(query): 查询《战争与和平》小说中的人物、情节、历史事件 print(f\n正在检索《战争与和平》:{query}) return rag_chain_instance.invoke(query) tools [get_weather, search_war_and_peace] agent create_tool_calling_agent(llmllm, toolstools, promptprompt)这样做的好处记忆由 Agent 统一管理RAG 不用自己处理多轮对话Agent 能自主判断什么时候该查知识库、什么时候直接回答Agent 能结合对话历史改写查询比如把他改写成皮埃尔五、Prompt 写松一点别把 LLM 捆太死这个技巧很小但效果很明显。我一开始的 RAG System Prompt 是这样写的“请严格按上下文回答上下文中没有的信息不要编造。”结果 LLM 明明从上下文能推理出答案却因为没明说就不敢回答。改成“请根据上下文回答问题。如果上下文强烈暗示了答案即使未明说也可推理回答。”效果好很多。LLM 需要一点自由度来发挥推理能力太死板的限制会让它变成只会复制粘贴的机器。六、开发阶段开缓存省 Token 也省时间调试 RAG 很烧 Token。每次改个参数、调个 Prompt都要重新跑一遍检索 生成。开发阶段加个缓存PYTHON from langchain.cache import InMemoryCache set_llm_cache(InMemoryCache())命中缓存的请求不花钱调试效率提升明显。但上线前记得关掉——生产环境缓存复用答案没有任何智能。七、Embedding 模型选对事半功倍不同 Embedding 模型在语义表达能力、维度、上下文感知能力上差异很大。短文本、通用场景bge-small-zh-v1.5速度快资源占用低长文档、专业领域bge-large-zh或bge-m3效果更好但下载慢、资源占用高选模型前可以去 MTEB 排行榜看看模型选错了后面怎么调参都救不回来。小结下RAG 这玩意儿看着简单真要做稳了不容易。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关文章:

大模型检索增强生成(RAG)有哪些好用的技巧?

RAG算是大模型时代的hello world项目了,但是开源方案基本都是文章切块向量召回llm生成 3步,实际业务落地过程中有哪些好用的技巧呢? 说实话,RAG 这东西我一开始觉得挺简单——文档切片、向量化、检索、生成,四步完事。…...

LFM2.5-1.2B-Instruct开源大模型部署案例:低成本轻量客服机器人落地实操

LFM2.5-1.2B-Instruct开源大模型部署案例:低成本轻量客服机器人落地实操 1. 项目概述 LFM2.5-1.2B-Instruct是一个1.2B参数量的轻量级指令微调大语言模型,专为边缘设备和低资源服务器设计。这个开源模型特别适合构建嵌入式AI助手和轻量级客服机器人系统…...

Qianfan-OCR部署教程:conda env list查看torch28环境与依赖包版本校验

Qianfan-OCR部署教程:conda env list查看torch28环境与依赖包版本校验 1. 项目概述 Qianfan-OCR是百度千帆推出的开源端到端文档智能多模态模型,基于4B参数的视觉语言模型架构。该模型采用Apache 2.0协议,完全开源可商用,能够替…...

八大网盘直链下载助手LinkSwift终极指南:一键获取真实下载地址

八大网盘直链下载助手LinkSwift终极指南:一键获取真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

Phi-3.5-mini-instruct新手入门:3步完成模型部署与简单对话测试

Phi-3.5-mini-instruct新手入门:3步完成模型部署与简单对话测试 1. 环境准备与快速部署 Phi-3.5-mini-instruct是微软推出的轻量级开源指令微调大模型,在长上下文代码理解(RepoQA)、多语言MMLU等基准上表现优异。它特别适合本地…...

Qwen3-4B-Thinking部署教程:支持WebSocket长连接的实时流式响应

Qwen3-4B-Thinking部署教程:支持WebSocket长连接的实时流式响应 1. 模型简介 Qwen3-4B-Thinking-2507-Gemini-2.5-Flash-Distill是一个基于vLLM框架部署的文本生成模型,特别优化了WebSocket长连接支持,能够提供实时流式响应体验。该模型在约…...

国民技术 N32G432CBL7 LQFP-48 单片机

特性内核CPU:32位ARM Cortex-M4内核 FPU,单周期硬件乘除法指令,支持DSP指令和MPU内置2KB指令Cache缓存,支持Flash加速单元执行程序0等待最高主频108MHz,135DMIPS加密存储器:高达128KByte片内Flash&#xf…...

#65_反激电源

65_反激电源 一、反激电源概述反激变换器(Flyback Converter)是一种在输入与输出之间提供电气隔离的开关电源拓扑结构。它因其结构简单、成本低廉而广泛应用于中小功率(通常低于150W)的电源适配器、充电器和辅助电源中。 二、核心…...

Phi-4-mini-flash-reasoning惊艳效果展示:同一题Temperature=0.1 vs 0.6对比

Phi-4-mini-flash-reasoning惊艳效果展示:同一题Temperature0.1 vs 0.6对比 1. 模型简介 Phi-4-mini-flash-reasoning是一款专注于文本推理的轻量级模型,特别擅长处理需要逐步分析和逻辑推导的任务。这个模型就像一位思维缜密的数学老师,能…...

Real-Anime-Z部署案例:单卡RTX 4090 D同时支撑WebUI+Jupyter双服务

Real-Anime-Z部署案例:单卡RTX 4090 D同时支撑WebUIJupyter双服务 1. 项目概述 Real-Anime-Z是一款基于Stable Diffusion技术的写实向动漫风格大模型,它巧妙地在真实质感与动漫美感之间找到了平衡点,创造出独特的2.5D风格效果。这个项目特别…...

Amlogic S905C2处理器解析:数字电视与机顶盒应用

1. Amlogic S905C2处理器概述Amlogic S905C2是一款基于四核Cortex-A55架构设计的系统级芯片(SoC),主要面向智能机顶盒和数字电视应用场景。这颗芯片最近在一些搭载Android 11系统的机顶盒设备中出现,虽然公开资料有限,但从已知信息来看&#…...

egergergeeert开源镜像扩展性:支持自定义LoRA与底座模型热替换方案

egergergeeert开源镜像扩展性:支持自定义LoRA与底座模型热替换方案 1. 镜像核心能力概述 egergergeeert是一套专为图像创作设计的文生图开源镜像,能够根据用户输入的提示词直接生成高质量图片。这套解决方案特别适合需要快速产出插画草图、角色设计、视…...

OpenClaw 中的 Agent 权限系统设计实战

网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…...

超导体-硅约瑟夫森结技术解析与应用

1. 超导体-硅约瑟夫森结技术解析约瑟夫森结作为连接经典与量子世界的桥梁,其核心在于两个超导体之间形成的弱耦合结构。当我在实验室第一次观察到4.2K温度下NbN/a-Si/NbN结的I-V特性曲线时,那个清晰的能隙电压跳变让我至今难忘。这种超导体-硅-超导体(SC…...

芯片替代引发的电源管理问题与供应链应对策略

1. 供应链短缺引发的连锁反应:从芯片替代到量产事故去年我在评测Radxa ROCK 3A单板计算机时,发现一个令人深思的现象:当USB PD电源管理芯片IP2315被误替换为CH224D后,虽然板子能点亮运行,但在高负载下会出现随机重启。…...

Z-Image-Turbo部署常见问题:手把手教你解决启动失败

Z-Image-Turbo部署常见问题:手把手教你解决启动失败 1. 引言 阿里通义Z-Image-Turbo WebUI图像生成模型凭借其高效的推理速度和出色的图像质量,已成为AI图像生成领域的热门选择。由科哥二次开发构建的WebUI版本进一步降低了使用门槛,让普通…...

Phi-3.5-mini-instruct效果惊艳:数学符号识别+LaTeX公式生成能力

Phi-3.5-mini-instruct效果惊艳:数学符号识别LaTeX公式生成能力 1. 模型简介 Phi-3.5-mini-instruct 是一个轻量级但功能强大的开放模型,属于Phi-3模型家族。它基于高质量、推理密集的数据集构建,包括合成数据和经过筛选的公开网站数据。这…...

vben开发入门12:多语言插件

文件位置 查找字符串 查找结果 跳转到这个vue文件 变量使用 如图所示,在默认情况下,这个变量的内容,是一个字符串,无法知道其指代的内容,也没有自动提示,更无法导航,因此,这里我们…...

揭秘大模型Steering:从底层机理到系统评估,全面破解大模型行为控制之谜

什么是 Steering?给大模型装一个「方向盘」想象你正在驾驶一辆高性能的跑车。驾驶员(你)通过方向盘很容易就能调整车的行驶方向,只需要轻轻转动几度,整个几吨重的汽车就改变了方向。但如果你想改变发动机的工作方式呢&…...

skeyevss-performance 长任务Panic隔离与协程恢复源码设计

试用安装包下载 | SMS | 在线演示 开源项目地址:https://github.com/openskeye/go-vss 背景 VSS 长期运行,任何 nil 指针、越界、第三方库 bug 都可能触发 panic。若 panic 发生在 唯一 的 SIP 发送循环或 Catalog 定时器里,会导致 整类信…...

skeyevss-performance 国标设备通道有界Channel与并发容器容量代码设计

06 有界 Channel 与并发容器容量 试用安装包下载 | SMS | 在线演示 项目源码地址:https://github.com/openskeye/go-vss 背景 高并发服务中 无界队列 会在故障或下游变慢时把内存耗尽;小队列 则频繁阻塞生产者。并发 Map 若频繁扩容也会带来 CPU 与 …...

设计叉杆零件的专用夹具课程设计

在机械加工领域,叉杆零件因结构特殊、加工面多,对定位精度和装夹稳定性要求极高。传统通用夹具难以满足其加工需求,易导致零件变形、尺寸超差等问题,影响加工质量与效率。专用夹具的设计,正是针对这一痛点,…...

如何处理SQL存储过程二进制数据_高效存储与读取BLOB

...

Qianfan-OCR实战落地:HR部门简历自动解析+技能标签提取系统

Qianfan-OCR实战落地:HR部门简历自动解析技能标签提取系统 1. 项目背景与价值 在人力资源管理中,简历筛选是耗时且重复性高的工作。传统方式需要HR人工阅读每份简历,提取关键信息并分类归档,效率低下且容易出错。Qianfan-OCR作为…...

用51单片机和DAC0832做个简易信号发生器:手把手教你生成方波、三角波和锯齿波

51单片机与DAC0832实战:零基础搭建可调波形信号发生器 引言 在电子设计的世界里,信号发生器就像一位会说多种语言的翻译官,它能把数字世界的冰冷代码转化为模拟世界的连续波形。对于刚接触51单片机的爱好者来说,亲手制作一个能输出…...

CSS如何实现网页打印样式优化_利用@media print重写布局

根本原因是浏览器默认按屏幕渲染,未适配纸张尺寸、边距和分页逻辑;需用media print清除浮动、禁用溢出、避免分页断裂、重置颜色背景、确保字号≥12px,并优先用padding而非page控制边距。打印时页面内容被截断或空白页太多根本原因是浏览器默…...

AIOps(智能运维)全解

AIOps Artificial Intelligence for IT Operations,中文全称IT 运维人工智能 / 智能运维,由 Gartner 在 2016 年正式提出,是大数据 机器学习 自动化运维融合的下一代运维体系。简单一句话:用 AI 接管海量运维数据,实…...

Hadoop 全套常用 Shell 命令完整版

Hadoop 全套常用 Shell 命令完整版,分为 HDFS 文件操作、YARN 任务管理、集群查看、本地启动关闭、常用运维命令,面试、日常开发直接背直接用。一、HDFS 基础操作命令1. 查看 HDFS 目录bash运行hdfs dfs -ls / hdfs dfs -ls -R / # 递归查看所有目录2…...

Hadoop 完整入门详解

Apache Hadoop 是 Apache 开源的大数据分布式基础框架,基于廉价普通服务器集群,解决 PB/EB 级海量数据的存储、离线批量计算 问题,是整个大数据生态的基石。灵感源自 Google GFS、MapReduce 论文,Java 开发,名字源于创…...

并发测试是如何产生锁、脏数据的

结合数据库底层、事务隔离级别、并发场景,用最直白好懂的逻辑,一次性讲清:并发测试为什么会造出锁、脏读、不可重复读、幻读、脏数据,附带真实业务场景、SQL 过程、锁升级全过程。一、先搞懂前提:并发是什么并发测试 …...