新闻详情

新闻详情

首页 / 资讯中心 / 详情

RAG原理-文本向量化

发布时间:2026/9/25 21:26:17来源:尧图网络
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/9/25 22:12:41

自媒体商用配图,有哪些性价比不错的在线修图工具

自媒体配图早已告别简单拼图、美颜修图的基础需求。如今公众号、小红书、短视频封面、图文推文等场景,都需要高频产出高清、统一风格、可商用的视觉素材。多数自媒体创作者没有专业设计基础,也不愿承担高额软件年费、素材版权费用。在线修图工具无需下载…

阅读更多 →
Atlas 300V推理卡实战:YOLO模型转换与部署全流程 2026/9/25 22:12:12

Atlas 300V推理卡实战:YOLO模型转换与部署全流程

最近不少人在后台问同一个问题:Atlas 300V 24G到底是不是运算加速卡,它和常见的GPU显卡有什么区别?还有人直接说想在Atlas上部署YOLO,但模型转换、算子支持、推理流程这些地方被卡得一头雾水。我把这两件事放到一起聊,…

阅读更多 →
Java开发必备的10个编码习惯,第7个最易忽略 2026/9/25 22:12:11

Java开发必备的10个编码习惯,第7个最易忽略

在Java开发中,代码写出来容易,写好却难。真正拉开工程师水平的,往往不是对框架的熟练度,而是那些日复一日的编码习惯。下面这10个习惯,看似基础,却能显著提升代码质量。尤其是第7个,很多人直到线…

阅读更多 →
Android Studio拼图游戏开发:兼容API 21+的轻量级期末大作业实现 2026/9/25 22:12:05

Android Studio拼图游戏开发:兼容API 21+的轻量级期末大作业实现

简介:这是一份面向计算机及相关专业本科生的Android移动应用开发实战资源,专为课程设计、期末大作业及毕业设计前期练手打造。项目基于Android Studio开发,实现经典拼图游戏功能,含完整可运行源码、详细说明文档及发布版APK&#…

阅读更多 →
SAP 行业方案 2026/9/25 22:11:44

SAP 行业方案

<!doctype html>化工&#xff5c;SAP 行业解决方案跳到正文☰ 阅读目录 SAP 行业方案SAP INDUSTRY FIELD GUIDE化工&#xff5c;SAP 行业解决方案记忆导航01 业务模式与边界02 痛点与解决机制03 端到端流程04 业务案例演练05 SAP 实现架构06 主数据与接口07 业财集成与核…

阅读更多 →
TikTok 数据复盘怎么做 从作品表现到下一轮动作 2026/9/25 22:11:38

TikTok 数据复盘怎么做 从作品表现到下一轮动作

把 TikTok 数据写成能执行的复盘报告的数据分析和 96SMM 产品支持 报告需要区分公开数据、后台表现、任务记录和业务结果&#xff0c;并把每个结论写成证据、限制和下一步动作。 本文按“明确问题、完成内容、记录数据、诊断原因、选择支持、进入下一轮”的顺序展开。官方资料用…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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