Prompt-RAG:在特定领域中应用的革新性无需向量嵌入的RAG技术

论文地址:https://arxiv.org/ftp/arxiv/papers/2401/2401.11246.pdf

原文地址:https://cobusgreyling.medium.com/prompt-rag-98288fb38190

2024 年 3 月 21 日

虽然 Prompt-RAG 确实有其局限性,但在特定情况下它可以有效地替代传统向量嵌入 RAG 方法。

介绍

Prompt-RAG 与 RAG 类似,提供矢量数据库和无嵌入策略,以增强特定领域应用程序的大型语言模型 (LLM)。

与 RAG 不同,RAG 需要数据分块和向量嵌入来进行语义搜索和检索,Prompt-RAG 可以无缝运行,无需此类过程。

RAG

检索增强生成 (RAG) 将生成能力与信息检索技术无缝融合。

RAG 通过将大型语言模型 (LLM) 的稳健性与实时和上下文信息相结合,战略性地解决了生成模型的固有局限性。

结果是LLM生成的响应表现出自然和类人的品质,同时也是最新的、精确的,并且与所提供的查询在上下文上保持一致。

传统上,RAG 首先将输入查询转换为向量嵌入。

然后利用这些嵌入从矢量化数据库中检索相关数据。随后,RAG 的生成组件利用检索到的外部数据来制作上下文相关的响应。

在此过程中,嵌入模型生成模型都发挥着至关重要的作用,显着影响RAG的有效性并直接影响检索过程。

提示 RAG 步骤

Prompt-RAG 包含三个步骤:

  1. 预处理
  2. 标题选择
  3. 检索增强生成

来源

预处理

在初始阶段,根据文档创建目录 (ToC)至关重要。

这些文档与 Prompt-RAG 旨在解决的特定领域有着错综复杂的联系。

理想情况下,文档作者应该已经准备好目录。

但是,如果没有,可以手动制作。或者,可以部署大型语言模型 (LLM) 来生成 ToC,特别是在明确定义文档结构的情况下。

LLM 的上下文窗口大小显着影响目录和检索到的文档部分的大小。

为了优化标记大小,可以通过消除页眉、页脚、页码等元素来格式化文档。

这种格式可确保目录和检索部分中文档内容的简化和简洁表示。

标题选择

提示包括用户查询以及目录 (ToC),然后将其提供给大型语言模型 (LLM)。

LLM 旨在识别目录中与查询最相关的标题。

在某些情况下,可以选择多个标题,并且为了进一步细化选择,可以对文本进行总结。此摘要过程有助于缩小选项范围,确保所选标题与用户查询最相关。

可以根据预算和用于答案生成的生成模型的上下文窗口大小提前在提示中设置所选标题的数量。

一个重要的元素是优化提示以实现准确的 ToC 检索和令牌使用效率。

提示词注入

下一步涉及检索与所选标题相对应的文档部分,然后在推理过程中将其作为上下文引用注入到提示中。

注入到提示中的参考文本的大小必须小于 LLM 的上下文窗口大小,这一点至关重要。

为了确保符合此要求,可以采用大型语言模型 (LLM) 来总结、截断或以其他方式修剪检索到的“块”。

此过程对于调整参考文本以适应上下文窗口大小的约束并最小化标记使用是必要的,从而优化效率。

如果由于查询是问候语或随意对话而导致所选标题缺失,则不带参考部分的替代提示将传递到基于 GPT-3.5-turbo 的模型,以减少令牌使用并节省费用。

生成答案的提示如下所示:

You are a chatbot based on a book called {Book Name}. 

Here is a record of previous conversations:

{history}

Reference: {context}

Question: {question}

Use the reference to answer the question.

The reference above is only fractions of '<>'.

Be informative, gentle, and formal.

If you can't answer the question with the reference, just say like 
'I couldn't find the right answer this time'.

Answer in {Language of Choice}:

在提示模板下方,没有选择标题以供随意查询...

You are a chatbot based on a book called {Book Name}. 

Here is a record of previous conversation for your smooth chats.:

{history}

Question: {question}

Answer the question.

Be informative, gentle, and formal. 
Answer in {Language of Choice}:”

综上所述

即使 Prompt-RAG 没有独立使用,Prompt-RAG 研究的重要性也是不可否认的。在某些情况下,Prompt-RAG 可以充当更大的实施框架中的组件。

通过创新方法优化和利用即时工程与围绕应用程序构建更复杂的数据管理框架之间存在着永久的平衡。通常,随着实现的使用和复杂性的扩展,后一种方法往往会占主导地位。

然而,必须承认 Prompt-RAG 需要一个应用程序框架来监督数据流、验证输入和输出以及进行必要的数据操作。

传统RAG的缺点

  1. 优化文档块大小和管理重叠可能是一个挑战。
  2. 随着数据变化更新块和嵌入以保持相关性。
  3. 未针对少数语言实现进行优化
  4. 运行嵌入的额外成本
  5. 对于较小的实现来说很麻烦
  6. 对技术要求更高

传统 RAG 与 Prompt-RAG 相比的优势

  1. 扩展性良好
  2. 更多以数据为中心的方法
  3. 批量数据发现和数据开发对于企业实施仍然很重要。
  4. 一般来说,语义聚类是数据发现的一个重要方面,也是实施 RAG 的良好第一步。

Prompt-RAG 优点

  1. 非常适合规模较小、技术含量较低的实现和少数语言。
  2. 非常适合特定需求和实施
  3. 对于聊天机器人,某些意图可以路由到 Prompt-RAG 实现
  4. 简化
  5. 可以作为全面 RAG 实施的首次尝试
  6. 非梯度方法
  7. 可检查性和可观察性
  8. 旨在优化 Prompt-RAG 的数据发现和数据设计工具可以增加显着的价值。

Prompt-RAG 缺点

  1. 还是需要数​​据设计。
  2. 上下文窗口大小是一个障碍。
  3. Tokens使用量和成本会更高;这需要与嵌入模型tokens成本进行比较。
  4. 扩展和引入复杂性需要一个技术框架。
  5. 取决于 LLM 推理延迟和令牌使用成本。
  6. 需要创建内容结构。该研究主要集中于已有目录的文档。

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

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

相关文章

KW音乐搜索参数

声明&#xff1a; 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 逆向目标: …

基于SpringBoot+Layui的社区物业管理系统

项目介绍 社区物业管理系统是基于java程序开发,本系统分为业主和管理员两个角色 业主可以登陆系统,查看车位费用信息,查看物业费用信息,在线投诉,查看投诉,在线报修; 管理员可以车位收费信息,物业收费信息,投诉信息,楼宇信息,房屋信息,业主信息,车位信息,抄表信…

ArkTS编写的HarmonyOS原生聊天UI框架

简介 ChatUI&#xff0c;是一个ArkTS编写的HarmonyOS原生聊天UI框架&#xff0c;提供了开箱即用的聊天对话组件。 下载安装 ohpm install changwei/chatuiOpenHarmony ohpm 环境配置等更多内容&#xff0c;请参考如何安装 OpenHarmony ohpm 包 接口和属性列表 接口列表 接…

Git、Github、Gitee、GitLab学习,团队协助/版本控制

Git 是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种 项目。B站尚硅谷Git学习笔记 一、Git的常用命令 1.git工作机制 工作区和暂存区的文件都可删除&#xff0c;但是提交到本地库则不可删除&#xff0c;有历史记录 2.历史版本 2.1查…

如何打破SAST代码审计工具的局限性?

关键词&#xff1a;白盒测试&#xff1b;代码分析工具&#xff1b;代码扫描工具&#xff1b;静态代码检测工具&#xff1b; 在代码的世界里&#xff0c;安全问题如同潜伏的暗礁&#xff0c;随时可能让航行中的软件项目触礁沉没。SAST代码审计工具如同雷达一样&#xff0c;以其独…

Doris记录

Doris是一个开源的分布式分析型数据库&#xff0c;最初由阿里巴巴开发并开源&#xff0c;目前隶属于Apache基金会。 Doris基于大规模并行处理&#xff08;MPP&#xff09;架构&#xff0c;提供高性能和实时的数据分析能力。它以极速易用的特点被广泛使用&#xff0c;能够应对高…

探索 PostgreSQL 的外部数据包装器和统计函数

PostgreSQL 因其稳定性和可扩展性而广受青睐&#xff0c;为开发人员和数据管理员提供了许多有用的函数。在这些函数中&#xff0c;file_fdw_handler、file_fdw_validator、pg_stat_statements、pg_stat_statements_info 以及 pg_stat_statements_reset 是其中的重要函数&#x…

鸿蒙Harmony应用开发—ArkTS-全局UI方法(时间滑动选择器弹窗)

以24小时的时间区间创建时间滑动选择器&#xff0c;展示在弹窗上。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 本模块功能依赖UI的执行上下文&#xff0c;不可在UI上下文不明确的地方使用&…

java设计模式--模板方法

在开始模板方法的学习之前&#xff0c;先看下面一段话&#xff1a; 模板&#xff0c;是指作图或设计方案的固定格式。模板是将一个事物的结构规律予以固定化、标准化的成果&#xff0c;它体现的是结构形式的标准化。 ----百度百科 通俗来说&#xff0c;模板其实就是把一个事物的…

前端案例:产品模块

文章目录 产品模块效果结构布局分析父级盒子布局图片和段落评价和详情 产品模块效果 结构布局分析 1、大的父级盒子包含全部的内容 2、内容装入 图片&#xff08;img标签&#xff09;&#xff1b;分别三个子盒子装入两段评价以及商品信息。 父级盒子布局 div {width: 300px…

ChatGPT高效完成简历制作[中篇4]-有爱AI实战教程(十一)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、导读&#xff1a; 在使用 ChatGPT 时&#xff0c;当你给的指令越精确&#xff0c;它的回答会越到位&#xff0c;举例来说&#xff0c;假如你要请它帮忙写文案&#xff0c…

6.2 ServiceNow 自动化测试框架 (ATF) 简介

6.2 自动化测试框架 ATF 简介 目录一、自动化测试框架 (ATF) 简介1. Automated Test Framework&#xff08;ATF&#xff09;2. 使用自动化测试框架 (ATF)的好处&#xff1a; 二、 ATF的测试类型1. 功能业务逻辑测试2. 回归测试3. 浏览器兼容性测试4. 服务器端 Jasmine测试 三、…

IBM SPSS Statistics for Mac v27.0.1中文激活版

IBM SPSS Statistics for Mac是一款功能强大的统计分析软件&#xff0c;专为Mac用户设计&#xff0c;用于数据分析和决策支持。该软件拥有直观易用的界面和丰富多样的统计工具&#xff0c;使得用户可以轻松进行数据处理、分析和解释。 软件下载&#xff1a;IBM SPSS Statistics…

JQuery EasyUI DataGrid行添加水印

代码 css: .water-mark::after {content: 有异议;position: absolute;left: 460px;top: 40px;color: rgb(255 0 0);transform: rotate(-25deg);pointer-events: none;z-index: 10;} js: $(#dgData).datagrid({loadMsg: 数据加载中&#xff0c;请稍后……,// fitColumns: true,…

使用工具类简单快速导出复杂的Excel,以及下载Excel 模板

Gitee 地址如下&#xff1a; https://gitee.com/xia-lijun/export-Excel.githttps://gitee.com/xia-lijun/export-Excel.git 一&#xff1a;首先引入pom.xml 依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifact…

Linux:Prometheus+Grafana+睿象云告警平台(3)

在上一章我进行了Prometheus和Grafana的基础搭建以及部署 Linux&#xff1a;Prometheus的源码包安装及操作&#xff08;2&#xff09;-CSDN博客https://blog.csdn.net/w14768855/article/details/136855988?spm1001.2014.3001.5501 1.注册 在监控中必不可少的就是监控告警&am…

基于深度学习的心律异常分类系统设计——算法设计

基于深度学习的心律异常分类系统——算法设计 第一章 研究背景算法流程本文研究内容 第二章 心电信号分类理论基础心电信号产生机理MIT-BIH 心律失常数据库 第三章 心电信号预处理心电信号噪声来源与特点基线漂移工频干扰肌电干扰 心电信号读取与加噪基于小波阈值去噪技术的应用…

Linux下Docker部署中间件(Mysql、Redis、Nginx等)

我的自备文件 文件传输 内网下直接上传很慢 使用scp命令将另一台服务器上的文件传输过来&#xff1b;在已有文件的服务器往没有文件的服务器传输 scp -r 传输的文件夹/文件 root要传输的地址:放置的地址 scp -r tools root172.xx.x.xxx:/data/ 安装二进制文件、脚本及各中间件…

ubuntu - 编译 linphone-sdk

业务需求需要定制sdk&#xff0c;首先声明我们需要的是在Android4.4上跑的sdk&#xff0c;因此本次编译的sdk最低支持为19&#xff08;不同版本需要的环境不一致&#xff09;&#xff0c;编译过程较容易&#xff0c;难点在于环境配置 环境准备 Ubuntu 18.04.6 android-sdk_r24.…

机器学习lgbm时间序列预测实战

完整代码&#xff1a; from sklearn import preprocessing import random from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from sklearn import preprocessing from datetime import datetime import time import mat…