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

RAG与Embedding:现代NLP的核心技术

  • 本篇文章简单梳理我在了解RAG以及Embedding技术时的想法,仅供参考

    文章目录

      • 1. 引言
        • 背景
        • 为什么要关注RAG与Embedding技术
      • 2. 基础概念与原理
        • 2.1 什么是RAG (Retrieval-Augmented Generation)
          • 定义
          • 工作流程
          • 优点与适用场景
        • 2.2 什么是Embedding
          • 定义
          • 作用
      • 3. Embedding在RAG中的关键作用
        • 3.1 从检索到生成的桥梁
        • 3.2 提升RAG的准确性与鲜更性
        • 3.3 形成完整RAG工作流
      • 4. 常用的Embedding方法与框架
        • 4.1 经典Embedding方法
        • 4.2 加入上下文的Embedding模型
        • 4.3 特定领域的Embedding
      • 5. 常用的RAG方法与框架
        • 5.1 RAG工作流示例
        • 5.2 开源框架与工具
        • 5.3 与向量数据库的集成
      • 7. 总结与展望
        • RAG与Embedding未来发展趋势
        • 在NLP生态系统中的位置

1. 引言

背景

在自然语言处理(NLP)和大型语言模型(LLM)的应用中,信息检索与问答是最举人注目的场景之一。然而,传统方法并不能完美解决如下问题:

  • 最新知识的使用:传统LLM无法访问资料中的最新信息。
  • 大规模知识库:因为数据量高,检索效率和精度无法举屏。
  • 团队知识及基于文档的问答:多数环境中,为了对接解决问题,必须采用基于专用文档的知识。

为什么要关注RAG与Embedding技术

RAG (检索增强生成) 和Embedding技术是解决上述问题的重要方法。

  • RAG与现有模型的区别: RAG通过检索采集最关键的外部信息,不仅依赖于预训练模型。
  • Embedding是在大数据中检索的基石: 它通过将文本和查询进行向量化,实现高效的超负载检索。

2. 基础概念与原理

2.1 什么是RAG (Retrieval-Augmented Generation)

定义

RAG是一种将信息检索和生成模型结合的技术。不同于传统生成式模型,它通过访问外部知识库,在生成中轻松解决信息随时性和知识解析的限制。

工作流程
  • 步骤1:用户查询输入
  • 步骤2:通过Embedding向量化查询,在向量数据库中检索最相关文档。
  • 步骤3:将检索结果与用户输入聚合,产生答案。
优点与适用场景
  • 能够访问最新或被订制化的知识。
  • 解决需要标准信息源和大规模文档检索的场景。

2.2 什么是Embedding

定义

Embedding指将文本或其他数据(如图像、图、声音)转换为高空间中的向量。在NLP中,它能夠抓住语义信息和文本之间的相似性。

作用
  • 语义相似度比较:基于Embedding的向量空间,可以直接计算文本相似度。
  • 在检索中的应用:使用Embedding实现文本精准检索和分类。

3. Embedding在RAG中的关键作用

3.1 从检索到生成的桥梁

Embedding为文档和查询提供向量化代表,并通过向量相似度检索最相关内容。

3.2 提升RAG的准确性与鲜更性

  • 语义匹配的精度提高:Embedding能在大规模文档集中实现高效检索。
  • 减少“背乍”回答风险:生成模型能够根据检索结果依据。

3.3 形成完整RAG工作流

  • 流程示例
    1. 用户输入问题。
    2. 通过Embedding模型将问题向量化。
    3. 在向量数据库中检索最相关文档。
    4. 聚合检索结果,生成答案。
  • 数据流与模块耱合:每个模块(Embedding模型、向量数据库、LLM、答案生成)其功能紧密配合。

4. 常用的Embedding方法与框架

4.1 经典Embedding方法

  • Word2Vec / GloVe:早期词向量方法,能力限制在于静态转换。

4.2 加入上下文的Embedding模型

  • BERT及其变体:基于Transformer,采用双向编码。
  • Sentence-BERT、SimCSE:采用专为发布句子级别向量,依据查询和文本之间的近值计算。

