生成性人工智能(GenAI)系统正越来越多地在工业和研究环境中得到部署。开发者和最终用户通过使用提示或提示工程与这些系统进行交互。尽管提示是一个广泛存在并经过深入研究的概念,但由于该领域的新兴性,存在术语冲突和对构成提示的本体论理解不足。本文通过汇编提示技术分类体系并分析其使用情况,建立了对提示的结构化理解。
该论文建立了一个结构化的提示理解方式,通过汇编了33个词汇术语、58种基于文本的提示技术和40种其他模态的技术的分类体系。
论文链接:https://arxiv.org/pdf/2406.06608,可在公众号后台回复「提示词」获取PDF下载。
1.2 Terminology(术语)
1.2.1 Components of a Prompt (提示的组成部分)
Directive (指令): 提供给模型的指令或问题,是提示的主要意图。
Examples (示例): 作为完成任务的示范,帮助模型理解如何执行特定的任务。
Output Formatting (输出格式化): 指定模型输出的格式,例如要求模型以特定格式(如CSV或Markdown)输出信息。
Style Instructions (风格指令): 用于修改输出的风格,而不是结构。
Role (角色): 提供给模型的角色或人物设定,用于改善写作和文本风格。
Additional Information (附加信息): 可能包括用于完成任务的其他必要信息。
1.2.2 Prompting Terms (提示术语)
Prompt (提示): 用于引导GenAI模型输出的输入。
Prompt Engineering (提示工程): 开发和优化提示的过程。
Prompting Technique (提示技术): 描述如何构建提示的策略或方法。
Prompt Chain (提示链): 使用一系列提示模板依次进行提示的过程。
Meta-Prompting (元提示): 利用LLM生成或改进提示或提示模板的过程。
Answer Engineering (答案工程): 从LLM输出中提取精确答案的过程,包括答案形态、答案空间和答案提取器的定义。
2.2 Text-Based Techniques (基于文本的提示技术)
2.2.1 In-Context Learning (ICL) (情境学习)
Few-Shot Prompting (少样本提示):提供少量示例来指导模型完成任务。
Example Generation SG-ICL (示例生成情境学习):自动生成示例以改善模型的情境学习效果。
Example Ordering (示例排序):研究示例在提示中的顺序如何影响模型性能。
Exemplar Selection (示例选择):选择最能代表任务的示例以提高模型学习效果。
KNN (K-最近邻):使用K-最近邻算法选择与测试实例最相似的示例。
Vote-K (投票-K):一种选择示例的方法,通过模型对示例的投票来决定使用哪些示例。
Thought Generation (思维生成):一种技术,鼓励模型在回答问题前生成思维过程。
Chain-of-Thought (CoT) (思维链):模型在给出答案前展示其逐步的推理过程。
2.2.2 Zero-Shot Prompting (零样本提示)
Role Prompting (角色提示):为模型分配特定角色以影响其输出。
Style Prompting (风格提示):指定模型输出的特定风格或语调。
Emotion Prompting (情感提示):在提示中加入情感因素以影响模型的文本生成。
System 2 Attention (S2A) (系统2注意力):一种技术,要求模型在生成答案前重新审视问题。
SimToM (SimToM):一种处理涉及多个人或对象的复杂问题的提示方法。
Rephrase and Respond (RaR) (重述并回应):要求模型在生成最终答案前先重述并扩展问题。
RE2 (RE2):一种通过要求模型重新阅读问题来提高其回答质量的技术。
Self-Ask (自我询问):模型在回答问题前先自我提出澄清问题。
2.2.3 Thought Generation (思维生成)
Zero-Shot CoT (零样本思维链):不使用示例,直接引导模型展示其思考过程。
Analogical Prompting (类比提示):使用类比来引导模型的思考过程。
Step-Back Prompting (退一步提示):要求模型在深入问题之前先了解相关概念或事实。
Thread-of-Thought (ThoT) (思维线索):一种改进的思维诱导器,用于CoT推理。
Tab-CoT (表格思维链):使用表格形式来组织和展示模型的推理过程。
2.2.4 Decomposition (分解)
DECOMP (分解):将问题分解为子问题并逐步解决。
Faithful CoT (忠实思维链):在分解问题时保持对原始问题和解决方案的忠实度。
Least-to-Most (最少至最多):从最简单的子问题开始,逐步解决更复杂的问题。
Plan-and-Solve (计划与解决):先制定解决方案计划,然后逐步解决问题。
Program-of-Thought (思维程序):使用编程代码作为推理步骤。
Recurs.-of-Thought (思维递归):递归地解决复杂问题,包括将子问题发送到另一个提示/模型调用。
Skeleton-of-Thought (思维框架):通过并行化加速答案速度,先创建答案框架,然后并行解决子问题。
Tree-of-Thought (思维树):以树状结构组织思考过程,逐步解决问题。
2.2.5 Ensembling (集成)
Demonstration Ensembling (DENSE) (示范集成):创建多个少样本提示,每个提示包含不同的示例子集。
Mixture of Reasoning Experts (MoRE) (推理专家混合):通过使用不同专业的提示创建多样化的推理专家集合。
Max Mutual Information Method (最大互信息方法):选择最优的提示模板,即在提示和模型输出之间最大化互信息。
Self-Consistency (自我一致性):基于多个不同的推理路径可能导致相同答案的假设。
Universal Self-Consistency (通用自我一致性):类似于自我一致性,但通过插入所有输出到提示模板中来选择多数答案。
Meta-CoT (元思维链):生成多个推理链,然后从它们中生成最终答案。
DiVeRSe (多样化):为给定问题创建多个提示,然后对每个提示执行自我一致性。
2.2.6 Self-Criticism (自我批评)
Self-Calibration (自我校准):模型评估其答案的正确性。
Self-Refine (自我改进):迭代框架,模型根据反馈改进答案。
ReverseCoT (逆向思维链):模型根据生成的答案重构问题,然后比较原始问题和重构问题。
Cumulative Reasoning (累积推理):生成多个可能的答题步骤,然后评估它们,决定是否接受或拒绝这些步骤。
3.1 Multilingual (多语言)
3.1.1 Chain-of-Thought (CoT)
XLT (Cross-Lingual Thought) Prompting: 利用包含六个独立指令的提示模板,包括角色分配、跨语言思维和思维链。
CLSP (Cross-Lingual Self Consistent Prompting): 引入集成技术,构建不同语言的推理路径以回答同一问题。
3.1.2 In-Context Learning
X-InSTA Prompting: 探索三种不同的方法,将情境示例与输入句子对齐,用于分类任务。
In-CLT (Cross-lingual Transfer) Prompting: 利用源语言和目标语言创建情境示例,与传统方法不同。
3.1.3 In-Context Example Selection
PARC (Prompts Augmented by Retrieval Crosslingually): 检索高资源语言的相关示例以增强跨语言转移性能。
3.1.4 Prompt Template Language Selection
English Prompt Template: 使用英语构建提示模板通常对多语言任务更有效。
Task Language Prompt Template: 使用任务语言提示模板,尤其是在特定语言用例中。
3.1.5 Prompting for Machine Translation
Multi-Aspect Prompting and Selection (MAPS): 模拟人类翻译过程,包括多个准备步骤以确保高质量输出。
Chain-of-Dictionary (CoD): 首先从源短语中提取单词,然后通过检索字典自动列出它们在多种语言中的含义。
DecoMT (Decomposed Prompting for Machine Translation): 将源文本分解为几个部分,独立使用少样本提示进行翻译,然后使用这些翻译和上下文信息生成最终翻译。
3.2 Multimodal (多模态)
3.2.1 Image Prompting (图像提示)
MM CoT (多模态思维链): 将思维链技术应用于图像模态。
Chain-of-Images (图像链): 生成图像作为其思维过程的一部分。
Duty Distinct CoT (职责分明的思维链): 扩展最少至最多提示到多模态设置,创建子问题,然后解决它们并将答案组合成最终响应。
MM Graph-of-Thought (多模态思维图): 将思维图技术扩展到多模态设置。
3.2.2 Audio Prompting (音频提示)
3.2.3 Video Prompting (视频提示)
Video Gen. (视频生成): 使用提示技术生成视频内容。
3.2.4 Segmentation Prompting (分割提示)
3.2.5 3D Prompting (3D提示)
4.1 Agents
4.1.1 Tool Use Agents (工具使用代理)
MRKL System (Modular Reasoning, Knowledge, and Language System): 包含一个LLM路由器,提供对多个工具的访问。
CRITIC (Self-Correcting with Tool-Interactive Critiquing): 先生成回答,然后使用工具检查或修正回答中可能的错误。
4.1.2 Code-Generation Agents (代码生成代理)
PAL (Program-aided Language Model): 将问题直接翻译成代码,并由Python解释器生成答案。
ToRA (Tool-Integrated Reasoning Agent): 类似于PAL,但交替使用代码和推理步骤来解决问题。
TaskWeaver: 将用户请求转换为代码,并可以使用用户定义的插件。
4.1.3 Observation-Based Agents (基于观察的代理)
ReAct (Reasoning and Acting): 生成思考、执行动作并接收观察结果,然后重复此过程。
Reflexion: 在ReAct的基础上增加自省层,生成关于之前动作和观察的反思。
4.1.3.1 Lifelong Learning Agents (终身学习代理)
Voyager: 通过提出任务、生成代码执行动作,并保存这些动作以备后用,形成长期记忆系统。
GITM (Ghost in the Minecraft): 从任意目标开始,递归地分解子目标,然后通过生成结构化文本来迭代规划和执行动作。
4.1.4 Retrieval Augmented Generation (检索增强生成)
IRCoT (Interleaved Retrieval guided by Chain-of-Thought): 结合思维链和检索的技术,用于多跳问题回答。
Verify-and-Edit: 通过生成多个思维链,然后选择一些进行编辑,来改进自我一致性。
Demonstrate-Search-Predict: 首先将问题分解为子问题,然后使用查询解决它们,并将响应组合成最终答案。
4.2 Evaluation(评估)
4.2.1 Prompting Techniques (提示技术)
Chain-Of-Thought: 使用思维链来提高评估性能。
In-Context Learning: 在评估提示中使用情境学习。
Model-Gen. Guidelines: 模型生成的评估准则。
Role-Based Evaluation: 基于角色的评估,用于改善和多样化评估。
4.2.2 Output Format (输出格式)
Binary Score: 二元分数,如是或否的回答。
Likert Scale: 李克特量表,用于评估的定序量表。
Linear Scale: 线性量表,如1-5或1-10的评分系统。
Styling: 使用XML或JSON样式格式化模型的响应。
4.2.3 Prompting Frameworks (提示框架)
LLM-EVAL: 一个简单的评估框架,使用包含变量评估方案的单一提示。
G-EVAL: 类似于LLM-EVAL,但在提示中包含自动生成的评估步骤。
ChatEval: 使用多代理辩论框架,每个代理具有不同的角色。
4.2.4 Other Methodologies (其他方法)
Batch Prompting: 批量提示,一次评估多个实例。
Pairwise Evaluation: 成对评估,直接比较多个文本的质量。
5.1 Security(安全性)
5.1.1 Types of Prompt Hacking (提示黑客攻击类型)
Prompt Injection (提示注入): 通过用户输入覆盖原有提示中的开发者指令的过程。
Jailbreaking (越狱): 通过提示让GenAI模型做出或说出非预期的事情的过程。
5.1.2 Risks of Prompt Hacking (提示黑客攻击的风险)
Data Privacy (数据隐私)
Training Data Reconstruction (训练数据重建): 从GenAI中提取训练数据的做法。
Prompt Leaking (提示泄露): 提取应用程序中的提示模板的过程。
Code Generation Concerns (代码生成问题)
Package Hallucination (包幻觉): LLM生成的代码尝试导入不存在的包。
Bugs (漏洞): LLM生成的代码中更频繁出现的错误和安全漏洞。
5.1.3 Hardening Measures (加固措施)
Prompt-based Defense (基于提示的防御): 在提示中包含特定指令以避免提示注入。
Guardrails (防护栏): 指导GenAI输出的规则和框架。
Detectors (检测器): 设计用来检测恶意输入并防止提示黑客攻击的工具。
5.2 Alignment(对齐)
5.2.1 Prompt Sensitivity (提示敏感性)
Prompt Wording (提示措辞): 提示中措辞的微小变化。
Task Format (任务格式): 提示任务的不同方式。
Prompt Drift (提示漂移): 模型随时间变化导致相同提示产生不同结果。
5.2.2 Overconfidence and Calibration (过度自信和校准)
Calibration (校准): 模型对其输出的信心水平的校准。
Verbalized Score (口语化分数): 生成一个信心分数的技术。
5.2.3 Biases, Stereotypes, and Culture (偏见、刻板印象和文化)
Vanilla Prompting (普通提示): 提示中包含的对模型保持公正性的要求。
Cultural Awareness (文化意识): 在提示中加入文化适应性。
AttrPrompt: 设计用来避免在生成合成数据时产生偏见的提示技术。
5.2.4 Ambiguity (歧义性)
Ambiguity Demonstrations (歧义性示例): 包含歧义标签集的示例。
Question Clarification (问题澄清): 允许LLM识别模糊问题并生成澄清问题。
| |
热门跟贴