甘孜藏族自治州网站建设_网站建设公司_自助建站_seo优化
2025/12/21 21:34:38 网站建设 项目流程

本文详细介绍了RAG(检索增强生成)系统,通过向量数据库解决大模型知识冻结和幻觉问题。文章拆解了RAG系统的三大阶段(数据准备、检索工程、结果生成)共9个步骤,提供了开源技术栈和实战代码,帮助读者从零构建RAG应用。同时提醒了RAG的局限性,强调了在真实项目中数据工程的重要性。


手摸手的RAG速成 1、RAG系统基本介绍

最近看了一份很不错的教程:《A Crash Course on Building RAG Systems》,作者是 Akshay Pachaar 和 Avi Chawla。

这份文档好就好在,它没有上来就给你堆一堆数学公式讲什么高维空间,而是直接通过代码和图解,把 RAG(检索增强生成)这个被吹上天的概念,还原成了最朴素的工程问题。

我们之前聊过很多次 RAG,今天借着这份资料,咱们不聊虚的,直接从原理到代码,把这套流程彻底跑通。看完你会发现,RAG 其实非常简单。

一、为什么我们需要 RAG?

先说痛点。大模型(LLM)有两个致命毛病:

  1. 知识冻结:模型训练完那天,它的脑子就停在那一刻了。它不知道时事新闻、最新数据,因为它没见过。
  2. 幻觉:就是说胡话。再好的模型,随着上下文增长也会出现幻觉,这是Attention机制所不能避免的。。

要解决这个问题,最笨的方法是微调(Fine-tuning),但这玩意儿成本高得离谱,而且你今天调完,明天数据又更新了,模型还更好,难道换模型重新调?企业亏麻了。

所以,RAG(Retrieval-Augmented Generation)应运而生。

它的逻辑简单粗暴:既然脑子记不住,那就给它一本参考书。

在回答问题前,搜索知识库中的相关内容,把找到的内容(Context)和问题一起扔给模型,让 LLM 根据参考资料回答。

二、核心概念:向量数据库(Vector Database)

要实现 RAG,绕不开一个东西:向量数据库。

计算机不认识字,它只认识数字。我们需要把文字、图片变成一串数字(Vector/Embedding)。神奇的地方在于,经过 Embedding 模型处理后:

  • “苹果”和“梨”的向量距离很近。
  • “苹果”和“卡车”的向量距离很远。

(图注:这就是语义空间,意思相近的东西会聚在一起)

传统数据库查关键词(比如 SQL 的LIKE),向量数据库查的是意思。哪怕你搜“红色的水果”,它也能给你找出“苹果”,虽然字面上完全不匹配。而神奇的是这些代表“语义”的数字,竟然是可以像数学题一样进行加减运算的!

最经典的案例就是:国王 - 男人 + 女人 ≈ 女王。

神奇的是,这是完全基于词汇向量的加减法进行的推理。所以说,语言所承载的信息本身可能就是一种智慧。。。

三、RAG 的“洋葱模型”:从数据到答案

结合文档内容,一个标准的生产级 RAG 流程,其实就是把数据掰开揉碎了,存进去,再读出来的过程。

我们可以把它拆解为 9 个步骤。不过实际项目中你就会发现,这里面全是脏活累活。。。

第一阶段:数据准备

**1. 切块(Chunking):**第一步是把你的文档(PDF、Word、网页)清洗干净并切成小块。

为什么要切?

  • TOKEN长度有限:整本书塞进去,Token 瞬间爆炸,模型直接死机。

  • 语义稀释:一段话只讲一个知识点,检索才准。和做饭一样,语料太多混在一起,十三香一样,模型根本搞不清它是什么味。

  • PS:1.切块策略(固定大小、语义分割)策略很多,是 RAG 效果好坏的第一道生死线,之后会详细写一篇文章说明。2.数据清洗是也是工程中极具挑战性的问题,甚至是最费时间的,比切块还麻烦。本文优先介绍RAG。

2. 向量化(Embedding):切好块后,用 Embedding 模型把这些文字块变成向量(一串数字),作为这段文字的提纲(向量版)。 这里用的不是简单的词匹配,而是上下文嵌入模型(比如双向编码器)。

它能听懂“人话”,知道“苹果”和“手机”在某些语境下是相关的。

3. 入库(Indexing):把生成的向量存进向量数据库(Vector DB)。 这是 RAG 的长时记忆机制来源。

至此,矢量数据库已创建完成。

注意,这里存的不仅仅是向量,还有原始文本元数据(比如页码、作者)。这样系统就可以基于向量指针,搜索并引用原文。不然搜出来一堆数字。。。


第二阶段:检索工程

4. 用户查询(Query)

用户:“ 表面亲和度是什么意思?出处是哪个文件?”

背景资料:{chunks}问题:{query}请根据背景资料回答问题。

5. 需求翻译(Query Embedding)系统得把用户的这句人话,用同一个Embedding 模型,也转换成向量。

**注意:必须是同一个模型,**不然就像用英语字典查中文,幻觉会非常严重。

6. 粗筛(Retrieval):拿着用户问题的向量,去数据库里比对。 数据库会通过“近似最近邻搜索”(ANN),给你返回 Top-K 个最像的文本块。 这一步叫召回

**7. 精排(Reranking):这一步很多教程都没讲!**这是区分 Demo 和生产级系统的关键! 向量检索(第6步)虽然快,但有时候不够准。

