NVIDIA 大模型 RAG 分享笔记

文章目录

  • 大语言模型在垂直领域落地的三个挑战:
  • 什么是 RAG以及为什么能解决大预言模型所带来的的这三个问题
  • RAG 不是一项技术而是整体的 Pipeline
    • 非参数化 :数据库部分
      • 加载到数据库中
      • 检索阶段
    • 提升检索效率的技术
      • 检索前:对query做处理
        • use query routing
        • Query transformations
        • Sentence-window retrieval & Auto-merge retriveal
      • 检索中
      • 检索后
        • Re-ranker
        • Meta-data filtering
        • Prompt Compression
      • 总结
    • 参数化的部分:模型的选择和部署
    • 评价
  • NVIDIA 提供的 RAG 端到端解决方案
    • embedding model
    • RAPIDS RAFT 加强的index
    • 大语言基础模型
    • 部署框架 TensorRT-LLM
    • NeMo Guardrails
    • Evaluating RAG Pipeline
    • RAG Pipeline Samples in NVIDIA
  • 借助于RAG-Copilot 如何提升工作效率
    • RAG 技术和微调技术的比较
    • 高级 RAG
      • NVIDIA 的加持

大语言模型在垂直领域落地的三个挑战:

  • 数据是有一定范围的。大量的数据在一定的时间内训练完成的。确定数据对于基础模型是有一定的范围的。对专业领域,垂直领域的应用场景来说,知识是不够全面的。是缺乏专业的知识的。
  • 数据有时间限制的。知识更新迭代快,给的回答可能过时
  • 幻觉

RAG 是一种解决的 pipeline.

在这里插入图片描述

什么是 RAG以及为什么能解决大预言模型所带来的的这三个问题

RAG对于大语言模型来说类比于开卷考试。

三个步骤

  • Retriveal
  • Augmentation: 增强的 prompt
    • 增强的上下文是有理有据的,减少幻觉
  • 参数化的知识,结合传入的数据,生成

技术

  • 非参数化的技术:数据库的部分
  • 预训练的参数化部分
    • 基础大语言模型的选择
    • 部署平台的选择,提升用户的体验

RAG 不是一项技术而是整体的 Pipeline

非参数化 :数据库部分

在这里插入图片描述

加载到数据库中

准备好数据,需要放进数据库中的数据类型
在这里插入图片描述

  • Documents Loader

    • langchain 或其他工具提供的加载方式进行数据加载
    • 数据本身可能涉及到一些冗余重复的文字,比如统一的公司后缀:这是一个关于。。。之类的文档。。。声明之类,在放进数据库之前,应该统一进行清洗处理。
      在这里插入图片描述
    • Chunk
      因为大语言模型对于输入的窗口是有一定的限制的,不能太大。这取决于基础模型在本身的训练过程中或者它的 attention 机制。那么我们在分 chunk 的时候可以有不同的选择。可以用固定大小的chunk,也可以用动态的,动态的是指用一些标志来作为一个分割,比如一个段落按回车符分或者一个完整的句子按句号分,就是尽可能划分为有意义的分块。
      针对纯文本,可以增加重叠部分。好处是有一个承上启下的作用,给到模型的时候会附带逻辑。
      在这里插入图片描述
  • Embedding Model

    • 一般是一个 encoder model.
    • 可能需要加prompt,才能达到比较好的检索效果
      在这里插入图片描述
  • Vector Database

    • 是否支持分布式部署
    • 是否支持需要的索引方式等
      在这里插入图片描述

检索阶段

应用上线之后,真的来了问题,需要把问题转换成向量,去向量空间里面去做一个近似性搜索,找到相关文档进行返回。

  • Database Search
    • precision:检出的文档是否是问题相关的上下文
    • recall: 和问题相关的文档是否全部检出,只返回一两个可能无法提升rag整体效果
      所以如何提高 similarity search 返回整体的精度也是非常重要的一点。
      在这里插入图片描述
      如何采用技术来提升相似性的精确度和准确度。

一个好的向量数据会把含义相近的上下文放在一起,区分单纯的关键词匹配。
索引一般采用的是 ANN 算法。

在这里插入图片描述

提升检索效率的技术

