RAG架构的数据准备流程

news2024/11/16 7:41:41

虽然现成的大型语言模型 (LLM) 功能强大,但企业发现,根据其专有数据定制 LLM 可以释放更大的潜力。检索增强生成 (RAG) 已成为这种定制的主要方法之一。RAG 模型将大型语言模型强大的语言理解能力与检索组件相结合,使其能够从外部数据源收集相关信息。这使模型能够“读取”和利用企业数据来生成输出,从而产生更准确、更符合上下文的答案,并使用最新信息进行更新。

有许多工具可以帮助企业构建 RAG 架构;但是,构建高性能 RAG 系统需要对架构的每个步骤进行优化。本文将重点介绍在企业范围内构建有效 RAG 架构的数据准备流程和注意事项。

AI 模型的好坏取决于其数据。实施 RAG 需要精心准备模型将从中学习和检索上下文的数据源。清理、构建和优化大型知识库以将其提取到矢量数据库中可能具有挑战性,因为数据源通常包含结构化和非结构化数据。

数据源整理过流程

  • 数据源:用于构建 RAG 架构知识库的数据源是基础。它们必须是全面、高质量的来源,能够准确涵盖系统将要查询的领域和主题。此过程通常涉及选择符合您的用例要求的企业结构化和非结构化数据存储库的相关子集,并听取专家的意见。
  • 数据清理:原始数据通常很嘈杂,包含不相关的内容、过时的信息和重复数据。这给 RAG 实施带来了挑战,因为模型无法从其知识库中检索相关且准确的信息,从而对生成产生负面影响。例如,Jira 或 Confluence 中的企业知识通常包含用户评论和版本更改历史记录,这些内容与存储在知识库中无关。在将数据输入矢量存储之前,有效的数据清理技术(例如过滤和重复数据删除)至关重要。
  • 隐私/PII:企业数据集通常包含敏感和私人信息。作为数据准备过程的一部分,企业需要根据其用例和潜在最终用户定义如何处理这些数据。在内部用例中,LLM 可以合并有关个人的信息,例如查询“谁是沃尔玛账户的销售代表?”但是,对于外部用例,泄露有关个人的信息可能会导致隐私侵犯。即使设置了防护措施,对抗性攻击也可能导致训练数据意外泄露。确保适当处理 PII 元素,并在适当的情况下检测、过滤、编辑和用合成数据替换,可以保护隐私,同时保持数据实用性并防止潜在的合规性问题。
  • 文本提取:  企业数据有多种格式,包括 PDF、PowerPoint 演示文稿和图像。从这些非结构化和半结构化来源中提取干净、可用的文本对于构建全面的知识库至关重要。文本提取的方法可能因文档的结构、形式和复杂性而异。简单的情况可能使用标准文本提取工具来解决,而更复杂的文档可能需要结合使用自动化工具和人工注释。
  • 文本规范化:来自多个来源的数据通常在拼写、缩写、数字格式和引用样式等方面缺乏一致性。这可能会导致相同的概念被视为不同的实体,并且模型匹配度较低。应用规范化规则来标准化拼写、语法、测量和一般命名法对于最大限度地利用文本数据至关重要。
  • 分块策略:按照上述步骤,需要将文档拆分成较短的“块”或段落,以便检索组件将其与查询匹配并传递给语言模型。目标是将文档拆分成可检索的单元,以保持关键信息的完整、相关上下文。常用方法包括固定大小分块、基于文档的分块和语义分块。一般来说,人类对数据是否应放在现有块中或形成新块的评估仍然被认为是黄金标准,一种称为“代理分块”的新兴、更先进的方法试图模仿这种人类行为。理想的块大小在具有足够的上下文和效率之间取得平衡,而总结或分层分块等方法也适用于长文档。
  • 实体识别和标记:虽然从知识库中派生出的区块构成了向量存储的核心,但使用元数据(如源详细信息、主题和数据中的关键实体)丰富这些区块可以显著提高 RAG 模型的准确性。针对人员、组织、产品、概念和实体链接的命名实体识别 (NER) 可以帮助模型连接段落并增强检索相关性。这可以使用具有自动化技术和人机验证的数据注释平台系统地完成,以确保注释的准确性和一致性,并在必要时包括领域专家。

