Advertisement

一文读懂「Prompt Engineering」提示词工程 基础版

阅读量:

在深入掌握提示机制之前,请您先了解一下其本质是什么?参考资料: 吴恩达《面向开发者的ChatGPT Prompt Engineering工程》

零、前置知识

1. NLP 发展的四大范式

在整个自然语言的发展过程中, 经历了四个阶段

  • 非神经网络特征工程:在传统机器学习时代(而非神经网络时代),人工智能主流计算依赖于完全监督的学习方法(如贝叶斯算法、决策树等)。这些方法的核心在于依赖统计分析与先验知识建立模型,在面对新数据时进行决策推断。然而其局限性在于数据质量和数量直接决定模型性能上限,并且成本高昂。
  • 基于神经网络的完全监督学习:这种技术的优势在于无需人工单独标注训练数据即可完成任务。
  • 预训练:其本质上是无监督学习的过程,在此阶段我们提到的大模型雏形——通过信息压缩的方式从大量知识中提取核心内容构建模型。
  • Prompt 工程:我们重点介绍的是Prompt技术(即提示工程)。通过设计合适的模板来管控模型输入输出流程,并利用其强大的推理能力实现零样本及少量样本下的高效应用。

2. LLMs三种私有化大型模型的方法

提示工程学 (Prompt Engineering):这是一种通过精心设计的输入提示来引导AI系统生成预期结果的技术。其显著优势在于能够迅速响应需求,并专为解决特定类型的问题而设计;然而,在某些情况下可能需要反复试验才能获得理想的结果,并不适用于所有复杂场景或问题类型。

(Knowledge Based Embeddings):通过整合外部知识资源与模型机制,在回答问题时能够调用相关背景信息。该方法显著提升了模型处理复杂问题及特定领域任务的能力。同时需要对这些知识进行整合与维护工作,并保证其准确性及更新频率。

微调(Fine-tuning)是指在特定数据集上对预先训练好的模型进行额外的优化过程。该过程有助于提升模型性能并使其更加专业以适应特定任务或领域然而其缺点在于需要投入大量标注数据并且可能引发过拟合现象

举个例子

  1. 指导方案相当于口头交待工作内容, 大学生凭借自身专业知识独立执行任务。
  2. 操作手册相当于使用指南, 当遇到技术难题时能够快速找到解决方案。
  3. 优化准备阶段相当于工作能力培养过程, 能够提升应对复杂工作场景的能力。

一、什么是Prompt Engingering?

该系统采用系统化的文本信息辅助生成指令的方法进行优化设计,在不影响现有模型架构的前提下实现目标输出结果的引导作用。这种基于上下文的智能辅助技术不仅能够帮助机器学习模型完成多种不同类型的推理任务,而且其效果因不同模型而异,因此需要进行大量实验并进行深入研究以确定最优配置方案

提示工程的目标在于收集这些特定的指导方针,并通过它们使模型在其输出中实现更高的准确度与相关性。掌握提示工程的相关知识能够帮助用户更深入地认识大型语言模型的能力及其局限性。特别地,在对话系统设计中应用矢量数据库、智能代理系统(agent)以及基于prompt的方法已经被证明是有效的途径,在这种架构下LLM可以被有效地引导去生成符合上下文的数据支持信息。

提示工程主要涉及制定、撰写和分类提示以实现所需输出。

Prompt 格式:识别 prompt 的结构及其格式时,请注意其主要包含以下几种类型:问题类目、说明方式以及核心要素等。

Prompt 内容:选择合适的词语、短语或问题,以确保模型理解用户的意图。

Context prompt:请参考先前的内容或相关背景信息,以确保模型的回答与之前的对话或情境保持相关性。

编写提示的方法:为了明确地传达需求,建议使用清晰、简洁且明了的语言来构建prompt。

提示项调优:经过多轮尝试后,在分析结果的基础上进行相应的调优操作,以达到更满意的效果

