•指令- 您想让模型执行的具体任务或指令
•上下文- 可以涉及外部信息或附加上下文,可以引导模型做出更好的响应
•输入数据- 是我们有兴趣找到响应的输入或问题
•输出指示- 表示输出的类型或格式。
例如:
Prompt:
###指令###
将下面的文本翻译成西班牙语:
文本:“嗨!”Output:
Texto:"¡Hola!"
我们输入的指示和任务上要非常具体,提示越详细,结果就越好,尤其是我们在要求大模型以特定格式或风格给我们返回内容时。需要注意的是,详细而具体的提示并不是越长越好,因为大模型的输入长度存在一定的限制,要尽量避免一些不是很重要的无用细节。
例如,让我们尝试从一段文本中提取特定信息的简单提示。
Prompt:
提取以下文本中的人物。
期望格式:
人物:{"姓名":"","性别":""}
输入:“姚明(Yao Ming),男,汉族,无党派人士,1980年9月12日出生于上海市徐汇区,祖籍江苏省苏州市,前中国职业篮球运动员,司职中锋,现任亚洲篮球联合会主席、中国篮球协会主席、中职联公司董事长兼总经理、十三届全国青联副主席,改革先锋奖章获得者,第十四届全国人大代表。”Output:
人物:{"姓名":"姚明","性别":"男"}大语言模型经过大量的数据训练和指令微调,具备了强大的语义分析能力和推理能力。但在处理更复杂的任务时,推理能力仍然表现不足。为了改进这一点,few-shot prompt被用作一种技术,以实现上下文学习,在Prompt中提供演示,以引导模型获得更好的性能。
例如,任务是在一个句子中正确使用一个新词。
Prompt:
示例1:
生物名:翼火龙
特征:生活在火山地带,拥有火焰吐息能力,翅膀覆盖着耐高温的鳞片。
分类:火元素生物
示例2:
生物名:水灵狐
特征:居住在深林的溪流旁,能够操控水流,毛发闪耀着水珠般的光泽。
分类:水元素生物
请根据同样的模式,对以下生物进行分类:
生物名:光羽兽
特征:栖息于云之彼端,身体轻盈透明,背上生有能折射阳光形成彩虹的羽毛,以光线为食。Output:
分类:光元素生物
我们可以清楚地观察到,模型通过仅提供一个示例(即1-shot)学会了如何执行任务。对于更困难的任务,我们可以尝试增加演示次数(例如3-shot、5-shot、10-shot等)。
标准的 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,其基本思想就是将“让我们一步步思考”添加到提示中。让我们尝试一个简单的问题,看看模型的表现如何:
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个苹果。实际上,这个简单的提示在这个任务上非常有效,令人印象深刻。这在您没有太多示例可用于提示的情况下特别有用。
以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 (https://www.lianzai.com/) | Powered by Discuz! X3.5 |