简洁的链式思维(CCoT)提示

news2024/11/17 0:28:42

原文地址:Concise Chain-of-Thought (CCoT) Prompting

传统的CoT导致了输出令牌使用的增加,而CCoT提示是一种旨在减少LLM响应的冗长性和推理时间的提示工程技术。

2024 年 1 月 24 日

Areas where Chain-Of-Thought-like methodology has been introduced are:

  • Chain-of-Thought Prompting
  • Multi-Modal Reasoning
  • Multi-Lingual Scenarios
  • Knowledge Driven Applications
  • Chain-of-Explanation
  • Chain-of-Knowledge
  • Chain-of- Verification
  • IR Chain-of-Thought
  • LLM Guided Tree Of Thought
  • Chain-Of-Note
  • Least-To-Most Prompting
  • Chain Of Empathy

CoT

CoT 提示的基本前提是反映人类解决问题的方法,即我们人类将较大的问题分解为较小的步骤。然后,LLM会集中注意力解决每个子问题,从而减少忽视关键细节或做出错误假设的可能性。为了使CoT提示在语言模型中发挥作用,必须确保提示与用户的查询紧密相关,并且推理的步骤要按照正确的逻辑顺序进行排列。

CoT组成部分

桥接是指模型遍历以得出最终结论的符号项。桥接可以由算术任务中的数字和方程组成,也可以由实际任务中的实体名称组成

语言模板是文本提示,指导语言模型在推理过程中导出正确的桥接对象并将其置于上下文中。

连贯性是指基本原理中步骤的正确顺序,对于成功的思想链是必要的。具体来说,由于思维链是一个顺序推理过程,因此后面的步骤不可能成为前面步骤的先决条件。

相关性是指理由是否包含问题中的相应信息。例如,如果问题提到一个名叫利亚的人在吃巧克力,那么讨论另一个人剪头发就无关紧要了。

CoT 提示的吸引力在于它简单、易于检查,并且不像基于梯度的方法那样不透明。然而,正如随后的 Chain-Of-X 方法所示:

  1. 情境学习需要在推理时将高度情境化的信息注入到提示中。
  2. 通过人工注释的数据,以数据为中心的方法变得越来越重要。使用正确的数据需要数据发现、数据设计、数据开发和数据交付。
  3. 随着灵活性的引入,复杂性也随之增加。
  4. 人类观察和检查对于确保系统完整性将变得越来越重要。
  5. 必须引入管理提示​​注入和多重推理架构的更复杂的框架。

CoT明确鼓励LLM为解决问题生成中间推理。这是通过为LLM提供一系列演示中的推理步骤来实现的。CoT提示可以将LLM的性能提高多达80%,对于某些问题任务和问题领域。然而,这些性能提升是以实际成本为代价的,增加了输出令牌使用的费用。此外,推理时间也延长了。

CCoT简介

基于大型语言模型(LLM)的生成式人工智能应用需要通过多管齐下的方法进行优化。这种方法需要考虑提示结构、数据传递、令牌使用和推理延迟。与LLM编排相结合;为最佳任务使用最佳模型。以及以数据为中心的方法进行数据发现、设计和开发。

最近的一项研究引入了一种新的提示技术,称为简洁的链式思维(CCoT)。在这项研究中,标准的CoT与CCoT提示在响应长度和准确性方面进行了比较。对于多项选择题问答,CCoT将响应长度减少了48.70%。因此,CCoT在输出令牌成本上引入了节省,并提供了更浓缩的答案。研究还发现,解决问题性能在CoT和CCoT两种方法之间保持不变。对于数学问题,CCoT的性能惩罚为27.69%。总体而言,CCoT导致平均令牌成本降低了22.67%。

其他CCoT信息

成本与延迟

如果CCoT减少了响应长度,那么CCoT可以用来降低LLM成本。第三方LLM API通常按令牌定价,输出令牌比输入令牌更昂贵。

如下图所示,红色条形图表示输出令牌成本,与蓝色条形图的输入令牌成本相比较。


推理延迟也是一个挑战,可以通过确保响应更短来在一定程度上解决。这可以在不降低性能的情况下实现;研究发现,CCoT在这方面没有性能惩罚。

实际比较

下面是一个仅答案提示的示例,接着是一个传统的冗长CoT提示。最后是一个CCoT提示。

下面是一个仅答案提示的示例。

这里比较了冗长和简洁的CoT提示。


可能的局限性

  • 研究只使用了GPT LLM,看看在开源和功能较弱的LLM上的表现会很有趣。
  • 研究只使用了一个CoT和CCoT提示。因此,其他变体的CoT和CCoT提示可能会产生不同的结果。
  • 考虑到不同任务提示性能的变异,考虑到实施用户意向分流可能效果很好。
  • 并对用户输入进行分类,以便使用编排多个LLM,选择最合适的提示技术等。

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

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

相关文章

RabbitMQ - 07 - 通过注解创建队列和交换机

之前消息模型的实现,都是通过rabbitMQ Management 控制台来手动创建 queue 和 exchange 的 在项目开发中有两种方式通过代码声明 创建 一种是通过 Bean 方式,这种代码量较大 稍繁琐 一种是通过注解的方式声明 先编写消费者代码 通过注解绑定了 消息队列,交换机,还有 routin…

24 深度卷积神经网络 AlexNet【李沐动手学深度学习v2课程笔记】(备注:含AlexNet和LeNet对比)

