大语言模型RAG,transformer

news/2025/2/12 17:36:31/

1、RAG技术流总结

第一张图是比较经典的RAG知识图谱,第二张图是更加详细扎实的介绍图。
1.1 索引

坦白来说这部分的技术并不是大模型领域的,更像是之前技术在大模型领域的应用;早在2019年我就做过faiss部分的尝试,彼时索引技术已经在互联网领域得到了广泛的应用。

1、大模型需要通过向量化去建立语义理解。

通过将包含高维信息的知识降维到向量空间里,这些知识就变成了一堆数字串;此时,当用户去提问时,先将提问的知识向量化变成一串数字后,再从知识库中通过余弦计算等方式找出和用户提问数字串最相似的信息出来,这就完成了所谓的语义理解。

2、分块能够有效提升检索效率和缓解上下文长度限制。

理想状态下,在检索时将每个信息都遍历一遍肯定就不会漏信息了,但是当信息量大且不能让用户等待过久的时候,还是需要更高效和更具性价比的方式;同时,大模型一次能输入的上下文有长度限制,虽然已经有大模型将上下文长度延伸至了更高量级,但似乎实验证明更大的上下文窗口不一定对检索结果更有效。

而分块技术,则可以理解为将一篇50w字的书籍文档按照段落或者语义等方式划分成n个块。这样,既能够有效解决上下文长度限制问题,同时也对于检索有一定的效率提升;但同时也存在可能会丢失文档的全局结构、不同块之间的前后逻辑等问题(这些问题在陆续通过建立重叠上下块内容、建立块的类似索引结构等方式进行优化)。

#### 1.2 检索Retrieval 当用户提问后,通过检索技术则可以从知识库中召回相关内容块。检索方式将不局限于关键词检索和向量检索,最终的形态一定是多种检索方式的结合和互补。当混合检索结束后,再通过一个Rerank的机制重新对不同渠道的检索结果做一个最终的整合和排序。
1.3 生成(Generation)

将检索得到的前 K 个文本块和用户问题一起送进大模型,让大模型基于给定的文本块来回答用户的问题。

在整个完整的RAG过程中,索引和检索将极大的影响最终生成的质量。其中索引直接决定语义保存的完整度,检索决定提供给大模型的文本质量,值得注意的是检索过程还存在rerank的过程。

在知识库问答,数据越多效果越好吗?中,有道大模型团队提出针对query大连医科大学怎么样,主要原因是第三批加入的某些文档中恰好有大连理工大学 xxx 怎么样?的句子,和 query 大连医科大学怎么样?表面上看起来确实非常像,Embedding 给它打了比较高的分。直接向量检索的情况下因为缺乏语义部分导致

而类似大连医科大学师资介绍这样的片段相关性就稍微低了些。而 LLM 输入 token 有限制,前面两个最相关但是实际并不能回答 query 问题的片段就已经占满了 token 的窗口,只能把他俩送进 LLM 里。结果可想而知,啥都不知道。

RAG知识除了可以参考前面有道团队的介绍,另外也可以参考这一篇:
一文读懂:大模型RAG(检索增强生成)含高级方法

transformer_36">2、transformer总结

在之前的文章中我们有总结过transformer,其实当时配合李沐的视频也是有一定了解的,目前可以配合代码做进一步的了解。
NLP入门:word2vec & self-attention & transformer & diffusion的技术演变

其中QKV是由可学习的权重矩阵和input相乘得到,目的是获得不同隐空间的向量表示;具体在单个隐空间的变换可以参考:超越标准注意力机制:探索深度模型中的多头潜在注意力

具体的一些细节可以参考:
注意力机制到底在做什么,Q/K/V怎么来的?一文读懂Attention注意力机制

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1571479.html

相关文章

http 模块

在现代 Web 开发中,HTTP 协议是客户端与服务器之间通信的基础。Node.js 自带的 http 模块提供了一种简单而强大的方式来创建 HTTP 服务器和客户端,使得开发者可以直接使用 JavaScript 编写高效的网络应用。本文将详细介绍 http 模块的基本概念、核心功能…

微信小程序的制作

制作微信小程序的过程大致可以分为几个步骤:从环境搭建、项目创建,到开发、调试和发布。下面我会为你简要介绍每个步骤。 1. 准备工作 在开始开发微信小程序之前,你需要确保你已经完成了以下几个步骤: 注册微信小程序账号&…

GlusterFS 深度洞察:从架构原理到案例实践的全面解读(下)

文章目录 七.Gluster基本命令八. 客户端挂载访问九.日常巡检十.深度优化十一.常见故障与排查十二.GlusterFS经典案例十三.GlusterFS存储卷容灾能力对比图 七.Gluster基本命令 管理glusterd服务 安装GlusterFS后,必须启动Glusterd服务。Glusterd服务充当Gluster卷管…

《qt+easy3d 网格读取》

qt+easy3d 网格读取 效果展示一、创建流程二、注意:三、资源下载:效果展示 一、创建流程 创建动作,并转到槽函数 槽函数实现 void MainWindow::on_actionReadMesh_triggered() {

pgBackRest 是专为 PostgreSQL 设计的开源备份与恢复工具,以其高性能、可靠性和灵活性著称

pgBackRest 是专为 PostgreSQL 设计的开源备份与恢复工具,以其高性能、可靠性和灵活性著称。它支持 全量备份、增量备份、并行备份/恢复 和 加密 等特性,适用于大规模数据库和关键业务场景。以下是其核心功能及操作指南: 一、pgBackRest 核心…

开源机器人+具身智能 解决方案+AI

开源机器人、具身智能(Embodied Intelligence)以及AI技术的结合,可以为机器人领域带来全新的解决方案。以下是这一结合的可能方向和具体方案: 1. 开源机器人平台 开源机器人平台为开发者提供了灵活的基础架构,可以在此基础上结合具身智能和AI技术。以下是一些常用的开源机…

ChatGPT搜索 vs. 推理:如何选择和使用

搜索 vs. 推理:如何选择和使用 1. 概述 在日常工作和学习中,我们经常需要获取信息或者解决问题。通常可以通过两种方式完成: 搜索(web):从互联网上获取最新、实时的信息。推理(逻辑能力&…

C++引用深度详解

C引用深度详解 前言1. 引用的本质与核心特性1.1 引用概念1.2 核心特性 2. 常引用与权限控制2.1 权限传递规则2.2 常量引用2.3 临时变量保护1. 样例2. 样例3. 测试 三、引用使用场景分析3.1 函数参数传递输出型参数避免多级指针高效传参 3.2 做函数返回值正确使用危险案例 4. 性…