news 2026/5/22 21:43:15

AI大模型应用开发-RAG 基础:向量数据库(FAISS/Milvus)、文本拆分、相似性搜索(“让模型查资料再回答”)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI大模型应用开发-RAG 基础:向量数据库(FAISS/Milvus)、文本拆分、相似性搜索(“让模型查资料再回答”)

一、先搞懂:RAG 到底是什么?

1. 官方名字

RAG = Retrieval-Augmented Generation检索增强生成,核心逻辑是「让大模型先查 “专属资料”,再基于资料回答问题」。

2. 小白通俗理解

普通大模型(Qwen / ChatGPT 等)就像一个只靠脑子里记忆答题的学生

  • 只记得训练时学过的 “旧知识”
  • 不知道你的私人文档、公司手册、最新新闻、课程笔记这类它没学过的内容
  • 没记住又被问,就开始瞎编(幻觉)

RAG 就是给这个学生配一本可随时翻阅的 “随身资料册”:你提问 → 模型先去资料册里找最相关的几段话→ 拿着找到的资料组织语言回答 → 不瞎编、只按资料说。

3. RAG 解决的三大问题

  1. 大模型不知道私有数据(你的笔记、文档、合同、课程)
  2. 大模型知识过时(训练截止后新发生的事)
  3. 大模型胡说八道(幻觉)(没见过也强行编答案)

二、RAG 三大核心知识点(按执行顺序讲)

1. 第一步:文本拆分(把长文档切成小段)

1.1 为什么要拆分?

  • 大模型一次能 “读” 的文字长度有限(上下文窗口),读不下一整篇长文章 / 整本书
  • 太长的文本,模型抓不住重点,检索也不精准
  • 我们要做的:把一份长文档,切成很多短片段(chunk)

1.2 通俗叫法

“切书、切文档”:把一本书 → 切成一段一段小文字块,每段几十~几百字。

1.3 小白常用拆分规则(不用复杂算法)

实际工具会自动做,你只要理解逻辑:

  1. 按标点 / 段落切:先按自然段分开,太长的段再继续切
  2. 固定长度切:比如每 256 字、512 字切一段
  3. 保留小段重叠:前后两段稍微重叠几个字,防止把一句话从中间切断,丢失语义

1.4 拆分后的结果

一份学习笔记.md→ 变成:

  • 片段 1:RAG 是检索增强生成,用于解决大模型幻觉...
  • 片段 2:文本拆分的目的是适配模型上下文长度...
  • 片段 3:向量数据库用来存储文本对应的数字向量...

这些小段,就是后面要存进数据库、用来检索的最小单位


2. 第二步:向量与向量数据库(FAISS / Milvus)

2.1 先懂:什么是 “向量”?

文字是字符串,计算机没法直接算 “两段文字像不像”。所以要把每一小段文本,转换成一串固定长度的数字—— 这串数字就叫向量(embedding / 词向量 / 文本向量)

  • 人话:把文字 “翻译” 成计算机能看懂、能计算距离的数字数组
  • 例子(简化):
    • “RAG 介绍” →[0.12, 0.45, -0.23, ...](长度一般几百~几千位)
    • “苹果水果” →[0.88, -0.11, 0.32, ...]

语义越接近的两段文字,它们对应的向量在空间里距离越近

2.2 向量数据库是干嘛的?

普通数据库(MySQL)存的是:文字、数字、表格,不擅长做 “向量相似度计算”

向量数据库 =专门存向量、并能快速算 “哪个向量和我最像” 的数据库核心职责只有两件事:

  1. :把所有文本片段对应的向量存起来
  2. :你给一个新向量(你的问题),它快速找出距离最近、语义最相似的若干个片段

2.3 FAISS vs Milvus(小白怎么选)

库 / 系统定位部署难度适合谁小白结论
FAISSFacebook 开源,轻量向量检索库极低:本地 pip 安装,无服务、无端口、无配置个人学习、本地 demo、小批量文本入门首选,Windows 直接跑
Milvus企业级分布式向量数据库较高:要起服务、端口、后台守护生产环境、大量数据、多用户并发入门先不学,做项目上线再考虑

一句话:

  • 你自己本地玩、做课程 demo、存几十 / 几百篇文档 →用 FAISS
  • 公司上线、海量数据、多人同时用 → 再上 Milvus

3. 第三步:相似性搜索(“找最相关的资料”)

3.1 什么是相似性搜索?

你提一个问题 → 把问题也转成向量 → 去向量库里找和这个向量距离最近的 N 个文本片段→ 这就是相似性搜索

  • 不按关键词精确匹配(不是百度式搜词)
  • 语义相似匹配
    • 你问:“RAG 怎么避免大模型瞎编”
    • 能搜到:“检索增强可以为模型提供外部参考资料,降低幻觉概率”
    • 哪怕文字不完全一样,只要意思接近,就能搜到

3.2 搜索到干嘛用?

把搜到的最相关的几段原文,拼在一起,当做 **“参考资料”**,和你的问题一起喂给大模型。

给模型的提示词大致长这样:

请根据下面的参考资料回答用户问题,只使用资料里的内容,不知道就说 “根据资料无法回答”,不要编造。参考资料:

  1. xxxxxx
  2. xxxxxx用户问题:xxxxxx

这就是“让模型查资料再回答”的完整逻辑。


三、完整 RAG 流程(从头到尾顺一遍,小白必背)