4.3 特定领域的Embedding

  • 专用领域微调:通过基于区域数据进行微调,尽可能推动属性化性能。

5. 常用的RAG方法与框架

5.1 RAG工作流示例

  • Facebook AI Research的RAG:公开建议架构。

5.2 开源框架与工具

  • LangChain:集成LLM、向量存储和检索模块的Python框架。
  • LlamaIndex:迅速构建基于知识库的QA系统。
  • Haystack:提供文档检索和问答的综合框架。

5.3 与向量数据库的集成

  • Pinecone、Weaviate、Chroma:常用向量数据库,提高向量检索效率。

7. 总结与展望

RAG与Embedding未来发展趋势

  • 更高效的语义检索技术,以及模型压缩和低成本部署方向。

在NLP生态系统中的位置

  • RAG和Embedding技术将继续进化,成为生成式AI领域不可战略的核心技术。

相关文章:

RAG与Embedding:现代NLP的核心技术

本篇文章简单梳理我在了解RAG以及Embedding技术时的想法,仅供参考 文章目录 1. 引言背景为什么要关注RAG与Embedding技术 2. 基础概念与原理2.1 什么是RAG (Retrieval-Augmented Generation)定义工作流程优点与适用场景 2.2 什么是Embedding定义作用 3. Embedding在…...

力扣每日一题 - 1812. 判断国际象棋棋盘中一个格子的颜色

题目 还需要你前往力扣官网查看详细的题目要求 地址 1.给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。2.如果所给格子的颜色是白色,请你返回 true,如果是黑色&#xff…...

Map 那些事儿

1. map 的基本结构 Go 的 map 是一种哈希表,其核心思想是通过哈希函数将键映射到某个位置(桶)以存储对应的值。它主要包含以下关键部分: •桶(bucket):存储键值对的容器,map 中的元…...

GCP Case:MountKirk Games

游戏后端 根据游戏活动动态放大或缩小。 连接到托管的nos0l数据库服务。 运行定制的linux发行版。 游戏分析平台 根据游戏活动来扩大或缩小规模直接处理来自游戏服务器的传入数据。 处理由于移动网络缓慢而迟到的数据。 通过sql查询来访问至少10tb的历史数据 处理由用户…...

[创业之路-187]:《华为战略管理法-DSTE实战体系》-1-从UTStarcom的发展历程,如何辩证的看企业初期发展太顺利中的危机

目录 一、UTStarcom(UT斯达康)的发展历程 1、创立与初期发展 2、快速成长与上市 3、技术创新与业务拓展 4、战略调整与持续发展 二、从UTStarcom的发展历程,如何辩证的看企业初期发展太顺利中的危机 1、企业初期发展的顺利表现 2、顺…...

高级数据结构-树状数组

介绍 树状数组的推导 两个基础操作 模板-acwing795. 前缀和 #include<bits/stdc.h> using namespace std;const int N 1e610; int c[N]; int lowbit(int x){return x & -x; }int query(int x){int ans 0;for(; x; x - lowbit(x)) ans c[x];return ans; }void add…...

LeetCode279. 完全平方数(2024冬季每日一题 27)

给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4、9 和 16 都是完全平方数&#xff0c;而 3 和 11 不是。 …...

Scala 隐式转换