具体表现为:

  1. 相关性不佳:Top 1 的结果通常没问题,但Top 2-5 的结果相关度非常随机。这直接影响了最终给大模型(LLM)参考的上下文质量。
  2. ANN算法的精度损失(随机性):为了在大规模数据(百万/千万级)中实现毫秒级检索,向量数据库通常使用****ANN(近似最近邻)算法,其机制引入了随机性,导致召回的文档排名并不完全准确,最相关的文档可能没有排在最前面。

所以,我们需要一个更聪明的模型(通常是 Cross-Encoder),把捞回来的这些知识素材,重新打个分,把真正最相关的排到前面。

Rerank 通过 **“粗排 + 精排”** 的两阶段策略,在速度和精度之间找到了平衡:根据Rerank模型计算出的精准分数,对文档重新进行排序,最后截取分数最高的 Top N(例如Top 5)投喂给大模型。

这个过程会重新排列数据块,以便优先处理最相关的数据块,从而生成响应。

虽然这一步会增加一点延迟,但为了准确率,这是必须要做的。。。


第三阶段:结果生成

**8. 生成结果(Generation)**系统把排好序的最相关文本块(Context),填进 Prompt 模板里,连同用户的问题,一起扔给大模型(LLM)。

这时候,大模型就不再是瞎编了:

“根据以下资料(我们找出来的),回答用户的问题…”

而后,模型综合这些上下文,生成一句通顺的人话,交给用户端。


总结一下:前三步是脏活累活(数据工程),中间两步是搜索技术(检索工程),最后一步才是AI 生成

RAG也好,AI也好,别光盯着最后的大模型看,没有数据科学的基本功,后面全是幻觉。。。

四、动手实战:全开源技术栈

光说不练假把式。文档里给了一套完全开源的方案,大家可以在自己的笔记本上跑起来试一试。

工具栈:

  • 大脑 (LLM): Llama 3.2 (通过 Ollama 运行,轻量级)
  • 框架 (Framework): LlamaIndex (专门做 RAG 的框架)
  • 记忆 (Vector DB): Qdrant (开源向量库,Docker 一键起)

核心代码解析:

首先,用 Docker 启动 Qdrant:

docker run -p 6333:6333 -p 6334:6334 \ -v $(pwd)/qdrant_storage:/qdrant/storage \ qdrant/qdrant

然后,用 LlamaIndex 加载数据并建立索引。这一步就是把 PDF 变成向量存进去:

from llama_index.core import VectorStoreIndex, SimpleDirectoryReaderfrom llama_index.vector_stores.qdrant import QdrantVectorStore# 1. 读文件(脏活)documents = SimpleDirectoryReader("./docs").load_data()# 2. 连数据库vector_store = QdrantVectorStore(client=client, collection_name="chat_with_docs")# 3. 建索引(自动完成切块、Embedding、存储)index = VectorStoreIndex.from_documents( documents, storage_context=storage_context)

最后,查询并加入重排(Reranking)。这里用了一个SentenceTransformerRerank,虽然慢点,但精度提升巨大:

from llama_index.core.postprocessor import SentenceTransformerRerank# 设置重排模型rerank = SentenceTransformerRerank( model="cross-encoder/ms-marco-MiniLM-L-2-v2", top_n=3# 只取前3个最相关的)# 查询引擎query_engine = index.as_query_engine( similarity_top_k=10, # 先捞10个 node_postprocessors=[rerank] # 再精选3个)response = query_engine.query("What exactly is DSPy?")print(response)

代码跑通,你会发现模型能准确回答出 PDF 里的内容,此时恭喜你通过代码搭建了RAG 的最小应用!

泼盆冷水:RAG 的局限性

虽然 Demo 跑通了很爽,但作为工程实战派,我得提醒大家几个坑,文档最后也提到了,非常真实:

  1. 语义稀释(Semantic Dilution): 如果你的切块太大,里面混杂了无关信息,检索精度会直线下降。
  2. 聚合类问题(Aggregation)是死穴: 如果你问这100份文档里,哪一份提到的销售额最高? RAG 通常回答不出。因为向量检索是找相似,而不是做统计。它很难把所有文档扫一遍再比较。
  3. 中间迷失(Lost in the Middle): LLM 有个毛病,它对 Prompt 开头和结尾的内容印象深刻,中间的内容容易忽略。所以重排后的文档顺序也很重要。
  4. 问题与答案不相似: 有时候用户问的问题,和文档里的答案在字面上完全不沾边。这时候可能需要引入 HyDE(假设性文档嵌入)这种高级技巧,让模型先自己生成一个假答案,拿假答案去搜真答案。

最后

在真实的企业级AI项目中,我们 80% 的时间其实不是在调大模型,而是在清洗数据优化检索策略。AI系统的本质依然是数据工程系统。你可以把大模型理解成一个考试的考生,而RAG、数据工程,是背后那个递小抄的人。

​最后

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。

我整理出这套 AI 大模型突围资料包:

  • ✅AI大模型学习路线图
  • ✅Agent行业报告
  • ✅100集大模型视频教程
  • ✅大模型书籍PDF
  • ✅DeepSeek教程
  • ✅AI产品经理入门资料

完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
​​

为什么说现在普通人就业/升职加薪的首选是AI大模型?

人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。


智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200%,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

​​

资料包有什么?

①从入门到精通的全套视频教程⑤⑥

包含提示词工程、RAG、Agent等技术点

② AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤ 这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

​​​​

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

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

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

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

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询