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

收藏必备!小白程序员轻松掌握RAG大模型,让你的AI秒懂公司文档!

RAG 是什么:一句话+类比


RAG(Retrieval-Augmented Generation)= 先检索,再生成。

类比:RAG 就像开卷考试。模型本身是那个能写文章的学生,知识库是那一堆参考书。考试时不靠死记硬背,而是先翻书找到相关段落,再用自己的理解写答案。

没有 RAG 的 AI 是闭卷考——它只能答它训练时见过的内容。


为什么不直接 Fine-tuning?


这是大家最常问的问题。Fine-tuning 训练的是「风格和能力」,不是「知识」。

维度RAGFine-tuning
知识更新改向量库,秒级生效重新训练,几小时到几天
成本低(API + 向量DB)高(GPU 算力)
幻觉风险可溯源,能引用原文模型可能「记错」
适用场景私有知识、频繁更新专业语气、特定格式输出

结论:知识库类需求,首选 RAG;想让模型说话更像你们品牌,才考虑 Fine-tuning。


RAG 完整流程拆解


RAG 分两个阶段:索引阶段(离线)和查询阶段(在线)。

索引阶段(一次性/更新时): 文档 → 分块(Chunking) → 向量化(Embedding) → 存入向量数据库 查询阶段(每次对话): 用户提问 → 向量化 → 相似度检索 → 取出 Top-K 段落 → 拼进 Prompt → LLM 生成回答

第一关:文档分块(Chunking)

分块策略直接决定检索质量,但大多数人第一次都搞错了。

固定长度分块(最常见,但有问题)

fromimport# 最常见写法:按字符数切分1000# 每块最多1000字符200# 相邻块重叠200字符(防止语义断裂)"\n\n""\n""。""!""?"" """

❌ 常见错误:chunk_overlap=0
→ 一个完整句子被切成两半,检索时两半都不完整,模型无法理解

✅ 正确做法:chunk_overlap设为chunk_size的 10%-20%
→ 语义完整,相邻块有重叠保护

语义分块(效果更好,稍复杂)

fromimportfromimport# 按语义相似度自动切分,不按字符数硬切"percentile"# 超过85%相似度阈值才切分85# 输出的每个 chunk 语义上都是完整的

✅ 语义分块在技术文档、法律合同这类强结构文本效果明显更好
❌ 但速度更慢(每次都要调用 Embedding),适合离线批量处理

第二关:向量化(Embedding)

Embedding 是把文本变成一串数字向量,语义相近的文本向量距离更近。

类比:把每段文字映射到一个 1536 维的空间里,「苹果手机」和「iPhone」在这个空间里距离很近,和「橙子」距离远。

选 Embedding 模型

# 方案A:OpenAI text-embedding-3-small(性价比最高,推荐)fromimport"text-embedding-3-small"# 1536维,比 ada-002 便宜5倍# model="text-embedding-3-large", # 精度更高,贵3倍,一般用不到# 方案B:本地模型(零成本,但精度稍差)fromimport"BAAI/bge-m3"# 多语言,中文效果好"device""cpu"# 测试一下:两段近义句,向量距离应该很小"如何重置密码""忘记密码怎么办"# 这两个向量的余弦相似度应该 > 0.9

关键原则:索引时用什么 Embedding,查询时必须用同一个——不能混用。

向量数据库选型

数据库适用场景特点
Chroma本地开发、原型验证零配置,纯 Python
Qdrant生产环境推荐性能好,支持过滤
Pinecone云服务,快速上线全托管,按量付费
pgvector已有 PostgreSQL不用新增基础设施
# Chroma 本地版(开发用)fromimport"./chroma_db"# 本地持久化"my_knowledge_base"# Qdrant 生产版fromimportimport"http://localhost:6333""my_knowledge_base"

第三关:检索策略

大多数 RAG 系统检索效果差,不是因为 Embedding 模型不好,而是检索策略太简单。

基础检索:相似度搜索

# 最基础:返回最相似的4个chunk"如何申请年假"4# 带分数:能看到每个 chunk 的相似度(0-1,越高越相关)"如何申请年假"4forinprintf"相似度: {score:.3f} | 内容: {doc.page_content[:50]}..."

