当前位置: 首页 > news >正文

一文读懂 RAG 与嵌入模型:大模型如何实现“读文档、答问题”

🔍 微信搜索公众号

AI在学

获取最新 AI 技术文章与实战教程


前言

你有没有发现,现在的大语言模型不仅能聊天、写文案,还能读懂你的文档、帮你查资料?

比如:你提问“公司的报销流程是怎样的?”它就能从员工手册中精准找到相关流程;又或者你提问“我们和A公司的合同中,付款条款是怎么写的?”它就能从数十份合同中,精准定位到相关内容,直接告诉你付款方式、周期和违约条款。

这背后的关键技术,就是最近大火的 —— RAG(Retrieval-Augmented Generation,检索增强生成)。

RAG 本质上是给大语言模型“外挂”了一个知识库,而让这个外挂真正运行起来的,正是嵌入模型(Embedding Model)。

它负责将文字转化为向量,构建语义地图,帮助模型“找资料”“看懂上下文”。可以说,没有嵌入模型,RAG 就无法理解问题、无法匹配内容、无法智能生成。

🧭 RAG 是怎么工作的?

简单来说,RAG 就是:
📚 先“读资料”:把大量文档通过嵌入模型转成向量,存入一个向量数据库。
🔍 再“找资料”:用户每次提问,系统把问题转为向量,在向量数据库中找“最相关的内容片段”。
🧾 最后“回答问题”:大模型根据这些上下文,再生成回答。
整个过程的第一步,就依赖嵌入模型。如果嵌入效果不好,RAG 检索的内容就会不相关,输出的回答就会跑偏。❌
What is Retrieval Augmented Generation (RAG)? | DataCamp

🧠 什么是嵌入模型?

嵌入模型的目标是把一段文字,变成一个“向量”——一个多维数字数组。

向量之间的“距离”代表语义上的相似程度。

比如:

  • 🎧 “蓝牙耳机” → [0.01, -0.03, 0.07, …]
  • 📶 “无线耳机” → [0.012, -0.032, 0.068, …]

它们向量之间的距离很小,说明语义接近。

计算机可以通过这些向量,实现语义搜索、推荐匹配、文本归类等操作。

⚙️ 嵌入模型是怎么工作的?

嵌入过程可以分为几个步骤:

📝 输入文字:比如“这款耳机的音质非常棒”。

✂️ 分词(Tokenization):拆成一个个词或字(Token)。

🔢 初始编码:每个 Token 转为数字表示。

🔄 上下文建模:通过神经网络理解词与词的关系。

📌 输出向量:返回一个固定长度的向量,比如 768 维或 1536 维。

这个向量,就是这段话的“语义位置”。📍

🔍 嵌入模型在 RAG 中的应用场景

🔎 语义检索: 用户问题 → 转为向量 → 在向量库中找“最接近的文档段落”。

🧾 文档问答系统: 给大模型喂“与问题最相关”的语义段落,它就能生成精准回答。

🗣 多轮对话保持上下文一致性: 通过嵌入来判断用户当前问题和过往内容的关联。

🏢 企业知识库接入大模型: 用嵌入索引企业文件,帮助员工快速查阅信息或自动写文档。

🧪 实战示例:用 OpenAI 嵌入模型做向量生成

为了让你更直观地理解嵌入的过程,我们来看一个简单的代码示例:

fromlangchain_openaiimportOpenAIEmbeddings# 初始化模型embeddings_model=OpenAIEmbeddings()# 输入查询embedded_query=embeddings_model.embed_query("如何申请开发票?")# 输出前5维print(embedded_query[:5])

输出类似::

[0.0053,-0.0004,0.0388,-0.0030,-0.0090]

✨这一串数字就是文字的“向量表示”!不同的句子会有不同的向量,而语义相近的句子,其向量也会“靠得更近”。

🧠 小结:嵌入模型,是 RAG 的“视神经”

RAG 的强大之处,不仅是能“调用知识”,而是能“找到最对的知识”。

而这个“找到”的过程,全靠嵌入模型的语义理解能力。📡

未来,无论你是在做企业文档助手、私有化智能客服、还是个人知识管理,嵌入模型都是构建智能系统的第一步。🚀

📚项目源码

如果你想看看完整代码实现或亲自运行一遍,这里是项目的 GitHub 地址👇:
🔗 https://github.com/zhengjie9510/learn-langchain/tree/main

http://www.jsqmd.com/news/485122/

相关文章:

  • 解决Swift货币处理难题:开源项目Money常见问题解决方案
  • TNNLS-2020《Autoencoder Constrained Clustering With Adaptive Neighbors》
  • 2026年3月超实用的防腐防锈圆顶通风口定制厂家分析,目前圆顶通风口熠森金属市场认可度高 - 品牌推荐师
  • 最新版Node.js下载安装及环境配置教程(非常详细)
  • [学习]RTKLib详解:tle.c(系列终章)
  • java毕业设计下载(全套源码+配套论文)——基于javaEE+SSH+mysql的百货中心供应链管理系统设计与实现
  • 终极指南:解决ESLint Config for JavaScript Standard Style的常见问题
  • 好写作AI:硕士论文文献综述的4个扩写与改写神技巧,导师看完直呼“这学生真会写!”
  • 基于双dq变换的六相永磁同步电机矢量控制仿真、附参考文献
  • java毕业设计下载(全套源码+配套论文)——基于javaEE+SSH+mysql的医院在线挂号系统设计与实现
  • OpenClaw 筛掉了 90%的人,这个工具专门来接这 90%
  • 终极指南:解决 .NET 项目系统 10 大常见问题的完整方案
  • 如何利用Touca实现工程团队的持续回归测试:完整指南
  • 为什么选择OWASP Maryam?5大优势让开源情报收集事半功倍
  • 终极ASP.NET Core 3.1 / React SPA模板项目问题解决指南:10个常见错误快速修复方案
  • 【原创】基于Python的教师-学生签到考勤系统
  • 【独家原创】基于SMA(黏菌)-Transformer多特征分类预测(多输入单输出)附Matlab代码
  • 【独家原创】基于(蜜獾算法)HBA-Transformer多变量时序预测(多输入单输出)附Matlab代码
  • 如何快速部署gh_mirrors/co/code6:5分钟上手代码泄露防护工具
  • MLLM架构深度剖析:连接算法创新与硬件加速的关键枢纽
  • 【原创】基于python的花卉识别系统
  • 【图像隐写】基于DWT+DCT实现图像水印隐藏提取(含PSNR、NCC、IF)附Matlab代码
  • 大厂UI设计师偷偷在用的12个法则,让你的界面从此告别“不好用” - ui设计公司兰亭妙微
  • 【原创】基于flask+vue的电影可视化与智能推荐系统
  • 终极指南:如何使用Money项目轻松处理Swift中的货币计算
  • JReleaser与CI/CD集成:Jenkins与GitHub Actions实践
  • 重庆脑肿瘤专家
  • 加油卡回收心得大揭秘:如何避免低价陷阱? - 团团收购物卡回收
  • 终极HRM评估框架指南:3步掌握evaluate.py与arc_eval.ipynb高效推理测试
  • 终极指南:如何在macOS上实现Windows式alt-tab多语言支持