大模型思维链(CoT prompting)

思维链(Chain of Thought,CoT)

**CoT 提示过程是一种大模型提示方法,它鼓励大语言模型解释其推理过程。**思维链的主要思想是通过向大语言模型展示一些少量的 exapmles,在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。
在这里插入图片描述

1.零样本思维链(Zero Shot Chain of Thought,Zero-shot-CoT)

零样本思维链(Zero Shot Chain of Thought,Zero-shot-CoT)提示过程是对 CoT prompting 的后续研究,引入了一种非常简单的零样本提示。他们发现,通过在问题的结尾附加“Let’s think step by step”这几个词,大语言模型能够生成一个回答问题的思维链。从这个思维链中,他们能够提取更准确的答案。
在这里插入图片描述
从技术上讲,完整的零样本思维链(Zero-shot-CoT)过程涉及两个单独的提示/补全结果。在下图中,左侧生成一个思维链,而右侧接收来自第一个提示(包括第一个提示本身)的输出,并从思维链中提取答案。这个第二个提示是一个自我增强的提示。
在这里插入图片描述

2.多数投票提高CoT性能——自洽性(Self-consistency)

Self-Consistency Improves Chain of Thought Reasoning in Language Models.
这篇文章几乎用的和 CoT 完全一样的数据集和设置,主要改进是对答案进行了多数投票(majority vote),并且发现其可以显著地提高思维链方法的性能。

文章提出的方法叫自洽性(Self-consistency),是对 CoT 的一个补充,它不仅仅生成一个思路链,而是生成多个思路链,然后取多数答案作为最终答案。

3.LtM (Least to Most prompting)提示

最少到最多提示过程 (Least to Most prompting, LtM) 将思维链提示过程 (CoT prompting) 进一步发展,首先将问题分解为子问题,然后逐个解决。它是受到针对儿童的现实教育策略的启发而发展出的一种技术。

与思维链提示过程类似,需要解决的问题被分解成一组建立在彼此之上的子问题。在第二步中,这些子问题被逐个解决。与思维链不同的是,先前子问题的解决方案被输入到提示中,以尝试解决下一个问题。

context + 子问题 + 子问题解题过程 + 子问题答案 + 最终问题,然后让模型去生成解题过程和正确答案,那么这一步也是用 CoT 来做的。

4.Flan-PaLM/T5:CoT + Finetuning

Scaling Instruction-Finetuned Language Models
总结一下,这篇工作提出了 Flan 的微调框架,核心有四点:

  1. 统一的输入输出格式(4种类型)
  2. 引入 CoT (chain-of-thought)
  3. 大幅提高任务数量
  4. 大幅提高模型体积
    实现了用一个模型来解决超过 1800 种几乎全部的 NLP 任务,通过较低的成本,极大发掘了现有语言模型的泛化性能,让大家看到了通用模型的希望。

5.提升小模型的推理能力:Fine-tune-CoT

Fine-tune-CoT 的核心思想是采用 Zero-Shot-CoT 生成我们的问答数据,然后使用温度 T 采样(也可以用 Top-k 采样),以此生成尽可能多的数据,然后再进行 Fine-tune。

其实就是使用不同的温度参数 T 采样,用 ChatGPT 这样的大模型生成 CoT 数据,然后再用小模型进行 Fine-tune。

CoT的局限性

首先,思维链必须在模型规模足够大时才能涌现。

在 Jason Wei 等的研究中,PaLM 在扩展到 540B 参数时,与思维链提示结合,才表现出了先进的性能。一些小规模模型,思维链并没有太大的影响,能力提升也不会很大。

谷歌大脑的研究人员认为,策略问题需要大量的世界知识,而小型模型没有足够的参数来记忆这些世界知识,所以也不太可能产生正确的推理步骤。

但问题是,能落地到产业的模型,规模必然不会太大,思维链拆解了更多的步骤、用到更多的计算资源,相当于更加耗费脑力,很多研究机构和企业是负担不起 175B 参数以上的大模型。

所以思维链必须要探索,如何在较小的模型中进行推理,降低实际应用的成本。

其次,思维链的应用领域是有限的。

目前,思维链只是在一些有限的领域,比如数学问题,五个常识推理基准(CommonsenseQA,StrategyQA,Date Understanding 和 Sports Understanding 以及 SayCan)上显现出作用,其他类型的任务,像是机器翻译,性能提升效果还有待评估。

而且,相关研究用到的模型(GPT-3 API)或数据集,都是半公开或不公开的,这就使其难以被复现和验证。严谨来看,思维链的效果还需要被进一步探索,才能下定论。

此外,即使有思维链提示,大语言模型依然不能解决小学水平的数学问题。

没有思维链,数学推理是指定不行。但有了思维链,大语言模型也可能出现错误推理,尤其是非常简单的计算错误。Jason Wei 等的论文中,曾展示过在 GSM8K 的一个子集中,大语言模型出现了 8% 的计算错误,比如6 * 13 = 68(正确答案是78)。

这说明,即使有了思维链,大语言模型还是没有真正理解数学逻辑,不知道加减乘除的真实意义,只是通过更精细的叠加来“照葫芦画瓢”,所以,对于有精确要求的任务,还要进一步探索新的技术。

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

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

相关文章

HTML 学习笔记(七)列表

html中的列表分为以下三种:有序列表,无序列表和自定义列表 1.有序列表 有序列表由两个元素组成:元素ol和元素li,此两个元素是父子关系,li必须包裹在ol里使用, ol里直接嵌套的只有li,其嵌套效果…

【亲身经历】linux中使用mv命令之后,文件找不到