分为检索前、检索中、检索后三个阶段,看可以采用的技术。
在这里插入图片描述

检索前:对query做处理

use query routing

借助 LLM 的能力,可以理解成有一个小小的 LLM agent,拿到用户的问题之后,会去看问题属于哪一类。
比如会在数据库中建立两类索引,一类是和总结相关的,另外的索引就是常规的明细介绍。如果发现问题是和总结相关的,小agent就应该说你应该去 summay index 里面去做检索。
在这里插入图片描述

Query transformations

借助 LLM 的技术,对 query 做一个转换

  • 重写问题。问题问得不好,LLM 重写一个问题再去向量数据库中检索
  • HyDE, 先不用 RAG 这样的增强方式,就让这个问题直接到大语言模型产生一个答案。然后把问题和答案同时送到向量数据库中去做检索
  • 将复杂问题做拆解,拆解之后再进行检索
Sentence-window retrieval & Auto-merge retriveal

chunk 如果太大, 向量表示可能隐藏掉相关文本的语义。
使用从小到大的技术。

  • 使用小的chunk 去生成 embedding vector。
    但是因为chunk比较小,给到大语言模型的上下文是不足够的,让后就使用 “大”(to big)
    • Sentence-window retrieval : 把每个句子都去生成一个多维向量,检索的时候是精确检索到了句子,为了提高上下文的丰富性,可以把前5个句子,后5个句子同时送到大语言模型中做一个上下文的增强。
    • Auto-merge retriveal:采用树型的存储结构,比如知道一个段落产生了这个 vector, 知道段落属于哪个小节,属于哪章节。检索完小的段落之后,可以找到它的父节点,可以把小节的内容,更丰富的内容送进大模型中去做生成。这样就能够保证检索的精度,同时保证上下文够丰富,能够生成符合我们预期的内容。
      在这里插入图片描述

检索中

hybrid: 混合的检索方式 keyword+embedddings.
把 keyword 加到 query 里面,做一个精确的检索?具体做法?
在这里插入图片描述

检索后

Re-ranker

这个是比较重要的,也是建议刚开始建立原型的话也可以去采用的一个技术.

相似性搜索后,和相关不是百分百对应的。检索出来的上下文不一定是相关的。可以再用一个另外一个小型的模型,输入是用户的问题以及检索出来的文档,去看问题和文档的相关性。
再去做一个排序,做一个二级检索。二级检索的时候就要对前面的检索进行一定的调整。(应该只是对第一轮检索做了一个相关性过滤)
第一轮,检索100个或30个,re-ranker 后用 top5, 放进大语言模型做生成
在这里插入图片描述

Meta-data filtering

存储时可以把作者存入
检索时可以增加作者这个元数据去做二次过滤,去提升检索效果

在这里插入图片描述

Prompt Compression

大语言模型有 window 限制, 找到的 chunk,尽管用了一些方法,但是还是存在一些噪声,和query不太相关,但是却不太能把它删除。
再借助另一个语言模型,把增强型的prompt再进行一个压缩,把有用的信息增强,把不相关的信息减弱。

在这里插入图片描述

总结

在这里插入图片描述

参数化的部分:模型的选择和部署

在这里插入图片描述
模型:适合场景的模型,比如代码类,问答类会有对应的模型
部署:低延迟、高吞吐率。是否支撑换模型。

评价

在产品阶段不是一蹴而就,需要多次迭代。需要看实践是否满足需求。如何评价整个 RAG 流程的工作效率是非常重要的一环。

  • RAGAS
  • truelens
  • standford ARES

不同的评估标准的指标都不一样,对标准的计算公式也不太一样,难度也不同,按需选择。
在这里插入图片描述

NVIDIA 提供的 RAG 端到端解决方案

方便上手,建立原型

embedding model

nvidia text qa embedding model
在这里插入图片描述

RAPIDS RAFT 加强的index

提升检索速度
GPU 加速的 ANN 索引
在这里插入图片描述
在这里插入图片描述

大语言基础模型

在这里插入图片描述

部署框架 TensorRT-LLM

在这里插入图片描述

NeMo Guardrails

为输出提供围栏?具体没说,已经开源,可以查看文档。
已经开源,可以查看文档

在这里插入图片描述

