Guiding Large Language Models viaDirectional Stimulus Prompting

news2024/9/28 0:04:05
1. 通过定向刺激提示指导大语言模型

论文地址:[2302.11520] Guiding Large Language Models via Directional Stimulus Prompting (arxiv.org)

源码地址:GitHub - Leezekun/Directional-Stimulus-Prompting: [NeurIPS 2023] Codebase for the paper: "Guiding Large Language Models with Directional Stimulus Prompting"

37th Conference on Neural Information Processing Systems (NeurIPS 2023).

1. 摘要 

我们引入了定向刺激提示,这是一种新颖的框架,用于指导黑盒大语言模型(LLM)实现特定的所

需输出。我们的方法不是直接调整 LLM,而是采用小型可调策略模型(例如 T5)为每个输入实例

生成辅助定向刺激提示。这些定向刺激提示充当细致入微的、特定于实例的提示和线索,指导LLM

生成所需的结果,例如在生成的摘要中包含特定的关键字。我们的方法通过优化政策模型来探索使

LLM与期望行为保持一致的定向刺激提示,从而回避了直接调整LLM的挑战。政策模型可以通过

1)使用标记数据进行监督微调和 2)基于 LLM 输出的离线或在线奖励进行强化学习来优化。我们

评估了我们的总结、对话响应生成和思维链推理任务的方法。我们的实验表明,该框架使用最少的

标记数据持续提高了LLM(例如 ChatGPT、Codex、InstructGPT)在这些监督任务上的性能。值

得注意的是,我们的方法仅使用 MultiWOZ 数据集上的 80 个对话,就将 ChatGPT 的性能提高了

41.4%,令人印象深刻,匹配或超越了一些完全监督的最先进模型。此外,与人工制作或自动生成

的提示相比,我们的方法生成的特定于实例的思维链提示提高了 InstructGPT 的推理准确性。

2. 引入

由于直接针对特定任务优化LLM对于大多数用户和开发人员来说效率低下且不可行,因此研究人员

转而采用优化提示的方法。提示工程方法涉及手动或自动设计最佳的特定任务自然语言指令并选择

适当的训练样本以在提示中进行演示,一直是许多研究人员关注的焦点[6,55,79,39]。尽管做出了

这些努力,有效引导LLM产生期望的结果并有效利用标记数据仍然是一个重大挑战。

为了应对这一挑战,我们提出了一种称为定向刺激提示(DSP)的新颖框架。该框架在提示中引入

了一个称为“定向刺激”的新组件,为LLM提供细致入微的、特定于实例的指导和控制。具体来说,

定向刺激提示充当输入查询的“提示”和“线索”,引导LLM获得所需的输出。值得注意的是,这与使

用从外部来源检索的额外知识来增强LLM的方法不同[25, 60],因为定向刺激提示是仅根据我们框

架中的输入查询生成的。图 1 将我们提出的提示方法 DSP 与摘要任务的标准提示进行了比较。我

们的方法将提示中的关键词作为定向刺激提示,以暗示所需摘要应涵盖的关键点。通过定向刺激提

示提供这种特定于实例的指导,LLM可以生成与所需参考摘要更加一致的输出。

我们利用相对较小且可调节的 LM(例如 T5)作为策略模型来为每个输入查询生成定向刺激提示。

这种方法使我们能够通过优化小型可调策略模型来避开黑盒LLM的直接优化。我们使用一些收集的

标记数据通过监督微调(SFT)来训练策略模型。经过监督微调后,我们进一步优化政策模型,通

过强化学习(RL)探索更好的定向刺激提示。在 RL 训练期间,我们的目标是最大化定义为下游绩

效衡量标准或以政策模型产生的刺激为条件的 LLM 输出的任何其他衡量标准的奖励。

图 2 提供了我们的框架的概述,使用摘要任务作为说明性示例。我们采用紧凑、可调的策略模型来

生成定向刺激提示,该提示指定应包含在LLM生成的摘要中的关键字。

图 1:我们的定向刺激提示与使用 LLM(例如 ChatGPT)进行摘要任务的标准提示方法的比较。

DSP 利用定向刺激/提示(以橙色突出显示)(在本例中为关键字)为LLM生成摘要(以蓝色突出

显示)提供特定于实例的指导,以更好地与具有较高 ROUGE 分数或其他度量的所需参考摘要保

