一.向量嵌入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.向量数据库选择
- 新手入门/小型项目:从
ChromaDB或FAISS开始是最佳选择。它们与 LangChain/LlamaIndex 紧密集成,几行代码就能运行,且能满足基本的存储和检索需求。 - 生产环境/大规模应用:当数据量超过百万级,或需要高并发、实时更新、复杂元数据过滤时,应考虑更专业的解决方案,如
Milvus、Weaviate或云服务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大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。