进阶检索:MMR(最大边际相关性)

❌ 纯相似度搜索的问题:Top-4 可能都是在说同一件事(高度重复)

✅ MMR 在保证相关性的同时,最大化结果多样性:

# MMR 检索:相关 + 不重复"如何申请年假"4# 返回4个20# 先取20个候选,再从中选4个最多样的0.7# 0=最多样,1=最相关,0.5-0.7 效果最好

混合检索:向量 + 关键词(生产推荐)

fromimportfromimport# 关键词检索(BM25,对专有名词、型号特别有效)4# 向量检索"k"4# 混合:各取 50%0.50.5# 可调,专有名词多时提高 BM25 权重"iPhone 14 的电池容量是多少"# BM25 精准匹配「iPhone 14」,向量找到语义相关段落,两者互补

第四关:完整 RAG Chain 搭建

把前面所有环节串起来,搭一个可以直接上生产的 RAG Chain:

fromimportfromimportfromimportfromimportfromimport# 1. 初始化组件"gpt-4o-mini"0"text-embedding-3-small""./chroma_db""my_knowledge_base""mmr""k"4"fetch_k"20# 2. RAG Prompt(关键:要求模型基于上下文回答)"""你是一个专业的知识库助手。请根据以下检索到的上下文回答用户问题。**规则:**- 只基于提供的上下文回答,不要编造- 如果上下文中没有相关信息,直接说「根据现有资料,我找不到这个问题的答案」- 回答要简洁直接,引用原文时用引号**检索到的上下文:**{context}**用户问题:**{question}"""# 3. 格式化检索结果(多个 chunk 拼在一起)defformat_docsdocsreturn"\n\n---\n\n"f"[来源: {doc.metadata.get('source', '未知')}]\n{doc.page_content}"forin# 4. 组装 Chain(LCEL 写法)"context"# 检索 → 格式化"question"# 问题直接传入# 5. 使用"我们公司的年假政策是什么?"print

带来源引用的版本

fromimport# 同时返回答案和来源文档"answer""source_documents"# 保留原始 chunk"年假怎么申请?"print"答案:""answer"print"\n引用来源:"forin"source_documents"printf" - {doc.metadata.get('source', '未知')}: {doc.page_content[:80]}..."

第五关:文档入库(工程化)

把文档批量处理入库,这才是生产中最麻烦的部分:

importfromimportfromimportfromimportdefload_documentsdocs_dir: strlist"""支持 PDF、Word、TXT、Markdown 混合入库"""".pdf"".docx"".txt"".md"forin"*"ifinstr# 给每个 chunk 打上来源标记forin"source""file_path"strprintf"✅ 已加载: {file_path.name} ({len(docs)} 段)"returndefbuild_knowledge_basedocs_dir: str, persist_dir: str"""一键构建知识库"""# 加载文档printf"\n共加载 {len(raw_docs)} 个文档片段"# 分块800150"\n\n""\n""。""!""?"printf"分块后共 {len(chunks)} 个 chunk"# 向量化入库(分批处理,避免 API 限流)"text-embedding-3-small"# 批量处理,每批 100 个100Noneforinrange0lenifisNone"knowledge_base"elseprintf"进度: {min(i+batch_size, len(chunks))}/{len(chunks)}"printf"\n✅ 知识库构建完成,共 {len(chunks)} 个向量"return# 使用"./docs""./chroma_db"

常见坑(踩过才知道)


坑1:Chunk 太大,检索噪音多

chunk_size=3000:一个 chunk 包含了太多无关内容,检索出来的段落「离题」

✅ 推荐chunk_size=600-1000,回答简单问题用小 chunk,需要完整上下文时用k=6


坑2:相同文档重复入库

# ❌ 每次启动都重新入库,向量越来越多# ✅ 检查是否已有数据,有就直接加载ifandprint"加载已有向量库"elseprint"新建向量库"

坑3:提问语言和文档语言不一致

❌ 文档是中文,用英文查询 → 相似度打分错乱

✅ 用多语言 Embedding(BAAI/bge-m3)或在检索前把提问翻译成文档语言


坑4:Top-K 太少,关键信息检索不到

k=2:覆盖太少,问题涉及多个段落时漏答