提示工程有助于优化大语言模型的性能,从而更有效地满足用户需求.这种策略在与模型交互的过程中被广泛应用,尤其在线性代数运算方面.例如,它能够用于矩阵分解,求解线性方程组以及计算特征值等.

二、提示工程分类

在这里插入图片描述

2.1 基本方式

1. Zero-shot Prompting

Zero-shot prompting指的是在大型语言模型(LLMs)中,默认情况下无需额外微调或重新训练,并可以直接通过文本提示来完成特定的任务。

主要思想:

  • 为了实现人类与机器之间的高效沟通与理解,我们需要构建一个能够自主学习并内化语言知识的基础平台。
  • 在保持原有知识库结构的前提下,通过引入新型算法框架提升系统的推理能力。
  • 系统将按照预设流程自动完成数据处理与分析工作以确保输出结果的高度一致性。

不足之处

案例:

2. Few-shot Prompting

few-shot prompting则基于模型获取极少量高质量的示例信息,并涵盖任务目标的输入与期望输出内容。经过分析这些高质量的示例信息后,模型能够更加清晰地把握人类意图并生成符合标准的准确输出结果。

关键思想 :

  • 继续基于经过广泛训练的通用语言模型
  • 借助软提示辅助模型实现新任务
  • 额外提供1-2个相关示例作为提示补充

缺点:这种方法会占用较多的token资源,尤其是在处理长文本输入或输出时会受到上下文长度限制的影响。大型语言模型(如GPT-3)具备出色的一类任务零样本学习能力,但在处理复杂场景时,few-shot提示策略往往能展现出更好的适应性。相较于复杂任务场景下采用zero-shot的方式而言,few-shot提示策略表现出更为优越的效果。为了提升系统性能,我们采用了基于,few-shot提示信息的上下文推理机制,并通过提供具体领域的典型案例进行训练,能够显著提升系统的推理能力。

案例:

3. Instruction Prompting

指令提示通常被认为是大语言模型(LLM)中最常见的应用场景之一,
特别是像ChatGPT这样的聊天机器人工具。
其主要目的是为预训练的大语言模型提供示例指令提示,
以便其能够消除训练与测试之间的差异,
并模拟真实使用场景。
这些(任务说明、输入与输出)三元组被用来微调模型,
以使其更好地理解用户的意图并遵循指示。
在与说明模型交互时,
应该尽量详细地描述任务要求,
使其尽可能具体明确,
明确指示应该执行的操作而无需指出不应做的行为。

案例:

2.2 组合方式

Prompt Engineering被视为一种工程方法,其基础在于多种复杂且有效的Prompt机制,并主要包含思维链(CoT)和递归提示(Recursive Prompting)这两种核心方法。

1. Chain-of-Thought Prompting

Chain-of-Thought(CoT)提示生成一系列短句,即被称为推理链的句子。

思维链提示即为将一个多步骤推理问题分解为多个中间步骤,并通过增加计算资源分配到每个中间步骤以提高处理效率;同时生成更多元化的 token序列,并将这些结果拼接成完整的解决方案。

涉及复杂推理任务和较大规模模型的训练能够带来显著的好处。常见的两种基本提示包括Few-shot提示和Zero-Shot提示。

1)Few-shot CoT
Few-shot CoT 允许模型查看一些高质量推理链的演示。
2)Zero-shot CoT
Zero-shot CoT是由Kojima等人在2022年首先提出的,它在提示中添加了“Let’s think step by step”,有助于提高模型性能。让我们看一个下面的例子:Zero-shot CoT能够帮助我们看到模型内部,并了解它是如何推理得出答案的。

2. Recursive Prompting

递归提示作为一种解决问题的方法,在人工智能领域具有重要应用价值。该方法通过将复杂的问题分解为较小且易于管理的子任务,并结合特定的提示信息逐步推进解决方案的生成过程。对于需要整合多样化的信息以达到特定目标的任务来说,这种技术表现出了显著的优势

