news 2026/4/16 16:11:43

RAG-索引构建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAG-索引构建

一.向量嵌入Embedding

1.什么是Embedding

  • 核心定义:将非结构化的数据(如文本,音频,图片等)映射为低维,稠密,连续的实数向量的过程。

  • 三要素

    • 数据:原始的数据内容

    • 嵌入模型:深度学习模型,将语义转换为数值

    • 输出向量:固定长度的一维数组,向量间的距离代表了语义的相似度

2.Embedding的发展历程

  • 静态 Embedding (Static Embedding)

    • 代表算法:Word2Vec (Skip-gram, CBOW), GloVe。

    • 特点:每个词对应一个固定向量,与上下文无关。

    • 局限性:无法解决一词多义问题(例如“苹果”在不同语境下指水果或公司,其向量是一样的)。

  • 上下文相关 Embedding (Contextual Embedding)

    • 代表算法:BERT, RoBERTa 等 Transformer 架构模型。

    • 特点:同一个词在不同语境下会生成不同的向量。

    • 训练机制:通过大规模预训练(如 BERT 的掩码语言模型 MLM 和下一句预测 NSP)来捕获深层语义。

  • RAG对嵌入技术的新要求

    • 领域自适应能力:通用的嵌入模型在某些专业领域上表现可能不太好,这就要求嵌入模型具有自适应能力。

    • 多模态和细粒度:RAG系统不只是处理文字,还可能包括长文档,富文本,图片等类型的数据。

    • 检索规则与效率:嵌入向量的维度和模型大小直接影响存储成本和检索速度,这就需要嵌入模型能够结合语义相似性和关键词匹配的优点,支持混合检索,例如BGE-M3

3.RAG场景下如何选择Embedding模型

在构建RAG系统时,选择嵌入模型需要综合考虑以下7个点:

  • 最大tokens数:嵌入模型支持的最大tokens数直接决定了前面文本分块的大小,不能超过最大tokens数。

  • 支持语言:确保模型支持业务需要的语言,中文RAG建议选择中英双语或多语言模型(BGE,BCE)。

  • 模型大小:参数量通常越多越好,但是会增加推理延迟和显存占用。

  • 向量维度;高维度下编码信息丰富,但是会增加向量数据库的存储压力和检索时的计算量。

  • 任务:重点关注模型在检索任务下的表现,而非单纯的聚类或分类得分。

  • 得分与机构 (Score & Publisher):参考MTEB / C-MTEB榜单排名,优先选择知名机构(如智源 BGE、OpenAI、网易 BCE 等)发布的模型。

  • 成本 (Cost)

    • API 服务:按量计费,运维零压力。
    • 私有化部署:需考虑显卡硬件成本和运维人力。

4.核心评估表单

  • MTEB (Massive Text Embedding Benchmark)是目前衡量 Embedding 模型最权威的标准。

  • 对于中文应用,应重点参考C-MTEB分支,查看模型在“检索(Retrieval)”子项上的具体排名。

二.多模态嵌入

1.为什么需要多模态?

  • 打破“模态墙”:现实世界的信息包含文字,图像,音频,视频等多种形式,传统的文本Embedding模型只能处理文字,无法理解其他类型的内容。

  • 核心目标:将上述不同类型的数据映射到统一的向量空间中。

  • 跨模态对齐:在统一向量空间中,语义相近的“文字向量”和“图片向量”会非常接近,从而实现“以文搜图”或“以图搜文”的功能。

2.CLIP模型:多模态嵌入的里程碑

由OpenAI发布,为该领域奠定了基础。

  • 双编码架构:包含一个图像编码器和文字编码器,分别处理输入内容。

  • 对比学习:为了能让两个编码器对齐不同模态的语义,CLIP在训练时采用拉近正确的图文对(正例),推远错误的配对(负例),通过海量的训练数据,模型能够自动学会将语义相近的图文在向量空间中拉近。这种大规模的对比学习,赋予了CLIP有效的零样本识别能力。

3.现代多模态模型:bge-visualized-m3

由北京智源研究院研发,其核心特性可总结为“M3”。

  • 多语言 (Multi-Linguality):支持 100 多种语言,可实现跨语言的图文检索。

  • 多功能 (Multi-Functionality):同时支持稠密检索、多向量检索和稀疏检索。

  • 多粒度 (Multi-Granularity):能处理从短句到长达 8192 token 的文档。

三.向量数据库

在RAG流程中,向量数据库是存储“知识记忆”的核心仓库,它负责高效管理由Embedding模型生成的向量,并实现在海量数据中的快速检索。

1.向量数据库的主要功能

  • 高效存储:专门用于存储由非结构化数据(文本,图像等)经Embedding模型转化的高维向量。

  • 相似度检索:不同于传统数据库的关键词匹配,向量数据库支持语义匹配,即通过计算向量之间的距离(如余弦值)来查找含义最相近的内容。

  • 低延迟搜索:这是向量数据最重要的功能。通过索引算法(HNSW,IVF),在百万数据中实现毫秒级的检索响应。

2.向量数据库 VS 传统数据库

对于高维且数据量庞大的生成向量集合,传统数据库在进行相似度计算时,计算成本和时间延迟是无法接受的,向量数据库就是为了解决这一痛点。

