0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何从训练集中生成候选prompt 三种生成候选prompt的方式

深度学习自然语言处理 来源:青稞AI 2024-01-12 11:29 次阅读

作者:刘小虎,中国科学院计算技术研究所

组内现在正在做大模型相关,笔者负责prompt engineering,在实际工程中会发现prompt对模型的输出影响巨大,可能一个字就会改变模型的输出(笔者用的是量化后的7B model),而且换一个模型,就要改变手工制定的prompt,非常麻烦和受限。因此想到了Automatic prompt engineering。由此记录自己的paper阅读,肯定会有自己的理解错误的地方,如有发现请联系笔者进行更正。

APE: Larger Language models are human-level prompt engineers

这篇论文的核心思路就是:

•从训练集中生成候选prompt

•评估这些候选prompt,选出得分最高的prompt

•resample, 使用LLM 生成语义相近的prompt(2中得分最高的prompt),然后再进行评估,最终得到prompt

642bb4ce-afed-11ee-8b88-92fbcf53809c.jpg

APE整体框架图

643a4d68-afed-11ee-8b88-92fbcf53809c.jpg

APE算法

生成候选prompt

论文指出有三种生成候选prompt的方式

Forward Mode Generation

64445e70-afed-11ee-8b88-92fbcf53809c.jpg

这个比较直观,就是写一段指令,然后将训练集的输入输出给出,直接让LLM自动生成prompt。这个生成prompt的模板不知道是哪的出处,有网友知道是哪的,可以直接指出。

Reverse Mode Generation

644ec13a-afed-11ee-8b88-92fbcf53809c.jpg

这个也很直观,就是填补空白的方式。但是这个方式怎么实现呢?我比较疑惑,不知道怎么实现这个填补空白的方式,因为LLM都是一个字一个字的自回归生成。

645a93ac-afed-11ee-8b88-92fbcf53809c.jpg

Customized Prompts

6466ca5a-afed-11ee-8b88-92fbcf53809c.jpg

这一类就是自己根据task来设计了,论文给出了一个示例。我认为就是使用不同的模板来扩充了多样性(可能是我的理解有错误)

评估候选prompt

Execution accuracy

这种方式其实就是使用GT来进行比较。将得分最高的prompt扔进模型,得到结果和GT进行比较。

Log probability

给定指令和问题后所得到的所需答案的对数概率

另外,这一步如果在全量训练集上评估,则开销非常大,因此作者提出一种multi-stage策略。大致思想是先在少量subset上评估,然后过滤掉比较差的,循环这一过程直到候选集足够小,此时再在全量训练集上进行评价、挑选。

Resample

使用的是蒙特卡罗搜索的方式。说的这么玄乎,其实还是使用LLM来生成prompt!但是这一步他是使用之前得分最高的prompt再次来生成语义相近的prompt

64703888-afed-11ee-8b88-92fbcf53809c.jpg

这里可以是迭代的方式进行。怎么迭代呢?笔者是这样认为的:

1、得到语义相近的prompt。
2、评估这些prompt。
3、得到得分最高的prompt 重复1、2步骤。

作者实验发现,对于比较难的任务,进行resample能够进一步提升效果。

ProTeGi (Automatic Prompt Optimization with “Gradient Descent and Beam Search)

647bc5fe-afed-11ee-8b88-92fbcf53809c.jpg

这篇文章早就在arxiv上发出来了。当时的缩写还是APO。今年被EMNLP2023收录

首先让我们先来看看这篇论文的整体框架图。

6485bb4a-afed-11ee-8b88-92fbcf53809c.jpg

ProTeGi总体框架图

方法:利用数值梯度下降自动优化提示,同时结合beam search和bandit selection procedure提高算法效率。

优势:无需调整超参数或模型训练,ProTeGi可以显著提高提示的性能,并具有可解释性。

什么原理呢?

得到当前prompt的“gradient”

这个“gradient”怎么得到的了呢,这是个啥玩意,怎么还有梯度?注意,注意。人家是带引号的!比喻成梯度。这玩意有什么用呢。

文章指出给定一批error samples(当前prompt无法预测正确的),让LLM给出当前prompt预测错误的原因,这一原因即文本形式的“gradient”。使用的还是LLM!