先说解决方案:移动过程的目的目录,使用了"/",这个斜杠标识加到目录名前面,表示会移动到根目录下的文件夹,而不是你想移动的那个文件夹,最后导致没找到。 某次升级tomcat的过程中,使用了mv移动文…

ky10 server 银河麒麟服务器主备搭建 (nginx+keepalived)

下载脚本代码 git clone https://gitcode.net/zengliguang/nginx_keepalived_ky10_x.git 进入脚本路径 更新脚本代码 更新完成 执行安装脚本 安装nginx离线编译安装依赖 解压nginx源码 检查环境 编译 nginx安装成功 安装keepalived keepalived安装成功

详解前端登录流程:实现原理与最佳实践

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Mysql安装好后my.ini文件在何处

文章目录 报错 Invalid default value for ‘‘begin_time‘‘my.ini文件何在 背景:导入一个sql脚本时执行报错,需要修改my.ini中的一个配置 报错 Invalid default value for ‘‘begin_time‘‘ 需要修改my.ini中的slq-mode配置 参考的这个哥们博客配…

unityplayer.dll是什么,电脑缺少unityplayer.dll的解决方法分享

如何解决“缺失unityplayer.dll”错误?当您尝试启动一个应用程序或游戏时,您可能会看到一个错误消息,显示“找不到unityplayer.dll”或unityplayer.dll丢失。这通常是因为Unity引擎未正确安装或文件已丢失或损坏。这篇文章将向您介绍如何解决…

Redis进阶--一篇文章带你走出Redis

目录 什么是Redis?? Redis有哪些使用场景? Redis是单线程还是多线程? 为什么Redis是单线程速度还是很快?? Redis持久化 RDB机制:(Redis DataBase) [是redis中默认的持久化方式] AOF机制:(Append Only File) Redis和MySQL如何保持数据一致????…

Unity中PICO实现 隔空取物 和 接触抓取物体

文章目录 前言一、隔空取物1、XR Grab Interactable2、调节扔出去时的相关系数3、用手柄射线指向需要抓取的物体后,按下侧边扳机键即可抓取 二、接触抓取物体1、替换手柄上抓取物体的脚本2、在手柄上添加 接触抓取物体的脚本3、在手柄上添加碰撞盒触发器4、在需要抓…

BUUCTF-Misc6

数据包中的线索1 1.打开附件 发现是一个流量包 2.Wireshark 用Wireshark打开 右键属性,追踪tcp流,发现base64编码 3.base64转图片 将base64编码保存为文本文档 Python脚本 import os,base64 with open("/root/桌面/3/1.txt","r"…

安全防御-第七次

在FW5和FW6之间建立一条IPSEC通道保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 NAT: 安全策略: NAT: 安全策略: 修改服务器映射: 配置IPSEC:

SMT32 TIM1 PWM(发送固定脉冲数)步进电机梯形图加速

(因为电机的启停惯性和步进电机越慢扭力越大的原因);所以步进电机使用梯形加速,可以实现更小的丢步 思路:在PWM中断中做计数,前20个脉冲和后20个脉冲频率设置一样低,中间的脉冲频率设置快一点

探索数据可视化:Matplotlib 基础指南

图形绘制 import numpy as np import pandas as pd import matplotlib.pyplot as pltx np.linspace(0,2 * np.pi,100)# 说明:正弦波。x:NumPy数组 # 所有的数据,进行正弦计算 y np.sin(x)plt.plot(x,y)# 指定x轴范围 plt.xlim(-1,10) # 指…

深入了解304缓存原理:提升网站性能与加载速度

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

React改变数据【案例】

State传统方式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>React Demo</title> <!--…

go语言添加代理

LiteIDE 工具->管理 https://mirrors.aliyun.com/goproxy/或https://goproxy.cn,direct 命令行 go env -w GOPROXYhttps://goproxy.cn,direct

设计模式-行为型设计模式-命令模式

命令模式&#xff08;Command&#xff09;&#xff0c;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。[DP] // 命令接口 interface Command {void execute(); }// 具体命…

C++ 标准库类型string

C/C总述&#xff1a;Study C/C-CSDN博客 目录 定义和初始化string对象 string的增 使用push_back进行尾插 使用insert插入 使用append函数完成string的拼接 string的删 使用pop_back进行尾删 使用erase删除 string的查 使用find函数正向搜索第一个匹配项 使用rf…

C语言指针从入门到基础详解(非常详细)

1.内存和地址 我们知道电脑中的CPU在处理数据的时候需要在内存中读取数据处理后的数据也会放在内存中。把内存划分为一个个的内存单元每个单元的大小是一个字节。每个字节都有它对应的编号也就是它的地址&#xff0c;以便CPU可以快速的找到一个内存空间。C语言中我们把地址叫做…

推房子游戏c++

这段代码是一个推箱子游戏的实现。游戏中有一个地图&#xff0c;地图上有墙壁、人、箱子和目标位置。玩家通过键盘输入WASD或方向键来控制人物的移动&#xff0c;目标是将所有的箱子推到相应的目标位置上。 代码中的dt数组表示地图&#xff0c;每个位置上的字符表示对应的元素…

星闪联盟和宝尊助力平台合作战略伙伴,为老百姓接力,传递这份大爱

星闪联盟和宝尊助力平台合作战略伙伴,为老百姓接力,传递这份大爱传承下去。 星闪联盟是致力于全球化的产业联盟,目标是推动新一代无线短距通信技术SparkLink的创新和产业生态,承载智能汽车、智能家居、智能终端和智能制造等快速发展的新场景应用,满足极致性能需求。2020年9月2…