打开网易新闻 查看精彩图片

生成性人工智能(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识别模糊问题并生成澄清问题。

| |