AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Prompt提示词如何写才能发挥大语言模型LLM的最大潜力
发布日期:2024-06-17 19:59:31 浏览次数: 6741 来源:AI工程师笔记


提示词

提示工程学是一门相对较新的学科,用于开发和优化提示,以便高效地利用语言模型(LM)来进行各种应用和研究主题。提示工程技能有助于更好地了解大型语言模型(LLM)的能力和限制。研究人员使用提示工程来改善LLM在各种常见和复杂任务上的能力,例如问答和算术推理。开发人员使用提示工程来设计与LLM和其他工具接口的强大和有效的提示技术。

本文主要介绍标准提示的基础知识,以提供指导如何使用提示与大语言模型(LLM)进行交互。

提示的组成要素

提示主要包含以下组成部分:

  • • 指令 - 您想让模型执行的具体任务或指令

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

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

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

并非所有组成部分都是提示所必需的,格式取决于手头的任务。我们将在后面发布的指南中涉及更多具体的示例。

提示词的通用设计技巧

指令

通过使用指令来指导模型进行各种简单任务的设计,例如“写入”、“分类”、“总结”、“翻译”、“排序”等。尝试使用不同的指令、关键字、上下文和数据,看看什么对您的特定用例和任务最有效。通常,上下文对于您尝试执行的任务越具体和相关,效果越好。建议将指令放在提示的开头。建议使用一些清晰的分隔符,如“###”,来分隔指令和上下文。

例如:

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、如果涉及到多个表的关联,请明确它们之间的连接条件。
【表结构信息】:{
                  CREATE TABLE Books (
                              id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
                              title VARCHAR(255) NOT NULL COMMENT '图书标题',
                              author VARCHAR(255) NOT NULL COMMENT '图书作者',
                              isbn CHAR(13) UNIQUE NOT NULL COMMENT '图书ISBN号',
                              publication_date DATE NOT NULL COMMENT '出版日期',
                              category VARCHAR(100) NOT NULL COMMENT '图书类别'
                  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='图书记录';
             };
【样例数据】: {
                  "title""示例图书",
                  "author""作者名字",
                  "isbn""1234567890",
                  "publication_date""2023-04-01",
                  "category""小说"
            };
【Few-Shot示例】:[
                      {
                        "提问":"找出所有在2023年出版的书籍。",
                        "响应":"SELECT title FROM Books WHERE year(publication_date) = '2023'"
                      },
                      {
                        "提问":"找出所有在2023年出版的书籍,并按照出版日期排序。",
                        "响应":"SELECT title FROM Books WHERE year(publication_date) = '2023' ORDER BY publication_date"
                      }
                ]
【用户指令】:{question}
【响应格式】:请以SQL代码的形式提供您的答案,确保它直接回答了上述问题,并且遵循正确的SQL语法。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询