本文深入介绍了RAG(检索增强生成)架构,一种结合信息检索与文本生成的先进AI技术。文章详细解析了RAG的核心技术组成部分,包括信息检索模块、嵌入模型、生成模型、检索-生成融合机制和向量数据库等。同时,文章还重点介绍了向量数据库在RAG中的应用,并以Milvus、Qdrant等为例进行了对比分析。最后,文章通过实例展示了如何使用Milvus、qwen3-embedding和qwen3.5构建RAG系统,为读者提供了实践指导。

1、RAG介绍

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索与文本生成的先进AI架构,其核心在于让大语言模型在回答问题前,先从外部知识库中“查找资料”,再基于查到的信息生成准确、有依据的回答。这种方法有效缓解了大模型常见的知识过时、幻觉等问题。

2、RAG核心技术

RAG的核心技术组成主要包括以下几个关键部分:

  • 信息检索模块

    (Retrieval Module):负责从大规模文档库中检索与用户查询最相关的文档片段。通常使用向量数据库(如Faiss、Pinecone、Milvus)存储文档的向量表示,通过计算查询向量与文档向量的相似度来实现快速检索。检索算法可以是基于关键词的(如BM25)或基于语义的(如DPR、Sentence-BERT)。

  • 嵌入模型

    (Embedding Model):用于将文本(文档和查询)转换为固定长度的向量表示,以便进行语义相似度计算。常用的嵌入模型包括:Sentence-BERT(SBERT)、OpenAI的text-embedding模型、通义千问的QwenEmbedding等。嵌入模型的质量直接影响检索效果。

  • 生成模型

    (Generation Model):通常基于大语言模型(LLM),如GPT系列、通义千问、Llama等。接收检索到的相关文档片段和原始查询作为输入,生成最终的回答。生成模型需要具备良好的上下文理解和语言生成能力。

  • 检索-生成融合机制

    (Retrieval-Generation Fusion):将检索到的文档片段与原始查询组合成提示(Prompt),输入到生成模型中。这个过程可以是简单的拼接,也可以是更复杂的融合策略,如注意力机制。

  • 向量数据库

    (Vector Database):用于高效存储和检索高维向量数据。支持快速的近似最近邻(ANN)搜索,是实现大规模文档检索的关键。常见的向量数据库包括:Faiss、Pinecone、Milvus、Weaviate等。

  • 数据预处理与后处理

    :数据预处理包括文档清洗、分块、去除无关内容等,以提高检索效率和质量。后处理可能包括答案过滤、格式化输出、引用标注等,以提升最终回答的可读性和可信度。这些组件协同工作,使得RAG能够在保持大语言模型强大生成能力的同时,通过外部知识库提供更准确、更可靠的问答结果。

通过上述组件协同工作,使得RAG能够在保持大语言模型强大生成能力的同时,通过外部知识库提供更准确、更可靠的问答结果。

本文选型 “Milvus(向量数据库)、Qwen3.5(生成模型)、qwen3-embedding(嵌入模型)及SpringAI” 讲述及实践。

3、向量数据库

向量数据库是专门用于存储、管理和高效检索高维向量数据的新型数据库系统,它能将文本、图像、音频等非结构化数据,通过AI模型转化为蕴含语义特征的向量序列,再基于向量间的相似度实现“语义级检索”,解决传统数据库在非结构化数据处理上的局限性,为RAG智能问答、多模态搜索、智能推荐等AI应用提供底层支撑。

核心工作步骤:

  • 1、数据向量化:生成“特征指纹”。这是向量数据库的前置核心环节,需借助Embedding模型将原始非结构化数据转化为高维向量,同时要平衡向量维度:维度越高特征表达越精细、检索精度越高,但存储和计算成本会指数级增长;维度越低效率越高,但可能丢失关键特征导致精度下降,工业级常规选择文本768-1536维、图像512-2048维。

  • 2、存储与索引构建:加速相似性计算。向量数据库会将生成的高维向量存储起来,并构建特殊索引结构来提升检索效率,常见索引算法有IVF(倒排文件)、HNSW(分层可导航小世界图)等,它们能大幅降低相似性计算的耗时。

  • 3、相似性检索:找“最近邻”。当用户发起查询时,系统先将查询内容转为向量,再在数据库中寻找与其“距离最近”的Top-K个向量,常用的距离度量方式有三种:余弦相似度、欧氏距离、点积相似度。