在自然语言处理领域中,“递归提示机制”能够通过少量提示方法将复杂的问题划分为若干子问题;这些子问题是通过某种方式被识别出来的;系统会利用前一个已解决的子问题的答案来解答后续的问题;这种方法特别适用于数学计算和问答系统等任务;在这种情况下,“语言模型”需要具备将复杂的问题拆解成更简单部分的能力;这样才能有效地推导出最终的答案。

3. CoT 与 递归提示的混合使用

自我提问(self-ask)可被视为一种类型的递归提示,并作为一种反复提示模型用于提出后续问题来逐步构建思维过程。这些后续问题通常会通过搜索引擎的结果来获取解答。同样地,在IRCoT和ReAct系统中,则是将迭代CoT提示与对Wikipedia API的查询相结合,并利用这些查询结果搜索相关实体及内容信息,并将其纳入上下文进行处理。

思维树(Tree of Thought)通过深入探究每一步骤中的多维推理路径来拓展CoT能力。该系统首先将问题拆解为一系列具体的思考阶段,在每个阶段中产生多条可能的思路分支,并最终构建了一个层级分明的知识图谱。搜索策略可采用广度优先法或深度优先法,并根据设定的标准进行筛选优化;而每个节点的评估分类器则可通过基于prompt的辅助方式进行评估分类。

三、常见应用

3.1 常见实践

开发基于LLM的应用系统涵盖多个方面的工作内容包括设计架构优化功能模块等

静态提示:Prompt可以采用zero、single或few shot的方式。LLM 的生成能力通过在Prompt中包含示例数据来基于一次性学习或几次性学习显著地提升了。

上下文信息作为 LLM 生成响应过程中的参考框架,在一定程度上能够避免其产生幻觉。

静态提示转换为模板形式,在此过程中将键值替换成占位符;这些占位符在程序运行阶段由应用程序对应的值/变量进行替代。而这些变量或占位符则根据用户提出的问题以及知识库搜索结果进行填充,请注意这即被称为提示注入或者实体注入

提示链条:也被称为LLM链条,则是构建一系列模型调用连贯起来的概念。这些连续的调用依次展开,并且其中一条链条的输出会被下一条链条所接收。每一个子任务都旨在规模小且限定明确,并在此过程中扮演着独立而有序的角色

在机器学习领域中, 提示流水线可被视为一种端到端架构, 用于协调事件与数据流. 流水线通常由触发器发起操作或被触发; 同时基于特定事件和参数, 它会遵循这一流程, 该流程会产生相应的输出. 在提示流水线上, 通常由用户发起请求来启动. 因此, 在提示流水线上可被定义为智能扩展.

可以说LLM操作实现了高度自动化的方式被称为Agent代理机制,并且提示链是指按照预先规划好的指令序列执行操作。与预设事件顺序不同的是,系统具备调用多种工具的能力,能够处理所有在该工具包内的请求,并通过构建执行流水线的方式优化了系统的响应流程,这样系统可能需要反复推敲才能得出最终结论

基于CoT的指令(LLM)具备处理常识推理及算术等复杂任务的能力。利用基于CoT的Prompt指令构建LLM的CoT推理过程,并能有效指导其行为。其主要优势在于:通过解析LLM输入与输出之间的关系……提供系统性分析框架……帮助深入理解问题本质及其解决方案之间的关联性

ChatML:LLM的主要缺陷和滥用方式是Prompt注入攻击, ChatML支持防御性措施针对这些类型的攻击.为了消除Prompt注入攻击, 会话将被划分为几个层次或角色: 系统、助理与用户等, 然后进行相应的防护措施.

3.2 应用

在这里插入图片描述

四、Prompt Engineering优缺点

优点:

将所有任务统一为预训练语言模型的任务形式后,在方法上实现了统一性。这样就消除了预训练与微调之间的差距问题,并使几乎所有的自然语言处理(NLP)任务都可以直接应用这些方法而不需额外的数据准备。

