26 种 prompt 套路,驯服大模型

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。

针对大模型技术趋势、算法项目落地经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。

总结链接如下:

《大模型面试宝典》(2024版) 发布!

喜欢本文记得收藏、关注、点赞。更多实战和面试交流,也欢迎与我们交流


使用自然语言前缀(prefix)或提示(prompt)来引导语言模型行为和输出的想法早在GPT-3和ChatGPT时代之前就已出现。2018年,Fan等人首次在生成式AI的语境中使用了prompt。此后,Radford等人在2019年发布的GPT-2中也采用了prompt。

不过,prompt的概念可以追溯到更早的一些相关概念,如控制码(control code)和写作提示(writing prompt)。而"prompt engineering"这一术语则是在2021年前后由Radford等人和Reynolds & McDonell等人提出的。

有趣的是,早期对prompt的定义与当前普遍理解略有不同。比如在2020年的一项工作中,Brown等人给出了这样一个prompt示例:“Translate English to French:llama”,他们认为其中的"llama"才是真正的prompt,而"Translate English to French:“是一个"任务描述”。相比之下,包括本文在内的大多数近期工作都将输入给语言模型的整个字符串视为prompt。

利用prompt来驾驭语言模型完成各类任务的技术范式经历了从概念萌芽到逐步成熟的过程。随着GPT-3等大规模语言模型的问世,prompt engineering迅速成为了自然语言处理领域的研究热点,并衍生出诸多创新方法。

Prompt的六大构成要素

  1. 指令(Directive):这是Prompt的灵魂所在。通过精心设计的指令,我们可以向模型传达任务的核心诉求。举个例子,如果我们想要生成一篇关于春天的诗歌,可以使用"请写一首歌颂春天美好的诗"这样的指令。指令的表述要明确、具体,避免歧义。

  2. 示例(Example):这是In-Context Learning的关键。通过在Prompt中提供几个精选的示例,我们可以让模型快速理解任务的输入输出格式和要求。比如,在情感分类任务中,我们可以提供几个样本文本及其情感标签(正面/负面),让模型学会判断情感倾向。示例要典型、多样,覆盖任务的主要场景。

  3. 格式控制(Output Formatting):这是规范模型输出的利器。通过格式控制标记,我们可以让模型以特定的格式组织输出内容,如生成CSV格式的表格、Markdown格式的文档等。例如,在数据分析任务中,我们可以要求模型以表格形式输出统计结果,每一行对应一个指标,用逗号分隔。

  4. 角色指定(Role):这是激发模型创造力的神奇钥匙。通过为模型赋予一个虚拟的身份,我们可以让它以特定的视角、风格生成内容。比如,我们可以让模型扮演一位历史学家,以严谨的笔调评述一段历史事件;也可以让它化身为一名诗人,用优美的语言描绘大自然的风光。

  5. 风格指令(Style Instruction):这是调控模型语言风格的调色板。通过风格指令,我们可以要求模型以特定的语气、情感倾向、字数限制等生成内容。例如,我们可以指示模型用严肃的口吻撰写一份商业报告,或是用幽默风趣的笔调创作一个段子。

  6. 补充信息(Additional Information):这是为模型提供背景知识的补给站。很多任务需要一定的领域知识作为辅助信息。比如,在撰写一篇医学论文时,我们可以为模型提供一些疾病的定义、治疗方案等背景资料,帮助模型更好地理解和表述主题。

26 种 prompt 套路

此外,还有大佬整理了26 种 prompt 套路,觉得挺有用,以此分享给大家。

图片

论文地址:
https://arxiv.org/abs/2312.16171

