使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT,以实现更智能的 AI

使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT,以实现更智能的 AI

传统的检索增强生成(RAG)系统在生成具备上下文感知的答案方面表现出色。然而,它们往往存在以下不足:

  • 精确性不足:单次推理可能会忽略复杂查询中的细微差别。

  • 理解不够深入:若没有迭代过程,输出结果可能无法全面解决多方面的问题。

RAG简介

检索增强思考(RAT)通过引入模仿人类思维过程的推理循环,弥补了这些差距。这使得它在以下应用场景中具有极高价值:

  • 复杂问题解答

  • 特定领域的AI助手

  • 研究密集型工作流程

RAT详解

如下图所示,RAT的工作步骤如下:

  1. 用户输入:与RAG一样,用户提出问题。例如:“我如何提高我的生产力?”

  2. 知识检索:系统从知识库(如文档、文章)中检索与问题相关的信息片段。例如:检索到的内容可能包括关于时间管理、生产力技巧的文章,或者像任务优先级排序这样的工具介绍。

  1. 推理循环(迭代优化)
    • 初始思考:推理大语言模型(LLM)基于检索到的信息片段和用户问题开始工作,生成初始思考或推理内容。例如:“专注于有效进行任务优先级排序”。

    • 迭代:系统将这个思考结果反馈回检索和推理过程中。每次迭代都会优化检索到的上下文,并生成更细致入微的推理。
      • 迭代2:“将任务分解成更小的部分,并根据紧急程度和重要性对它们进行优先级排序”。

      • 迭代3:“实施时间块管理,并消除干扰以进行深度工作”。

  2. 最终思考:在完成指定的迭代次数后(或者当推理趋于稳定时停止),系统会产生一个最终思考结果,这是对问题经过深入思考后得出的详细理解。最终思考:“要提高生产力,可以使用艾森豪威尔矩阵对任务进行优先级排序,将它们分解成更小的部分,并利用时间块管理来专注工作”。

  3. 增强生成:经过优化的推理(最终思考结果)会被传递给负责生成答案的LLM。这个LLM将推理结果与原始问题相结合,生成最终便于用户理解的答案。最终答案:“要提高你的生产力,可以先使用艾森豪威尔矩阵对任务进行优先级排序。将它们分解成易于管理的步骤,并利用时间块管理来保持专注”。

为何使用RAGLight来实现RAT?

RAGLight是一个功能多样的框架,它通过为检索、推理和生成工作流程提供模块化组件,简化了RAG和RAT管道的实现过程。凭借预构建的集成功能和可扩展的设计,你可以专注于提升AI的能力,而无需从头开始开发。

以下是如何使用RAGLight设置RAT和RAG管道,以及关键参数和定制选项的详细解释。

设置RAT管道

from raglight.rat.simple_rat_api import RATPipeline
from raglight.models.data_source_model import FolderSource, GitHubSource
from raglight.config.settings import SettingsSettings.setup_logging()pipeline = RATPipeline(knowledge_base=[FolderSource(path="<path to your folder with pdf>/knowledge_base"),GitHubSource(url="https://github.com/Bessouat40/RAGLight")
], model_name="llama3", reasoning_model_name="deepseek-r1:1.5b", reflection=1)pipeline.build()response = pipeline.generate("How can I create an easy RAGPipeline using raglight framework? Give me the the easier python implementation")print(response)

理解RAGLight参数

  • knowledge_base:定义知识来源的列表。RAGLight支持:
    • FolderSource:指向包含文档(如PDF、文本文件)的本地文件夹路径。

    • GitHubSource:要包含在知识库中的GitHub仓库的URL。你可以组合多个文件夹和仓库,以创建一个全面的知识库。

  • model_name:用于最终生成的LLM的名称。RAGLight目前支持从Ollama拉取到本地的模型。你可以将“llama3”替换为其他模型,如“deepseek-r1:1.5b”,或者任何与Ollama兼容且已拉取到本地的模型。也可以使用推理模型。

  • reasoning_model_name(RAT特定):指定在RAT管道中用于迭代推理的模型。你必须选择推理模型。实际上,RAGLight目前只支持像deepseek-r1:1.5b这样的deepseek模型。

  • reflection(RAT特定):定义要执行的推理迭代次数。每次迭代都会优化检索到的上下文和推理逻辑。增加迭代次数可以进行更深入的推理,减少迭代次数则可以加快处理速度。

  • pipeline.build :此函数用于处理知识库、生成嵌入向量,并初始化向量存储。
    • 工作原理:解析知识库来源(如文件夹、GitHub仓库);使用指定模型为所有文档创建嵌入向量;将嵌入向量存储在向量存储中以供检索。

  • pipeline.generate:根据用户的查询和从知识库中检索到的上下文生成响应。
    • 工作原理:将用户查询转换为嵌入向量;从向量存储中检索相关文档或片段;(对于RAT管道)使用推理模型迭代优化响应;生成最终具有上下文感知的响应。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

