新闻详情

新闻详情

首页 / 资讯中心 / 详情

RAG原理-文本向量化

发布时间:2026/11/12 6:58:21来源:尧图网络
RAG原理-文本向量化
RAG 原理文本向量化Embedding文本向量化的核心是把人类语言映射成计算机可比较的数值向量。语义越接近的文本在向量空间中的距离通常越近。1. 为什么 RAG 需要文本向量化计算机无法直接判断两段自然语言在“语义上是否相似”。Embedding 模型会把词、句子或文档片段转换为固定维度的向量例如什么是 RAG - [0.0241, -0.3187, 0.1056, ...]向量化后就可以通过余弦相似度、点积或欧氏距离计算文本之间的相关性从而找出与用户问题最相关的知识片段。2. 文本向量化的本质文本向量化完成了从“符号空间”到“向量空间”的映射自然语言文本 - Embedding 模型 - 固定维度的稠密向量好的文本向量应尽量满足语义保持意思相近的文本向量更接近长度固定不同长度的文本都映射到相同维度可计算能够使用距离或相似度函数进行比较可检索可以建立向量索引快速完成 Top-K 召回。例如“如何重置密码”和“忘记密码怎么办”虽然用词不同但语义接近因此它们的向量也应该靠得较近。3. 常见向量化方式方法向量特点优点局限One-Hot高维、稀疏简单直观无法表达词义和词间关系词袋模型BoW统计词频、稀疏实现简单忽略词序与上下文TF-IDF稀疏、强调关键词适合关键词检索难以表达深层语义Word2Vec低维、稠密能表达词语相似性同一个词通常只有一个静态向量上下文 Embedding高维、稠密能理解上下文和句子语义计算与存储成本更高在现代 RAG 系统中通常使用句子级或段落级的稠密 Embedding实际工程中也常把稠密检索与关键词检索组合成混合检索。4. 文本向量化在 RAG 中的位置RAG 包含“离线建库”和“在线查询”两条链路。4.1 离线建库原始文档 - 文档解析与清洗 - 文本分块Chunk - Embedding 模型编码 - 向量 原文 Metadata - 写入向量数据库4.2 在线查询用户问题 - 使用同一 Embedding 模型编码 - 在向量数据库中计算相似度 - 召回 Top-K 文本片段 - 将问题与检索结果组成 Prompt - 交给大模型生成答案关键约束建库和查询必须使用同一个 Embedding 模型并保持向量维度、归一化方式和距离度量一致。否则两个向量不在同一语义空间中检索结果将失去意义甚至会直接出现维度不匹配错误。5. 如何计算向量相似度5.1 余弦相似度余弦相似度关注两个向量的方向而不是绝对长度是文本语义检索中最常见的度量方式cosine⁡(A,B)A⋅B∥A∥ ∥B∥ \operatorname{cosine}(A,B)\frac{A\cdot B}{\|A\|\,\|B\|}cosine(A,B)∥A∥∥B∥A⋅B​结果越接近1方向越一致通常表示语义越相似结果越接近0相关性通常越弱是否出现负值取决于具体 Embedding 模型和向量分布。5.2 点积与欧氏距离点积Inner Product值越大通常越相似但会受到向量模长影响欧氏距离L2 Distance值越小表示距离越近对向量做 L2 归一化后点积、余弦相似度与欧氏距离之间存在确定的换算关系。选择哪种度量方式应以 Embedding 模型说明和向量数据库的索引配置为准。6. 余弦相似度的 Python 实现下面的实现不依赖第三方库并对维度和零向量进行了检查frommathimportsqrtfromtypingimportSequencedefcosine_similarity(vector_a:Sequence[float],vector_b:Sequence[float],)-float:计算两个等长非零向量的余弦相似度。iflen(vector_a)!len(vector_b):raiseValueError(两个向量的维度必须一致)dot_productsum(a*bfora,binzip(vector_a,vector_b))norm_asqrt(sum(a*aforainvector_a))norm_bsqrt(sum(b*bforbinvector_b))ifnorm_a0.0ornorm_b0.0:raiseValueError(余弦相似度不能用于零向量)returndot_product/(norm_a*norm_b)query_vector[0.2,0.1,0.7]document_vector[0.3,0.2,0.6]scorecosine_similarity(query_vector,document_vector)print(f相似度{score:.4f})7. RAG 向量化代码结构下面展示的是框架无关的核心流程。实际项目中只需把embedding_model和vector_db替换成选定模型与数据库的客户端即可。# 离线阶段文档分块并写入向量数据库forchunk_id,chunk_textinenumerate(document_chunks):chunk_vectorembedding_model.encode(chunk_text,normalizeTrue,)vector_db.upsert(item_idstr(chunk_id),vectorchunk_vector,metadata{text:chunk_text,source:document_source,chunk_id:chunk_id,},)# 在线阶段向量化问题并召回最相关的文本块query_vectorembedding_model.encode(user_question,normalizeTrue,)resultsvector_db.search(vectorquery_vector,top_k3,)context\n\n.join(item.metadata[text]foriteminresults)8. Embedding 模型选型要关注什么语言与领域是否适合中文、代码、法律、医疗等目标场景向量维度维度越高并不必然越好同时会增加存储和检索成本最大输入长度超长文本可能被截断因此需要合理设置 Chunk 大小检索任务类型查询和文档是否需要不同的前缀或编码方式归一化要求确认模型输出是否需要 L2 归一化性能与成本综合评估批处理吞吐、延迟、显存占用和 API 费用真实数据评测最终应使用业务查询集通过 RecallK、MRR、nDCG 等指标验证效果。9. 常见问题与避坑9.1 建库和查询使用了不同模型即使向量维度恰好相同不同模型的语义空间通常也不兼容。更换模型后应重新生成全部文档向量并重建索引。9.2 文本块太大或太小太大主题混杂向量语义被稀释还可能超过模型输入上限太小上下文不足召回内容难以支撑回答建议根据文档结构切分并保留适量重叠区域。9.3 只保存向量不保存原文和元数据向量负责检索真正交给大模型的是原始文本。因此应同时保存id vector text source chunk_id page/section version这样才能完成上下文拼接、来源引用、权限过滤和数据更新。9.4 只看相似度不做效果评估相似度高不代表一定能回答问题。生产系统通常还需要设置 Top-K、相似度阈值、Metadata 过滤、关键词混合召回和 Rerank并通过真实问答集持续评估。10. 总结文本向量化是 RAG 检索链路的桥梁它把自然语言转换为可计算、可索引、可比较的向量使系统能够按语义而不只是按关键词查找内容。可以记住下面这条主线文本分块 - 向量化 - 向量存储 - 问题向量化 - 相似度检索 - Top-K 上下文 - 大模型生成其中最容易影响最终效果的因素是Embedding 模型、Chunk 策略、距离度量、Top-K 与重排策略。只有整条链路保持一致并经过业务数据评测RAG 的检索质量才会稳定。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/11 13:52:51

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/12 9:50:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/12 9:25:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/12 15:57:44

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