NLP 中的 prompt 笔记

Prompt是NLP中的一种技术,它将多种任务转化为预训练模型更熟悉的完形填空形式,提高模型的泛化能力。通过模板和填充函数,Prompt可用于各种下游任务,如情感分析。AnswerSearch寻找最高概率的答案,AnswerMapping处理多个答案与同一输出的映射关系。该方法减少了对标注数据的依赖,推动了预训练模型的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 什么是 prompt

NLP 中, 一种用于 Language Model 的 Pretrained Task 范式. 中文直译为"提示".

  • 前辈的特点是, 通过 引入多种任务构造辅助 loss, 让模型去适配这些任务. 流程是 “pre-train, fine-tune, and predict”.
  • 而 prompt 的思路则与此相反, 将多种任务重新组织成完形填空的形式, 使其更接近于原始预训练任务(如 masked LM). 流程是 “pre-train, prompt, and predict”.

其优点是, 得到的模型更通用, 一个完全无监督训练的PLM可以被用来解决各种各样的下游任务.

历史演进

  • 2017-2019, 研究者们的重心逐渐从传统 task-specific 的有监督模式转移到预训练上. 这是因为前者依赖大量的标注数据, 但很多时候是没有足够的数据的. 这个痛点促进了 pre-train 任务范式的诞生.

通过选取合适的prompt,我们可以控制模型预测输出,从而一个完全无监督训练的PLM可以被用来解决各种各样的下游任务。

二. 正式化的描述

先看一个例子

情感分析任务中, 输入 x 是一句文本, 输出 Y = {++, +, ~ , -, --}, 代表情感在 高兴/正向 的程度上逐渐递减.
那么具体一条样本就是:

x: I love this movie.
y: ++ (very positive)

通常按照多分类去建模.
有了 prompt 后

x’: I love this movie. Overall, it was a [Z] movie.
z: good

根据这个例子, 下面引入符号与概念.

Template

通过 prompt 函数将原始输入作转换 x ′ = f p r o m p t ( x ) x' = f_{prompt}(x) x=fprompt(x). 而函数中会用到模板, 上例中的 template 就是:
[X] Overall, it was a [Z] movie.

  • [X]: 表示原始输入 x 的占位符.
  • [Z]: 模板中的一个 slot (槽位), 用于放入答案.

当 [Z] 被填充后, 就称为 filled prompt, 填充函数描述为 f fill ( x ′ , z ) f_{\text{fill}}(x',z) ffill(x,z) .

Answer Search

我们先定义 z 的取值集合 Z = {“excellent”, “good”, “OK”, “bad”, “horrible”} 依次对应原始情感分类任务中的 Y = {++, +, ~ , -, --}.
Answer search 过程, 就是在集合 Z 中找出概率最高的 z ^ \hat z z^.
z ^ = search ⁡ z ∈ Z P ( f fill  ( x ′ , z ) ; θ ) \hat{\boldsymbol{z}}=\underset{\boldsymbol{z} \in \mathcal{Z}}{\operatorname{search}} P\left(f_{\text {fill }}\left(\boldsymbol{x}^{\prime}, \boldsymbol{z}\right) ; \theta\right) z^=zZsearchP(ffill (x,z);θ)

Answer Mapping

对于原始数据集中的同一个 y, 有时会有多个 z 与之对应, 比如 { “excellent”, “fabulous”, “wonderful”) 都可以对应 y= “++” 这一档.
所以也有必要作映射.

适用不同任务的多种 prompt 方法

在这里插入图片描述

相关论文

有个整理业界相关论文的git仓库, 来自 清华nlp, 详见参考[3].

PET

较为经典的文章, 见参考[4].

参考

  1. 知乎, NLP新宠——浅谈Prompt的前世今生
  2. 知乎, NLP新范式:Prompt(提示学习)【综述】
  3. github,PromptPapers
  4. PET, Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference. EACL 2021.
  5. survey,Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing
### 关于清华大学刘知远老师的大模型课程中的Prompt Learning笔记 在相关资料中提到的学习笔记涵盖了大模型公开课的内容,其中包括第四讲(L4)涉及的 **Prompt learning 和 Delta learning** 的主题[^1]。这些笔记可能包含了关于如何设计有效的提示词以及通过微调等方式提升模型性能的关键知识点。 具体而言,Prompt Learning 是一种利用自然语言指令引导大型预训练模型完成特定任务的技术方法。它强调无需大量数据重新训练整个模型即可实现高效适配新场景的能力。根据已有的参考资料描述,这类技术通常会讨论以下核心概念: - 如何构建高效的 Prompt 结构来指导模型行为; - 使用少量样本调整模型参数的方法及其应用场景; - 对比传统 Fine-tuning 方法的优势与局限性分析。 以下是基于上述理论框架的一个简单 Python 实现案例展示如何自定义 prompt 并测试其效果: ```python def generate_prompt(input_text, task_instruction=""): """Generate a formatted prompt with optional task instruction.""" return f"{task_instruction}\nInput: {input_text}\nOutput:" # Example usage of the function to create prompts for different tasks. if __name__ == "__main__": input_example = "Translate 'hello' into Spanish." custom_task_instr = "You are an AI assistant that translates English words into their corresponding meanings in other languages." full_prompt = generate_prompt(input_example, custom_task_instr) print(full_prompt) ``` 此脚本展示了创建个性化提示的基本逻辑,可以根据实际需求修改 `generate_prompt` 函数内的模板字符串以适应更多类型的 NLP 作业要求。 此外,在强化学习领域也有研究探索人类反馈机制优化对话系统的可能性[^2],这或许可以作为进一步理解交互式 Prompt 设计思路的一种补充视角。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值