model calibration

如果模型的输出不是概率, 或者模型没有well calibrated的时候, 需要对模型进行calibrate: 具体方法如下: 首先需要用training data训练一个model然后通过测试数据来画图看看模型是否well calibrated 例如猫狗分类中, 将属于猫的对应概率落到相应的桶中。 然后计算桐中真正属…

记录 | 基于MaxKB的文字生成视频

目录 前言一、安装SDK二、创建视频函数库三、调试更新时间 前言 参考文章&#xff1a;如何利用智谱全模态免费模型&#xff0c;生成大家都喜欢的图、文、视并茂的文章&#xff01; 自己的感想 本文记录了创建文字生成视频的函数库的过程。如果想复现本文&#xff0c;需要你逐一…

构建具身智能体的时空宇宙!GRUtopia:畅想城市规模下通用机器人的生活图景

作者&#xff1a; Hanqing Wang, Jiahe Chen, Wensi Huang, Qingwei Ben, Tai Wang, Boyu Mi, Tao Huang, Siheng Zhao, Yilun Chen, Sizhe Yang, Peizhou Cao, Wenye Yu, Zichao Ye, Jialun Li, Junfeng Long, Zirui Wang, Huiling Wang, Ying Zhao, Zhongying Tu, Yu Qiao, D…

C++模板编程——可变参函数模板之折叠表达式

目录 1. 什么是折叠表达式 2. 一元左折 3. 一元右折 4. 二元左折 5. 二元右折 6. 后记 上一节主要讲解了可变参函数模板和参数包展开&#xff0c;这一节主要讲一下折叠表达式。 1. 什么是折叠表达式 折叠表达式是C17中引入的概念&#xff0c;引入折叠表达式的目的是为了…

python学opencv|读取图像(五十三)原理探索:使用cv.matchTemplate()函数实现最佳图像匹配

【1】引言 前序学习进程中&#xff0c;已经探索了使用cv.matchTemplate()函数实现最佳图像匹配的技巧&#xff0c;并且成功对两个目标进行了匹配。 相关文章链接为&#xff1a;python学opencv|读取图像&#xff08;五十二&#xff09;使用cv.matchTemplate()函数实现最佳图像…

《AI大模型开发笔记》DeepSeek技术创新点

一、DeepSeek横空出世 DeepSeek V3 以颠覆性技术架构创新强势破局&#xff01;革命性的上下文处理机制实现长文本推理成本断崖式下降&#xff0c;综合算力需求锐减90%&#xff0c;开启高效 AI 新纪元&#xff01; 最新开源的 DeepSeek V3模型不仅以顶尖基准测试成绩比肩业界 …

Sqoop导入MySQL中含有回车换行符的数据

个人博客地址&#xff1a;Sqoop导入MySQL中含有回车换行符的数据 MySQL中的数据如下图&#xff1a; 检查HDFS上的目标文件内容可以看出&#xff0c;回车换行符位置的数据被截断了&#xff0c;导致数据列错位。 Sqoop提供了配置参数&#xff0c;在导入时丢弃掉数据的分隔符&…

标准IO与文件IO 进程与线程

标准IO与文件IO 进程与线程

Go学习:Go语言中if、switch、for语句与其他编程语言中相应语句的格式区别

Go语言中的流程控制语句逻辑结构与其他编程语言类似&#xff0c;格式有些不同。Go语言的流程控制中&#xff0c;包括if、switch、for、range、goto等语句&#xff0c;没有while循环。 目录 1. if 语句 2. switch语句 3. for语句 4. range语句 5. goto语句&#xff08;不常用…

【网络】传输层协议TCP(重点)