持一致就像人类的喜好一样。

图 2:我们提出的 DSP 框架概述,我们在其中学习一个小型可调政策模型来生成定向刺激(在本

例中为关键字),为LLM实现所需目标提供特定于输入的指导。策略模型可以使用 SFT 和/或 RL

进行训练,其中奖励被定义为下游任务绩效度量,例如摘要任务的 ROUGE 分数,或其他对齐度

量(例如人类偏好)。 

3. 监督微调

对于下游任务,存在输入空间X、X上的数据分布D和输出空间Y。由于强大的上下文学习和少量提

示能力,LLM可以执行不同的任务,并通过在提示中包含描述任务的指令、一些演示示例和输入查

询 x 来生成输出 y [6]。然而,此类提示并不总能引导LLM走向所需的输出,特别是当涉及细粒度

的特定于实例的所需行为时。

例如,在摘要任务中,输入x是一篇文章,输出y是相应的摘要。不同的总结者有不同的风格并强调

文章的不同方面[16]。在这种情况下,仅仅依靠特定于任务的说明或演示示例来描述每个样本的这

种细微差别,可能不足以有效地引导LLM生成与参考摘要密切匹配的摘要。

为此,我们的定向刺激提示(DSP)方法在提示中引入了一小块名为“定向刺激”的离散标记 z,作

为提示和线索,为LLM提供朝着所需方向的细粒度指导。例如,对于摘要任务,定向刺激 z 可能由

应包含在所需摘要中的关键字组成。为了为每个输入查询生成这种刺激,我们使用一个小型可调策

略语言模型 。然后,我们使用生成的刺激 z 以及原始输入 x 来构建提示,引导 LLM 通

过黑色生成其输出 。框 API 调用。需要注意的是,LLM、pLLM 的参数不可访问或

可调。总体而言,当使用带有 DSP 的 LLM 来执行下游任务时,通过

获得输出。

为了训练为 LLM 生成定向刺激的策略模型,我们首先在一小部分标记的集合上对预训练的 LM

(例如 T5、GPT-2 等)进行监督微调(SFT)数据。为了收集数据,我们可以根据下游任务启发

式地为每个输入查询 x 和目标输出 y 对选择或注释“伪刺激” z*。例如,对于摘要任务,我们使用

参考摘要包含的关键字作为伪刺激,而对于对话响应生成任务,我们使用指示所需系统响应的潜在

含义的对话行为 。生成的数据集 D′ = {(x, z*)} 由输入刺激对组成。然后,我们通过最大化对数似

然来微调策略模型:

4. 强化学习

我们的目标是通过最大化对齐度量 R 来引导 LLM 一代朝着期望的目标前进,它可以采取多种形

式,例如下游任务绩效度量(例如,用于总结的 ROUGE 分数)、人类偏好或其他定制的措施。

从数学上讲,我们的目标是最大化以下目标:

由于黑盒LLM的参数不可访问或可调,我们通过优化政策模型来产生定向刺激,引导LLM一代实现

目标最大化。为了实现这一目标,我们定义了另一个衡量 RLLM 的方法,它捕获了 LLM 在给定刺

激 z 的条件下的表现:

这使我们能够将最大化 R 的原始目标转化为优化政策模型,以产生最大化 RLLM 的刺激。通过这

样做,LLM被有效地用作评估函数来指导政策模型产生更有效的定向刺激。因此,等式 2 中 LLM

的优化目标等于策略模型的优化目标:

然而,上述优化对于策略模型来说是棘手的。为了解决这个问题,我们将策略模型优化表述为强化

学习问题,并采用近端策略优化(PPO)[59]。我们使用策略模型初始化策略网络 ,然

后使用 PPO 更新 π。策略模型生成一系列令牌作为刺激 z 的过程可以看作是一个马尔可夫决策过

程 (MDP) 〈S, A, r, P〉,具有状态空间 S、动作空间 A、奖励函数 r 和状态-转移概率P。在episode

的每个时间步t中,智能体根据当前策略网络π(z|x, z<t)的分布从词汇表V中选择一个动作

(token)。当选择序列结束标记时,情节结束,并生成刺激 z。我们可以通过优化奖励 r 来微调策

略网络 π:

我们的目标是最大化等式 4 中的目标,该目标可用作奖励 r。为了防止策略网络 π 偏离初始策略模