目录 1. 深度学习机器学习的发展 1.1 核方法 1.2 几何学 1.3 特征工程 opencv 1.4 Hardware 2. AlexNet 3. 代码 1. 深度学习机器学习的发展 1.1 核方法 2001 Learning with Kernels 核方法 (机器学习) 特征提取、选择核函数来计算相似性、凸优…

Python爬虫打印状态码为521,返回数据为乱码?

爬虫代码: import requests headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36,Referer:https://www1.rmfysszc.gov.cn/projects.shtml?dh3&gpstate1&wsbm_slt1} …

Java 中的 File 类常用方法介绍

Java 中的 File 类是 java.io 包的一部分,它提供了丰富的文件操作方法。File 类可以用来表示文件和目录路径名的抽象表示形式,即它可以用来获取文件或目录的属性,也可以用来创建、删除、重命名文件和目录。下面是一些常用的 File 类方法&…

双体系Java学习之程序流程控制及选择结构

程序流程控制 选择结构 package struct;import java.util.Scanner;public class IfDemo01 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.println("请输入内容:");String s scanner.nextLine();//判断字…

elasticsearch篇

1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:动态属性设置)

动态设置组件的属性,支持开发者在属性设置时使用if/else语法,且根据需要使用多态样式设置属性。 说明: 从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 attributeModifier attributeMo…

AI Vtuber一款聚合了多种大模型技术的虚拟主播

大家好,笔者荒生,今天调研了一款比较不错的开源项目AI-Vtuber,和大家一起分享。 AI-Vtuber是一款数字人虚拟直播软件,聚合了多种多种市面主流大模型技术,可谓牛得一逼。包括:支持ChatGPT、Claude、ChatGLM…

C语言学习--练习4(二维数组)

目录 1.统计有序数组中的负数 2.矩阵对角线元素和 3.最富有客户的资产总量 4.托普利兹矩阵 5.矩阵中的幸运数 6.二进制矩阵中的特殊位置 7.岛屿的周长 1.统计有序数组中的负数 //直接遍历二维数组即可 int countNegatives(int** grid, int gridSize, int* gridColSize) …

20240310-2-数组(Array)

数组(Array) 面试中最常见的就是围绕数组进行出题,主要原则数组可以随机读取,一般遇到数组相关的题目,都不是直观看到的那样。第一步暴力解法,第二步是否可以排序,是否可以二分,是否…

【Linux】线程封装_互斥

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 🌎推荐文章:【LeetCode】winter vacation training 目录 👉🏻线程封装Thread.cpp 👉&am…

给 spyter/all-spark-notebook 添加scala支持

spyter/all-spark-notebook默认没有安装scala notebook,需要手动添加。 你可以创建一个新的 Dockerfile,在其中添加你需要的配置和组件。以下是一个简单的例子: FROM jupyter/all-spark-notebook:x86_64-ubuntu-22.04 #冒号后可以是latest&a…

Masked Generative Distillation(MGD)2022年ECCV

Masked Generative Distillation(MGD)2022年ECCV 摘要 **目前的蒸馏算法通常通过模仿老师的输出来提高学生的表现。本文表明,教师还可以通过引导学生特征恢复来提高学生的代表性。从这个角度来看,我们提出的掩模生成蒸馏&#x…

扩展学习|系统理解数字经济

文献来源:[1]肖静华,胡杨颂,吴瑶.成长品:数据驱动的企业与用户互动创新案例研究[J].管理世界,2020,36(03):183-205.DOI:10.19744/j.cnki.11-1235/f.2020.0041. [2]陈晓红,李杨扬,宋丽洁等.数字经济理论体系与研究展望[J].管理世界,2022,38(02):208-22413…

微信小程序跳转到其他小程序

有两种方式,如下: 一、appid跳转 wx.navigateToMiniProgram({appId: 目标小程序appid,path: 目标小程序页面路径,//不配的话默认是首页//develop开发版;trial体验版;release正式版envVersion: release, success(res) {// 打开成功…

yudao-cloud 学习笔记

前端代码 浏览器打开 https://cloud.iocoder.cn/intro/ F12 执行代码 var aaa $(".sidebar-group-items").find("a"); var ll[]; var tt[]; for(var i0;i<aaa.length;i ){ ll.push("https://doc.iocoder.cn" $(aaa[i]).attr("href&quo…

电动车窗开关中MOS管的应用解析

随着科技的不断发展&#xff0c;电动车窗系统已经成为现代汽车中不可或缺的一部分。而MOS&#xff08;金属氧化物半导体&#xff09;管的应用&#xff0c;为电动车窗开关注入了新的活力&#xff0c;极大地提高了其使用寿命和安全性。 一、MOS的优越性能 MOS管以其卓越的开关…

记录西门子:IO隔离SCL编程

在PLC变量中创建IO输入输出 在PLC类型中创建输入和输出&#xff0c;并将PLC变量的输入输出名称复制过来 创建一个FC块或者FB块 创建一个DB块 MAIN主程序中&#xff1a;

【JavaEE初阶系列】——计算机是如何工作的

目录 &#x1f388;冯诺依曼体系 ❗外存和内存的概念 ❗CPU中央处理器—人类当今科技领域巅峰之作之一 &#x1f6a9;如何衡量cpu &#x1f6a9;指令&#xff08;Instruction&#xff09; &#x1f388;操作系统&#xff08;Operating System&#xff09; &#x1f388;…

超越基础:提升你的数据采集策略与IP代理的高级应用

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …