Prompt的万能公式和优化技巧

发布于:2024-07-05 ⋅ 阅读:(16) ⋅ 点赞:(0)


前言

    随着LLM的发展,能给我们带来很多方便,但是又引出了一个新的问题就是我们该如何使用他们,我们怎么才能得到我们想到的信息。


一、万能公式

    本篇文章将带你系统了解一个好的Prompt的结构是什么样子,优质的Prompt有什么标准。在大多数的场景中,Prompt有一个万能公式,通过这个公式,可以保证你Prompt输出效果满足底线标准。
    你可能在网络上看到过很多这个万能公式的不同版本,每个公式的细节都不相同,但是这不重要,当你掌握了通用方法,自然可以根据不同的角色、场景等信息,设计出适合自己的万能公式。

Prompt = 角色 + 任务 + 要求 + 细节【步骤拆解、范例说明,技巧点拨等】

    这个公式用大白话解释就是你要告诉大模型:你是谁?要做什么?怎么做?
    举个例子,现在你告诉大模型:生成一篇小红书风格的口红种草文案,字数不少于100字,风格要俏皮一些。
    下面我们来拆解这个公式,看每个元素都代表什么意思。

  • 角色:就是你要生成这段信息的主体对象,比如“生成一篇小红书风格的口红种草文案”,“口红”就是角色。
  • 任务:就是需要大模型完成的任务类型,比如生成一张海报,在这个案例中就是生成一篇种草文案。
  • 要求:就是你希望模型完成某一项具体的要求,不少于100字就是具体的要求。
  • 细节:如果你想丰富模型最终生成的结果,可以增加一些细节,比如文案的风格等。
        接下来,我们来用文心一言的【新媒体文章创作】这个智能体来试一下这个万能公式的效果,下图中是我没有用万能公式,随便写的一个问题需求,相信很多人给大模型提问都是这样的风格,可以看到,模型给到的回答非常的冗余,内容分不清主次。

在这里插入图片描述
    但是如果我们用了万能公式来输出Prompt,效果明显提升了一个台阶,如下图所示,模型给到的回答更像是一个具体的人,且极具小红书的风格,你可以直接拿来去用,而不是冰冷的机器回答的文案。
在这里插入图片描述
优质Prompt标准:
    虽然不同的应用场景下对优质的Prompt定义有所区别,但是我们依然可以找到一些共性的特点。具体来说,一条优质的Prompt一般满足以下特点:

  • 明确和具体:提示词应当清晰明了,具体说明你希望获得的信息或答案。避免模糊和含糊不清的表达方式。
  • 简洁明了:保持简洁,避免使用冗长或复杂的句子。简单直接的表达方式更容易理解。
  • 具有上下文:在你的提示中包含相关的上下文信息,以便大模型更好地理解你的问题或需求。提供关键信息,而不是依赖于模糊的问题。
  • 避免歧义:在同类任务中,更换主题词后,Prompt依然可以取得好的效果,避免使用容易引起歧义的词语或短语。
  • 使用关键词:强调关键词,这有助于指导大模型需要关注的重点有哪些,可以通过加粗、斜体或其他方式来实现。

    这么讲可能还不够具象,下面我举几个例子来带你看一下优质的Prompt都长什么样子。

1.优质的Prompt对话题有足够的背景信息:
        优质: 请提供有关可控核聚变的最新研究进展和技术趋势的详细信息。
        反例: 可控核聚变是什么?
2. 具体的指令:
        优质: 以500字的篇幅解释人工智能在医学诊断中的应用,并列举相关的成功案例。
        反例: 写点关于人工智能的东西。
3. 引导性强,具体指明期望的回答形式:
        优质: 以比较分析的方式说明区时序数据库和传统关系型数据库的优劣,并指出在哪些场景下使用时序数据库更有优势。
        反例: 写点关于数据库相关的东西。

        来测试下第一个案例,通过下面截图我们可以看到,当你输入一条有足够背景信息的Prompt时,你可以从实验装置的进步、高温超导技术的突破、数值模拟和人工智能的应用、核聚变能源商业化等多个方面对可控核聚变有一个全面的认识。
在这里插入图片描述

二、优化技巧

1.设定角色

    设定角色可以是一种有趣且有效的方法,通过这种方式,你可以引导大模型生成更具特定性和一致性的回答,在提示词中你可以清晰地定义所设定的角色特征,包括身份、职业、背景等。这有助于大模型更好地理解并在回答中表现出相应的角色特性。

2.设定目标和动机

    除了设定角色以外,你还可以通过设定目标和动机的方式丰富角色的形象,以帮助智能体理解在回答中应该关注的方面。

3.引导主观回答

    如果你希望模型提供主观性的回答,可以通过提示中的角色设定来引导。表明你期望从设定的角色角度获取意见和观点。

4.预设条件

    在Prompt提示中可以清晰地定义你的预设条件,包括任何特定的环境、情境或约束。这可以帮助大模型理解问题的上下文,并生成更符合你期望的回答。比如当我们希望了解人工智能在医疗领域的应用时,模型的答案往往具有科幻色彩,但如果加入现代科技这个前提,模型给到的回答就靠谱了很多。
同时,你还可以在提示中加入约束条件,这样可以限定模型的回答范围,使其在特定框架内生成回答。

    在预算有限的情况下,建议如何开展一项科学研究项目,强调资源的有效利用。

    当然,你还可以通过引入预设条件,可以引导大模型进行比较与对比。明确提出你希望模型探讨的不同条件下的影响或差异。

    比较在自然环境和人工环境中培养植物的影响,考虑生长速度、生态系统互动等方面的不同。

    除此之外,你甚至可以通过假设条件来减少大模型回复不准确的概率,比如你可以告诉大模型,如果你的数据存在问题,例如数据不准确、缺乏时效性等,那么可以给出否定答复,例如:对不起,目前没有相关数据可供参考。

5.做强调

    大模型训练的预料长度不是固定字数,所以往往越往后的需求描述权重越低,对模型的输出结果造成影响。这个时候,除了将对应需求靠前排外,还可以通过增加强调词,告诉模型自己非常看中的内容,比如增加“非常”、”强调”、“必须”等词汇。你还可以通过加粗、斜体或其他方式使关键词更为明显。

6.思维链(COT)

    思维链是一种将思考过程分解为一系列逻辑步骤或关键点的方法,有助于大模型更系统地处理复杂任务。在撰写复杂任务的提示时,通过构建清晰的思维链,拆解复杂任务步骤,可以帮助大模型明确任务的要求、限制和目标。

例如大语言模型在数学推理方面的表现不是太好,但是如果你在提问的时候,加入思维链的关键词,比如告诉模型,你需要逐步进行计算,或者一步一步进行计算等关键词,或者给出实现的步骤和逻辑,这往往可以极大的提高模型答案的准确率。比如,我们使用灵境矩阵平台的智能体【数学解题助手】来测试一道常见的小学数学题。

这组数中的奇数加起来是多少:4、8、9、15、12、2、1

7.巧用定界符

    在Prompt提示词中,定界符是用来标记或定义文本边界的一种特殊符号或格式。它们用于告诉模型或系统在哪里开始和结束生成文本,定界可以使用任何符号,例如:、‘’‘’‘’、< >等。