Prompt论文理解

Using In-context Learning to Automate AI Image Generation for a Gamified Text Labelling Task

我们遵循两步流程,为我们的文本标记任务自动生成 AI 图像。第一步是根据语料库中的原始句子优化提示。完成后,第二步是根据优化的提示生成图像。

这种探索促使我们决定让 GPT-4 完成三项任务。首先,该模型的任务是根据文档中句子的上下文来识别给定单词所指的主题。其次,我们要求模型描述所识别的子项目的设置(描述所识别的子项目的设置是指根据已经识别出的主题或子项目,详细描述与其相关的具体场景或环境)。最后,根据识别的子项目和设置,GPT-4 生成了文本到图像的提示。该模型被要求将提示保持一句话长,专注于视觉效果,同时避免过于复杂的语言。

局限性:只关注两个生成式人工智能模型:GPT-4 和 Stable Diffusion XL。我们没有将研究扩展到其他文本到图像模型,如DALL-E和Midjourney。自动评分模型会根据其训练数据继承偏见。尚未将这些 AI 生成的提示与用户创建的提示进行比较,或全面检查风格修饰符对 AI 生成的图像的影响。

 Retrieval-Augmented Modular Prompt Tuning for Low-Resource Data-to-Text Generation

表 1:D2T 任务的示例数据点。这句话相撞是内在幻觉的一个例子。检索到的输入-输出对 (xr, yr) 与输入 x 具有相同的属性 Distance。连续提示 A1 被激活,因为它对应于属性 Distance。(个人理解:在 D2T 任务中,虽然某些连续提示(如 A1)可能因为特定属性(如 Distance)而被激活,并起到关键作用,但其他提示(如 A2A3)仍然存在于提示中,为模型提供更全面的上下文信息。这种设计确保了提示的全面性和灵活性,有助于提高模型的性能和生成质量。)

图 1:RAMP 的架构。它由一个基于属性的路由器和一个基于属性的检索器、连续提示令牌和一个冻结的大型语言模型组成。RAMPonly需要训练模块化提示符,以将数据的潜在分布与PLM对齐。

提示优化方法

1. 检索增强方法(Retrieval Augmentation)

步骤:

  1. 检索具有相似属性组合的训练实例

    • 首先,从当前输入数据中获取激活的逻辑表达式 E。这些逻辑表达式基于Chang等人(2022)定义的描述逻辑。
    • 然后,构建一个映射,从 E 到训练数据中具有相似属性的最具代表性的数据点 (xr,yr)。
  2. 将检索到的示例添加到输入提示中

    • 这些检索到的示例被添加到输入提示中,有效地充当了专门用于输入的模板。

举例说明:

假设我们有一个输入数据,描述无人机在低电量情况下飞行。当前输入数据的属性包括“低电量”和“紧急情况”。从这些属性中,我们获得了激活的逻辑表达式 E。

在训练数据中,我们找到一个与这些属性相似的训练实例,比如一个描述“无人机低电量返航”的实例。我们将这个实例 (xr,yr) 添加到当前输入提示中,以便模型可以利用这个相似的实例生成更准确的文本输出。

2. 模块化提示调优(Modular Prompt Tuning)

步骤:

  1. 连续提示调优(Prompt Tuning)

    • 在提示调优中,冻结所有PLM的参数,并引入一个可训练的连续提示,这有助于将结构化数据无缝地集成到模型的输入中。
    • 提示嵌入矩阵是随机初始化的,并且进行端到端训练以生成与上下文对齐的输出文本。在主要实验中,使用了20个连续提示标记。
  2. 模块化提示(Modular Prompts)

    • 为了增强连续提示的有效性,使用模块化提示,这种方法为不同的输入数据类型使用单独的提示(Chen等人,2022b)。
    • 开发了一系列模块化提示,每个提示都与支持特定关键场景的不同属性集合对齐。
    • 这种模块化框架有助于注入领域特定的知识,使PLM能够理解增强的提示。

