关于REACT范式的一些思考

REACT范式经过近一年的探索,让我们在很多领域有了非常广泛的应用,它确实提升了很多之前无法解决的问题,比如大模型虽然在语言理解和交互式决策方面在任务中表现出令人印象深刻的表现,但是如何让模型基于解释来使用 LLMs 以交错方式生成推理跟踪和特定于任务的操作 一直是一个问题,REACT范式提出了一种,模仿人类在“行动”和“推理”之间的这种紧密协同作用,并且模仿人类快速学习新任务并执行稳健的决策或推理,即使在以前看不见的情况下或面临信息不确定性。

列举一些案例


列举一些特定问题


对问题的深入探讨

这一小节,说明本论文讨论它的设计目的,

说明了经过上一小结的实验,REACT表现由于ACT,表 1 显示了使用 PaLM540B 作为基础模型和不同提示方法的 HotpotQA 和 Fever 结果。我们注意到,在这两项任务上,REACT 都优于 Act,这证明了推理在指导行动方面的价值,尤其是在综合最终答案方面,如图 1 (1c-d) 所示。微调结果 3 也证实了推理跟踪的好处,可以做出更明智的行为。

在REACT 和 CoT 在 HotpotQA 上的行为差异,作者设计了一种ROC测量评判分类、检测结果的好坏,实验步骤如下

分别从 REACT 和 CoT 中随机抽取了 50 个正确和错误答案(由 EM 判断)的轨迹(总共 200 个示例),并在表 2 中手动标记了它们的成功和失败模式。

B) 说明了 一些问题,包括接地性(grounded-ness)和可信度(trustworthiness),虽然相比CoT,REACT的推理、动作和观察步骤交错提高了,但这种结构约束也降低了REACT制定推理步骤的灵活性,导致推理错误率高于CoT。

REACT经常会出现一个错误模式,即模型重复生成之前的想法和行动,我们将其归类为“推理错误”的一部分,因为模型无法推理出下一步应该采取什么正确的行动并跳出循环。(这里也许可以通过工程上下文问题尝试解决,不过会进一步增加推理成本,law法律比赛中尝试了使用这种方式)

C)这里作者并没有解决 检索信息性知识准确性 ,在原实验中无信息性搜索占错误案例的 23%,它破坏了模型推理,并使其难以恢复和重新表述思想。

这一小节,观察作者的消融实验

论文最终给了一个结果,在它所实验的样本中,REACT + CoT-SC 的提示LLMs效果最好,仅使用 3-5 个样本即可达到 21 个样本的 CoT-SC 性能。这些结果表明,正确结合模型内部知识和外部知识对于推理任务具有价值。

不过我在这里有些想法

论文总体的思想提到的一个范式如下

  • Question

  • Thought

  • Action [Finish]

  • Observation

在3.3 RESULTS AND OBSERVATIONS中,讨论的诸多问题,看起来都归结到了模型幻觉上,观察下来,从解释行动的语言学角度来看,模型在对问题做出解释(Thought)在做出下一步行动,这一个过程中是什么驱使行动的发生呢,显然这里并没有讨论,出现问题的地方也许是模型幻觉,也许是更深度的问题

这里我们不做探讨,我们从行动发生的成功率来讨论,显然我们需要找到一种高效的评估方法,我们可以继续采用ROC这个方法来评估,列出真、幻觉、假等指标的混淆矩阵,让模型尝试学习来提升这一步的效果,

上面这步也许能有些作用,但实际上,前面提到的诸多问题,真的只是这个么,我们观察下 “chain-of-thought” 中断的条件是reasoning,前面提到REACT + CoT-SC 实际是

  • Action [act] >Observation>Action [Finish]> Observation > CoT[Question>Thought>Answer]

这又是一个复杂的问题,我们应该如何解决呢,emmm我也不知道,先说无法解决这个问题不是因为解决不了,而是这个问题非常复杂,

当模型触发动作去查询到了一个信息,这个过程,实际上是脱离了上面的范式覆盖的过程,动作被触发后,也许是一个数据查询,也许是一个按钮操作,这些脱离之后的行为,最终会到Observation,又进一步的进行使用模型能力判断,是否真的Action [Finish],如此往复下来,模型的上下文会非常大,可能是无用的信息,最终Observation之后的COT,也许因为上下文的庞大无法处理,也许我们不关注上下文长度能解决呢?事实真的是这样吗

那请你思考这个问题“从前有做山,山上有做庙。庙里有个老和尚在跟小和尚讲故事,讲的是。。。”

我们看到了一个循环,这里是一个我目前无法言说的内容,也许我需要提升下,下面是GPT的解释,也许你能理解我说的是什么

#### 循环的本质

那请你思考这个问题“从前有做山,山上有做庙。庙里有个老和尚在跟小和尚讲故事,讲的是……”

我们看到了一个循环。