卓越的性能:在小规模数据集上,Prompt Engineering的应用超越了微调技术。

3、信息容量大:研究数据显示,在某些领域中一个prompt所能提供的提示性作用等同于提供了超过100个真实数据样本的数量级差异。这一发现有力地表明了prompt所蕴含的「信息存储容量」之巨大

4、适应性较强:prompt在面对数据稀缺的任务场景中(包括zero-shot任务)展现出显著优势。这是因为大型模型通常难以在小规模数据上进行微调训练(即微调过程需要大量标注数据支持),因此基于prompt的方法自然成为优先考虑的选择

缺点:

在Label数量较多的任务中,在建立Prompt与Answer之间的映射确实存在较大的挑战;而构建一对理想的Prompt与Answer状态同样面临着诸多难题

2、理论分析较为薄弱:虽然Prompt方法已在多种应用领域展现了显著成效,但就现有的理论研究与保障机制而言,在Prompt-based Learning这一领域仍显不足。其中,在实现Prompt效果方面所依赖的技术机理尚不够透彻。

3、bias问题:存在以下三种bias问题需要解决:

样本分布不均衡的影响:当few-shot示例中的标签分配存在不均衡时,则会严重干扰测试任务的表现。这种现象可视为传统不均衡学习在提示设计中的典型表现。

(2)最近一批样本的类别偏见:在测试阶段,模型倾向于将输入归类为最近处理过的有限训练样本。这种现象类似于知识过载问题,在这种情况下系统会更倾向于记住近期输入的数据特征。

(3)高频词表现出偏见:该系统倾向于关注频繁出现的token。这是因为大型语言模型本质上属于统计学习方法,自然更关注频繁出现的那些词汇。

Prompt Engineering是模型开发最为基础的一个环节。然而在进行大模型开发时必须掌握各个细节。尽管看似简单但成本却非常高昂。值得投入时间和精力进行深入研究与思考。

五、未来和挑战

六、拓展阅读

  1. 非常不错的教程:earningprompt.wiki/
  2. 吴恩达《ChatGPT Prompt Engineering for Developers》课程中文版:https://www.bilibili.com/video/BV1oi4y167Nz/?spm_id_from=333.999.0.0
  3. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing
  4. LLM提示词工程学习笔记
  5. https://zhuanlan.zhihu.com/p/671863250

附录:什么是prompt?

1. 什么是Prompt

此指令是模型接收以生成响应或完成任务的初始文本输入。向AI提供一组提示作为输入内容用于指导模型生成响应来执行任务。此输入可取自一个问题一段描述一组关键词或其他任何形式的文字内容用于引导模型产生特定内容的响应。例如,在ChatGPT中用户通常使用prompt来与大语言模型进行交互请求回答问题生成文本完成任务等操作。根据提供的prompt 模型会输出与之相关的文本尽量满足用户的要求。

2. Prompt的分类

从多个角度而言,在此背景下可以通过不同标准或维度对Prompt进行分类

2.1 可解释性分类:硬提示和软提示

硬提示(hard prompt ) 是人工创建并预先定义好的带有离散输入标记的文字内容或文本模板,在程序设计中用于存储和复用。基于大模型的应用程序通常会将这些预先设定好的模板整合到系统中用于执行特定任务。静态提示 一种属于硬编码类型的特定指示,在LangChain框架下构建的应用程序中通常以固定的形式存在,并指导代理执行一系列操作。一般来说这类模板会包含以下要素:明确可访问的各种工具功能、何时调用这些工具的功能以及如何处理用户的输入数据等信息内容。软提示(soft prompt ) 则是在prompt优化过程中自行生成的一种特殊指令形式与之相对的是无法在文本中编辑修改的软编码类型它通常以嵌入形式存在或者是一串数字参数代表从大模型中获取的知识信息。由于缺乏可解释性所以这种类型的prompt无法向用户解释其决策依据仅像黑箱一样工作与传统的深度学习模型训练方式相似通过提供大量辅助训练数据可以显著提升软prompt的效果但目前仍然无法完全替代额外的数据补充方式。此外在LLM应用开发过程中还有一种称为prompt微调的技术这种方法的核心思想是利用一个小规模可训练的小模型对原始prompt进行编码转换并生成专门针对具体任务的独特虚拟令牌标识符这些虚拟标识符会被附加到原有的prompt前后并在后续的任务推理过程中传递给LLM引擎作为上下文输入参数从而提高LLM的回答质量与性能表现同时该技术的优势还体现在能够快速构建所需的上下文环境从而显著提升系统的运行效率

