《AI大模型开发笔记》——Prompt提示词最佳实践

为什么需要提示词优化

什么是 Prompt enginnering?

提示词:解释一下什么是大语言模型的Prompt enginnering

图1. 什么是Prompt Enginnering?

通过上面ChatGPT的说明,我们可以看到,prompt工程化就是如何写prompt提示词的一些技巧。

那么,为什么需要进行提示词优化呢?

  • 第一点,对个人使用者: 提高使用大语言模型的效率,让大模型更好的为我们服务。
  • 第二点,对于开发者:改善大语言模型输出的稳定性。
    (详细解说,请参考视频: https://youtu.be/cVPFbRuXoY0

最近OpenAI官方发布了一个如何来写Prompt的best practices(最佳实践)。这里,给大家分享看看OpenAI都介绍了哪些prompt的方法和技巧。

共分为六个策略:

  • 给出清晰的指示
  • 提供参考文字
  • 将复杂任务拆分为更简单的子任务
  • 给GPT时间思考
  • 使用外部工具
  • 系统性的进行测试

策略一:给出清晰的指示

GPT 无法读取您的想法。如果你认为输出内容太长,可以要求简短回复。如果输出内容太简单,可以要求专家级写作。如果您不喜欢输出的格式,可以示范您想看到的格式。GPT在猜测您想要的内容方面越少,您得到想要的内容的可能性就越大。

技巧1:在查询中包含详细信息以获得更相关的答案

【观看视频解说】

为了获得高度相关的回应,请确保请求提供任何重要的细节或背景信息。否则,您就是让模型来猜测您的意思。

更好
我该如何在Excel中加数字? 视频解说 我该如何在Excel中对一行美元金额求和?我想要自动地对一个工作表的所有行做这个操作,并且让所有的总数显示在右边的一个名为"总计"的列中。
谁是总统? 2021年墨西哥的总统是谁,选举是多久举行一次?
编写代码来计算斐波那契数列。视频解说 编写一个TypeScript函数来高效地计算斐波那契数列。请充分注释代码,解释每一部分的作用以及为什么以这种方式编写。
总结会议记录。 用一段文字总结会议记录。然后用markdown列出发言人及其各自的要点。最后,如果有的话,列出发言人建议的下一步行动或待办事项。

技巧2:要求模型扮演一个角色

系统消息(system message)可以用来指定模型在回复中所扮演的角色。

  • 例子:

    系统:当我请求帮助撰写某些内容时,您将回复一份文件,在每段中至少包含一个笑话或幽默评论。
    用户:给我的钢螺栓供应商写一张感谢便条,感谢他们及时且在短时间内完成交货。这使我们能够完成一份重要的订单。

技巧3:使用分隔符清晰地标示输入的不同部分

像三重引号、XML标签、章节标题等分隔符可以帮助划分文本的不同部分以便进行不同的处理。

  • 例1:

    用户: 用俳句来总结用三重引号界定的文本。"""在此插入文本"""
    
  • 例2:

    系统: 您将获得两篇关于同一主题的文章(用 XML 标签分隔)。先总结一下每篇文章的论点。然后指出哪一个提出了更好的论点并解释原因。
    用户: <article>在这里插入第一篇文章</article> <article>在这里插入第二篇文章</article>
    
  • 例3:

    系统: 您将获得论文摘要和建议的标题。论文标题应该让读者清楚地了解论文的主题,但也应该引人注目。如果标题不符合这些标准,请提出 5 个替代方案。
    用户: 摘要:在此插入摘要 标题:在此插入标题
    

对于这种简单的任务,使用分隔符可能不会对输出质量产生影响。然而,任务越复杂,消除任务细节的歧义就越重要。不要让 GPTs 费力去理解你究竟要求它们做什么。

技巧4:指定完成任务所需的步骤

一些任务最好通过一系列步骤来明确指定。明确地写出这些步骤可以使模型更容易遵循它们。

系统: 按照以下分步指示来回应用户输入。
      步骤1 - 用户会提供三重引号内的文本。用"Summary: "作为前缀,将这段文本总结为一句话。
      步骤2 - 将步骤1中的总结翻译成西班牙语,并以"Translation: "作为前缀。
用户: """insert text here"""

技巧5:提供示例

为所有示例提供适用的通用指示通常比通过示例演示任务的所有排列更高效,但在某些情况下,提供示例可能更容易。例如,如果您希望模型模仿一种回应用户查询的特定风格,而这种风格很难明确描述。这被称为"少样本(few-shot)"提示。

系统
以一致的风格回答。
用户
教我关于耐心。
助手
雕刻最深山谷的河流源于一个朴素的泉眼;最宏伟的交响乐源于单个音符;最复杂的挂毯始于一根孤立的线程。
用户
教我有关海洋的知识。

技巧6:指定输出的期望长度

你可以要求模型生成具有给定目标长度的输出。目标输出长度可以用单词、句子、段落、项目符号等的数量来指定。然而,请注意,指示模型生成特定数量的单词的精度不高。模型更可靠地生成具有特定数量的段落或项目符号的输出。

  用户: 用大约 50 个单词总结由三重引号中的文本。"""在此插入文本"""

  用户: 将用三重引号界定的文本总结为两段。"""在此插入文本"""

  用户: 将由三引号中的文本总结为 3 个要点。"""在此插入文本"""

参考文献

相关推荐
ProtonBase5 分钟前
分布式 Data Warebase - 构筑 AI 时代数据基石
大数据·数据库·数据仓库·人工智能·分布式·数据分析·数据库系统
不高明的骗子5 分钟前
【深度学习之二】正则化函数(weight decay, dropout, label smoothing, and etc)详解,以及不同的函数适用的场景
人工智能·深度学习·神经网络
qq_2739002312 分钟前
旋转向量v和旋转矩阵R
人工智能·python·线性代数·矩阵
WeeJot嵌入式15 分钟前
PyQT开发与实践:全面掌握跨平台桌面应用开发
人工智能·pyqt
幻风_huanfeng39 分钟前
在使用PCA算法进行数据压缩降维时,如何确定最佳维度是一个关键问题?
人工智能·机器学习
SEVEN-YEARS1 小时前
使用OpenCV实现图像拼接
人工智能·opencv·计算机视觉
小嗷犬2 小时前
【论文笔记】LLaVA-o1: Let Vision Language Models Reason Step-by-Step
论文阅读·人工智能·语言模型·大模型·多模态
奈斯。zs2 小时前
论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)
论文阅读·人工智能·入侵检测·nids
胖福不秃头2 小时前
ChatPaper.ai:通过阅读文献高效学习英语的新思路
人工智能
hmjwjl2 小时前
【tensorflow的安装步骤】
人工智能·python·tensorflow