✅ 生产环境推荐k=4~6,token 允许的情况下宁多不少


坑5:Prompt 没有「只基于上下文回答」约束

❌ 没加限制 → 模型结合自己训练知识和检索结果混答,无法区分哪些是你的文档里有的

✅ 明确写:「只基于以下上下文,没有就说没有」——这一句能把幻觉降低 80%


发布前自查清单

  • Embedding 模型索引和查询时一致
  • chunk_overlapchunk_size的 10%
  • 每个文档 chunk 打了来源 metadata
  • Prompt 中有「只基于上下文」约束
  • 检索数量k≥ 4
  • 重复入库已做幂等检查
  • 混合检索(BM25 + 向量)用于专有名词多的场景

总结

这篇我们从零搭了一套完整的 RAG 私有知识库方案:

  • 分块决定上限chunk_size=800overlap=150,语义分块效果比固定分块好 20-30%
  • Embedding 选型:开发用text-embedding-3-small,中文内容用bge-m3
  • 检索策略分层:基础用相似度,去重用 MMR,专有名词多用混合检索
  • Prompt 约束是关键:「只基于上下文」这一句能把幻觉降低 80%
  • 工程化必做:入库幂等检查,文档打 metadata 来源,批量处理防限流

理解 RAG 的核心是:检索质量 > 生成质量——答案已经在文档里了,问题是能不能找对。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01教学内容

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例:带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:

04视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)

05行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!

0690+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

http://www.jsqmd.com/news/722579/

相关文章:

  • 仅剩72小时!.NET 9正式版边缘部署黄金窗口期关闭前,必须完成的5项Runtime裁剪与符号剥离操作
  • Unity游戏实时翻译终极指南:XUnity.AutoTranslator深度技术解析
  • Python金融数据获取革命:efinance如何成为量化交易的最佳数据助手
  • 新联合众香港展会圆满落幕,AI融合硬件矩阵获全球瞩目
  • ARM MPAM内存带宽控制机制详解与配置实践
  • 服务器3个设置需配置好!王杨游戏蜘蛛养站系统seo站长要做的!
  • 天辛大师再谈人工智能时代,一人公司真的符合社会学演进规律吗
  • journalctl -xe -u k3s 命令详解
  • 为什么92%的PHP团队低估了PHP 8.9的类型校验强度?——基于Zend Engine v4.9.0源码级行为对比分析
  • TVA在新能源汽车制造与检测中的实践与创新(3)
  • ARM架构Hypervisor调试机制与安全隔离实践
  • .NET 9云原生迁移倒计时:仅剩120天——.NET 6 LTS终止支持前必须完成的5项容器化加固动作
  • 算法终极审判:软件测试从业者的专业视角
  • HiClaw 1.1.0:企业级 Agent 开发的基建升级
  • 2026年广州名贵补品回收门店排行及选购推荐 - 优质品牌商家
  • 前端性能优化:构建工具优化详解
  • 收藏!小白/程序员轻松入门大模型微调:从LoRA到视觉指令微调的进阶指南
  • latex表头左对齐,居中对齐
  • 环境一致性崩塌预警!Dev Containers 生产部署前必须验证的7项黄金检查项(含自动化校验脚本)
  • 云封建农奴制:软件测试从业者的觉醒与解放之路
  • VS Code 远程容器开发环境落地实战(生产环境零故障部署手册)
  • 【C++27异常安全革命】:3大底层机制升级、2个ABI-breaking变更、1套零开销审计方案(仅限标准委员会内部草案泄露版)
  • 从黑框到自动化:将Telnet端口检查集成到你的CI/CD流水线或运维脚本里
  • 配置天机学堂项目启动ExamApplication 微服务报错
  • WS2812点阵驱动时序调不好?保姆级示波器抓波形与FPGA调试心得分享
  • USB PD电压检测器Vsense:极客必备的协议分析工具
  • IG系列网关和EC系列边缘计算机DSA数采程序中,MQTT发布消息脚本编写说明
  • MinIO 国产平替,RustFS 发布 Beta 版本啦
  • 2026乐山特色餐饮TOP5推荐 适配多元场景 - 优质品牌商家
  • git提交代码时,将大写文件改成小写,提交不上去了