2.2 交互方式分类:在线提示和离线提示

在线提示(Online prompt) 是在与模型的实时互动中提供的提示,通常用于即时的交互式应用。这种提示在用户与模型进行实际对话时提供,用户可以逐步输入、编辑或更改提示,在在线聊天、语音助手、实时问题回答等应用中常见。
**离线提示(Offline prompt )**是预先准备好的提示,通常在用户与模型的实际互动之前创建。这种提示在没有用户互动时预先设计和输入,然后整批输入模型进行批量处理。在离线文本生成、文章写作、大规模数据处理等应用中常见。
对提示分类为 “online” 或 “offline” ,可帮助确定如何有效地使用提示,以满足不同应用的需求。在线提示通常用于需要实时交互和即时反馈的情况,而 离线提示则适用于需要大规模处理或预生成文本的情况。根据具体应用和使用情境,您可以选择适当的提示类型。

2.3 应用领域分类

通过将用途进行分类可以识别出 prompt的核心目的

  • 信息检索 (Information Retrieval):这些提示旨在从模型中提取特定信息以满足查询需求。它们可用于问答系统、知识库构建以及数据挖掘等多个应用场景。
  • 文本生成 (Text Generation):这类提示指导模型创作多种类型的内容,包括但不限于文章撰写、故事创作以及评论撰写等。
  • 翻译 (Translation):这些提示主要用于将文本从一种语言转换为另一种语言。其主要应用场景包括机器翻译系统的设计与开发。
  • 情感分析 (Sentiment Analysis):这类提示用于评估文本的情感倾向性分析工具广泛应用于社交媒体情感追踪和市场情绪研究等领域。
  • 编程与代码生成 (Programming and Code Generation):这些提示主要用于生成计算机程序代码或解决编程问题。它们在编程辅助工具开发及自动化代码处理方面发挥重要作用。
  • 对话 (Conversation):这类提示模拟对话交互过程并提供相应的回应选项。其典型应用包括智能聊天机器人及语音助手开发。
  • 特定任务 (Task-Specific):这些提示针对特定应用场景设计如旅游规划制定营销文案编写及报告撰写等任务均可能涉及此类提示。
  • 自定义应用 (Custom Applications):这类提示根据具体需求定制化设计适用于不同领域的个性化解决方案。
    通过将提示分类为不同的具体用途可以帮助更好地理解其在各种任务中的应用情况选择合适的提示类型并据此设计满足特定需求的应用程序

3. Prompt的要素

在这里插入图片描述

当我们应用Prompt时, 我们需掌握它可能包含的六个关键要素: 任务, 上下文, 示例, 角色扮演, 格式规范以及语气风格. 并按重要性排序.

任务(Task): 任务通常是Prompt的核心内容。它多是以动词开头的指令性语素序列,主要用来指示系统应采取的具体行动或提供所需的服务,并在此过程中发挥指导作用。这些指令可能涉及生成文本、提供建议以及撰写内容等多种方面,也可以包含多个具体的任务,从而帮助你更明确地界定你的需求

在这里插入图片描述

提供背景信息(Context):基于任务的需求

在这里插入图片描述