相关代码:
https://github.com/VILA-Lab/ATLAs

  1. 如果你想要简洁的回答,不用太客气,直接说就行,不用加上“请”、“如果你不介意”、“谢谢”、“我想要”等客套话。

  2. 在提问时说明目标受众,例如,告诉 LLM 你的受众是该领域的专家。

  3. 把复杂的任务分成几个简单的小问题,逐步解决。

  4. 用肯定的语气说“做某事”,避免用否定语气说“不要做某事”。

  5. 当你需要更清楚或深入了解某个话题时,可以这样提问:

    • 用简单的语言解释[具体话题]。

    • 向我解释,就像我 11 岁一样。

    • 向我解释,就像我是[领域]的新手一样。

    • 用简单的英文写[文章/文本/段落],就像你在向 5 岁的小孩解释。

  6. 加上“如果有更好的解决方案,我会奖励 xxx”。

  7. 用具体的例子来提问(即使用几个示例来引导)。

  8. 在你的提问前写上“###指示###”,如果相关的话,再加上“###示例###”或“###问题###”,然后再写你的内容。用空行分隔指示、示例、问题、背景和输入数据。

  9. 使用“你的任务是”和“你必须”这样的短语。

  10. 使用“你将受到惩罚”这样的短语。

  11. 使用“像人一样自然地回答问题”这样的短语。

  12. 用引导词,比如“一步步来思考”。

  13. 在提问中加上“确保你的回答没有偏见,避免刻板印象”。

  14. 让 LLM 向你提问,直到它有足够的信息来回答你。例如,“从现在起,请你问我问题,直到你有足够的信息……”。

  15. 如果你想测试对某个话题的理解,可以这样说:“教我[定理/话题/规则],最后加个测试,等我回答后告诉我是否正确,但不要提前给答案。”

  16. 给 LLM 指定一个角色。

  17. 使用分隔符。

  18. 在提问中多次重复某个特定的词或短语。

  19. 将链式思维(CoT)和少量示例的提示结合使用。

  20. 使用输出引导语,在你的提问结尾加上预期回答的开头部分。

  21. 想写详细的文章、段落或文本时,可以这样说:“请为我写一篇详细的[文章/段落],内容涉及[话题],并加入所有必要的信息。”

  22. 如果你要修改特定文本但不改变风格,可以这样说:“请修改用户发送的每个段落,只需改进语法和词汇,使其听起来自然,但保持原有的写作风格,确保正式的段落仍然正式。”

  23. 当你有复杂的代码提示需要分成不同文件时,可以这样说:“从现在起,每当你生成跨多个文件的代码时,生成一个[编程语言]脚本,以自动创建指定的文件或修改现有文件以插入生成的代码。”然后提问。

  24. 当你想用特定的词、短语或句子来开始或继续一段文字时,可以使用以下提示:“我提供给你开头部分[歌词/故事/段落/文章…]: [插入歌词/词语/句子]。请根据提供的词语完成它,并保持一致的流畅性。”

  25. 明确指出模型必须遵循的要求,以关键词、规则、提示或指令的形式。

  26. 想写与提供的样本相似的文本时,可以这样说:“请根据提供的段落[/标题/文本/文章/答案]使用相同的语言。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

封装音视频编解码和渲染的动态链接库编译和测试

1.动态链接库的编译 生成了以下几个文件 我们把生成的lib文件复制到lib文件夹中 其余三个文件不变动 2.进行测试看是否可以用生成的xcodec.lib库文件里的接口函数 以上是重新创建的新项目,导入了xcodec.lib,其他配置同以前项目 库测试结果 运行显示我们…

qt登录和闹钟实现

qt实现登录 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 去掉头部this->setWindowFlag(Qt::FramelessWindowHint);// 去掉空白部分this->s…

栈(Stack)

目录 一.栈(Stack) 1.概念 2.栈的使用 3.栈的模拟实现 二.栈相关习题 1.逆波兰表达式求值 (1)链接 (2)解析 (3)题解 2.括号匹配 (1)链接 &#xff…

计算机网络——传输层重要协议(TCP、UDP)

