返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

Prompt提示词如何写才能发挥大语言模型LLM的最大潜力

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 22:40 |阅读模式 打印 上一主题 下一主题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;font-weight: bold;display: table;margin-right: auto;margin-bottom: 1em;margin-left: auto;padding-right: 1em;padding-left: 1em;border-bottom: 2px solid rgb(15, 76, 129);color: rgb(63, 63, 63);">提示词

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">提示工程学是一门相对较新的学科,用于开发和优化提示,以便高效地利用语言模型(LM)来进行各种应用和研究主题。提示工程技能有助于更好地了解大型语言模型(LLM)的能力和限制。研究人员使用提示工程来改善LLM在各种常见和复杂任务上的能力,例如问答和算术推理。开发人员使用提示工程来设计与LLM和其他工具接口的强大和有效的提示技术。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">本文主要介绍标准提示的基础知识,以提供指导如何使用提示与大语言模型(LLM)进行交互。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin-top: 2em;margin-right: 8px;margin-bottom: 0.75em;padding-left: 8px;border-left: 3px solid rgb(15, 76, 129);color: rgb(63, 63, 63);">提示的组成要素

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">提示主要包含以下组成部分:

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;list-style: circle;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  • 指令- 您想让模型执行的具体任务或指令

  • 上下文- 可以涉及外部信息或附加上下文,可以引导模型做出更好的响应

  • 输入数据- 是我们有兴趣找到响应的输入或问题

  • 输出指示- 表示输出的类型或格式。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">并非所有组成部分都是提示所必需的,格式取决于手头的任务。我们将在后面发布的指南中涉及更多具体的示例。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin-top: 2em;margin-right: 8px;margin-bottom: 0.75em;padding-left: 8px;border-left: 3px solid rgb(15, 76, 129);color: rgb(63, 63, 63);">提示词的通用设计技巧

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-weight: bold;margin: 2em 8px 0.5em;color: rgb(15, 76, 129);">指令

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">通过使用指令来指导模型进行各种简单任务的设计,例如“写入”、“分类”、“总结”、“翻译”、“排序”等。尝试使用不同的指令、关键字、上下文和数据,看看什么对您的特定用例和任务最有效。通常,上下文对于您尝试执行的任务越具体和相关,效果越好。建议将指令放在提示的开头。建议使用一些清晰的分隔符,如“###”,来分隔指令和上下文。

例如:

Prompt:

###指令###
将下面的文本翻译成西班牙语:
文本:“嗨!”

Output:

Texto:"¡Hola!"

具体的

我们输入的指示和任务上要非常具体,提示越详细,结果就越好,尤其是我们在要求大模型以特定格式或风格给我们返回内容时。需要注意的是,详细而具体的提示并不是越长越好,因为大模型的输入长度存在一定的限制,要尽量避免一些不是很重要的无用细节。

例如,让我们尝试从一段文本中提取特定信息的简单提示。

Prompt:

提取以下文本中的人物。

期望格式:

人物:{"姓名":"","性别":""}

输入:“姚明(Yao Ming),男,汉族,无党派人士,1980年9月12日出生于上海市徐汇区,祖籍江苏省苏州市,前中国职业篮球运动员,司职中锋,现任亚洲篮球联合会主席、中国篮球协会主席、中职联公司董事长兼总经理、十三届全国青联副主席,改革先锋奖章获得者,第十四届全国人大代表。”

Output:

人物:{"姓名":"姚明","性别":"男"}

Few-Shot提示

大语言模型经过大量的数据训练和指令微调,具备了强大的语义分析能力和推理能力。但在处理更复杂的任务时,推理能力仍然表现不足。为了改进这一点,few-shot prompt被用作一种技术,以实现上下文学习,在Prompt中提供演示,以引导模型获得更好的性能。

例如,任务是在一个句子中正确使用一个新词。

Prompt:

示例1:
生物名:翼火龙
特征:生活在火山地带,拥有火焰吐息能力,翅膀覆盖着耐高温的鳞片。
分类:火元素生物

示例2:
生物名:水灵狐
特征:居住在深林的溪流旁,能够操控水流,毛发闪耀着水珠般的光泽。
分类:水元素生物

请根据同样的模式,对以下生物进行分类:
生物名:光羽兽
特征:栖息于云之彼端,身体轻盈透明,背上生有能折射阳光形成彩虹的羽毛,以光线为食。

Output:

分类:光元素生物

我们可以清楚地观察到,模型通过仅提供一个示例(即1-shot)学会了如何执行任务。对于更困难的任务,我们可以尝试增加演示次数(例如3-shot、5-shot、10-shot等)。