常见向量数据库对比:

数据库名称 类型 规模能力 运维复杂度 核心特性 适用场景 优劣势
Milvus 原生开源 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 支持IVF、HNSW等多种索引,横向可伸缩至1000+节点,支持动态字段、分区、并行查询 大规模、多并发检索;需要复杂过滤、实时增量写入的生产环境 优势:企业级SLA,海量数据(10+亿级)性能出色,社区活跃生态完善;劣势:运维相对复杂,对小规模单机部署略显笨重
Qdrant 原生开源 ⭐⭐⭐⭐ ⭐⭐ Rust内核,支持多向量字段和分段索引,二级过滤与布尔查询能力强 对过滤/布尔查询依赖度高的语义搜索;中小规模集群 优势:延迟低、吞吐高,对复杂过滤条件性能友好;劣势:大规模分布式部署方案较新,需自行打磨
Weaviate 原生开源/托管 ⭐⭐⭐ ⭐⭐⭐⭐ 兼顾文本与向量检索,内置CLIP、OpenAIEmbeddings等模型,原生GraphQL接口,自动schema管理 PoC验证、多模态实验、快速上线MVP;知识图谱、语义搜索场景 优势:上手快无需额外模型接入,多模态查询统一API;劣势:集群扩展性弱于Milvus,企业级性能需商业版
PGVector 传统数据库扩展 ⭐⭐ 作为PostgreSQL的扩展,可直接对接现有PostgreSQL生态 已在使用PostgreSQL,需要快速集成向量检索能力的场景 优势:无需额外部署,快速集成;劣势:规模能力有限,功能相对基础
Redis Vector 传统数据库扩展 ⭐⭐ ⭐⭐⭐ 基于Redis的向量检索扩展,支持hybridsearch、namespace多租户 实时召回、对低延迟要求高的场景 优势:依托Redis的高性能,实时性出色;劣势:功能聚焦向量检索,生态相对单一
Elasticsearch 搜索类扩展 ⭐⭐⭐ ⭐⭐⭐⭐ 兼具全文搜索与向量检索能力,可对接现有Elasticsearch体系 已有Elasticsearch架构,需要融合搜索与向量检索的场景 优势:搜索能力成熟,生态完善;劣势:向量检索性能弱于原生向量数据库

选型速览建议:

  • 海量数据+平台化需求:优先选Milvus
  • 高吞吐低延迟+工程友好:优先选Qdrant
  • 已在用PostgreSQL:优先选PGVector
  • 快速集成向量检索:优先选Redis Vector
  • 融合全文搜索与向量检索:优先选Elasticsearch
  • 算法研究或小规模测试:优先选FAISS

4、Milvus介绍

Milvus 是一款专为高维向量数据设计的云原生向量数据库,广泛应用于人工智能、机器学习和相似性搜索场景。它采用存储与计算分离的架构,具备高可用性、高性能和弹性扩展能力。

Milvus核心架构层次:

  • 接入层(Access Layer):作为系统的入口,由一组无状态的 Proxy 组件构成,负责请求路由和负载均衡。
  • 协调服务(Coordinator Service):管理元数据、任务调度和状态同步,包括 Root Coordinator、Data Coordinator 和 Index Coordinator 等。
  • 执行节点(Worker Node):处理实际的数据插入、查询和索引构建等操作,包含 Query Node、Index Node 和 Data Node。
  • 存储层(Storage Layer):负责持久化存储,使用对象存储(如 S3、MinIO)来保存向量数据和索引文件,同时通过 etcd 和 Pulsar/Kafka 管理元数据和日志。

数据模型与存储机制:

维度 Milvus 关系型数据库 说明
数据组织结构 Database → Collection → Partition → Segment → Entity Database → Table → Row Milvus 以 Segment 为最小存储单元,支持分片;关系库以页或块为单位
存储介质 对象存储(S3/MinIO)+ 元数据存储(etcd)+ 消息队列(Pulsar/Kafka) 磁盘文件 + 日志(Redo Log) Milvus 使用对象存储持久化数据,元数据由 etcd 管理;关系库依赖本地存储
索引机制 支持多种 ANN 索引(HNSW、IVF、FLAT 等) B-tree、Hash、Bitmap 等 Milvus 为高维向量优化索引,支持近似搜索;关系库为低维结构化字段设计

术语映射关系:

Milvus 术语 关系型数据库术语 说明
Database Database 数据库是组织和管理数据的逻辑单元。为了提高数据安全性并实现多租户,你可以创建多个数据库,为不同的应用程序或租户从逻辑上隔离数据。Milvus 在集合之上引入了数据库层,为管理和组织数据提供了更有效的方式,同时支持多租户
Collection Table 数据集合,定义字段结构。用于存储和管理实体的主要逻辑对象。
Partition Partition 集合内的物理分区
Segment Page / Block 定义数据类型和数据属性的元信息。每个 Collections 都有自己的 Collections Schema,该 Schema 定义了 Collections 的所有字段、自动 ID(主键)分配启用和 Collection 说明
Field Column 字段类型支持标量与向量
Entity Row 单条数据记录
Index Index 向量索引,类型多样

5、Milvus本地部署

Milvus安装:Milvus 提供了 Docker Compose 配置文件。

wget https://github.com/milvus-io/milvus/releases/download/v2.6.11/milvus-standalone-docker-compose.yml -O docker-compose.yml
sudo docker compose up -d
Creating milvus-etcd  ... done
Creating milvus-minio ... done