以 “把你的 AI 自学笔记做成 RAG,让模型按笔记回答” 为例:

  1. 准备文档把你的笔记、文章、PDF 转成纯文本:自学笔记.txt

  2. 文本拆分用工具把长文本切成几百字左右的小片段

  3. 向量化(embedding)用一个 “向量模型”,把每一段文字 → 转换成向量

  4. 存入向量库把 “文本片段 + 对应向量” 一起存进FAISS(本地)

  5. 用户提问比如:“LoRA 微调为什么不用从头训练大模型?”

  6. 问题向量化把这个问题也转成向量

  7. 相似性搜索FAISS 找出笔记中语义最接近的 2~3 个片段

  8. 拼接提示词把问题 + 搜到的片段,一起发给大模型(Ollama 里的 Qwen 等)

  9. 模型生成答案模型只基于你提供的笔记内容回答,不会瞎编、不会用外部过时知识


四、小白本地 Windows 极简工具链(无 Anaconda、纯 pip、本地运行)

和前面学的 Ollama、Windows 环境完全对齐,不用云、不用复杂服务:

  • 文档加载 / 文本拆分:langchain(封装好拆分函数,不用自己写)
  • 向量数据库:faiss-cpu(CPU 版,Windows 直接 pip)
  • 向量模型:通用开源 embedding 模型(本地跑)
  • 大模型:Ollama + Qwen2:0.5b(之前已经装过)

安装命令(CMD 里直接运行):

pip install langchain langchain-community faiss-cpu -i https://pypi.tuna.tsinghua.edu.cn/simple

这套组合,就是目前最适合小白入门 RAG 的本地方案


五、核心名词一句话总结(方便记忆)

  1. RAG:让大模型先检索外部资料,再生成答案,解决幻觉和私有知识问题
  2. 文本拆分:把长文档切成小段,适配模型长度、提高检索精度
  3. 向量:文本转换成的一串数字,用来表示语义、计算相似程度
  4. 向量数据库:专门存向量、快速做相似查找的数据库
  5. FAISS:轻量本地向量库,小白 RAG 入门标配
  6. Milvus:企业级向量数据库,生产使用,入门先放一放
  7. 相似性搜索:根据问题语义,找出库里最相关的文本片段
  8. 核心逻辑:查资料 → 给模型看资料 → 模型按资料回答

六、小白避坑 3 条

  1. 不要一上来用 Milvus:入门先用 FAISS,本地一键跑通,别被部署劝退
  2. 片段不要切太长 / 太短:太长搜不准,太短信息碎,一般 128~512 字区间最常用
  3. RAG≠微调
    • LoRA 微调:改模型参数,给模型 “记到脑子里”
    • RAG:不改模型,只给模型 “翻书看”,不训练、速度快、适合频繁更新的资料

整体知识点速记版(可直接背)

  • RAG = 让大模型查资料再回答,解决幻觉、私有知识、知识过时。
  • 第一步文本拆分:长文档切小段,方便检索和模型阅读。
  • 第二步向量数据库:把文字转成数字向量存起来,FAISS 适合本地小白,Milvus 适合企业生产。
  • 第三步相似性搜索:用问题向量找最相似的文本片段,拼给模型做参考。
  • 整套流程:文档→切分→向量化→存 FAISS→提问→向量化问题→搜相似片段→模型按片段回答。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 21:43:14

调用乐天平台API获取商品详情数据

乐天平台提供了丰富的API接口,允许开发者获取平台上的各类数据。其中,获取商品详情(通常称为 letian 详情)是一个常见的需求。本文将介绍如何调用乐天平台的相关API来获取商品详情数据。1. 准备工作在开始调用API之前,…

作者头像 李华
网站建设 2026/5/21 3:00:21

CI/CD 工具选型指南:Argo CD vs Jenkins vs Arbess

面对众多的CI/CD工具,如何根据功能、价格和易用性做出选择?本文旨在通过多款工具的横向对比,为你提供清晰的梳理与参考。1、Argo CD 1.1 产品介绍Argo CD 是一款基于 GitOps 模型的 Kubernetes 持续交付工具,通过声明式配置实现应…

作者头像 李华
网站建设 2026/5/21 10:42:34

ubuntu24 如何查杀木马病毒?

在 Ubuntu 24.04 中查杀木马病毒主要依赖系统自带的工具、开源安全软件以及良好的安全实践。以下是详细的步骤和建议: 1. 确认系统更新 更新软件包:确保系统和所有软件为最新版本,修复已知漏洞。sudo apt update && sudo apt upgrad…

作者头像 李华
网站建设 2026/5/20 6:45:50

AI代码执行领域爆出首个满分高危漏洞:CVE-2026-22686

2026年开年,AI代码执行领域爆出首个满分高危漏洞CVE-2026-22686,该漏洞直指Node.js生态中专为AI代理设计的enclave-vm沙箱,其CVSS 3.1评分达到10.0满分级别,成为继各类语言解释器漏洞后,AI时代代码隔离场景下的重大安全…

作者头像 李华
网站建设 2026/5/20 14:03:49

配电网的正常与故障重构中的孤岛划分技术探讨

配电网正常重构,孤岛划分及故障重构系统概述 本系统是一个完整的配电网分析与优化工具,主要实现配电网重构、孤岛划分和故障恢复等功能。系统基于MATLAB开发,集成了潮流计算、图论算法和遗传算法等多种技术,能够有效提高配电网的可…

作者头像 李华
网站建设 2026/5/20 19:49:48

氛围炒股概述!

“氛围炒股”是一种将市场整体情绪和投资者心理共识作为核心决策依据的交易理念。它强调,交易的成功与否,关键不在于技术模型本身,而在于应用技术的“氛围”——即市场是否处于容易“得手”的阶段。这种理念认为,市场氛围是投资者…

作者头像 李华