型 pPOL 太远,我们还添加了 KL 散度惩罚奖励。因此,最终的奖励变为:

我们在训练期间动态调整系数β:

为了优化策略网络 π,我们使用[54]中的 PPO 的 NLPO 版本,它是专门为语言生成器设计的。为

了解决 PPO 中动作空间较大的问题,NLPO 学习使用 top-p 采样来屏蔽词汇表中不太相关的标

记。该技术将动作空间限制为最小的标记集合,其累积概率大于给定的概率参数 p,我们在实验中

将其设置为 0.9。策略网络 π 和价值网络都是从有监督的微调策略模型 pPOL 初始化的,价值网络

的最后一层随机初始化以使用回归头输出标量值。

5. 实验评估

我们在 CNN/Daily Mail 数据集上进行实验,这是一个广泛使用的新闻摘要基准。为了保持 API 使

用成本较低,我们对训练集中总共 287,113 个样本中的 1,000、2,000 和 4,000 个文章摘要对的子

集进行训练。为了进行评估,我们根据之前的工作 [16, 65] 随机选择了 500 个样本,这已被证明可

以提供足够的统计功效 [8]。我们使用基于重叠的指标,包括 ROUGE [33]、BLEU [47] 和 Meteor

[3],以及基于相似性的指标 BERTScore [74],将生成的摘要与参考文献进行比较。报告的评估分

数是每个查询的 ChatGPT 的三个推理的平均值,使用温度 0.7 和 top_p 1.0。

我们使用关键字作为伪刺激来训练具有监督微调的策略模型,为了收集数据,我们使用 textrank

[41, 5] 自动从文章和摘要中提取关键词,并仅保留参考摘要中出现的关键词。我们获得了数据集中

每个文章-摘要对的提取关键字列表。为了将它们转换成作为刺激的句子,我们使用分割标记“;”将

它们连接起来,从而得到格式为“[Keyword1];  [Keyword 2]; ...; [Keyword N]”。我们使用构建的文

章-刺激对通过监督来训练政策模型微调。训练的输入格式是“提取关键词:[文章]”,输出是由关键

词组成的目标刺激。策略模型以 2 × 10−5 学习率训练 5 个批次。

我们计算生成的摘要和参考摘要之间的 ROUGE-Avg 分数作为奖励,重新调整系数为 10。我们通

过实验发现其他自动评估指标(例如 BLEU 和 Meteor)表现类似。为了减少方差,我们使用温度

为 0.7 的 ChatGPT 为每个输入查询生成四个输出,并计算平均奖励。此外,我们分配了逐步奖

励,我们发现这可以提高训练过程的效率和稳定性。具体来说,策略模型在每个情节中生成一系列

关键字,在此期间,如果关键字出现在参考摘要中,我们将给予奖励 1,否则给予 -0.2 的惩罚奖

励。我们训练策略网络 51k 集,每批 5 个时期,批大小为 8,学习率为 2 × 10−6 。公式 7 中的

KLtarget 和 β0 分别设置为 0.5 和 0.005。

图 3:ChatGPT 与标准提示和使用 SFT 训练的 DSP 的性能比较和SFT+RL,使用来自 CNN/Daily

Mail 数据集的不同数量的训练样本

图 4:来自 CNN/每日邮报数据集的 1000 个样本的训练曲线。

我们仅使用 1%(80 个对话)和 10%(800 个对话)来训练策略模型并评估完整验证和测试集

(包含 1,000 个对话)的性能。我们使用标准的评估指标: Inform,衡量提供满足用户需求的适

当实体的比率;succ.:衡量所有请求的属性得到答复的比率; BLEU:带有参考答案的语料库级

别 BLEU 分数;综合评分=(Inform+succ.)×0.5+BLEU。同样,我们报告三个推理的平均得分。

当使用 DSP 或标准提示时,我们使用相同的三个演示示例。

策略网络训练了 52k 集,每批 5 个时期,批大小为 8,学习率为 2 × 10−6 。由于生成的对话行为

应遵循业务逻辑和本体,因此我们确保更新后的策略网络不会显着偏离原始策略模型。因此,我们

将公式 7 中的 KLtarget 和 β0 分别设置为 0.2 和 0.01。

表 1:不同方法在 MultiWOZ 2.0&2.1 数据集上的响应生成性能,其中 Succ.和comb.。分别表示成

功和综合得分指标。

我们在不同的触发提示下测试了 InstructGPT (text-davinci-002) 的零样本 CoT 推理能力。

MultiArith数据集[57]中有600个示例,我们将其分为300/50/250个用于训练/验证/测试集。至于

AQuA数据集[35],我们使用标准测试集有 254 个样本,其中 300 个样本来自标准训练集用于我们

的训练,100 个样本来自标准验证集用于我们的验证。 

表 2:InstructGPT (text-davinci-002) 的零样本思维链性能不同的提示。*我们的方法训练策略

模型以生成特定于实例的提示触发器,与[26,79]中特定于任务的提示进行比较。

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

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

相关文章

[mmucache]-ARMV8-aarch64的虚拟内存(mmutlbcache)介绍-概念扫盲

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 思考: 1、cache的entry里都是有什么&#xff1f; 2、TLB的entry里都是有什么? 3、MMU操作…

保持长期高效的七个法则(一)7 Rules for Staying Productive Long-Term(1)

Easily the best habit I’ve ever started was to use a productivity system.The idea is simple:organizing all the stuff you need to do (and how you’re going to do it) prevents a lot of internal struggle to get things done. 无疑&#xff0c;我曾经建立过的最好…

简单了解TCP/IP四层模型

什么是计算机网络&#xff1f; 计算机网络我们可以理解为一个巨大的城市地图&#xff0c;我们想从A地前往B地&#xff0c;其中要走的路、要避开的问题都交给计算机网络解决&#xff0c;直到我们可以正常的到达目的地&#xff0c;那么我们会把其中的过程抽象成一个网络模型&…

分布式执行引擎ray入门--(3)Ray Train

Ray Train中包含4个部分 Training function: 包含训练模型逻辑的函数 Worker: 用来跑训练的 Scaling configuration: 配置 Trainer: 协调以上三个部分 Ray TrainPyTorch 这一块比较建议直接去官网看diff&#xff0c;官网色块标注的比较清晰&#xff0c;非常直观。 impor…

APP2:android studio如何使用lombok

一、前言 不知道从哪个版本开始&#xff0c;android studio便无法在plugins中下载lombok了&#xff0c;有人说是内置了&#xff0c;好像有这么回事儿。我主要面临如下两个问题&#xff1a; 使用内置lombok&#xff0c;可以自动生成setter、setter、toString等。但是&#xff0…

政安晨:【深度学习处理实践】(五)—— 初识RNN-循环神经网络

RNN&#xff08;循环神经网络&#xff09;是一种在深度学习中常用的神经网络结构&#xff0c;用于处理序列数据。与传统的前馈神经网络不同&#xff0c;RNN通过引入循环连接在网络中保留了历史信息。 RNN中的每个神经元都有一个隐藏状态&#xff0c;它会根据当前输入和前一个时…

【QT+QGIS跨平台编译】之七十:【QGIS_Analysis跨平台编译】—【qgsrastercalcparser.cpp生成】

文章目录 一、Bison二、生成来源三、构建过程一、Bison GNU Bison 是一个通用的解析器生成器,它可以将注释的无上下文语法转换为使用 LALR (1) 解析表的确定性 LR 或广义 LR (GLR) 解析器。Bison 还可以生成 IELR (1) 或规范 LR (1) 解析表。一旦您熟练使用 Bison,您可以使用…

free pascal 调用 C#程序读 Freeplane.mm文件,生成测试用例.csv文件

C# 请参阅&#xff1a;C# 用 System.Xml 读 Freeplane.mm文件&#xff0c;生成测试用例.csv文件 Freeplane 是一款基于 Java 的开源软件&#xff0c;继承 Freemind 的思维导图工具软件&#xff0c;它扩展了知识管理功能&#xff0c;在 Freemind 上增加了一些额外的功能&#x…

构建LVS集群

一、集群的基本理论&#xff08;一&#xff09;什么是集群 人群或事物聚集&#xff1a;在日常用语中&#xff0c;群集指的是一大群人或事物密集地聚在一起。例如&#xff0c;“人们群集在广场上”&#xff0c;这里的“群集”是指大量人群聚集的现象。 计算机技术中的集群&…

吴恩达机器学习-可选实验室:逻辑回归(Logistic Regression))

