chain of thought 也就是 CoT思维链

2023-11-06

  • chain of thought 也就是 CoT ,一经提出就引发了社区对它的热烈讨论,CoT 能够帮助大规模语言模型解决复杂的算术常识及字符推理等任务。

背景知识

语言模型

  • 语言模型的本质是对任意一段文本序列的概率进行建模
  • 如果将语言模型看成一个大黑盒的话,它的输入是一段文本序列,输出也是一段文本序列,通过训练语言模型,就能使得给定的文本序列和输出的文本序列拼接起来所组成的一整段文本序列的概率尽可能比较大
  • 文献:Chain of Thought Prompting Elicits Reasoning in Large Language Models(arxiv.org/abs/2201.1190
  • 这种情况下使用到了少样本学习,在输入问题之前,手动设计一些问题和答案的样例(样例的答案给出中间推理步骤),这些问题和答案都需要手动构造,所以叫 Manual-CoT
  • 语言模型的输入是一些手动设计的问题和答案的参考样例连接一个真正需要求解的问题,然后让语言模型进行续写
  • Manual-CoT Zero-Shot-CoT 的性能要好,因为它采用的是 few shot ,在输入中提供了一些问题、中间推理步骤以及答案的样例给语言模型进行参考。但是,提供这些样例需要进行人工设计,这就需要一定的人工成本

4、Auto-CoT

Abstract

现在语言模型的规模越来越大,但是即便是现在最大的语言模型,它们也往往很难在涉及到推理方面的任务取得很好的表现,也就是说,他们通常很难在数学,符号,以及常识的推理上取得尚佳的表现

这篇文章主要是针对大语言模型在遇到语言推理任务时的局限性,提出了 chain of thought,也就是思维链

  • 文中也给出了 CoT 的定义:人类在遇到一系列问题时所产生的推理步骤,而它们的表现形式就是一系列的短句子(比如说在背景介绍中所提到的遇到数学问题时所产生的中间推理步骤)

最终的实验效果非常好,比如说在使用谷歌内部的 540B 参数量的 PaLM 大语言模型,CoT 能够在像 GSM8K 这样比较难一点的数学问题数据集上取得新的 state of art

在此前关于大规模语言模型的推理任务中,有两种方法:针对下游任务对模型进行微调;为模型提供少量的输入输出样例进行学习。但是这两种方法都有着局限性,前者微调计算成本太高,后者采用传统的输入输出样例在推理任务上效果很差,而且不会随着语言模型规模的增加而有实质性的改善。

语言模型的规模达到 100B 的参数量之后,就能够在像 sentiment analysis and topic classification 这种分类任务上取得非常好的结果

  • 作者将这类任务归纳为 system-1,也就是能够人类很快很直观地理解的任务
  • 还有一类任务需要很慢而且是很仔细的考虑,作者将其归纳为 system-2 (比如一些设计逻辑、常识的推理任务

作者发现,即便语言模型的规模达到了几百B的参数量,也很难在 system-2 这类任务上获得很好的表现

  • 作者将这种现象称为 flat scaling curves:如果将语言模型参数量作为横坐标,在 system-2 这类任务上的表现作为纵坐标,则折线就会变得相当平缓,不会像在 system-1 这类任务上那么容易就实现模型的性能随着模型参数量的增长而提升,也就是说,在 system-2 这类任务上语言模型就很难大力出奇迹了

针对这个问题,作者提出了 chain of thought (CoT)这种方法来利用大语言模型求解推理任务

  • 上图展示了在 CoT 诞生之前是怎样使用标准的 prompting 方法来求解推理任务的
  • 首先这是一个少样本学习的方法,需要给出一些问题和答案的样例,然后拼接这正想要求解的问题,最后再拼接一个字符串“A:”之后输入到大语言模型中,让大语言模型进行续写
  • 大语言模型会在所提供的问题和答案的样例中学习如何求解,结果发现很容易出错,也就是上面提到的大语言模型在 system-2 上很容易遇到瓶颈

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

chain of thought 也就是 CoT思维链 的相关文章

随机推荐

  • 搜索引擎solr系列---solr分词配置

    分词我理解的是 输入的一句话 按照它自己定义的规则分为常用词语 首先 Solr有自己基本的类型 string int date long等等 对于string类型 比如在你的core conf manage schema文件中 配置一个字段
  • 【教程】Matrikon OPC使用教程连载(二)

    MatrikonOPC介绍 Matrikon 是基于OPC UA和基于OPC的控制自动化数据互操作性产品的供应商 提供自动化厂商的高级OPC UA开发工具包 适用于从嵌入式设备到云应用的所有产品线 对于终端用户客户 Matrikon提供了关
  • 【elementplus】解决el-table的固定列不固定了

    如图所示 只要只有表头还是固定的 表体不固定了 解决方法 取消给表格固定列设置的position 我这里是因为设置了position relative导致的 ep table fixed column right position rela
  • Cookie的创建和读取和常用方法

    b 如何创建 Cookie Servlet 程序中的代码 public class CookieServlet extends BaseServlet 创建Cookie param req param resp throws Servlet
  • 数据结构知识点复习

    第一章 数据结构概述 基本概念与术语 数据 数据是对客观事物的符号表示 在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称 数据元素 数据元素是数据的基本单位 是数据这个集合中的个体 也称之为元素 结点 顶点记录 补充
  • MyBatis中 sql标签和include标签的使用

  • Flutter报错Building with plugins requires symlink support的解决方法

    错误 Building with plugins requires symlink support Please enable Developer Mode in your system settings Run start ms sett
  • js 识别当前设备信息 是否是移动端

    一 navigator userAgent 对象 最简单的方法就是分析浏览器的 user agent 字符串 它包含了设备信息 JS 通过navigator userAgent属性拿到这个字符串 只要里面包含mobi android iph
  • 小程序实现弹幕功能-无限循环,不会重叠

    以下是支付宝小程序代码 先上效果图 以下是axml代码
  • QT小例子GUI(主)线程与子线程之间的通信

    QT小例子GUI 主 线程与子线程之间的通信 在主线程上 可以控制子线程启动 停止 清零 如果子线程启动的话 每一秒钟会向主线程发送一个数字 让主线程更新界面上的数字 ifndef TQT H define TQT H include
  • Caffe中 math_functions 分析

    本篇博客转载自 Caffe源码 一 math functions 分析 math function 定义了caffe 中用到的一些矩阵操作和数值计算的一些函数 这里以float类型为例做简单的分析 1 caffe cpu gemm temp
  • huggingface transformers 预训练模型加载参数设置

    说明 1 proxies 服务器无法直接访问互联网需通过代理访问 2 cache dir model及dadaset文件过大多次容易导致服务器存储过高 手工选择存储位置 model tokenizer from pretrained ber
  • TCP 滑动窗口详解(非常实用)

    一 滑动窗口简介 滑动窗口 Sliding window 是一种流量控制技术 早期的网络通信中 通信双方不会考虑网络的 拥挤情况直接发送数据 由于大家不知道网络拥塞状况 同时发送数据 导致中间节点阻塞掉包 谁也发不了数据 所以就有了滑动窗口
  • linux读取触摸屏事件数据

    对于有触摸设备的电脑或者手机 通过cat proc bus input devices应该就能够看到触摸设备的相关信息 比如 cat proc bus input devices I Bus 0013 Vendor 0x0012 Produ
  • 初学者该掌握的计算机知识,初学者该如何学习电脑知识

    看到不少刚入门的电脑刚入门者找不到适合自己的学习方法 到处碰壁 那么呢 接下来大家跟着小编一起来了解一下学习电脑知识的解决方法吧 初学者学习电脑知识方法 第一阶段 鼠标和键盘的操作 鼠标的操作主要是 移动 拖动 单击 双击和右击 知道鼠标的
  • 优化最小二乘支持向量机数据回归预测:基于鸽群算法与PIO-lssvm(附Matlab代码)

    优化最小二乘支持向量机数据回归预测 基于鸽群算法与PIO lssvm 附Matlab代码 支持向量机 SVM 是一种广泛应用于分类和回归问题的机器学习方法 然而 在SVR中 传统的最小二乘支持向量机 LSSVM 需要通过手动设置超参数来进行
  • Java webservice 客户端代码(四种方式)

    方式一 用hutool工具 String authenticationUrl http 139 196 206 126 8081 services WorkflowService wsdl HashMap
  • elasticsearch报错:DeprecationWarning: Passing transport options in the API method is deprecated.

    这个警告是因为您正在使用 Elasticsearch Python 客户端的一个过时的方式来传递传输选项 transport options 根据警告信息 现在建议使用 Elasticsearch options 方法来设置传输选项 以下是
  • 关于各种merge 的心得

    合并两个线性表 包括合并两个有序线性表 两个线性表相加等 第一 遍历两个表的时候 用 代替 空的那一方取0参与计算就可以了 这样就不用后面处理长的那个表剩下来的部分了 第二 对于进位 也放到 里去 这样不用后面处理最后是否有进位了
  • chain of thought 也就是 CoT思维链

    chain of thought 也就是 CoT 一经提出就引发了社区对它的热烈讨论 CoT 能够帮助大规模语言模型解决复杂的算术 常识及字符推理等任务 背景知识 语言模型 语言模型的本质是对任意一段文本序列的概率进行建模 如果将语言模型看