范例是帮助模型更好地理解和执行任务的部分。它能够清晰展示所需的输入形式及预期结果,并指导模型如何处理特定类型的任务或问题。通过提供具体的案例分析或操作流程,可以帮助提升模型的学习效果及准确性。然而,并非每次都必须提供范例,在某些情况下也可以让模型自行生成相应的处理方式或解决方案以适应不同的需求场景

在这里插入图片描述

角色(Persona): 角色明确设定ChatGPT和Bard(如果涉及虚构角色)所扮演的角色或身份。这种设定既可以指代具体的个体... 从而调节语气并根据具体情况调整内容。

在这里插入图片描述

呈现格式:格式部分清晰展示了你预期的外观和结构等

tense: tense 定义了输出文本的情绪或风格特征,例如正式、非正式或幽默等基调,这些特征共同塑造了整体语调,从而影响读者的情感体验和理解效果.设定明确的具体 tense 可以帮助确保 ChatGPT 的回应符合预期的情绪需求.通过合理地整合这六个关键要素——意图、受众、用词选择、语调调节机制以及信息传达策略——可以系统性地构建出一个清晰明了的 prompt,从而有效引导模型聚焦于生成目标文本的核心内容与细节,实现更加精确的语言表达与情感共鸣.

在这里插入图片描述

4. Prompt的工作原理

这种技术旨在补充目标文本的内容。设想中的一部分可能会延续这一描述。编码器利用该模型计算所有可访问token的概率分布,并通过应用softmax函数将这些概率值转换为对应生成token的可能性分布。

如果观察top 5个输出token, 它们都是有意义的. 我们可以产出以下看起来合法且有效的短语:

The city of love, Paris, is renowned worldwide. A city that never sleeps, Paris, is known worldwide for its vibrant atmosphere. Art and culture flourish in Paris, a fact that speaks to its rich heritage. Known for its iconic landmarks, Paris stands as a global symbol of beauty and history. History imparts a unique charm to Paris, making it an unforgettable destination. Subsequently, different strategies are employed to select tokens.

4.1 greedy sampling

该模型在每个步骤中都选择它倾向于认为最可能的下一个词语——它不考虑其他可能性或探索不同的选项。该模型总是根据当前上下文的概率分布选择最可能出现的下一个词,并基于所选单词继续生成后续内容。

在这里插入图片描述

采用贪心策略是一种高效且直接的计算方式 但这也可能导致重复或过于确定性结果 因为模型在每个步骤仅考虑最有可能标记可能导致无法捕捉到上下文及语言的多样性 同样不能生成具有高度创造性的回答 这一局限性使得模型仅关注每个步骤中最可能出现的情况而不考虑整体影响 而未能考虑到整个序列的整体影响

Beam搜索是一种常见的文本生成策略。在 Beam 搜索过程中,模型基于最可能序列的选择机制, 通过选择一组最可能的前"k"个子序列来进行预测, 而不仅仅是单独选择当前步长中最可能的一个子序列。这些被选中的"k"个子序列构成所谓的 Beam集

在这里插入图片描述

模型同时利用每一个token的可能性来探索潜在的结果空间,并动态地对每一个possible beam进行概率追踪,在每一次text generation步骤中都会记录这些信息。这一流程将持续进行下去直至满足特定终止条件:要么完成预定长度的目标文本;要么任意一个possible beam触发了结束标记标识符(Termination Token)。随后系统将从所有possible beams中筛选出总概率最高的路径并将其作为最终结果输出。从算法角度来看创建possible beams的过程等同于建立一棵k-ary树状数据结构;完成这一操作后系统将选取其中拥有最大累积可能性值的那个子路径作为最终输出结果

4.3 probability sampling

简而言之, 该方法涉及通过选取一个随机值, 并将其映射至选定的词汇以确定下一个词. 类似于投转转盘的方式, 每个词汇占据特定面积, 其大小由相应概率决定. 概率越高, 该词汇被选中的可能性越大. 这是一个较为简单的计算方案, 然而由于较高的随机性特点, 句子(或词语序列)在每次运行时可能会有所差异.

