Task03

第三章 索引构建

第一节 向量嵌入

一、向量嵌入(Embedding)

1.1 基础概念

向量嵌入(Embedding)是一种将真实世界中复杂、高维的数据对象(如文本、图像、音频、视频等)转换为数学上易于处理的、低维、稠密的连续数值向量的技术。

路径:数据对象 → Embedding模型 → 输出向量

Embedding的真正意义在于,它产生的向量不是随机数值的堆砌,而是对数据语义的数学编码。

衡量向量间的“距离”或“相似度”的方法:余弦相似度、点积、欧式距离

1.2 Embedding在RAG中的作用

1.2.1 语义检索的基础

RAG 的“检索”环节通常以基于 Embedding 的语义搜索为核心。

通用流程如下:

  1. 离线索引构建;
  2. 在线查询检索;
  3. 相似度计算;
  4. 召回上下文。

1.2.2 决定检索质量的关键

Embedding 的质量直接决定了 RAG 检索召回内容的准确性与相关性。

用户问题 → Embedding模型 → 文档 (与Embedding 模型优劣 强相关)

、Embedding技术发展

发展路径:①静态词嵌入(Word2Vec (2013), GloVe (2014)→ ②动态上下文嵌入(Transformer 架构/Bert模型) → ③RAG(BGE-M3

RAG 框架的提出,是为了解决大型语言模型 知识固化(内部知识难以更新)和 幻觉(生成的内容可能不符合事实且无法溯源)的问题。它通过“检索-生成”范式,动态地为 LLM 注入外部知识。这一过程的核心是 语义检索,很大程度上依赖于高质量的向量嵌入。

三、嵌入模型训练原理

3.1 自监督学习 策略

当前主流的嵌入模型(通常是基于 BERT 的变体),核心通常是 Transformer 的编码器(Encoder)部分,通过堆叠多个 Transformer Encoder 层来构建一个深度的双向表示学习网络。

1.掩码语言模型(Masked Language Model,MLM)

2.下一句预测(Next Sentence Prediction,NSP)

MLM 和 NSP 赋予了模型强大的基础语义理解能力

3.2 效果增强策略

度量学习 (Metric Learning):直接以“相似度”作为优化目标。

对比学习 (Contrastive Learning):在向量空间中,将相似的样本“拉近”,将不相似的样本“推远”。

核心区别一览

维度

度量学习 (Metric Learning)

对比学习 (Contrastive Learning)

核心目标

学习一个距离度量空间

学习判别性特征表示

关注点

样本之间的相对距离

样本之间的相对关系(相似/不相似)

损失函数

Triplet Loss、N-pair Loss 等

InfoNCE、NT-Xent 等

典型应用

人脸识别、图像检索、推荐系统

自监督预训练、视觉表征学习

监督方式

通常需要标签信息(谁和谁同类)

可以无监督(数据增强生成正负样本)

历史渊源

更早(2000s,如 LMNN、ITML)

较晚(2018+,如 SimCLR、MoCo)

场景

推荐方法

有标签的小数据集,关注距离度量

度量学习(Triplet, N-pair)

无监督预训练,大规模数据

对比学习(SimCLR, MoCo)

有标签的大数据集

监督对比学习(SupCon)

跨模态学习(图文)

对比学习(CLIP 风格)

简单来说:度量学习是"学习度量",对比学习是"通过对比来学习表示",后者是前者在现代深度学习语境下的发展和特化。

---------------------------------------------------------------------------------------------------------------------------------

四、嵌入模型选型指南

4.1 看榜单-查看MTEB排行榜
4.2 看维度-关键评估维度

任务 (Task) /语言 (Language)/模型大小 (Size) /维度 (Dimensions)/最大 Token 数 (Max Tokens) /得分与机构 (Score & Publisher) /成本 (Cost) 
4.3 选代测试与优化

(不要只依赖公开榜单做最终决定。)

(1)确定基线 (Baseline);(2)构建私有评测集;(3)迭代优化 

第二节 多模态嵌入

多模态嵌入建立在注意力机制、Transformer 架构和对比学习等关键技术之上;

其发展环环相扣:Word2Vec 为 BERT 的上下文理解铺路,而 BERT 又为 CLIP 等模型的跨模态能力奠定了基础。

多模态嵌入 (Multimodal Embedding) 目的是将不同类型的数据(如图像和文本)映射到同一个共享的向量空间

实现这一目标的关键,在于解决 跨模态对齐 (Cross-modal Alignment) 的挑战。以对比学习、视觉 Transformer (ViT) 等技术为代表的突破,让模型能够学习到不同模态数据之间的语义关联,最终催生了像 CLIP 这样的模型。

 CLIP (Contrastive Language-Image Pre-training) 模型:采用**双编码器架构 (Dual-Encoder Architecture)**,包含一个图像编码器和一个文本编码器,分别将图像和文本映射到同一个共享的向量空间中。

对比学习 (Contrastive Learning) 策略、零样本(Zero-shot)识别能力

北京智源人工智能研究院(BAAI)开发的 bge-visualized-m3(Visualized-BGE 的 M3 版本) 是一个很有代表性的现代多模态嵌入模型。

代码示例(略)

第三节 向量数据库

一、向量数据库的作用

主要功能:高效的相似性搜索(索引技术(如 HNSW, IVF)→毫秒级的近似最近邻(ANN)查询);高维数据存储与管理;丰富的查询能力;可扩展与高可用;数据与模型生态集成。

向量数据库与传统数据库的主要差异如下:

维度 向量数据库 传统数据库 (RDBMS)
核心数据类型 高维向量 (Embeddings) 结构化数据 (文本、数字、日期)
查询方式 相似性搜索 (ANN) 精确匹配
索引机制 HNSW, IVF, LSH 等 ANN 索引 B-Tree, Hash Index
主要应用场景 AI 应用、RAG、推荐系统、图像/语音识别 业务系统 (ERP, CRM)、金融交易、数据报表
数据规模 轻松应对千亿级向量 通常在千万到亿级行数据,更大规模需复杂分库分表
性能特点 高维数据检索性能极高,计算密集型 结构化数据查询快,高维数据查询性能呈指数级下降
一致性 通常为最终一致性 强一致性 (ACID 事务)

注:非相互替代的关系,而是互补关系


二、工作原理

向量数据库通常采用四层架构,通过存储层、索引层、查询层和服务层的协同工作来实现高效相似性搜索

主要技术手段包括:

  • 基于树的方法:如 Annoy 使用的随机投影树,通过树形结构实现对数复杂度的搜索
  • 基于哈希的方法:如 LSH(局部敏感哈希),通过哈希函数将相似向量映射到同一“桶”
  • 基于图的方法:如 HNSW(分层可导航小世界图),通过多层邻近图结构实现快速搜索
  • 基于量化的方法:如 Faiss 的 IVF 和 PQ,通过聚类和量化压缩向量


三、主流向量数据库介绍

选择建议

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


四、本地向量存储:以FAISS为例(略)
 

第四节 Milvus实践

实践课程

第五节 索引优化

基于LlamaIndex的高性能生产级RAG构建方案,对索引优化进行更深入的探讨。

一、上下文扩展

句子窗口检索(Sentence Window Retrieval),该技术巧妙地结合了两种方法的优点:它在检索时聚焦于高度精确的单个句子,在送入LLM生成答案前,又智能地将上下文扩展回一个更宽的“窗口”,从而同时保证检索的准确性和生成的质量。

二、结构化索引

其原理是在索引文本块的同时,为其附加结构化的元数据(Metadata)

在检索时实现“元数据过滤”和“向量搜索”的结合。

“先过滤,再搜索”的策略,能够极大地缩小检索范围

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