object test {//复习隐式转换&#xff1a;//隐式转换&#xff1a;编译器 偷偷地&#xff0c;自动地帮我们把一种数据转换为另一种类型//例如&#xff1a;int --> double//它有失败的时候&#xff08;double --> int&#xff09;&#xff0c;有成功的时候//当它转换失败的…...

K8S命令部署后端(流水线全自动化部署)

前言 本文为链接: 云效流水线k8s半自动部署java&#xff08;保姆级&#xff09;的补充,本文起初的目的是为了补充完善k8s流水线的全自动化部署,但是也适用于k8s的一键重启,因为使用k8s的web页面容易出现漏点的情况,因此也可以把代码保存为shell脚本,同样可以实现一键重启。关于…...

Ubuntu中配置交叉编译工具的三条命令的详细研究

关于该把下面的三条交叉编译配置语句加到哪里&#xff0c;详情见 https://blog.csdn.net/wenhao_ir/article/details/144326545 的第2点。 现在试解释下面三条交叉编译配置语句&#xff1a; export ARCHarm export CROSS_COMPILEarm-buildroot-linux-gnueabihf- export PATH$…...

【PyQt5教程 二】Qt Designer 信号与槽的使用方法及PyQt5基本小部件说明

目录 一、信号与槽机制&#xff1a; 二、信号与槽使用方法&#xff1a; &#xff08;1&#xff09;使用Qt Designer 的信号与槽编辑器&#xff1a; &#xff08;2&#xff09;使用固定语法直接建立信号槽连接&#xff1a; 三、PyQt小部件及其触发信号&#xff1a; &#x…...

编程语言中接口(Interface)介绍

编程语言中接口&#xff08;Interface&#xff09;介绍 在编程语言中&#xff0c;“接口”&#xff08;Interface&#xff09;是一种抽象类型&#xff0c;定义了一组方法&#xff08;和属性&#xff09;&#xff0c;但不包含其具体实现。接口通常用于规定类必须实现的行为&…...

算法学习之贪心算法

前言 记录一下&#xff0c;免得又又忘了 贪心算法 在刚接触的时候&#xff0c;我一直觉得贪心和动态规划有相似之处&#xff0c;但做过的题目看&#xff0c;贪心似乎不用迭代...

【jvm】垃圾回收的优点和原理

目录 1. 说明2. 优点3. 原理3.1 发现无用对象3.2 回收无用对象所占用的内存 4. 回收算法4.1 标记-清除算法4.2 复制算法4.3 标记-整理算法4.4 分代收集算法 1. 说明 1.JVM&#xff08;Java虚拟机&#xff09;垃圾回收是Java语言的一大特性&#xff0c;它自动管理内存&#xff…...

YOLO系列发展历程:从YOLOv1到YOLO11,目标检测技术的革新与突破

文章目录 前言一、YOLOv1&#xff1a;单阶段目标检测的开端二、YOLOv2&#xff1a;更精准的实时检测三、YOLOv3&#xff1a;阶梯特征融合四、YOLOv4&#xff1a;性能和速度的新平衡五、YOLOv5&#xff1a;易用性和扩展性的加强六、YOLOv6&#xff1a;工业部署的利器七、YOLOv7&…...

深入浅出:序列化与反序列化的全面解析

文章目录 1. 引言2. 什么是序列化&#xff1f;2.1 为什么需要序列化&#xff1f; 3. 什么是反序列化&#xff1f;3.1 反序列化的重要性 4. 序列化与反序列化的实现4.1 JSON (JavaScript Object Notation)4.2 XML (eXtensible Markup Language)4.3 Protocol Buffers (Protobuf)4…...

word实践:正文/标题/表图等的共用模板样式设置

说在前面 最近使用word新建文件很多&#xff0c;发现要给大毛病&#xff0c;每次新建一个word文件&#xff0c;标题/正文的字体、大小和间距都要重新设置一遍&#xff0c;而且每次设置这些样式都忘记了参数&#xff0c;今天记录一下&#xff0c;以便后续方便查看使用。现在就以…...

Blender中使用BlenderGIS插件快速生成城市建筑模型

导入下载 BlenderGIS 插件 去github上下载其压缩包&#xff0c;地址如下&#xff1a; https://github.com/domlysz/BlenderGIS 在BlenderGIS中导入这个插件压缩包&#xff1a; 点击上方菜单栏的编辑&#xff0c;点击偏好设置 在插件>从磁盘安装中导入刚刚下载的压缩包 可…...

【单元测试】单元测试的重要性

1一些错误的认识 在实际的单元测试过程中总会有一些错误的认识左右着我们&#xff0c;使之成为单元测试最大的障碍&#xff0c;在此将其一一分析如下&#xff1a; 它太浪费时间了&#xff0c;现在要赶进度&#xff0c;时间上根本不允许&#xff0c;或者随便做做应付领导。 …...

Codeforces Round 992 (Div. 2)

这场cf只在b卡了一下&#xff0c;因为b真是犯蠢了&#xff0c;我以为会向下取整&#xff0c;结果是完全就不取整&#xff0c;或者说是向上取整&#xff0c;卡了我半个小时&#xff0c;要不是紧急看了题一下&#xff0c;昨天那场就毁了 话不多说&#xff0c;直接开讲 A. Game …...

基于硬件虚拟化的AI智能体安全隔离方案Clawcage设计与实现

1. 项目概述&#xff1a;为AI智能体打造一个坚不可摧的“笼子”如果你最近在尝试运行一些本地的AI智能体&#xff0c;比如Claude Desktop、Cursor的Agent模式&#xff0c;或者各种开源的AI助手工具&#xff0c;心里可能总会有点打鼓。这些工具功能强大&#xff0c;但它们背后运…...

【灶台导航】 RAG系统的容错设计:从向量搜索到关键词降级,一个都不能少

当三个外部依赖都可能随时挂掉时&#xff0c;如何保证用户永远有响应&#xff1f;问题&#xff1a;完美主义害死人 做RAG系统时&#xff0c;我们很容易陷入一种思维定势&#xff1a;向量检索要准、LLM要强、整个链路要丝滑。但现实是——任何一个外部服务挂了&#xff0c;用户就…...

定时任务标准化合约:解决Cron Job协作混乱与状态管理难题

1. 项目概述&#xff1a;为定时任务建立“交通规则”在自动化运维和持续集成&#xff08;CI&#xff09;领域&#xff0c;定时任务&#xff08;Cron Job&#xff09;就像是系统里的“定时闹钟”和“自动工人”。它们负责在后台默默执行数据备份、日志清理、状态检查、报告生成等…...

Vinkius Cloud扩展:在IDE中无缝管理MCP AI网关运行时

1. 项目概述&#xff1a;在IDE中管理你的AI网关运行时如果你正在开发或使用基于MCP&#xff08;Model Context Protocol&#xff09;的AI应用&#xff0c;那么你很可能已经体会过在多个AI客户端&#xff08;比如Cursor、Claude Desktop、Windsurf&#xff09;之间管理和维护后端…...

别再只用XXL-Job了!用Go写的Temporal,搞定延时发短信、定时对账这些复杂工作流真香

从XXL-Job到Temporal&#xff1a;用Go重构复杂工作流的实战指南 如果你正在使用Java系的XXL-Job处理定时任务&#xff0c;却苦于复杂业务逻辑的编排困难&#xff0c;那么是时候认识Temporal了。这个用Go编写的分布式工作流引擎&#xff0c;正在重新定义我们处理延时任务、多步骤…...

Drogon框架数据库连接监控终极指南:性能指标与智能告警机制

Drogon框架数据库连接监控终极指南&#xff1a;性能指标与智能告警机制 【免费下载链接】drogon Drogon: A C14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows 项目地址: https://gitcode.com/gh_mirrors/dr/drogon Drogon是一个基于…...

AI编程助手文档自动化:dev-docs-skill实现PRD、API与CHANGELOG高效管理

1. 项目概述&#xff1a;一个为AI编程助手“赋能”的文档自动化工具 如果你和我一样&#xff0c;是个在多个项目间穿梭、既要写代码又要维护文档的开发者&#xff0c;那你一定对“文档债”深恶痛绝。代码写完了&#xff0c;功能上线了&#xff0c;但更新API文档、记录变更日志、…...

MobaXterm 全能终端神器:实战指南

写在前面&#xff1a;作为Windows下最全能的远程终端工具&#xff0c;MobaXterm 在 2026 年已迭代至 v26.0 版本。本文基于最新版&#xff0c;从工具选型对比、核心功能实战到效率提升技巧&#xff0c;带你真正掌握这款"瑞士军刀"。文末附赠快捷键大全和安全配置清单…...

列车主动悬架超磁致伸缩作动器动力学【附模型】

✨ 长期致力于超磁致伸缩作动器、主动悬架、动力学建模、特性分析、Simulink仿真研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;非均匀磁场下的多物理…...

保边滤波深度学习红外可见光融合算法【附程序】

✨ 长期致力于红外与可见光图像融合、快速引导滤波器、交替引导滤波器、深度学习、卷积神经网络研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;双支流…...