距离上次学习提示词工程已经是上次了,最近在做AI视频脚本方案设计,又涉及到到如何按照人设进行视频脚本的产出,并且需要商业化,这个时候除了研究抖音爆款视频的逻辑和拆解之外,还需要再回炉一下提示词工程的知识,讲真再回去看之前的学习笔记的时候,觉得那时候的笔记真的好学术,好清汤寡水,好不接地气,这周再花两三个小时总结和梳理一下,进一步应用在我的这个项目里面!

第一步依旧是上资源

核心点总结

大白话讲背景:AI并不像人类那样拥有自主的常识和生活经验,它依赖于提示词提供的上下文信息。这意味着,提示词越清晰、越具体,AI越能理解你的意图。

一句话定义:设计有效的提示词,以指导模型,执行期望任务的方法被称为提示工程。

核心要素

  • 指令:想要模型执行的特定任务或指令。

  • 上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。

  • 输入数据:用户输入的内容或问题。

  • 输出指示:指定输出的类型或格式。

设计原则

  1. 编写清晰、具体的指令;

    • 使用分隔符清晰地表示输入的不同部分,分隔符可以是:```,”“,<>,:, 等;
    • 寻求结构化的输出,输出可以是 JSON, HTML 等格式;
    • 要求模型检查是否满足条件,如果任务包含不一定能满足的假设(条件),我们可以告诉模型先检查这些假设;
    • 提供少量示例,Few-shot prompting;
  2. 给 LLM 时间去思考;要求模型在提供最终的答案之前开展思维链或进行一系列相关的推理。

    • 指定完成任务所需的步骤;
    • 指导模型在下结论之前找出一个自己的解法。对于需要判断一个已有的答案是否正确的情景,可以先让模型自行得出一个解法,再行比较两者来得出结论;

提示分类

提示词可以分为系统提示和用户提示两大类。理解这两者的区别有助于更有效地引导AI生成所需的回答。

  • 系统提示:AI模型内部使用的提示,通常用于指导模型如何执行特定任务。这些提示通常由AI开发者或工程师预先设计,用来规范和优化AI的工作方式。特点如下:
    • 预定义:系统提示通常在模型训练或部署时就已经设定好,用户无法直接修改。
    • 广泛适用:这些提示适用于多种任务,帮助AI在不同场景下保持一致的表现。
    • 行为规范:系统提示可以设定AI的语气、风格和具体行为规范,确保输出的稳定性和质量。

比如说:

  • 指示模型如何回答问题:”在回答用户问题时,请保持专业和礼貌的语气,并提供尽可能详细的信息。”
  • 设定输出格式: “生成的回答应包含以下结构:引言、主要内容和总结。”

这种系统提示可以确保AI在不同用户交互中保持一致的语气和结构,提升用户体验。

  • 用户提示:由终端用户输入的具体指令或问题,用来引导AI生成特定的回答。用户提示的灵活性和多样性,使得它们能够针对具体需求进行定制。特点如下:
    • 灵活多变:用户可以根据具体需求和场景随时修改提示词。
    • 具体性强:用户提示通常针对特定问题或任务,提供详细的背景信息和要求。
    • 直接交互:用户提示是用户与AI互动的直接方式,决定了AI生成内容的具体方向和质量。

比如说:

  • 询问具体信息:”你能详细介绍一下人工智能在医疗领域的应用吗?”
  • 要求特定格式:”请用500字解释气候变化的原因、影响和应对措施。”

通过用户提示,用户可以精准地控制AI的输出,使其更符合个人需求和特定情境。

常用框架

  1. ICIO 框架:Instruction(指令)+Context(背景信息)+Input Data(输入数据)+Output Indicator(输出引导)。

    • Instruction(指令):框架的核心,用于明确AI需执行的任务。编写指令时,应简明扼要,确保AI可准确把握任务目标及要求。
    • Context(背景信息):包括任务背景、目的、受众、范围、扮演角色等等,有助于AI理解任务并生成响应。
    • Input Data(输入数据):告知模型需要处理的数据,非必需,若任务无需特定的输入数据,则可省略。
    • Output Indicator(输出引导):告知模型输出结果的类型或风格等,如指定所需语气(正式、随意、信息性、说服性等)、定义格式或结构(如论文、要点、大纲、对话)、指定约束条件(如字数或字符数限制)、要求包含引用或来源以支持信息等。
  2. CO-STAR框架:Context(上下文)、Objective(目标)、Style(风格)、Tone(语气)、Audience(受众)、Response(回复)。

    • Context(上下文):提供任务的上下文信息,有助于LLM了解正在讨论的具体情景,确保其答复具有相关性。
    • Objective(目标):明确你希望LLM执行的任务是什么,有助于LLM把回答的重点放在实现这一具体目标上。
    • Style(风格):表明你希望LLM使用的写作风格,可以是鲁迅、余华等某个名人的写作风格,也可以是某个行业的某个专家,如商业分析专家或首席执行官。
    • Tone(语气):确定回复的态度,可确保LLM的回复与所需的情感或情绪背景符合,如正式的、幽默的、具有说服力的等。
    • Audience(受众):确定回复的对象,根据受众(如初学者、儿童等)量身定制LLM的回复,确保其在所需的语境中是恰当的、可以理解的。
    • Response(回复):明确回复格式,确保LLM按照下游任务所需的准确格式输出。例如,列表、JSON、专业报告等。
  3. CRISPE框架:Capacity(能力)、Role(角色)、Insight(见解)、Statement(声明)、Personality(个性)和Experiment(实验)。

    • Capacity and Role(能力和角色):指示 LLM 应扮演什么角色,具备什么能力。
    • Insight(见解):提供你请求的背后见解、背景和上下文。
    • Statement(声明 ):你要求 LLM 做什么。
    • Personality(个性):你希望 LLM 以何种风格、个性或方式回应。
    • Experiment(实验):请求 LLM 为你回复多个示例。

提示技术:Techniques and Applications

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

💡 以下详细内容选择性阅读,建议直接读综述文章。

1. New Tasks Without Extensive Training

零样本提示(Zero-Shot Prompting)

零样例提示为利用大型语言模型提供了范式转变。这种方法消除了对大量训练数据的需求,而是依赖于精心设计的提示来引导模型完成新任务。具体来说,模型会在提示中接收到一个任务描述,但缺乏特定输入输出映射的标记数据用于训练。然后,该模型会利用其预先存在的知识根据给定的提示为新任务生成预测。

少样本提示(Few-Shot Prompting)

与零样本提示不同,其中不提供示例,小样本提示为模型提供了少量输入输出示例,以诱导对给定任务的理解。即使只提供几个高质量的示例也比没有演示显著提高了模型在复杂任务上的性能。然而,小样本提示需要额外的token来包含示例,这可能对于较长的文本输入来说是禁止的。此外,提示示例的选择和组合可以显着影响模型行为,而偏爱频繁单词等偏差仍然会影响小样本结果。虽然小样本提示增强了处理复杂任务的能力,尤其是在像 GPT-3 这样的大型预训练模型中,但仔细设计提示至关重要,以实现最佳性能并减轻意外的模型偏差。

2 推理与逻辑(Reasoning and Logic)

Chain-of-Thought (CoT) Prompting

由于复杂的推理能力有限, LLMs 通常会遇到困难。为了弥合这一差距,引入了连锁思维(Chain-of-thought,CoT)提示作为技术来以一种促进连贯和逐步推理过程的方式提示 LLM。主要贡献在于提出并探索了 CoT 提示,证明其相对于传统提示更能激发 LLM 的结构化和深思熟虑的响应。通过一系列实验,作者展示了 CoT 提示的独特品质,强调了它引导 LLM 通过逻辑推理链的能力。这导致了对给定提示有更深入理解的响应。例如,提示会显示多步数学问题的推理过程和最终答案,并模仿人类如何将问题分解为逻辑中间步骤。

Automatic Chain-of-Thought Prompting(Auto-CoT)

高质量CoT示例的手动创建既费时又不理想。引入了Auto-CoT,以“Let’s think step-by-step”为提示,自动指导语言模型生成推理链。认识到个别生成的链路可能出现错误的可能性,Auto-CoT通过多样化的采样来增强鲁棒性。它对各种问题进行抽样,并为每个问题生成多个独特的推理链,形成最终的演示集。这种自动多样的抽样减少了错误并增强了小样本学习,消除了需要费力地手动构建推理链的需求。Auto-CoT展示了增强的表现,超越了CoT范式,在使用GPT-3的算术和符号推理任务中平均准确率分别提高了1.33%和1.5%。

自洽性(Self-Consistency)

Self-consistency是一种解码策略,用于提高与贪心解码相比的 CoT 提示推理性能。对于具有多个有效路径的复杂推理任务,Self-Consistency通过从语言模型的解码器中采样生成不同的推理链,然后通过积分这些采样链来识别最一致的答案。这种方法利用了这样一个观察结果:需要深思熟虑的问题往往涉及更多的推理多样性,从而导致解决方案

逻辑思维链提示(LogiCoT)

逻辑推理能力对于解决多步骤、跨多个领域的复杂问题至关重要。现有方法,如 CoT 提示,鼓励逐步推理,但缺乏有效的验证机制。LogiCoT的逻辑链思维提示(神经符号框架)利用符号逻辑的原则以连贯且结构化的方式增强推理。具体来说,LogiCoT 应用归谬法的概念来验证推理的每一步骤。通过生成模型并提供有针对性的反馈来修改错误步骤。LogiCoT 可以通过一个思考-验证-修订循环来减少逻辑错误和幻觉。

链式符号 (CoS) 提示(Chain-of-Symbol Prompting)

由于对自然语言的依赖,LLM经常在涉及复杂空间关系的任务中遇到困难,因为自然语言容易产生歧义和偏见。为了克服这一限制,CoS使用紧凑符号代替自然语言。CoS具有明显的优势:清晰简洁的提示、增强的空间推理能力以及提高的人类可解释性。CoS存在可扩展性、通用性和不一致性等挑战。

思维树 (ToT) 提示

树思维 (ToT) 框架以增强对需要探索和前瞻推理的复杂任务的提示能力。 ToT 扩展了 CoT 提示,通过管理称为“thought”的中间推理步骤的树结构来实现这一点。 每个想法都代表一个朝着最终解决方案移动的语言序列。这种结构使语言模型能够评估思想在解决问题时产生的进度来推理。ToT像广度优先或深度优先搜索这样的搜索算法一样集成了模型生成和评估思想的能力。这使得可以在推理链之间系统地进行探索,并在找到错误解决方案时回溯。

Graph-of-Thoughts Prompting (GoT)

人类思维过程固有的非线性性质挑战了传统的顺序式的COT提示方法。Graph of Thoughts是一种基于图形的框架,它改进了传统序列方法,以更好地与人类思考的非线性特征对齐。该框架允许动态交互、回溯和评估想法,使来自不同分支的思想聚合和组合,从而脱离了tree of thoughts的线性结构。关键贡献包括将推理过程建模为有向图,并提供具有多种转换操作的模块化架构。该框架作为语言模型提示的一种灵活且动态的方法呈现出来,捕捉到人类思维过程的复杂性并增强模型的能力。

System 2 Attention Prompting(S2A)

基于Transformer的大语言模型中的soft attention mechanism容易包含不相关的上下文信息,影响token生成。为了解决这个问题,System 2 Attention(S2A)利用大语言模型的推理能力通过重新生成输入的上下文以此来针对性的选择相关的部分。S2A采用两步过程:
1)通过给定的上下文重新生成与问题相关的上下文内容;
2)基于重新生成的上下文和问题进行答案回复。
在各种任务中评估了S2A的有效性,包括事实问答、长篇生成和数学应用题等。

Thread of Thought (ThoT) Prompting

Thread of Thought (Thot)是一种旨在增强在混乱环境中 LLM 的推理能力的提示技术。受到人类认知的启发,它系统地将大量的上下文分解为可管理的部分进行增量分析,采用两阶段方法,在 LLM 首先总结并检查每个部分之前对信息进行细化以产生最终响应。Thot 的灵活性使其成为一种通用的“即插即用”模块,可以提高不同模型和提示方法之间的推理性能。在问答和对话数据集上的评估表明,Thot 在混乱环境中的表现有了显著提升,分别提高了 47.20% 和 17.8%。

Chain-of-Table Prompting

CoT、PoT 和 ToT 等方法通过自由文本或代码表示推理步骤,但当处理复杂的表格场景时会面临挑战。[Wang et al.,2024]的研究介绍了一种名为Chain-of-Table的开创性提示技术。这种方法使用逐步表格推理来动态生成并执行针对表格的常见SQL/数据帧操作。该过程的迭代性质增强了中间结果,使 LLM 能够通过逻辑可视化推理链进行预测。值得注意的是,Chain-of-Table 在 TabFact 上平均提高了 8.69%,在 WikiTQ 上平均提高了 6.72% 的基准表格数据集性能。

3 减少幻觉(Reduce Hallucination)

检索增强生成 (RAG)

语言模型已经彻底改变了文本生成,然而它们对有限、静态训练数据的依赖阻碍了准确的回答,尤其是在需要外部知识的任务中。传统的提示方法不够充分,需要昂贵的重新训练。检索增强生成(RAG)成为一种新的解决方案,无缝地将信息检索融入到提示过程中。RAG 分析用户输入,构建一个**有针对性地查询,并在预先构建的知识库中搜索相关资源。检索到的片段被纳入原始提示,为其提供上下文背景。**增强后的提示使 LLM 能够生成富有创意且事实准确的响应。RAG的敏捷性克服了静态限制,使其成为需要最新知识的任务的游戏规则改变者。

ReAct Prompting

与以往将推理和行动分开处理的研究不同,ReAct 允许 LLMs 同时生成推理轨迹和任务特定动作。这种交替过程增强了推理和行动之间的协同作用。ReAct 通过与简单的维基百科 API 进行交互来处理幻觉和错误传播问题,从而促进模型在处理异常情况时诱导、跟踪和更新行动计划。ReAct 在各种语言和决策任务中得到了应用,证明了其相对于最先进的基准线的有效性。值得注意的是,在问答(HotpotQA)和事实验证(Fever)中,ReAct 制定了更可解释的任务解决轨迹。此外,在 ALFWorld 和 WebShop 等互动式决策基准上,ReAct 超越了模仿学习和强化学习方法,分别取得了 34% 和 10% 的显著成功率,即使在很少的上下文示例的情况下也是如此。

Chain-of-Verification(CoVe)Prompting

为了解决语言模型中的幻觉,Chain-of-Verification(CoVe)是一个包括四个步骤的系统过程:Baseline Response、Plan Verifications、Execute Verifications、Final Verified Response。通过这种精心设计的多步方法来验证其工作,语言模型增强了逻辑推理能力,并在矛盾信息的情况下减少了错误。CoVe 模拟了人类对模型输出的一致性和准确性的验证。

Chain-of-Note (CoN) Prompting

检索增强语言模型(RAMLs)通过整合外部知识来减少事实臆想,从而增强大型语言模型。然而,检索到的信息的可靠性无法保证,可能会导致潜在的误导性响应。标准RAMLs难以评估其知识的充足性,并且在缺乏信息时经常不能以“未知”方式做出回应。为了解决这些挑战,[Yu等人,2023年]引入了一种新颖的方法来提高RAMLs的鲁棒性,该方法可以处理噪声、不相关的文档并准确地解决未知情况。CoN系统地评估了文档的相关性,强调关键和可靠的信息以过滤掉不相关内容,从而产生更精确和上下文相关性的响应。在各种开放领域的问答数据集上进行测试表明,这显著提高了准确性,包括对于嘈杂检索文档的精确匹配得分平均提高了7.9分以及对超出预训练知识的问题拒绝率提高了10.5分。

Chain-of-Knowledge(CoK)Prompting

传统的语言模型提示技术已被证明在处理基本任务方面具有强大的能力。然而,由于复杂的推理挑战,它们的有效性会降低,通常会导致不准确的输出,这些输出充满了事实上的幻想和晦涩难懂的思想过程。这种局限性源于它们对固定知识源的依赖、无效的结构化查询生成以及缺乏渐进式纠正,无法充分引导 LLM。受人类解决问题的启发,CoK [Li等人,2023d] 系统地将复杂任务分解为协调良好的步骤。该过程从一个简单的起点开始:全面推理准备阶段,上下文得到建立,问题被构思。随后,它会进入动态知识适应阶段,从其内部知识库、外部数据库以及给定提示等不同来源精心收集证据。

4 用户界面

主动提示

主动提示解决适应 LLM 多样化推理任务的挑战,即通过特定于任务的示例提示链式思维 (CoT) 推理来提高 LLM 在复杂问答任务上的性能。与现有基于 CoT 的方法不同,这些方法依赖于固定的人类注释示例集,主动提示引入了一种机制来确定最有影响力的注释问题。该方法借鉴了基于不确定性的主动学习,并利用各种指标来表征不确定性并选择最不确定的问题进行注释。主动提示显示出了优越的表现,在文本 davinci-002 和代码 davinci-002 中平均比自我一致性高 7.0% 和 1.8%,展示了最先进的结果。

5 Fine-Tuning and Optimization

Automatic Prompt Engineer (APE)

虽然为 LLM 创建有效的提示传统上是一项艰巨的任务,需要专家注释人员的努力,自动提示工程师(APE)作为生成和选择 LLM 指令的创新方法,通过动态生成并针对特定任务选择最具影响力的提示来摆脱静态、手工设计的提示的局限性。这种方法分析用户输入,制定候选指令,然后利用强化学习选择最佳提示,并根据上下文进行实时调整。对多样化的 BIG-Bench 套件和 CoT 推理任务的广泛测试揭示了 APE 的威力,在大多数情况下(24 项任务中的 19 项)超过了人类编写的提示,并显著提高了 LLM 的推理能力。这一自动提示工程的突破为 LLM 提供了解决更广泛任务范围的能力,从而以更高的效率和适应性解锁它们在各种应用中的全部潜力。

6 Knowledge-Based Reasoning and Generation

Automatic Reasoning and Tool-use(ART)

有限的推理能力和缺乏外部工具的使用阻碍了 LLM 在复杂任务中的潜力。自动推理与工具使用 (ART)使 LLM 能够通过多步过程进行推理,并无缝集成外部专业知识。ART 拯救了推理鸿沟,使 LLM 能够解决复杂问题并超越简单的文本生成。通过整合外部工具来获取专门知识和计算,ART 解锁了前所未有的多功能性,并用现实世界的相关性告知 LLM 输出。这使得 LLM 能够为科学研究、数据分析甚至决策支持等多样化领域做出贡献。

ART 模型通过结构化程序引导推理步骤,超越了传统的提示技术,消除了繁琐的手工制作需求。其动态工具集成确保了顺畅的合作,暂停生成以整合外部工具输出,并无缝恢复流程。

7 Improving Consistency and Coherence

对比思维链提示(Contrastive Chain-of-Thought, CCiT)

传统的大规模语言模型提示通常会遗漏一个关键元素:从错误中学习。这就是对比思维链提示(Contrastive Chain-of-Thought Prompting,CCoT)要解决的问题,它为原始提示提供有效和无效推理示例。想象一下,在地图上探索正确的道路和需要避免的错误转弯——这就是对比思维链的优势!这种双重视角的方法在像 SQuAD 和 COPA 这样的推理基准测试上进行了测试,促使语言模型进行逐步推理,导致战略和数学推理评估比传统的连锁思维提示提高 4%-16%,进一步通过自我一致性技术提高了约 5%。然而,对于这种方法仍然存在一些问题,例如自动化生成各种问题的对比演示以及将其应用于推理之外的其他 NLP 任务的应用性。

8 情绪管理和语气(Managing Emotions and Tone)

情感提示(Emotion Prompting)

虽然语言模型在各种任务上都表现出令人印象深刻的能力,但它们理解心理和情感线索的能力仍不确定。EmotionPrompt解决了人们对语言模型理解情感线索能力的不确定性。在提示中附加了11个情绪刺激句子,以增强语言模型的情商,在增强语言模型处理情感信号能力方面的有效性。

9 代码生成与沙盒执行(Code Generation and Execution)

Scratchpad Prompting

尽管基于Transformer的语言模型在生成基本编程任务代码方面表现出色,但它们在需要精确推理的复杂、多步骤算法计算中遇到了挑战。为了解决这个问题,Nye等人提出了一种新的方法,侧重于任务设计而不是模型修改,并引入了“便笺”概念。该提议使模型能够在提供最终答案之前生成任意顺序的中间标记序列。

思维程序(PoT)提示

由于语言模型容易出错、无法处理复杂的方程式以及表达迭代计算的低效性,因此它们在解决数学表达式方面并不理想,思维程序(Program-of-Thoughts,PoT)提示建议使用外部语言解释器来执行计算步骤,提高语言模型的数值推理能力。PoT使像Codex这样的模型能够通过可执行的Python程序来表示推理过程,与CoT提示相比,在涉及数学单词问题和金融问题的数据集上平均性能提高了约12%。

结构化思维链提示 (SCoT)

语言模型在代码生成方面表现出了令人印象深刻的能力。广泛使用的连续提示涉及在生成代码之前产生中间自然语言推理步骤。尽管它在自然语言生成方面的有效性,但当应用于代码生成任务时,连续提示显示准确性较低。[李等人,2023年c]介绍结构化链式思维(SCoTs)作为专为代码生成而设计的创新提示技术。通过将程序结构(序列、分支和循环结构)纳入推理步骤,SCoTs 提示增强了 LLM 在生成结构化源代码方面的性能。这种方法明确地指导 LLM 考虑来自源代码的要求,从而提高了它们的整体效率与 CoT 提示相比,在代码生成方面。作者验证了 SCoTs 在 ChatGPT 和 Codex 上的有效性,并且在三个基准测试(HumanEval、MBPP 和 MBCPP)中表现出比 CoT 提示优越的表现高达13.79%。

代码思维链提示(CoC)

虽然连续提示对于提高语言模型(LMs)的语义推理能力非常有效,但它在处理需要数值或符号推理的问题时却步履维艰。[李等人,2023年]介绍了Chain-of-Code (CoC)作为扩展,通过利用代码编写来改善基于逻辑和语义任务的推理。CoC鼓励LMS以灵活的伪代码格式化语义子任务,使解释器能够捕获未定义的行为,并使用“LMulator”进行模拟。实验表明,CoC优于链式思维和其他基准线,在BIG-bench Hard上达到84%的准确率,提高了12%。CoC在大型和小型模型中都证明了其有效性,通过采用“用代码思考”的方法,增加了对推理问题正确回答的能力。

10 Optimization and Efficiency

Optimization by Prompting(OPRO)

在各个领域,优化是一种基本过程,通常涉及迭代技术。[杨等,2023年]简介-提示比较范围OPRO 是一种新颖的方法,利用 LLM 作为优化器。与传统方法不同,OPRO 利用自然语言提示根据问题描述迭代生成解决方案,从而快速适应不同的任务并定制优化过程。通过针对线性回归和旅行推销员问题等经典问题的案例研究展示了 LLM 的优化潜力。此外,它还探讨了在自然语言处理任务中最大化准确性的提示优化,并强调了 LLM 的敏感性。实验表明,在小训练集上优化提示以提高准确性有效地转化为测试集上的高性能。OPRO 引领着显著的性能提升,其中 OPOR 最有效的提示在 GSM8K 数据集上优于人类设计的提示高达 8%,在 Bigbench 中的挑战性任务上高达 50%。

11 Understanding User Intent

重述并回答提示

人类思维框架与LLM之间的差异,引入“改写并回应”(RaR)。 RaR允许LLM在单个提示中重述和扩展问题,证明理解力和响应准确性的提高。包括改写和响应的两步RaR变体,在各种情况下实现了显著的性能提升。重新表述的问题与随意提出的人类查询形成对比,有助于提高语义清晰度并解决固有的歧义。这些发现为理解并增强各种应用中 LLM 的有效性提供了有价值的见解。

12 元认知与自我反思(Metacognition and Self-Reflection)

Take a Step Back Prompting

为了解决复杂的多步推理这一持续存在的挑战,[郑等人,2023年]引入了针对像PaLM-2L这样的高级语言模型量身定制的Step-Back提示技术。这种创新的方法使模型能够进行抽象,从特定实例中提取高层次的概念和基本原理。Step-Back提示方法涉及一个两步过程,整合了抽象和推理。

效果评估

链接:https://www.53ai.com/news/qianyanjishu/2024070941796.html

通过多种方法来评估提示效果,例如人工评估、自动评估和混合评估。

  • 人工评估:一种手动评估提示效果的方法,通过让人工评估模型生成的输出来评估提示效果。
  • 自动评估:一种自动评估提示效果的方法,通过使用某种评估标准来评估模型生成的输出。
  • 混合评估:一种将人工评估和自动评估结合使用的方法,以获取更准确的提示效果评估。

Prompt Engineering 的效果评估主要通过定量和定性方法来衡量提示词对模型输出的影响。

常用的评估方法:

1. 输出质量评估

  • 准确性 (Accuracy):衡量模型生成的输出是否正确回答了提示词中的问题,或是否与预期结果匹配。尤其在分类任务或问答任务中,准确性是一个关键指标。

  • 流畅性 (Fluency):评估模型生成的文本是否流畅、自然,符合人类语言的表达方式。这可以通过人工评价或使用流畅性评分工具进行。

  • 相关性 (Relevance):判断生成的内容与提示词的相关性,确保模型的输出与提示词意图紧密关联。相关性可以通过专家评审或用户反馈进行评估。

  • 创新性 (Creativity):在生成创意或文本内容时,衡量模型输出的创新性和独特性。这在创意写作或广告文案生成中尤其重要。

2. 模型性能评估

  • 响应时间 (Response Time):测量模型对提示词的响应速度,尤其是在实时应用中,响应时间是影响用户体验的重要因素。

  • 计算资源消耗 (Resource Consumption):评估提示词对模型计算资源的影响,包括内存使用、计算时间等。这对于大规模模型尤其关键。

  • 模型稳定性 (Stability):通过测试提示词在不同上下文中的表现,评估模型输出的一致性和稳定性。理想的提示词应在不同情况下生成稳定的高质量输出。

3. 用户体验评估

  • 用户满意度 (User Satisfaction):通过用户反馈、问卷调查或A/B测试,直接衡量用户对模型输出的满意程度。这种评估方法可以帮助识别用户偏好和需求。

  • 交互性 (Interactivity):对于交互式系统,评估提示词是否引导模型进行有效的互动,提供有价值的反馈或建议。

4. 自动化评估工具

  • BLEU、ROUGE 等自动化评分:这些评分指标常用于评估生成文本的质量,尤其是在机器翻译和摘要生成任务中。它们通过比较模型输出与参考答案的重合度来进行评分。

  • Perplexity:这是衡量语言模型困惑度的一个指标,通常用于评估模型在处理提示词时的复杂性。较低的困惑度通常表明模型对提示词的理解较好。

5. 多样性和覆盖率评估

  • 多样性 (Diversity):评估模型在面对相似提示词时生成不同输出的能力。多样性评估通常通过比较多个生成结果的差异性来进行。

  • 覆盖率 (Coverage):特别是在信息提取或内容生成任务中,评估模型生成的内容是否涵盖了提示词中的所有关键信息点。

6. 鲁棒性测试

  • 提示词扰动 (Prompt Perturbation):通过对提示词进行小幅度的修改或扰动(如同义词替换、句式变化等),评估模型输出的鲁棒性。理想情况下,模型应对提示词的微小变化表现出较强的适应性,生成稳定的输出。

7. 人工评审

  • 专家评审 (Expert Review):邀请领域专家对模型输出进行评审,特别是在高度专业化的任务中,如医学、法律等领域,专家评审可以提供权威的效果评价。

  • 对比实验 (Comparison Experiments):通过对比不同提示词或不同模型的输出,进行主观或客观的效果评估,找出最佳的提示词设计。

通过这些评估方法,可以全面衡量提示词工程的效果,帮助优化提示词设计,提高模型的输出质量和用户体验。

优化提示

根据评估结果,对提示进行优化,以便让模型更好地理解输入并生成更准确的输出。可以通过多种方法来优化提示,例如修改提示内容、修改提示结构、修改提示长度等。

💡链接(重要):https://www.53ai.com/news/tishicijiqiao/2024070937692.html

Prompt 调优是一个不断重复和迭代的过程,关键步骤:

  1. 尝试不同的prompting方法:在prompt的生成过程中,可能需要尝试各种语言模式、词汇的使用,甚至是不同的语法结构。每次尝试都应该以评估集为基准进行测试,以观察变更对系统性能的影响。

  2. 调整和优化:根据测试结果,你需要对prompt进行调整和优化。这可能包括微调某些词语的选择,改变提问的方式,调整语言风格, 也可能是大幅度改变Prompt的结构。

  3. 记录和分析:每次实验之后,都应该详细记录结果,并进行分析。这些记录可以帮助你理解哪些改变是有效的,哪些是无效的,从而指导未来的调整方向。

  4. 迭代循环:在每一轮测试和优化之后,都需要重新评估prompt的效果。通过这样的迭代循环,你可以逐步接近最优的prompt设计。

Prompt 调优方式可以围绕内容和结构调优

01 内容上迭代指令

  • 角色迭代:尝试不同的角色,让大模型提供最佳的上下文语境。

  • 任务迭代:对于指令的关键动作,尝试不同的近义词或其他相近的描述来提升准确性。

  • 执行步骤迭代–正向引导:避免负指令,谈股票更换概念等方式,尽量告诉模型应该输出什么。

  • 执行步骤迭代–逻辑完备:将完备的思考逻辑给大模型,避免在“无”的时候,大模型自由发挥,乱造信息。

  • 执行步骤迭代–避免规则:指令的作用在于引导大模型输出正确的答案,硬规则更加适合于靠规则程序来完成。

  • Few shot迭代:要么每个类别都均匀添加做示例,要么都不加;样例较多时,引入向量数据库做动态few shot。【好的训练集、评测集】

02 结构上迭代指令

  • 分隔符作用:避免模型指令收到其他内容的干扰;将文本上下文、不同的知识模块做分隔;避免用户注入无关指令。
  • 分条目作用:有助于大模型理解每个独立的任务,引导大模型按照指令进行思考;有助于开发者顺利任务的逻辑顺序,便于逐条编写测试以及迭代维护。
  • 顺序作用:先输出的内容会影响后输出的内容,可以尝试不同的顺序,避免提取项的干扰,找到最佳的提取效果。
  • 嵌套:平铺直叙,避免多层的逻辑嵌套。
  • 位置:指令的首部和尾部指令遵循效果较好,根据不同的输入文档长度和指令难度尝试不同的段落组织方式。

发展趋势与挑战

提示词工程(Prompt Engineering)作为人工智能和自然语言处理领域中的一项重要技术,随着大规模语言模型(如GPT-4)的发展,其重要性和应用前景越来越受到关注。以下是提示词工程的几个发展趋势与挑战:

发展趋势

  1. 多模态提示词工程:随着多模态AI模型的发展,提示词工程不仅限于文本,还涉及到图像、视频、音频等多种模态。未来,提示词工程将需要处理跨模态的提示词设计,以实现更复杂和多样化的任务。

  2. 自动化提示词生成与优化:随着模型规模的增大,手动设计提示词的难度增加。未来可能会更多依赖自动化工具和算法来生成和优化提示词,确保在不同任务和上下文中获得最佳效果。

  3. 领域特定提示词库的构建:随着提示词工程在不同领域的应用逐渐深入,针对特定领域(如医学、法律、教育等)的提示词库将变得越来越重要。这些提示词库将帮助模型在专业领域中生成更精确、符合领域规范的输出。

  4. 可解释性与透明性:随着提示词工程的应用范围扩大,理解和解释提示词如何影响模型输出将变得越来越重要。这不仅有助于提升AI系统的透明度,还能增强用户对系统决策的信任。

  5. 协作式提示词设计:提示词工程可能会逐渐演变为一种协作过程,结合人类专家和自动化工具共同设计提示词,以确保模型输出的准确性和可靠性。

挑战

  1. 提示词依赖性与鲁棒性:目前的AI模型对提示词的依赖性较高,提示词稍有变化可能会导致输出结果的大幅波动。如何设计鲁棒的提示词,使得模型能够在不同情况下稳定输出预期结果,是一个重要挑战。

  2. 提示词的伦理问题:提示词工程可能会无意中引导模型产生偏见或不当内容。如何设计公正且符合伦理规范的提示词,避免偏见和错误信息的传播,是一项长期挑战。

  3. 提示词的通用性与定制化平衡:在特定领域中使用的提示词往往需要高度定制化,但这也可能导致模型在其他领域中的表现下降。如何平衡提示词的通用性与领域特定需求,是提示词工程中需要解决的难题。

  4. 数据隐私与安全:在设计提示词时,有时需要使用敏感数据。这就引发了关于数据隐私与安全的问题,尤其是在处理用户个人数据时,如何确保提示词设计不侵犯用户隐私,是未来提示词工程必须应对的挑战。

  5. 提示词设计的复杂性:随着模型的复杂性增加,提示词的设计也变得更加复杂,需要对模型的内部机制有深刻理解。如何简化提示词设计过程,使之更易于理解和操作,是当前面临的技术挑战之一。

提示词工程将在未来的AI系统开发中扮演更加重要的角色,但其发展也伴随着诸多技术、伦理和实践上的挑战。解决这些挑战将有助于推动这一领域的进一步创新和应用。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