64938b12-afed-11ee-8b88-92fbcf53809c.jpg

将“gradient”输入到LLM中,得到新的prompt

649d6e16-afed-11ee-8b88-92fbcf53809c.jpg

和APE一样,resample, 得到语义相近的prompt,然后迭代。

注意注意啊,每轮迭代中,最外层包含一个beam search过程,以便强化探索。这一块就看不懂了, 也是本论文的贡献之一。没有想过改进,所以略过直接使用。

OPRO (Large Language Models as Optimizers)

64aa2dcc-afed-11ee-8b88-92fbcf53809c.jpg

paper:LargeLanguageModelsasOptimizers
链接:https://arxiv.org/abs/2309.03409
code:https://github.com/google-deepmind/opro

首先来看框架图

64b668d0-afed-11ee-8b88-92fbcf53809c.jpg

然后接着看论文对meta-prompt的定义

64c360ee-afed-11ee-8b88-92fbcf53809c.jpg

blue 蓝色的是 solution-score pairs 也就是 prompt + score。这个score怎么来的呢?使用LLM进行打分,也就是Figure 2 中的 objective function evaluator。这应该也是个LLM, 这个LLM和 LLM as optimizer 可以是同一个 也可以不是。** 注意,这个打分其实就是评估新生成的prompt在任务上的表现,说白了就是和GT进行对比(对了+1)**。

orange 橙色 就是指令 meta-instructions.

purple 紫色 就是task description,包含一些任务的examples、优化的目标等

因此, OPRO的核心思路是让LLM基于过往的迭代记录、优化目标,自己总结规律,逐步迭代prompt,整个过程在文本空间上完成。

PE2 (Prompt Engineering a Prompt Engineer)

64d0f2cc-afed-11ee-8b88-92fbcf53809c.jpg

paper:PromptEngineeringaPromptEngineer
链接https://arxiv.org/abs/2311.05661

这一篇paper 是 APE 和 APO (ProTeGi)的改进版,集成了这2个方法的优点。

这篇论文主要提出了一个meta-prompt的东东(等等,我去,这玩意和OPRO这篇论文里的好像啊)

提供更细节的指令和内容

•提供提示工程的教程

•2阶段的任务描述

•step-by-step 推理的模板

•明确指定提示与输入之间的相互关系

结合优化的概念

•batch size : 指的就是使用batch size失败的例子

•step size : 指的就是改变原始的prompt中step size个字

•Optimization History and Momentum : 其实就是增加了以外的prompt和修改后的prompt

看完后惊呼道:这是真能写啊。写的玄乎又玄乎的。一图胜千言

64da7c02-afed-11ee-8b88-92fbcf53809c.jpg

64e9ce1e-afed-11ee-8b88-92fbcf53809c.jpg

64fbed1a-afed-11ee-8b88-92fbcf53809c.jpg

给我的感觉就是前面3篇论文的集成版本。

将OPRO中的meta-prompt的概念用到了 APO中了,然后丰富了模板的内容。有反思分析有推理,迭代的让模型自动修改prompt。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4482

    浏览量

    91319
  • prompt
    +关注

    关注

    0

    文章

    12

    浏览量

    2638
  • LLM
    LLM
    +关注

    关注

    0

    文章

    224

    浏览量

    252