启动完成后可以访问 Milvus WebUI网址( http://127.0.0.1:9091/webui/ )了解有关 Milvus 实例的更多信息。

Attu(可视化工具)安装:支持通过Docker方式安装。

docker run -d --name milvus-attu \
-p 8000:3000 \
-e MILVUS_URL=localhost:19530 \
zilliz/attu:v2.6

Attu 启动完成后可以访问( http://localhost:8000 ),以图形化方式查看和管理Milvus 实例。

6、Model本地安装

RAG系统依赖Embedding与Generation两类模型:

  • 嵌入模型(Embedding Model):用于将文本(文档和查询)转换为固定长度的向量表示,以便进行语义相似度计算。常用的嵌入模型包括:Sentence-BERT(SBERT)、OpenAI的text-embedding模型、通义千问的QwenEmbedding等。嵌入模型的质量直接影响检索效果。
  • 生成模型(Generation Model):通常基于大语言模型(LLM),如GPT系列、通义千问、Llama等。接收检索到的相关文档片段和原始查询作为输入,生成最终的回答。生成模型需要具备良好的上下文理解和语言生成能力。

本文分别选择 “qwen3-embedding” 与 “qwen3.5” 作为嵌入模型与生成模型,Ollama本地安装如下:

admin@Mac-miniM4 milvus % ollama list
NAME                                ID              SIZE      MODIFIED
qwen3.5:2b                          324d162be6ca    2.7 GB    3 hours ago
qwen3-embedding:0.6b                ac6da0dfba84    639 MB    4 hours ago

7、RAG系统设计

RAG 知识库的核心价值在于「结构化检索(关系型)+ 语义检索(向量)」的融合,实体模型设计需同时兼顾关系型数据的结构化关联能力和向量数据的语义匹配能力,既要保证实体间的逻辑关联清晰,又要实现基于语义的精准检索。以下聚焦「关系型 + 向量数据融合」的实体模型设计,包含核心实体定义、数据存储分工、关联逻辑、落地实现四大核心模块。

核心设计原则(融合版):

  • 分工明确:关系型数据库(MySQL)存储「实体元数据、关联关系、检索过滤条件」,向量数据库(Milvus)存储「文本语义向量」,避免单库承载所有压力;
  • 双向关联:关系型数据与向量数据通过唯一 ID(chunk_id)绑定,支持「从关系型维度筛选→向量语义检索」「从向量检索结果→回溯关系型元数据」;
  • 轻量化融合:向量数据仅存储核心检索单元(Chunk)的向量,不冗余存储文档 / 实体的全量向量,关系型数据补充向量无法表达的结构化信息(如实体类型、文档来源)。

核心实体模型(关系型 + 向量融合):实体分工总览:

数据类型 存储载体 存储内容 核心作用
关系型数据 MySQL/PostgreSQL 文档 / Chunk / 业务实体的元数据、实体间关联关系、检索过滤字段(状态 / 租户 / 类型) 结构化筛选、实体关联、结果回溯
向量数据 Milvus/PGVector/FAISS Chunk 的 Embedding 向量、向量索引(IVF_FLAT/HNSW) 语义相似度检索

关系型实体表设计(核心元数据 + 关联):

  • Knowledge(知识库实体,关系型):存储知识库定义元数据,维护知识库Embedding模型、向量数据库设置信息。
  • Document(文档实体,关系型):存储文档级结构化元数据,是所有子实体的根节点,不存储完整内容和向量。
  • Chunk(文本块实体,关系型):存储 Chunk 的元数据,仅保留向量 ID(与向量库绑定),不存储原始向量,是关系型与向量数据的核心桥梁。
  • 向量数据模型设计(语义检索核心):Milvus 中创建「knowledge_vector_collection」集合,与关系型 Chunk 表的vector_id一一对应:

8、RAG关键代码

知识数据向量化入库:

核心流程为:「文档分块 → 向量化 → Milvus 入库」

// 1、初始化Embedding模型
EmbeddingModel embeddingModel = OllamaEmbeddingModel
.builder()
.defaultOptions(OllamaEmbeddingOptions
.builder()
.model(EMBEDDING_MODEL_NAME)
.dimensions(VECTOR_DIMENSION)
.build())
.ollamaApi(ollamaApi)
.build();
// 2、知识文档正文分块
List<String> chunks = splitDocument(doc.getContent());
// 3、Chunk文档向量化处理
List<float[]> vectors = embeddingModel.embed(texts);
// 4、知识数据向量化入库
List<JsonObject> vectorData = process(vectors);
UpsertResp upsertResp = client.upsert(UpsertReq.builder()
.collectionName(collectionName)
.data(vectorData)
.build());

知识相似度检索:

核心流程为:「问题向量化 → Milvus 检索」

// 1、问题向量化
float[] keywordVector = embed(List.of(keyword)).get(0);
// 2、向量 检索
SearchReq searchReq = SearchReq.builder()
.collectionName(buildCollectionName(kbId))
.data(Collections.singletonList(new FloatVec(keywordVector)))
.annsField("contentVector")
.outputFields(Arrays.asList("id", "chunkId", "contentVector"))
.limit(TOP_K_COUNT)
.searchParams(Map.of("radius", SIMILARITY_THRESHOLD))   // 相似度阈值
.build();
SearchResp searchResp = client.search(searchReq);

9、知识库系统交互

知识库系统交互见下文,支持针对文档进行新建、管理、向量化/Embedding、相似度检索等操作。

知识库管理:

知识相似度检索:

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

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

  • ✅ 从零到一的 AI 学习路径图
  • ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
  • ✅ 百度/阿里专家闭门录播课
  • ✅ 大模型当下最新行业报告
  • ✅ 真实大厂面试真题
  • ✅ 2026 最新岗位需求图谱

所有资料 ⚡️ ,朋友们如果有需要 《AI大模型入门+进阶学习资源包》下方扫码获取~
在这里插入图片描述

① 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
在这里插入图片描述

② 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
在这里插入图片描述

③ 大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
在这里插入图片描述

④ AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
在这里插入图片描述

⑤ 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
在这里插入图片描述

⑥ 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

图片

以上资料如何领取?

在这里插入图片描述

为什么大家都在学大模型?

最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

图片

不出1年,“有AI项目经验”将成为投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
在这里插入图片描述
在这里插入图片描述

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

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

以上全套大模型资料如何领取?

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