在这个不评分的实验中&#xff0c;你会探索sigmoid函数(也称为逻辑函数)探索逻辑回归;哪个用到了sigmoid函数 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from plt_one_addpt_onclick import plt_one_addpt_onclick from lab_utils_common impor…

批量提取PDF指定区域内容到 Excel 以及根据PDF里面第一页的标题来批量重命名-附思路和代码实现

首先说明下&#xff0c;PDF需要是电子版本的&#xff0c;不能是图片或者无法选中的那种。 需求1&#xff1a;假如我有一批数量比较多的同样格式的PDF电子文档&#xff0c;需要把特定多个区域的数字或者文字提取出来 需求2&#xff1a;我有一批PDF文档&#xff0c;但是文件的名…

【CSP试题回顾】202006-1-线性分类器

CSP-202006-1-线性分类器 解题思路 线性分类问题&#xff0c;即根据给定的数据点和分类界限&#xff0c;判断是否存在一条线能够将属于不同类别的点完全分开。具体来说&#xff0c;数据点被分为两类&#xff0c;标记为A和B&#xff0c;我们要找出是否存在一个线性决策边界&…

神经网络实战前言

应用广泛 从人脸识别到网约车&#xff0c;在生活中无处不在 未来可期 无人驾驶技术便利出行医疗健康改善民生 产业革命 第四次工业革命——人工智能 机器学习概念 机器学习不等价与人工智能20世纪50年代&#xff0c;人工智能是说机器模仿人类行为的能力 符号人工智能 …

官方安装配置要求服务器最低2核4G

官方安装配置要求服务器至少2核、4G。 如果服务器低于这个要求&#xff0c;就没有必要安装&#xff0c;因为用户体验超级差。 对于服务器CPU来说&#xff0c;建议2到4核就完全足够了&#xff0c;太多就浪费了&#xff0c;但是内存越大越好&#xff0c;最好是4G以上。 如果服务器…

XSS攻击场景分析

XSS攻击场景分析 在目前这个时间节点还是属于一个排位比较高的漏洞&#xff0c;在OWASP TOP10 2021中隶属于注入型漏洞&#xff0c;高居TOP3的排位&#xff0c;可见这个漏洞的普遍性。跨站脚本攻击的学习中我们主要需要明白的是跨站的含义&#xff0c;以及XSS的核心。XSS主流分…

CentOS 7安装MySQL及常见问题与解决方案(含JDBC示例与错误处理)

引言 MySQL是一个流行的开源关系型数据库管理系统&#xff0c;广泛应用于各种业务场景。在CentOS 7上安装MySQL后&#xff0c;我们通常需要使用JDBC&#xff08;Java Database Connectivity&#xff09;连接MySQL进行后端操作。 目录 引言 CentOS 7安装MySQL 使用JDBC连接My…

LLM Drift(漂移), Prompt Drift Cascading(级联)

原文地址&#xff1a;LLM Drift, Prompt Drift & Cascading 提示链接可以手动或自动执行&#xff1b;手动需要通过 GUI 链构建工具手工制作链。自治代理在执行时利用可用的工具动态创建链。这两种方法都容易受到级联、LLM 和即时漂移的影响。 2024 年 2 月 23 日 在讨论大型…

Java对接(BSC)币安链 | BNB与BEP20的开发实践(二)BNB转账、BEP20转账、链上交易监控

上一节我们主要是环境搭建&#xff0c;主要是为了能够快速得去开发&#xff0c;有些地方只是简单的介绍&#xff0c;比如ETH 、web3j等等这些。 这一节我们来用代码来实现BNB转账、BEP20转账、链上交易监控 话不多说&#xff0c;我们直接用代码实现吧 1. BNB转账 /*** BNB转…

Python判断语句+循环语句

一、Python判断语句 1.1 布尔类型和比较运算符 # 定义变量存储布尔类型的数据 bool_1 True bool_2 False print( f"bool_1变量的内容是&#xff1a;{ bool_1 }&#xff0c;类型为&#xff1a;{ type( bool_1 ) }" ) print( f"bool_2变量的内容是&#xff1a;{…

打卡--MySQL8.0 一(单机部署)

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人。如有侵权&#xff0c;请留言&#xff0c;我及时删除&#xff01; MySQL 8.0 简介 MySQL 8.0与5.7的区别主要体现在&#xff1a;1、性能提升&#xff1b;2、新的默认…