查询流程

  • 段落排名:检索组件显示与查询匹配的候选段落后,在将它们传递给语言模型之前,按相关性对其进行排名和筛选至关重要。这可以避免从相关性较低的段落生成响应。排名可以利用相似度得分、上下文推理、元数据属性和查询段落对齐。
  • 提示工程与设计: RAG 模型的有效性很大程度上取决于通过在内容(查询 + 上下文)中添加相关检索数据来增强用户输入。这些提示必须经过精心设计,才能有效获取和利用检索到的上下文,同时与输出响应所需的风格和语气保持一致。

持续评估和优化

上述数据考虑因素对于 RAG 的成功都至关重要。然而,由于存在许多变动因素,因此在整个训练过程中,可能很难了解其有效性和影响。

持续的测试、评估和优化对于有效识别和监控性能差距至关重要。组件评估对于解决特定问题非常有用,例如,评估检索是否来自向量存储中的最佳来源。端到端评估可用于根据目标用例评估整个系统的质量,最终目标是生成对人类最终用户有价值的响应。

利用 Appen 的专业知识

用于训练 RAG 模型的数据可能很复杂,对于希望部署 LLM 的企业来说仍然是一个挑战。Appen 的 AI 数据注释平台可让您无缝增强和集成专有数据,帮助提高以数据为核心的 RAG 实施的成功率。

立即联系 Appen,了解我们的专业知识和先进平台如何帮助您加速 RAG 之旅。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

螺旋矩阵(算法题)

文章目录 螺旋矩阵解题思路 螺旋矩阵 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]]解题思路 模…

全局数据 与 singleton 类的选择

1,singleton 相对于全局数据的优势 使用 Singleton 类相对于全局数据具有以下好处: 1.1. 延迟初始化:Singleton 类可以实现延迟初始化,即在需要时才创建实例,而全局数据在程序启动时就会被初始化。这可以节省资源并提…

SpringBoot——整合RabbitMQ收发消息

目录 RabbitMQ消息队列 项目总结 新建一个SpringBoot项目 pom.xml application.properties配置文件 index.html前端页面 RabbitMQConfig配置类 RabbitMQProducer生产者 RabbitMQConsumer消费者 IndexController控制器 SpringbootRabbitmqApplication启动类 测试 Ra…

CSS 介绍及用法,常用属性

一、CSS介绍 A. 简介 CSS全称:全称为层叠样式表(Cascading Style Sheets),是一种用于描述网页外观和格式的计算机语言。CSS可以使网页的布局更加丰富和多样化,并且可以将样式信息与网页内容分离,使得网…

【JAVASE】接口(上)

一:接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本上上的USB接口。 电脑上的USB口上可以插:U盘、鼠标、键盘等。 电源插座插孔上可以插入:电脑、电视机等。 通过以上例子可以看出:接口就是公共…

0527_C++1

练习1&#xff1a; 定义自己的命名空间my_sapce&#xff0c;在my_sapce中定义string类型的变量s1&#xff0c;再定义一个函数完成对字符串的逆置。 #include <iostream>using namespace std; namespace my_space {string s1"hello world";void my_strreverse…

在银行申贷之前,是否需要查大数据信用报告呢?

在现代社会&#xff0c;信用是非常重要的经济资源&#xff0c;而信用报告则是评估个人信用状况的重要依据。在银行申贷过程中&#xff0c;通常需要提供个人的信用报告&#xff0c;以评估借款人的信用状况和还款能力。那么&#xff0c;在银行申贷之前&#xff0c;是否需要查大数…

深入学习 torch.distributions

0. 引言 前几天分几篇博文精细地讲述了《von Mises-Fisher 分布》, 以及相应的 PyTorch 实现《von Mises-Fisher Distribution (代码解析)》, 其中以 Uniform 分布为例简要介绍了 torch.distributions 包的用法. 本以为已经可以了, 但这两天看到论文 The Power Spherical dist…

ZYNQ AXI4 FDMA内存读写

1 概述 如果用过ZYNQ的都知道,要直接操作PS的DDR 通常是DMA 或者VDMA,然而用过XILINX 的DMA IP 和 VDMA IP,总有一种遗憾,那就是不够灵活,还需要对寄存器配置,真是麻烦。对于我们搞 FPGA 的人来说,最喜欢直接了当,直接用FPGA代码搞定。现在XILINX 的总线接口是AXI4总线…