Evaluating RAG Pipeline

RAGAS: Evaluation framework for your Retrieval Augmented Generation (RAG) pipelines

RAG Pipeline Samples in NVIDIA

NVIDIA/GenerativeAIExamples

借助于RAG-Copilot 如何提升工作效率

Example: ChipNemo
一个借助于RAG制造芯片的例子。里面是结合了RAG和微调两种技术。
Custom tokenizers| Domain-adaptive continued pretraining |
Supervised fine-tuning (SFT) with domain-specific instructions | domain-adapted retrieval models.

RAG 技术和微调技术的比较

在这里插入图片描述

高级 RAG

在这里插入图片描述

NVIDIA 的加持

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/333732.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

redis缓存和本地缓存的应用设计

数据查询顺序 一级缓存:本地缓存 -》二级缓存:redis缓存 -》数据库 本地缓存和分布式缓存 本地缓存:基于jvm, 意思是程序放在哪,数据就存储在哪,不需要网络请求,特别快,但是需要占用jvm的内存…

Redis--Zset使用场景举例(滑动窗口实现限流)

文章目录 前言什么是滑动窗口zset实现滑动窗口小结附录 前言 在Redis–Zset的语法和使用场景举例(朋友圈点赞,排行榜)一文中,提及了redis数据结构zset的指令语法和一些使用场景,今天我们使用zset来实现滑动窗口限流&a…

Docker 仓库管理

Docker 仓库管理 仓库(Repository)是集中存放镜像的地方。以下介绍一下 Docker Hub。当然不止 docker hub,只是远程的服务商不一样,操作都是一样的。 Docker Hub 目前 Docker 官方维护了一个公共仓库 Docker Hub。 大部分需求…

Oracle命令大全