实验结论:

  1. 实验结果肯定了一个与数据语义相匹配的良好设计的提示的重要性。
  2. 作者推测LED模型在所有评估指标上始终获得最高分数的原因在于其处理更大上下文输入的能力。
  3. 作者观察到,在生成消息时,模型倾向于重复某些实体,如“drone droness”而不是“drone’s”,“bell in in in the drone’s flight”而不是“bell in the drones’ flight”
  4. 作者也注意到模型有时无法复制完整的短语。在生成消息时,它们更倾向于从输入中复制部分短语,如“plant on Para”而不是“planted parapet”。
  5. 实验表明,在提示中添加角色并不能提高性能。
  6. 连续提示标记的数量与模型的性能之间存在正相关关系。

局限性:测试数据集较少

Trustworthiness and Self-awareness in Large Language Models: An Exploration through the Think-Solve-Verify Framework

贡献:

  1. 引入TSV框架,如图1所示,以模拟类似人类的推理过程。通过将推理过程划分为思考、解决和验证三个阶段,我们允许大型语言模型(LLMs)以结构化的方式提高其推理能力。
  2. 认识到大型语言模型中可信度和内省自我意识的重要性,我们深入评估了它们的自我认知能力。通过我们的研究,我们识别出内在的局限性,并引入了机制来增强它们的可信度,确保它们在推理任务中更加可靠。
  3. 利用TSV框架,我们全面评估了大型语言模型在已知答案时生成连贯解释的能力。我们的重点不仅在于最终结果,还在于整个推理轨迹,确保模型的答案来源于真正的理解,而不是猜测或过拟合。

图1:我们提出的TSV(Think-Solve-Verify)方法的综合流程。基于模仿人类解决数学推理问题的方式,我们首先使用思考引擎对问题进行思考,并生成简单的解题思路而不是直接给出答案。基于一个生成性的思考过程,我们使用多个大型语言模型(LLMs)作为求解器来解决问题。在得到答案后,我们验证答案,并使用我们设计的选择算法来提高答案的可信度。

我们采用了一种基于提示的方法来验证输出。如图1所示,我们同时采用直接验证和逐步验证。在验证过程中,思考和解决结果会分别被检查,从而产生两个布尔变量VT和VS。如果两者都为真,则模型的验证输出Vo为真;否则,为假。如果模型的输出与答案A匹配,则Ao设置为真,否则为假。 

图2:我们增强的答案可信度校准的说明。与自我一致性方法不同,我们的方法采用多个求解器和选择机制。该算法通过考虑答案的频率和解决方案过程的完整性来确保答案的选择。

校准答案可信度算法

  1. 输入要求

    • 来自N个不同解答器的答案:A1, A2, ..., AN
    • 来自N个不同解答器的解题过程:S1, S2, ..., SN
    • 一个阈值:threshold
  2. 步骤1:计算每个答案出现的次数,存储在counter中。

  3. 步骤2:根据答案出现的频率对counter进行降序排序。

  4. 步骤3:计算总答案数(answer_count)。

  5. 步骤4:检查最频繁答案的频率是否超过阈值:

    • 如果超过阈值,则选择出现次数最多的答案作为最终答案(As)。
    • 如果未超过阈值,则初始化一个带有长上下文的语言模型(LLM),结合所有的答案和解题过程,选择最合适的答案作为最终答案(As)。
  6. 步骤10:返回选择的答案(As)。

TSV方法的流程

  1. Think(思考)

    • 步骤:通常使用一个大型语言模型(LLM)来生成解题思路。这个模型负责对问题进行思考,生成一个清晰的解题思路或步骤,而不是直接给出最终答案。这种思考引擎模仿人类的思维过程,帮助明确解题步骤。
    • 示例
      • 问题:助手们需要准备工作。每个助手每小时可以制作2个大蛋糕或35个小蛋糕。厨房可以使用3个小时,需要准备20个大蛋糕和700个小蛋糕。需要多少助手?
      • 思考过程:我们需要确定在给定时间内完成所需蛋糕数量所需的助手数量。我们知道每个助手的生产力、所需蛋糕数量和可用时间。
  2. Solve(解决)

    • 步骤:使用多个大型语言模型(LLMs)作为求解器。这些求解器根据思考过程生成的解题思路来实际解决问题,生成多个答案。求解器的数量可以根据具体情况和需求进行调整,但通常是多个,以确保多样化的答案和提高结果的可靠性。
  3. Verify(验证)

    • 步骤:对生成的答案进行验证。检查每一步的逻辑和计算是否正确,并生成验证结果。
    • 示例
      • 逻辑错误:在确定所需助手数量时,应取两个助手数量中的最大值,而不是直接相加。
      • 计算错误:为了确保在3小时内完成任务,需要最少4+4=8个助手。
    • 验证过程
      1. 检查逻辑和计算细节。
      2. 如果逻辑或计算错误,标记错误。
      3. 如果没有错误,标记正确。
  4. Selector(选择器)

    • 步骤:使用选择算法来提高答案的可信度。根据答案的频率和验证结果选择最可信的答案。
    • 选择过程
      • 如果最常见的答案超过阈值,选择该答案。
      • 如果不超过阈值,使用LLM带有长上下文来结合所有解答和解题过程,选择最合适的答案。