Openai革新AI陪伴赛道?国内的AI陪伴创业公司有哪些?

人是一切社会关系的总和&#xff0c;而人的这种社会关系又依靠着情感来联系的。但是自从陪伴式AI的出现仿佛就打破了这种传统的关系。 在你的身边有这样一个“人”&#xff0c;她善解人意、风趣幽默&#xff0c;不会发脾气还会随时陪伴着你&#xff0c;这一在科幻电影中才会出现…

UE5 CommonUI的使用(附源码版)

UE5 CommonUI的使用 前言快速配置配置Game Viewport Client ClassCommonGameViewportClient源代码 创建CommonInputAction表默认导航Action设置CommonUIInputData源码 Bind CommonInputBaseControllerDataCommonInputBaseControllerData源码 Common UI控件库和控件样式CommonUs…

【JavaScript】P2 JavaScript 书写位置

本博文总结&#xff1a; JavaScript 书写位置&#xff1a; 内部外部行内 注意事项&#xff1a; 书写的位置尽量写到 </body> 之前外部 js 标签中间不写任何内容&#xff0c;因为不予以展示 正文&#xff1a; 交互效果示例 一个简单的交互效果示例&#xff1b; <…

[Halcon学习笔记]Halcon窗口进行等比例显示图像

目录 需求分析Halcon显示原理显示实现具体实现Halcon代码 需求分析 在使用Halcon加载图像时&#xff0c;点击Halcon的适应窗口&#xff0c;图像都会按照窗口大小对图像进行拉伸后显示&#xff0c;实际项目中&#xff0c;需要等比例显示图像&#xff0c;体现图像原本的尺寸细节…

Java对象的揭秘

前言 作为一个 Java 程序员&#xff0c;我们在开发中最多的操作要属创建对象了。那么你了解对象多少&#xff1f;它是如何创建&#xff1f;如何存储布局以及如何使用的&#xff1f;本文将对 Java 对象进行揭秘&#xff0c;以及讲解如何使用 JOL 查看对象内存使用情况。 本文是基…

2024最新版本激活Typora,1.8.10.0版本可用

实测可用日期为&#xff1a;2024-05-28 目前最新版本 1.8.10.0 也是可以实现激活的 注&#xff1a;免修改注册表、不用修改时间&#xff0c;更不需要破解补丁 01、下载&安装 Typora 文件 从官网下载最新版本的 Typora&#xff0c;并安装 或者阿里云盘&#xff1a; htt…

博客系统多模块开发

创建工程 创建父工程 删除src目录&#xff0c;在pom.xml添加依赖&#xff1a; <!--统一版本 字符编码--><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.b…

Git 小白入门到进阶—(基本概念和常用命令)

一.了解 Git 基本概念和常用命令的作用 (理论) 基本概念 1、工作区 包含.git文件夹的目录&#xff0c;主要用存放开发的代码2、仓库 分为本地仓库和远程仓库&#xff0c;本地仓库是自己电脑上的git仓库(.git文件夹);远程仓库是在远程服务器上的git仓库git文件夹无需我们进行操…

一些硬件知识【九】

STM32CUBEMX配置教程&#xff08;六&#xff09;高级定时器单通道输出互补PWM波&#xff08;带死区和刹车&#xff09;_高级定时器死区刹车怎么与电机模块连接?-CSDN博客 MOS选型关键参数&#xff1a; 额定电压&#xff0c;额定电流&#xff0c;导通电阻&#xff0c;阀值电压…

如何通过中间人攻击嗅探SIM卡的流量通信

写在前面的话 这篇文章我将介绍如何制作中间人&#xff08;MitM&#xff09;设置来嗅探SIM卡和后端服务器之间的流量。虽然这不是一项新的研究&#xff0c;但我希望这将帮助一些没有电信基础的人学习移动数据嗅探和虚假基站的知识。但是我只会介绍使用2G和GPRS的SIM卡的方案。…

防止特权升级攻击的有效策略

防止特权升级攻击的有效策略 特权升级攻击是一种通过利用操作系统或应用程序中的编程错误、漏洞、设计缺陷、配置错误或访问控制缺陷&#xff0c;获得对原本应该被限制访问的资源进行未授权访问的行为。这种攻击方式可能导致攻击者获取敏感数据、安装恶意软件并发动其他网络攻…