传统数据库向量数据库
存储对象结构化数据高维向量
查询方式关键字精确匹配相似度搜索
索引机制b树,哈希IVF,HNSW
使用场景业务系统,金融大模型应用,RAG
一致性强一致性最终一致性

向量数据库和传统数据库是互补的关系,构建AI应用时,通常使用传统数据库存储业务元结构结构化信息,使用向量数据库来存储和检索Embedding模型生成的海量高维向量数据

3.向量数据库选择

  • 新手入门/小型项目:从ChromaDBFAISS开始是最佳选择。它们与 LangChain/LlamaIndex 紧密集成,几行代码就能运行,且能满足基本的存储和检索需求。
  • 生产环境/大规模应用:当数据量超过百万级,或需要高并发、实时更新、复杂元数据过滤时,应考虑更专业的解决方案,如MilvusWeaviate或云服务Pinecone

四.索引优化

在 RAG 系统中,简单的向量索引在面对复杂查询或长文档时,往往会出现“检索不准”或“上下文丢失”的问题。索引优化就是通过改进数据的组织结构,让检索变得更聪明、更高效。

1.上下文扩展

在RAG系统中,使用小块文本进行检索可以获得精准度更高的答案,但是内容可能不太丰富;使用大块文本则可以获得上下文更丰富的答案,但是大块意味着有更多的噪声,又降低了精准度。为了解决这个矛盾,LlamaIndex提出了句子窗口索引

句子窗口索引的思想可以总结为:为检索精准性而使用小块,为上下文丰富而检索大块,具体流程如下:

  • 索引阶段:构建索引时,文本被分成单独的句子,每个句子作为单独的节点存储在向量数据库,同时,每个句子的内容和其上下文窗口大小的内容(前N个句子和后N个句子)存储在元数据中。

  • 检索阶段:用户发起查询时,系统在单一句子节点上进行相似度搜索。

  • 后处理阶段:检索到目标后,返回一个该节点元数据中的完整上下文窗口内容,并替换该目标节点的单一句子内容。

  • 生成阶段:将丰富过后的节点传递给LLM,用于生成最终答案。

2.结构化索引

随着知识库的不断扩展,top-k相似度检索可能会变得很慢。为了解决这个问题,一个有效的方法是结构化索引,在构造索引文本块时,为其附加如文件名创建日期标题作者等结构化的元数据,可以有助于定位和筛选信息。这种先过滤,再搜索的策略,能够很大提高RAG在面对大规模知识库时的检索效率和准确性。

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!​

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示

​因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

四、AI大模型商业化落地方案

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 21:26:24

启动Docker中DIFY或者Ragflow的命令

启动DIFY的命令: 参数详解 docker compose -f docker-compose-gpu.yml -p docker-dify up -d-f docker-compose-gpu.yml 作用:指定使用的 Compose 配置文件路径。 说明:Dify 通常提供多个配置文件,docker-compose-gpu.yml 专为需要 GPU 加速的场景优化(如大模型推理),…

作者头像 李华
网站建设 2026/4/12 11:33:18

OpenAI核心模型主要贡献者翁家翌:OpenAI所做的,并非完全不能复刻;DS是唯一一次让内部真正警觉;模型公司本质上拼的是Infra的修Bug速度

在发布前,OpenAI 内部甚至做好了“几天后就关掉”的心理准备;最初的目标,只是收集一点真实用户数据。那时没有人预料到,它会在几天内引爆整个世界,更没人能提前画出那条指数级增长的曲线。 “ChatGPT 并不是 OpenAI 精…

作者头像 李华
网站建设 2026/4/16 14:32:22

从 YOLOv8 到 MobileNetV4:主干网络重构与目标检测性能极限优化实战解析

文章目录 YOLOv8主干网络革新:MobileNetV4极致优化实战指南 MobileNetV4核心技术突破解析 通用倒置瓶颈(UIB)块设计革命 移动端硬件感知优化策略 完整集成方案实现 环境配置与基础依赖 MobileNetV4主干网络完整实现 YOLOv8与MobileNetV4深度融合 高级训练与优化策略 移动端部…

作者头像 李华
网站建设 2026/4/16 0:32:37

从 SCINet 到 YOLOv8:低照度场景下前端增强与目标检测性能提升指南

文章目录 **YOLOv8低照度图像检测增强:集成SCINet前端网络实战教程** 代码链接与详细流程 YOLOv8低照度图像检测增强:集成SCINet前端网络实战教程 一、SCINet核心原理与集成策略分析 SCINet(Sample-Correction Iterative Network)是一种基于深度迭代校正的低照度图像增强…

作者头像 李华
网站建设 2026/4/6 4:40:01

荣耀平板下周将迎来系统升级 含荣耀平板9等十款机型

荣耀20i 荣耀平板下周迎来重磅升级!新增PC级生产力工具和沉浸系统优化,支持知网、CAD等专业软件,游戏充电分离技术提升续航与散热,更有海量学习资源同步上线。1月23日,荣耀平板与IOT产品领域总经理荣耀平板利用哥宣布&…

作者头像 李华
网站建设 2026/4/16 13:37:29

基于PLC控制的物料自动检测与分拣系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PLC控制的物料自动检测与分拣系统设计(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码本系统的建模以三菱FX2N系列可编程控制器为核心,在人机交互接口中,首先牢现了对分选系统的复位,然后…

作者头像 李华