我们将思考、求解和验证过程分离开来,意味着不同的模型可以承担这些任务中的每一个。这种分离利用了每个模型的独特优势。我们可以使用复杂的模型来执行思考阶段,而更简单的模型处理求解阶段。这种分离确保了计算成本和性能之间的平衡。

实验结论:

  1. 实验结果强调了分解步骤的重要性,这有助于更好的验证,从而提高了模型的自我意识。
  2. 即使有了这些改进,模型对其输出的过度自信,尤其是当输出错误时,仍然是一个重大挑战,并强调了开发具有更好自我意识和内省能力的模型的重要性。
  3. 随着求解器数量的增加,模型准确率得到了放大。对于10个和20个求解器都稳定在最佳的67.3%。这种饱和现象表明了一种潜在的平衡状态,即增加更多的求解器可能不会在整体准确率上带来实质性的提升。
  4. 如果不将答案拆分为步骤,模型可能对其逻辑推理能力过于自信。如果逐步评估解决方案,可能会无意中使模型倾向于低估其输出。

SynPrompt: Syntax-aware Enhanced Prompt Engineering for Aspect-based Sentiment Analysis 

 图 1:基于 ABSA 任务的提示调整的通用模板。

贡献:

  1. 我们为ABSA任务提出了一种新颖的基于提示工程的语法感知增强提示(SynPrompt)方法,我们可以设计突出通过句法关系设计更强大的提示内容。
  2. 我们为上述方法构建了两种提示框架,这证明了上述描述的SynPrompt的可行性和合理性。在我们的框架中,SynPrompt是一个有价值的工具,可以提高ABSA的性能和灵活性。

提示优化方法

1. SynPrompt 方法

图2:句法距离矩阵和句法关系矩阵的构建过程针对示例句子。 

  1. 语法距离矩阵

    我们将句法依存树(Dep.Tree)视为一个有向图,并将每个标记视为一个节点。首先,我们定义节点wi和wj之间的距离d(wi,wj),这个距离不是正数也不是负数。我们将原始距离矩阵定义为D*:

    接着,根据原始句子中单词的顺序来确定这些距离的正负性,即句子中从前一个单词到后一个单词的距离为正,反之为负。我们定义最终的距离矩阵为D:

    值得注意的是,当方面词(aspect word)包含多个标记时,其自身距离为0(就是把方面词当作一个整体,如果方面词由多个单词组成则视为一个单词),而正负距离则根据方面词的开始和结束位置来计算(因为方面词是一个整体,所以与方面词的距离按整体来算)。

  2. 语法关系矩阵

    依存树(Dep.Tree)中存在许多种类的句法依存关系。事实上,有一些典型的依存关系决定了方面词(aspect words)的极性(例如,“food”和“delicious”之间的nsubj关系)。因此,我们根据句法关系在我们计算中的重要性定义了关系系数 r。注意,一个较小的系数表示一个更重要的关系。我们通过将每个关系映射到预定义的系数来获得最终的关系矩阵 R:

    其中,(Relation(i,j)) 表示节点 (w_i) 和节点 (w_j) 之间的句法关系。

  3. 提示决策算法

  • 输入

    • D:句法距离矩阵,每对词之间的距离矩阵。
    • R:句法关系矩阵,每对词之间的依存关系矩阵。
    • a:需要分析的目标词或短语在句子中的位置。
    • k:决策阈值,表示要选择的提示词的最大数量或与方面词的最大距离。
  • 输出

    • P:与方面词相关的提示词列表。
  • 算法步骤

    • 初始化
      • P:包含方面词xa的列表。
      • C:空列表,用于存储最短路径的索引。
      • t:计数器,初始化为0。
    • 计算相邻矩阵
      • M:通过元素级乘法()将DR结合,得到一个新的矩阵,这一步结合了距离和依存关系的信息。
    • 获取最短路径
      • 使用Dijkstra算法在M上从方面词a开始计算最短路径,并将这些路径的索引存储在C中。
    • 选择提示词
      • t小于或等于k时,执行以下操作:
        • C中选择具有最小索引的词(i)。
        • 如果i在方面词a之前,将其插入P的开头;否则,将其追加到P的末尾。
        • C中索引为i的元素更新为DBLMAX(表示一个非常大的数,通常是双精度浮点数能表示的最大值),以确保在后续迭代中不会再次选择这个词。
        • t自增1。
    • 返回结果:返回包含提示词的列表P