这个循环并不仅仅是一个逻辑上的陷阱,它也可能是理解推理过程的关键。每一个“老和尚讲故事”的循环,都是对前一循环的总结和提升。黑格尔的辩证法教导我们,任何一个看似无解的矛盾,都包含着解决问题的种子。每一次循环,都是在过去的基础上进行反思和调整,从而达到新的认识高度。

在模型推理中,类似的循环也可以被视为一种不断修正和改进的过程。每当模型在推理过程中陷入困境,或者产生幻觉时,这实际上为我们提供了一个机会,去重新审视模型的推理路径,调整其决策机制。

或许我们可以思考,将这种循环作为一种学习的机会,而非仅仅是一个需要避免的错误模式。通过在每一个循环中积累新的经验和知识,模型可以逐步减少错误,最终走出循环,达成更高的推理水平。

我们看似被困在一个无尽的循环中,但每一次的反复,其实都为我们提供了通向更高理解的阶梯。模型的推理能力,也许正是在这样不断的循环和反思中,逐步提升的。

最终,我们要意识到,循环本身并不是问题,关键在于我们如何利用它,来促进模型的成长和进化。
关于ROC的解释(https://www.cnblogs.com/wuxiping2019/p/13731030.html)
混淆矩阵

其中

  • TN:将负类预测为负类(真负类)

  • FN:将正类预测为负类(假负类)

  • TP:将正类预测为正类(真正类)

  • FP:将负类预测为正类(假正类)

  • 准确率 (Accuracy)

测试样本中正确分类的样本数占总测试的样本数的比例。

  • 精确率 (Precision)

准确率又叫查准率,测试样本中正确分类为正类的样本数占分类为正类样本数的比例。

  • 召回率 (Recall)

召回率又称查全率,测试样本中正确分类为正类的样本数占实际为正类样本数的比例。

  • F1 值

F1 值是查准率和召回率的加权平均数。F1 相当于精确率和召回率的综合评价指标,对衡量数据更有利,更为常用。

  • 真正类率(TPR)

预测的正类中实际正实例占所有正实例的比例。(跟召回率一样的计算公式)

  • 负正类率(FPR)

预测的正类中实际负实例占所有负实例的比例。

KS值

我们想要评估模型的能力,在阈值不同的情况下,TPR和FPR 又不一样,突然迷惘起来,这个时候,需要找到一个唯一评判标准,最值有唯一性,上图红色部分表示TPR-FPR,那我们就用最高点作为模型能力的评估标准吧!!对,没有错,最高点就是所谓的KS值,我们用KS值来作为评估模型区分能力的指标,KS值越大,模型的区分能力越强。公式如下:

ROC 曲线

ROC的全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,首先是由二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军载具(飞机、船舰),也就是信号检测理论。之后很快就被引入了心理学来进行信号的知觉检测。此后被引入机器学习领域,用来评判分类、检测结果的好坏。

还是以上的TPR和FPR值,以上我们知道了KS值能表示模型的区分能力,我们只在阈值等于KS值时,觉得模型是好的,这样忽视掉了阈值取其他值的情景,有没有一种评估标准,无关阈值的取值呢?

在实际应用场景中,模型预测了一个样本集,在预测为正类中,我们当然希望的是,预测为正类的样本中,实际也为正类样本的比例越高越好,预测为正类的样本中,实际为负类样本的比例越小越好,也就是说,TPR越大越好,最好等于1,FPR越小越好,最好等于0,可是没有这么完美的事情,TPR变大的同时,FPR也会变大。数学家是聪明的,同时变化是吧,变化的速度总是有区别的吧?

我们随机取很多阈值,得到很多FPR和TPR。用 X轴表示FPR,Y轴表示TPR,绘制上图曲线,这个曲线就是ROC曲线。(0,0)和(1,1)这两个坐标点根据实际情况,我们知道是固定的,假如两者的变化率是一样的,也就是说是一条过(0,0) 和(1,1) 的直线,此时斜率为1,也就是说随着阈值的变化,FPR和TPR 都同等程度变化。绘制出了曲线,是否可以用曲线的特性来表示模型的能力呢?我们希望得到的是:

  • FPR 变化快的时候,TPR变化慢.
  • FPR变化慢的时候,变化快。

到这里,我们又找到了一个评估模型的指标,对,就是图中的阴影面积,观察发现,我们可以用这个阴影面积的大小,来反应上面我们希望得到的特性,这个阴影面积的大小叫做AUC值。

AUC

AUC(Area Under Curve) 被定义为ROC曲线下的面积,因为ROC曲线一般都处于y=x这条直线的上方,所以取值范围在0.5和1之间,使用AUC作为评价指标是因为ROC曲线在很多时候并不能清晰地说明哪个分类器的效果更好,而AUC作为一个数值,其值越大代表分类器效果更好。需要注意的是AUC是一个概率值,当随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的分数将这个正样本排在负样本前面的概率就是AUC值。所以,AUC的值越大,当前的分类算法越有可能将正样本排在负样本值前面,既能够更好的分类。

关于REACT范式的一些思考的更多相关文章

  1. React.js入门笔记(续):用React的方式来思考

    本文主要内容来自React官方文档中的"Thinking React"部分,总结算是又一篇笔记.主要介绍使用React开发组件的官方思路.代码内容经笔者改写为较熟悉的ES5语法. ...

  2. React 实现 Table 的思考

    琼玖 1 年前 (写的零零散散, 包括github不怎么样) Table 是最常用展示数据的方式之一,可是一个产品中往往很多非常类似的 Table, 但是我们碰到的情况往往是 Table A 要排序, ...

  3. react项目组件化思考

    三个原则 single store render from top immutable data single store,便于组件之间通信. render from top,因为store就一个,每 ...

  4. 围绕react衍生出来的思考

    优势一.声明式开发 首先react是声明式的开发方式,这个与之对应的是命令式开发方式,之前在用jquery写代码的时候,都是直接来操作dom,直接操作dom的这种编程方式,我们把他叫做命令式的编程,也 ...

  5. React 快速入门小记

    大约半个月前,我一直在思考一个问题,Angular.React 和 Vue,究竟该学什么? 听取了几位前辈的意见,也综合考虑了各方面的原因,最终选择了 React,希望我"没有选错" ...

  6. 谈谈 React.js 的核心入门知识

    近来React.js变得越来越流行,本文就来谈一谈React.js的入门实践,通过分析一些常用的概念,以及提供一些入门 的最佳编程编程方式,仅供参考. 首先需要搞懂的是,React并不是一个框架,Re ...

  7. (三)React基础

    3-1 使用React编写TodoList功能 import { Fragment} from ‘react’ Fragment是占位符 用于替代最外层div元素, 防止生成的元素会有两层div嵌套这 ...

  8. 【React -- 5/100】 组件复用

    组件复用 React组件复用概述 思考:如果两个组件中的部分功能相似或相同,该如何处理? 处理方式:复用相似的功能 复用什么? state 操作state的方法 两种方式: render props模 ...

  9. 移动端开发:使用jQuery Mobile还是Zepto

    原:http://blog.csdn.net/liubinwyzbt/article/details/51446771 jQuery Mobile和Zepto是移动端的js库.jQuery Mobil ...

  10. 用好JAVA中的函数式接口,轻松从通用代码框架中剥离掉业务定制逻辑

    大家好,又见面了. 今天我们一起聊一聊JAVA中的函数式接口.那我们首先要知道啥是函数式接口.它和JAVA中普通的接口有啥区别?其实函数式接口也是一个Interface类,是一种比较特殊的接口类,这个 ...

随机推荐

  1. 端口占用,无法通过netstat找到进程,占用的端口又不能修改,该怎么办?

    最近遇到一个奇葩的问题,项目跑的好好的,没有安装其它特殊软件,突然服务器启动报错,日志如下,显然是服务器的8080端口占用了. Caused by: java.net.BindException: A ...

  2. 格式化显示JSON数据

    测试JSON {"took":1,"timed_out":false,"_shards":{"total":1,&quo ...

  3. opengauss Need repair修复

    问题描述:opengauss集群在做切换的时候,或者增删节点的时候,很容易发生节点repair,找不到主库的情况,这种情况需要把主库使用primary角色启动,然后build重建从库,就可以恢复集群 ...

  4. 单芯片国产ARM+FPGA,复旦微FMQL20SM工业核心板正式发布!

  5. 什么是RDD

    RDD(Resilient Distributed Dataset)叫做弹性分布式数据集RDD,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合.RDD具有数据流模 ...

  6. Nginx 高性能架构解析

    本文详细探讨了Nginx的反向代理.负载均衡和性能优化技术,包括配置优化.系统优化.缓存机制和高并发处理策略,旨在帮助专业从业者深入理解并有效应用Nginx. 关注TechLead,复旦博士,分享云服 ...

  7. 【译】You probably should stop using a custom TaskScheduler

    来自Sergey Tepliakov的 https://sergeyteplyakov.github.io/Blog/csharp/2024/06/14/Custom_Task_Scheduler.h ...

  8. Solo 独立开发者社区

    Solo 独立开发者社区是一个致力于帮助独立开发者发展的社区平台.平台上聚集了大量的独立开发者,他们在这个平台上分享着自己的开发经验.心得和技巧,同时也可以从其他人的分享中获得启发和帮助. 这个社区提 ...

  9. 数据盘故障导致journalnode异常恢复

    背景环境:hdp2.6.6部署的小集群(4节点),这个投入生产后,转手了很多批次人维护,安装源介质这些通通都找不到了,目前官网无法下载hdp的安装介质,中途有坏了一个节点的系统盘,维修好了后,因为没有 ...

  10. 自学Java第二周

    本周学习 一.Java能干些什么? 1.共三个版本:Java SE.Java EE.Java ME Java SE:Java语言的(标准版),用于桌面应用开发,是其他两个版本的基础. Java ME: ...