文章目录 1. TCP协议段格式2. 详解TCP2.1 4位首部长度2.2 32位序号与32位确认序号&#xff08;确认应答机制&#xff09;2.3 超时重传机制2.4 连接管理机制(3次握手、4次挥手 3个标志位)2.5 16位窗口大小&#xff08;流量控制&#xff09;2.6 滑动窗口2.7 3个标志位 16位紧急…

小程序的协同工作与发布

1.小程序API的三大分类 2.小程序管理的概念&#xff0c;以及成员管理两个方面 3.开发者权限说明以及如何维护项目成员 4.小程序版本

【MySQL】语言连接

语言连接 一、下载二、mysql_get_client_info1、函数2、介绍3、示例 三、其他函数1、mysql_init2、mysql_real_connect3、mysql_query4、mysql_store_result5、mysql_free_result6、mysql_num_fields7、mysql_num_rows8、mysql_fetch_fields9、mysql_fetch_row10、mysql_close …

c语言进阶(简单的函数 数组 指针 预处理 文件 结构体)

c语言补充 格式 void函数头 {} 中的是函数体 sum函数名 &#xff08;&#xff09; 参数表 #include <stdio.h>void sum(int begin, int end) {int i;int sum 0;for (i begin ; i < end ; i) {sum i;}printf("%d到%d的和是%d\n", begin, end, sum); …

FastAPI + GraphQL + SQLAlchemy 实现博客系统

本文将详细介绍如何使用 FastAPI、GraphQL&#xff08;Strawberry&#xff09;和 SQLAlchemy 实现一个带有认证功能的博客系统。 技术栈 FastAPI&#xff1a;高性能的 Python Web 框架Strawberry&#xff1a;Python GraphQL 库SQLAlchemy&#xff1a;Python ORM 框架JWT&…

实验9 JSP访问数据库(二)

实验9 JSP访问数据库&#xff08;二&#xff09; 目的&#xff1a; 1、熟悉JDBC的数据库访问模式。 2、掌握预处理语句的使用 实验要求&#xff1a; 1、使用Tomcat作为Web服务器 2、通过JDBC访问数据库&#xff0c;实现增删改查功能的实现 3、要求提交实验报告&#xff0c;将代…

扣子平台音频功能:让声音也能“智能”起来。扣子免费系列教程(14)

在数字化时代&#xff0c;音频内容的重要性不言而喻。无论是在线课程、有声读物&#xff0c;还是各种多媒体应用&#xff0c;音频都是传递信息、增强体验的关键元素。扣子平台的音频功能&#xff0c;为开发者和内容创作者提供了一个强大而灵活的工具&#xff0c;让音频的使用和…

小程序项目-购物-首页与准备

前言 这一节讲一个购物项目 1. 项目介绍与项目文档 我们这里可以打开一个网址 https://applet-base-api-t.itheima.net/docs-uni-shop/index.htm 就可以查看对应的文档 2. 配置uni-app的开发环境 可以先打开这个的官网 https://uniapp.dcloud.net.cn/ 使用这个就可以发布到…

Unity游戏(Assault空对地打击)开发(3) 摄像机的控制

详细步骤 打开My Assets或者Package Manager。 选择Unity Registry。 搜索Cinemachine&#xff0c;找到 Cinemachine包&#xff0c;点击 Install按钮进行安装。 关闭窗口&#xff0c;新建一个FreeLook Camera&#xff0c;如下。 接着新建一个对象Pos&#xff0c;拖到Player下面…

UE编辑器工具

如何自己制作UE小工具提高工作效率 在虚幻编辑器用户界面中&#xff0c;可以使用各种各样的可视化工具来设置项目&#xff0c;设计和构建关卡&#xff0c;创建游戏性交互等等。但有些时候&#xff0c;当你确定了需要编辑器执行的操作后&#xff0c;可能想要通过编程方式调用它…

PVE 中 Debian 虚拟机崩溃后,硬盘数据怎么恢复

问题 在 PVE 中给 Debian 虚拟机新分配硬盘后&#xff0c;通过 Debian 虚拟机开启 Samba 共享该硬盘。如果这个 Debian 虚拟机崩溃后&#xff0c;怎么恢复 Samba 共享硬盘数据。 方法 开启 Samba 共享相关知识&#xff1a;挂载硬盘和开启Samba共享。 新建一个虚拟机&#xf…