CoT思维链

标准的 Few-shot Promp 技术对于许多任务来说表现良好,但在处理更复杂的推理任务时仍然不够完美。当零次提示和少次提示不足时,这可能意味着模型所学到的不足以胜任任务。

所有的推理任务我们都可以给它拆分成几个步骤。换句话说,如果我们将问题分解成步骤,并向模型演示,可能会有所帮助。CoT思维链技术通过中间推理步骤实现复杂的推理能力。您可以将其与 Few-shot Prompting 结合使用,以在需要推理后响应的更复杂任务中获得更好的结果。

例如:
Prompt:

这组数中的奇数加起来是一个偶数:4、8、9、15、12、2、1。
A:将所有奇数相加(9、15、1),得到25。答案是 False。

这组数中的奇数加起来是一个偶数:15、32、5、13、82、7、1。
A:

Output:

这组数中的奇数加起来是一个偶数:15、32、5、13、82、7、1。
A:答案是 False。因为将所有奇数相加(15、5、13、7、1),得到41,是一个奇数,不是偶数。

Zero-Shot CoT

最近提出的一个新思路是Zero-Shot CoT,其基本思想就是将“让我们一步步思考”添加到提示中。让我们尝试一个简单的问题,看看模型的表现如何:

Prompt:

我去市场买了10个苹果。我给了邻居2个苹果和给修理工2个苹果。然后我又去买了5个苹果,并吃了1个。我还剩下多少苹果?

Output:

我去市场买了10个苹果。我给了邻居2个苹果和给修理工2个苹果。然后我又去买了5个苹果,并吃了1个。我还剩下6个苹果。

答案是不正确的!现在让我们试试特殊提示的方式。
Prompt:

我去市场买了10个苹果。我给了邻居2个苹果和给修理工2个苹果。然后我又去买了5个苹果,并吃了1个。我还剩下多少苹果?

让我们一步步思考。

Output:

好的,让我们逐步解决这个问题。

我去市场买了10个苹果。

剩余苹果数:10个。

我给了邻居2个苹果和给修理工2个苹果。

剩余苹果数:6个。

然后我又去买了5个苹果。

剩余苹果数:11个。

并吃了1个。

剩余苹果数:10个。

所以,最后我还剩下10个苹果。

实际上,这个简单的提示在这个任务上非常有效,令人印象深刻。这在您没有太多示例可用于提示的情况下特别有用。

Text2SQL提示词

以Text2QSL的具体任务为例:

【系统提示词】:你是一个IT开发工程师。在这个任务中,你的目标是将自然语言问题转换为有效的SQL查询语句。请仔细分析问题,逐步推理出所需的数据库表格、列名、以及
必要的SQL操作(如SELECT, FROM, WHERE, JOIN等),并确保遵循SQL语法规范。
【COT思维链】:当你处理每个问题时,想象你在心中逐步构建SQL查询的过程。
1、首先,先确定查询的目标是什么(即SELECT部分);
2、然后,考虑从哪个表获取这些信息(FROM部分),以及是否有任何特定条件需要过滤结果(WHERE部分);
3、如果涉及到多个表的关联,请明确它们之间的连接条件。
【表结构信息】:{
CREATETABLEBooks(
idINTAUTO_INCREMENTPRIMARYKEYCOMMENT'主键',
titleVARCHAR(255)NOTNULLCOMMENT'图书标题',
authorVARCHAR(255)NOTNULLCOMMENT'图书作者',
isbnCHAR(13)UNIQUENOTNULLCOMMENT'图书ISBN号',
publication_dateDATENOTNULLCOMMENT'出版日期',
categoryVARCHAR(100)NOTNULLCOMMENT'图书类别'
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_general_ciCOMMENT='图书记录';
};
【样例数据】:{
"title":"示例图书",
"author":"作者名字",
"isbn":"1234567890",
"publication_date":"2023-04-01",
"category":"小说"
};
【Few-Shot示例】:[
{
"提问":"找出所有在2023年出版的书籍。",
"响应":"SELECTtitleFROMBooksWHEREyear(publication_date)='2023'"
},
{
"提问":"找出所有在2023年出版的书籍,并按照出版日期排序。",
"响应":"SELECTtitleFROMBooksWHEREyear(publication_date)='2023'ORDERBYpublication_date"
}
]
【用户指令】:{question}
【响应格式】:请以SQL代码的形式提供您的答案,确保它直接回答了上述问题,并且遵循正确的SQL语法。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