一、常见名词解释 IP地址:IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址,即IP地址用于定位主机的网络地址; IP地址是一个32位的二进制数,通常被分割为4个 8位⼆进制数(也就是…

构建基于 LlamaIndex 的RAG AI Agent

I built a custom AI agent that thinks and then acts. I didnt invent it though, these agents are known as ReAct Agents and Ill show you how to build one yourself using LlamaIndex in this tutorial. 我构建了一个自定义的AI智能体,它能够思考然后行动。…

京东618 :AI总裁数字人、京东Apple Vision Pro版亮相

2004年6月18日,刚刚转型电商才半年的京东,用最互联网的方式为忠实粉丝打造了一场价格降到“难以置信”的店庆促销活动,这场促销活动还有一个很具有当年网络小说特质的名字——“月黑风高”。 2024年京东618,早已成为一场亿万消费…

泛微开发修炼之旅--20关于Ecology中如何查询正文文件的物理文件,并修改正文中的内容的解决方案

文章链接地址:20关于Ecology中如何查询正文文件的物理文件,并修改正文中的内容的解决方案

Linux系统编程——网络编程

目录 一、对于Socket、TCP/UDP、端口号的认知: 1.1 什么是Socket: 1.2 TCP/UDP对比: 1.3 端口号的作用: 二、字节序 2.1 字节序相关概念: 2.2 为什么会有字节序: 2.3 主机字节序转换成网络字节序函数…

C语言程序设计-10 指针

指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样 处理内存地址,从而编出精练而高效的程序。指针极大地…

C语言 指针——字符数组与字符指针:字符串的输入和输出

目录 逐个字符输入输出字符串 整体输入输出字符串 用scanf输入/输出字符串 用gets输入/输出字符串 用scanf输入/输出字符串 用gets输入/输出字符串 逐个字符输入输出字符串 #define STR_LEN 80 char str[STR_LEN 1 ]; 整体输入输出字符串 用scanf输入/输出字符串 用gets…

【CVPR2021】LoFTR:基于Transformers的无探测器的局部特征匹配方法

LoFTR:基于Transformers的局部检测器 0. 摘要 我们提出了一种新的局部图像特征匹配方法。我们建议先在粗略级别建立像素级密集匹配,然后再在精细级别细化良好匹配,而不是按顺序进行图像特征检测、描述和匹配。与使用成本体积搜索对应关系的密…

oracle12c到19c adg搭建(二)oracle12c数据库软件安装

运行安装程序 不勾选 只安装软件 选择单实例安装 选择语言 企业版 确认目录 产品目录 用户组 开始安装 执行root脚本 [rooto12u19p software]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInventory. Adding read,write permissions for gro…

字节豆包大模型API吞吐、函数调用能力、长上下文能力测试总结

离开模型能力谈API价格都是耍流氓,豆包大模型作为API最便宜的模型之一,最近向个人开发者开放了,花了300元和一些时间对模型的API吞吐、函数调用能力、长上下文能力等进行了深度测试,看看它的能力究竟适合做 AI 应用开发吗&#xf…

【Anaconda】【Windows编程技术】【Python】Anaconda的常用命令及实操

一、Anaconda终端 在安装Anaconda后,电脑上会新增一个Anaconda终端,叫Anaconda Prompt,如下图: 我们选择“打开文件位置”,将快捷方式复制一份到桌面上,这样日后就可以从桌面上方便地访问Anaconda终端了&…

用python实现多文件多文本替换功能

用python实现多文件多文本替换功能 今天修改单位项目代码时由于改变了一个数据结构名称,结果有几十个文件都要修改,一个个改实在太麻烦,又没有搜到比较靠谱的工具软件,于是干脆用python手撸了一个小工具,发现python在…

微服务中的相关概念

Eureka Eureka 是由 Netflix 开发的一个服务发现和注册中心,广泛应用于微服务架构中。Eureka 主要用于管理和协调分布式服务的注册和发现,确保各个服务之间能够方便地找到并通信。它是 Netflix OSS(Netflix Open Source Software&#xff09…

C#心跳机制客户端

窗体(richTextBox右显示聊天) 步骤 点击链接按钮 tcpclient客户端步骤 1创建客户端对象 2连接服务器connect 3创建网络基础流发消息 .write发消息 4 创建网络基础流接消息 .read接消息 5 断开连接…

python库离线安装方法(pyqt5离线安装方法)

在某些情况下,我们的计算机是无法联网的。 网上大部分方法: 这些方法都有个问题,就是库是需要依赖其它库的,你不知道它需要依赖什么库,就是提供了依赖库的列表也麻烦,依赖库也是有对应版本要求的&#xf…

自制调色小工具给图片加滤镜,修改图片红、绿、蓝通道及亮度,修改图片颜色

上篇: 上篇我们给地图添加了锐化、模糊等滤镜,这篇来写一个小工具给图片调色。 调色比锐化等滤镜要简单许多,直接拿到像素值修改即可。不需要用到卷积核。。。(*^▽^*) 核心原理就是图像结构,使用context.getImageData获取图像像…

cad怎么转成pdf文件?方法很简单!

cad怎么转成pdf文件?在数字化时代,CAD图纸的转换与共享已成为日常工作中的常态。无论是建筑设计师、工程师还是学生,都可能遇到需要将CAD文件转换为PDF格式的需求。本文将为您推荐三款高效的CAD转PDF软件,让您轻松实现文件格式的转…