在这里插入图片描述

4.4 ramdom sampling with temperature

通常情况下,在自然语言处理中使用 softmax 函数将 logit 值归一化为概率分布。在这里引入了一个调节参数——温度系数 T(Temperature),这一参数通过调节生成文本的多样性程度来影响文本生成过程中的随机性。对比而言,在比较不同的激活函数时会发现 temperature 系数在调控生成文本的概率分布中的作用更加明显。在引入 temperature 系统后的一个重要区别在于分母被设置为 T。当 temperature 系数 T 趋近于 1 时(即接近于 1),输出结果会变得更加多样化;而当 T 趋近于 0 时(接近 0),输出结果则会更加集中并具有更高的确定性。当 temperature 系数 T 等于 1 时,则演变为最初使用的 softmax 函数的应用形式。

在这里插入图片描述

4.5 top-k sampling

仅使用前k个token而非所有token。这将提高文本生成的稳定性,并不会显著降低其创造性的水平。目前仅对前k个token实施温度控制下的随机抽样。唯一的潜在问题是数字k的选择。

在这里插入图片描述

4.6 top-P sampling

top-p采样采用了一个概率阈值p而非指定一个恒定的k值。此阈值被用来表示模型期望包含在内的累积概率。在每一个步骤中模型会评估所有可能Token的概率并根据其大小进行排序。

在这里插入图片描述

该模型将依次追加token至生成的内容里,并持续此过程直至累积概率达到预设阈值为止

4.7 Prompt 的可能工作机制

在预训练语言模型中

randomness

diverse language experiences

5. Prompt的使用技巧

官方文档指出,在与大模型交互时的核心要点是需要提供清晰具体的需求。这要求你给出一个没有任何歧义的需求描述以便大模型能够提供更准确的反馈。他采用了既有趣又精准的方法就像向外星人解释人类世界一样地向大模型讲解提示信息

原则1:清晰明确

不要像女人说话一样,让大模型去猜测,去揣摩人心。写的越具体越好。

为了准确识别处理的对象,请采用特定的分隔符来明确标识输入的不同部分。

为了更好地分析模型的输出结果,采用组织化的表示形式是一种有效的方法。具体而言,在某些应用场景中,默认使用HTML或JSON格式能够提供清晰且易于处理的数据结构。

3、具体和直接:越直接,信息传递就越有效

4、要做什么:避免说「不要做」什么,而是说「要做」什么

少样本提示:在模型执行实际任务之前提供给模型成功执行该任务的示例以便告诉模型你希望它完成的任务(In context Learning)

原则2:给模型思考的过程

1、指令拆分:分条目编写指令,指定完成任务所需的步骤

2、逻辑链:让模型给出结论前先自行推理

创建一个新的prompt来界定为"好"的标准,并指示LLM审查其之前的输出结果来确定是否符合"好"的标准。

使用 Prompt 的关键框架

基于 ICIO 的架构

  • 背景:建立足够的背景信息以帮助大模型理解问题的上下文环境
    • 角色设定:根据特定角色的能力特点来设定具体的角色类型
    • 目标:明确任务的核心目标以便大模型了解其职责范围
    • 结果定义:制定清晰的标准来衡量大模型执行的效果
    • 调整策略:根据实际情况灵活调整执行方案以优化结果质量
  1. CRISPIE 框架
  • CRISPIE框架中的角色与能力:大模型应承担的角色
  • 提供深层洞察:包括背景信息、上下文以及对问题的深入理解
  • 明确任务声明:清晰简洁地说明所需完成的任务
  • 定制化回应:根据需求调整风格、语气或呈现方式
  • 实践案例:通过示例提供多种可能的回答方案

全部评论 (0)

还没有任何评论哟~