原文标题:总结

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [原创]14物质正式入选第二批SVHC候选清单

      2010年1月13号,ECHA(欧洲化学管理局)正式确定将14化学物质增加到REACH法规高度关注物质(SVHC)候选清单中。此前在2009年12月7日ECHA公布将加入
    发表于 01-28 13:19

    [灌水]14物质正式入选第二批SVHC候选清单

        2010年1月13号,ECHA(欧洲化学管理局)正式确定将14化学物质增加到REACH法规高度关注物质(SVHC)候选清单中。此前在
    发表于 03-08 13:25

    HTML DOM prompt()方法使用

    HTML DOM Window 对象 定义和用法 prompt() 方法用于显示可提示用户进行输入的对话框。 语法prompt(text,defaultText)参数描述 text 可选。要在
    发表于 11-28 15:06 4502次阅读
    HTML DOM <b class='flag-5'>prompt</b>()方法使用

    推荐系统中候选生成和冷启动挑战的研究

    本研究针对推荐系统冷启动和候选生成两方面的问题,提出了一种基于深度学习的分类方法。
    的头像 发表于 07-30 10:22 2321次阅读

    应用于任意预训练模型的prompt learning模型—LM-BFF

    /2107.13586.pdf 相关资源:http://pretrain.nlpedia.ai Part1什么是Prompt Learning 从BERT诞生开始,使用下游任务数据微调预训练语言模型 (LM)已成为
    的头像 发表于 08-16 11:21 4405次阅读
    应用于任意预<b class='flag-5'>训练</b>模型的<b class='flag-5'>prompt</b> learning模型—LM-BFF

    揭秘Prompt的前世今生

    》,并掺杂了笔者的一些个人见解,欢迎大家积极讨论~ 论文的arxiv链接如下: https://arxiv.org/abs/2107.13586 一、Prompt的产生和兴起 近几年来,有关预训练语言模型(PLM)的研究比比皆是,自然语言处理(
    的头像 发表于 09-01 10:28 2617次阅读
    揭秘<b class='flag-5'>Prompt</b>的前世今生

    Prompt范式你们了解多少

    Prompt-tuning-The Power of Scale for Parameter-Efficient Prompt Tuning 自动化Prompt Prompt范式的第
    的头像 发表于 09-10 10:22 2521次阅读
    <b class='flag-5'>Prompt</b>范式你们了解多少

    NLP中Prompt的产生和兴起

    : https://arxiv.org/abs/2107.13586 本文的内容框架如下: 一、Prompt的产生和兴起 二、什么是Prompt 三、Prompt的设计方法 四、Prompt
    的头像 发表于 09-12 14:52 2476次阅读
    NLP中<b class='flag-5'>Prompt</b>的产生和兴起

    万能的prompt还能做可控文本生成

    随着 Prompting 技术的大火,我们一直在思考,Prompt 究竟能够带来什么?我们都说,Prompt 本质上是一种激发语言模型中知识的手段。因此,它应该不仅仅局限于数据集或者说任务的层面,激发模型对于某个任务的“知识”
    的头像 发表于 03-22 10:54 2587次阅读

    关于Prompt在NER场景的应用总结

    将序列标注任务转换成一个生成任务,在Encoder端输入为原始文本,Decoder端输入的是一个已填空的模板文本,输出为已填空的模板文本。待填空的内容为候选实体片段以及实体类别。候选实体片段由原始文本进行N-Gram滑窗构建,为
    的头像 发表于 05-24 10:54 1847次阅读

    如何充分挖掘预训练视觉-语言基础大模型的更好零样本学习能力

    因此,合适的prompt对于模型的效果至关重要。大量研究表明,prompt的微小差别,可能会造成效果的巨大差异。研究者们就如何设计prompt做出了各种各样的努力——自然语言背景知识的融合、自动
    的头像 发表于 10-19 14:39 1209次阅读

    一种基于prompt和对比学习的句子表征学习模型

    我们发现prompt,再给定不同的template时可以生成不同方面的positive pair,且避免embedding bias。
    的头像 发表于 10-25 09:37 744次阅读

    专业音频应用中生成负电源轨的方案

    专业音频应用中生成负电源轨的方案
    发表于 10-31 08:23 4次下载
    专业音频应用<b class='flag-5'>中生成</b>负电源轨的方案

    从评论中生成艺术的开源项目

    电子发烧友网站提供《从评论中生成艺术的开源项目.zip》资料免费下载
    发表于 07-05 11:06 0次下载
    从评论<b class='flag-5'>中生成</b>艺术的开源项目

    prompt在AI中的翻译是什么意思?

    效地完成任务。 Prompt技术可以帮助AI系统快速了解任务的背景、情境以及用户的意图,并提供指导AI系统在特定的情境下如何采取下一步行动。通过使用Prompt技术,AI系统可以更加准确地理解用户的需求,它可以使用历史数据和已经训练
    的头像 发表于 08-22 15:59 2286次阅读