文章目录 1. SQL*Plus命令(用于连接与管理Oracle数据库)2. SQL数据定义语言(DDL)命令3. SQL数据操作语言(DML)命令4. PL/SQL程序块5. 系统用户管理6. 数据备份与恢复相关命令1. SQL*Plus命令(用…

java-log4j日志冲突解决

一、概述 java日志框架较多&#xff0c;其中主流的slf4j和commons-logging是日志接口&#xff0c;log4j、log4j2和logback是真正的日志实现库。 二、具体库单独使用 2.1 log4j <dependency><groupId>log4j</groupId><artifactId>log4j</artifa…

CentOS stream 9配置网卡

CentOS stream9的网卡和centos 7的配置路径&#xff1a;/etc/sysconfig/network-scripts/ifcfg-ens32不一样。 CentOS stream 9的网卡路径&#xff1a; /etc/NetworkManager/system-connections/ens32.nmconnection 方法一&#xff1a; [connection] idens32 uuid426b60a4-4…

【鸿蒙4.0】详解harmonyos开发语言ArkTS

文章目录 一.什么是ArkTS&#xff1f;1.ArkTS的背景2.了解js&#xff0c;ts&#xff0c;ArkTS的演变js(Javascript)Javascript的简介Javascript的特点 ts(Typescript)ArkTS 二. ArkTS的特点 一.什么是ArkTS&#xff1f; 1.ArkTS的背景 如官方文档所描述&#xff0c;ArkTS是基…

《Linux C编程实战》笔记:Linux信号介绍

信号是一种软件中断&#xff0c;它提供了处理一种异步事件的方法&#xff0c;也是进程惟一的异步通信方式。在Linux系统中&#xff0c;根据POSIX标准扩展的信号机制&#xff0c;不仅可以用来通知某进程发生了什么事&#xff0c;还可以给进程传递数据。 信号的来源 信号的来源…

广东金牌电缆:法大大电子合同助力业务风险管控

广东金牌电缆集团股份有限公司&#xff08;以下简称“广东金牌电缆”&#xff09;成立于2013年&#xff0c;现为广东省电线电缆重点生产企业、广东省守合同重信用单位、国家专精特新小巨人企业、国家高新技术企业&#xff0c;拥有自主商标“夺冠”&#xff0c;“夺冠”商标被评…

一文读懂「Fine-tuning」微调

一、什么是微调&#xff1f; 1. 什么是微调&#xff1f; 微调是指在预训练模型&#xff08;Pre-trained model&#xff09;的基础上&#xff0c;针对特定任务或数据领域&#xff0c;对部分或全部模型参数进行进一步的训练和调整&#xff08;Fine Tune&#xff09;。预训练模型…

File 类的用法和 InputStream, OutputStream 的用法

1.File类的用法 下面就用几个简单的代码案例来熟悉File类里面函数的用法&#xff1a; public class IODemo1 {public static void main(String[] args) throws IOException {File f new File("./test2.txt");//File f new File("C:/User/1/test.txt");S…

redis数据安全(二)数据持久化 RDB

目录 一、RDB快照持久化 原理 二、RDB快照持久化配置&#xff08;redis.conf&#xff09;&#xff1a; 三、触发RDB备份&#xff1a; 1、自动备份&#xff0c;需配置备份规则&#xff1a; 2、手动执行命令备份&#xff08;save | bgsave&#xff09;&#xff1a; 3、flus…

排序:非递归的归并排序

目录 递归与非递归的思想对比&#xff1a; 递归&#xff1a; 非递归&#xff1a; 代码解析&#xff1a; 完整代码&#xff1a; 递归与非递归的思想对比&#xff1a; 递归&#xff1a; 在之前的归并排序&#xff0c;它的核心思想是通过不断的分割&#xff0c;从一个数组变…

JAVA实现向Word模板中插入Base64图片和数据信息

目录 需求一、准备模板文件二、引入Poi-tl、Apache POI依赖三、创建实体类&#xff08;用于保存向Word中写入的数据&#xff09;四、实现Service接口五、Controller层实现 需求 在服务端提前准备好Word模板文件&#xff0c;并在用户请求接口时服务端动态获取图片。数据等信息插…

数据结构图算法

算法就要多练,我在国庆节放假的时间编写了图的算法题,写完让我受益匪浅,希望可以帮助到大家. 文章目录 前言 一、图的数据结构 1.图的邻接表数据结构定义 2.图的邻接矩阵的存储形式 二、邻接表建立图代码 三、邻接表删除边(基本操作考试不考) 四、邻接表删除顶点及销毁整…

【LLM】Prompt微调

Prompt 在机器学习中&#xff0c;Prompt通常指的是一种生成模型的输入方式。生成模型可以接收一个Prompt作为输入&#xff0c;并生成与该输入相对应的输出。Prompt可以是一段文本、一个问题或者一个片段&#xff0c;用于指导生成模型生成相应的响应、续写文本等。 Prompt优化…

.pings勒索病毒的无声侵袭:保护你的数据财产免受.pings的侵害

尊敬的读者&#xff1a; 在数字时代&#xff0c;网络犯罪者不断推陈出新&#xff0c;而.pings勒索病毒则是一种极富威胁的加密型恶意软件。本文将深入探讨.pings勒索病毒的攻击方式&#xff0c;为您提供从数据恢复到全面预防的完整指南&#xff0c;帮助您有效对抗这一威胁。如…

安全帽识别:智能监控新趋势

在现代工业安全领域&#xff0c;安全帽识别技术已成为一项关键的创新。这项技术通过智能监控系统确保工作人员在危险环境中佩戴安全帽&#xff0c;显著提升了工作场所的安全标准。本文将探讨这一技术的工作原理、应用前景及其在现代工业中的重要性。 安全帽识别的工作机制 安全…

【漏洞攻击之文件上传条件竞争】

漏洞攻击之文件上传条件竞争 wzsc_文件上传漏洞现象与分析思路编写攻击脚本和重放措施中国蚁剑拿flag wzsc_文件上传 漏洞现象与分析 只有一个upload前端标签元素&#xff0c;并且上传任意文件都会跳转到upload.php页面&#xff0c;判定是一个apache容器&#xff0c;开始扫描…

什么是车载信息娱乐系统和集成驾驶舱

什么是车载信息娱乐系统(IVI)? “车载信息娱乐(IVI)”通过向驾驶员和乘客提供信息和娱乐&#xff0c;为驾驶提供便利和舒适。为了理解这个概念&#xff0c;有必要知道“信息娱乐”的含义。“信息娱乐”是这个市场中使用的一个词&#xff0c;它结合了“信息”和“娱乐”两个词…