2.自适应提示框架
  1. 自动提示(Auto Prompt)

    • AutoPrompt 实现了一个自动的、真实的离散提示模板设计过程。我们基于(Shin 等人,2020)提出了一种自动构建提示的方法。我们首先在方面词和 [MASK] 标记之间向模板中添加一些原始的 [Prompt] 标记,这些标记将在训练过程中逐渐被替换。
    • 基于梯度的提示选择:我们将初始化的 Prompt 模板送入 MLM,这些模板包含特殊的 [Prompt] 和 [MASK] 标记。我们的目标是通过梯度计算找到能够最小化模型损失的真实的、离散的提示词。具体来说,在每个训练周期,我们计算一阶近似对数似然度,这是通过将词汇表中词嵌入的损失的反向传播乘以嵌入层的梯度来获得的。然后,我们识别一个候选集 Vcand,其中包含估计能引起最大增加的前 k 个标记。(如果对于基于梯度的提示选择不理解,可以阅读论文笔记(四) AutoPrompt - 知乎
  2. 软提示(Soft Prompt)

    • 与前述的提示模板不同,软提示直接在嵌入空间内提示模型。软提示使用存在于嵌入空间中的伪提示词,而不是实际的提示词。通过调整模板参数,这些伪提示词可以灵活定制。使用提示编码器自动学习提示词的改进嵌入表示。该技术允许在嵌入空间内增强提示信息的控制和优化。
    • 提示编码器(Prompt Encoder):提示编码器是一个轻量级的神经网络,在减少提示词之间的离散性方面发挥着关键作用。为了实现这一点,我们首先随机初始化[Prompt]标记,然后构建一个编码器,该编码器包括一个双向长短期记忆(LSTM)网络和一个两层的多层感知器(MLP)。
  3. 模型训练

    • 如图1所示,我们将原始句子作为正向句子的输入。对于反向句子,我们选择方面词(aspect words)、提示内容和[MASK]标记作为最终的提示句子。重要的是要注意,提示的内容是可选的,并且可以根据不同的提示模板进行配置。随后,我们从MLM(掩码语言模型)的输出h[MASK]中选择[MASK]标记的隐藏层表示,这代表了被掩码词的词概率分布。
    • 词化器(Verbalizers):与常规的词化器不同,我们不为标签类别直接设计标签词汇表。我们使用一个多层感知器(MLP)将[MASK]标记的隐藏层表示映射到低维向量空间。换句话说,我们直接将词概率分布映射到类标签分布,而无需为标签类别设置固定的映射关系。

 图 3:两个自动提示框架,分别具有实离散提示和伪连续提示。

 实验结果:

  1. 在SynPrompt中,距离阈值k的大小不应该太长,可能是因为这会导致引入与方面词无关的知识。
  2. 在AutoP的情况下,我们发现使用三个提示词是该方法的最佳选择。对于SoftP,基于提示编码器的模型在使用三个提示词时表现出最高的准确率,而使用四个提示词时则具有最佳的F1分数。这些结果强调了确定提示词长度的最合适性的重要性。

局限性:

  1. 与其他任务相比,样本量相对较小,这可能限制了结果的普适性。
  2. 数据收集仅限于特定区域,因此需要进一步调查以确定这种方法是否适用于其他任务。
  3. 本研究没有进行案例数据分析,这可能限制了对该方法对模型影响的全面理解。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值