首页 > 其他分享 >prompt提示工程介绍--如何更好的使用AI

prompt提示工程介绍--如何更好的使用AI

时间:2024-11-28 16:44:39浏览次数:10  
标签:提示 prompt 示例 -- 模型 问题 AI Prompt 提问

我们向大模型提问,就如同去看病时向医生描述自己的症状,描述的越清楚和详细,医生给出的判断可能越准。

在大模型能力不变的情况下,大模型回复的质量,完全取决于我们提问的质量。

你可以把大模型想象成一位远方的专家,你只能通过发消息跟他互动(请教问题),显然,你给他发的信息的质量如何,直接影响到他能否正确的理解你的问题,从而正确的回答你的问题。 为此,如何写出更好的问题(即提示词),就变成了一门工程。

 

一、什么是提示工程

提示工程(Prompt Engineering)是人工智能(尤其是基于大语言模型如 ChatGPT 的系统)领域中的一项技术和实践,旨在通过设计和优化输入提示(prompts)来实现模型输出的最佳化,以满足特定需求。

核心概念

  1. 提示(Prompt)
    提示是用户向模型提供的输入信息,可能包括问题、指令或其他上下文内容,用于指导模型生成期望的输出。例如:

    • 提示:"请用简单语言解释量子力学。"
    • 输出:"量子力学是研究微小粒子如何运动和相互作用的科学……"
  2. 工程的意义
    通过精心设计和改写提示,可以提高模型对任务的理解能力,从而生成更加准确、有用或符合需求的结果。

 

大语言模型并不会去理解你的问题,它只是基于你的问题,也就是你发出的提示词(Prompt),去不断的预测推理下一个字出现的概率。所以你提问时给到的提示词会非常重要,一个字的差异就可能导致大模型(LLMs)的回复会天差地别。也就有了Prompt工程,用于写出更好的提示词。

 

二、写出好的提示词的一些基本技巧

  • 编写清晰具体的指令:在提示词中明确表达你的需求,减少模型对你需求的猜测。
  • 使用分隔符:使用标点符号(如引号、反引号、尖括号等)来区分不同的文本部分,帮助模型理解输入的不同部分。
  • 请求结构化的输出:如果可能,请求模型以特定格式(如JSON)返回结果,便于解析。
  • 检查假设:在提示词中明确检查任务包含的假设,确保模型理解你的意图。
  • 使用示例:提供成功执行任务的示例,帮助模型理解你的意图。
  • 给模型时间思考:对于复杂任务,可以通过在提示词中要求模型思考一段时间,或者使用更复杂的提示词来实现。
  • 迭代开发:编写好的提示词通常需要多次尝试和修改,根据模型的输出来不断改进提示词。

三、几种常见提示词写法

 1、零样本提示法(Zero-shot Prompting)

   含义:零样本提示不提供示例,直接向模型提出问题或任务。适用于模型已熟悉的任务或问题明确的场景。就跟你在百度上搜问题一样。绝大部分普通人都只会这种用法。这对于一些简单的、明确的问题,非常高效。但对于一些复杂的问题,效果就不好了。

举例1:

问题:江苏的省会是哪里

答复:江苏的省会是南京。

//因为这个问题非常简单,所以直接提问即可。

 

举例2:

问题:请将以下句子翻译成英语: “今天天气很好。”

答复:The weather is nice today.

//因为这个任务非常明确,就是让翻译一句话,所以直接向AI给出任务即可。

 

2、少样本提示(Few-shot Prompting)

含义:少样本提示通过提供示例,让模型更清楚任务要求。适用于复杂或自定义任务。

举例1:

问题:

请根据以下示例,为这本小说生成一个简短的介绍:

示例1:
小说名:《1984》
介绍:在乔治·奥威尔的这部经典小说中,一个被全面监控的社会里,主人公温斯顿试图寻找真相和自由,却陷入了更深的困境。这是一部关于权力、监控和人性探索的惊悚小说。

示例2:
小说名:《哈利·波特与魔法石》
介绍:J.K.罗琳的这部奇幻小说讲述了一个孤儿哈利·波特在霍格沃茨魔法学校的冒险故事,他与朋友们一起对抗邪恶势力,探索魔法的奥秘。这是一部充满魔法、友谊和勇气的儿童文学作品。

现在,请为这本小说生成介绍:
小说名:《了不起的盖茨比》
介绍:

 

答复:F.斯科特·菲茨杰拉德的这部经典作品描绘了20世纪20年代美国社会的繁荣与幻灭。小说通过富有而神秘的盖茨比对黛西的执着追求,展现了美国梦的辉煌与破灭,以及爱情、财富和虚荣的复杂纠葛。这是一部深刻揭示爵士时代精神和人性悲剧的小说。

//可以试着直接提问 “请问如下这本小说生成介绍:《了不起的盖茨比》”,与采用上面的少样本提示,看看回复的内容有啥区别。

 

举例2:

问题:

任务:基于以下开头生成一个简短的故事。

示例 1:
开头:在一个阴雨连绵的晚上,杰克走进了那家他从未见过的古老书店。
故事:他走进书店后,迎接他的是一阵昏暗的灯光和飘散的纸张香气。店主是一个年迈的老人,他看起来像是曾经见证了无数故事的开始和结束。杰克随意地翻开一本书,却发现它似乎在讲述他自己的故事…

示例 2:
开头:那只猫突然跳到了窗台上,凝视着外面的黑夜。
故事:她看着窗外的月亮,仿佛能看到远方的某个地方,那个她曾经离开的家。风吹动了窗帘,带来了一股熟悉的气息。猫咪似乎在等待着某个神秘的访客…

请继续生成一个故事,基于以下开头:
开头:在城市的边缘,所有人都在急匆匆地走向地铁站。
故事:

答复:

在城市的边缘,所有人都在急匆匆地走向地铁站。李娜也不例外,她的步伐匆忙,心中却充满了期待。今天是她第一次参加城市探险者的秘密聚会,一个只邀请那些对城市历史和隐藏角落充满好奇的人的聚会。

当她穿过人群,终于到达地铁站时,她注意到了一个与众不同的标志——一个古老的铜质徽章,上面刻着一只眼睛和一只钥匙。她记得聚会的邀请函上提到过这个标志,这是通往秘密聚会的线索。她环顾四周,发现了一个隐蔽的楼梯,通向地铁站的下方。

随着她沿着楼梯向下走去,周围的喧嚣声逐渐消失,取而代之的是一种神秘的宁静。楼梯的尽头是一扇沉重的木门,门上同样刻着那只眼睛和钥匙。李娜深吸了一口气,推开了门。

门后是一个巨大的地下室,装饰着古老的壁画和挂毯,中央是一个巨大的圆桌,周围坐着十几个人,他们正热烈地讨论着城市的传说和未解之谜。李娜被热烈的气氛所吸引,她意识到,这个夜晚,她将听到许多令人兴奋的故事,也许还能揭开一些城市的秘密。

// 可以试着这样直接提问“请以下面的信息为开头,帮生成一个故事:“在城市的边缘,所有人都在急匆匆地走向地铁站。”,看看有什么回复。

 

3、逐步推理提示(Chain-of-Thought Prompting,COT)

含义:逐步推理提示通过引导模型分步思考,适合逻辑复杂或需要多步计算的任务。

说明:有时可能只需加上一些辅助词,如“一步步的回答”等,就能让大模型的回复质量提升。

 

举例1:采用普通方式提问

问题:Strawberry里有几个r?

答复:"Strawberry" 这个词里有2个"r"。

// 可以看出,这个回答是错误的。这是个经典的问题,很多大模型都回回答错误。这个问题验证了大模型在推理方面的不足。

下面我们换种问法。

问题:Strawberry里有几个r?请按如下思路来回答:先把这个单词中的每个字母列出来,对于字母是r的标记为1,非r的标记为0,把所有的1加起来就是问题的答案。

答复:

好的,我们按照这个思路来计算单词"Strawberry"中"r"的数量。

1. 列出单词"Strawberry"中的每个字母:
S, t, r, a, w, b, e, r, r, y

2. 对于每个字母,如果是"r"则标记为1,否则标记为0:
0, 0, 1, 0, 0, 0, 0, 1, 1, 0

3. 把所有的1加起来:
1 + 1 + 1 = 3

所以,单词"Strawberry"中有3个"r"。

// 可以看出,我们通过引导的方式,大模型就能给出正确的答案。

 

上面介绍的只是几种基本的技巧,还有很多方法,甚至可以让大模型(AI)来帮助写提示词。

在实际的应用中,往往需要反复提问,不断地调整,才能得出有效的提示词。 可以结合大模型的结果,去不断修改自己的提示词。如果问题大了,可以拆成小问题来问。

 

四、结构化提问

在复杂的问题中,有很多结构化的提问方式,这往往会提升大模型的回复效果。一般采用markdown的语法,markdown语法很简单,上网一搜就知道。

 

五、追问

很多大模型都支持追问,当大模型回答不清楚,或不正确时,你可以追问。

也可以将各种追问信息,组织成一个完整的提示词,开启一个新的会话,去提问。

总之,在与大模型的交互过程中,如何写好提示词,这非常重要,这有很多方法和技巧,但更需要去实践,去使用。

对我们人来说,大模型目前是一个工具,工具需要去多用,才会熟练掌握。

下面是两篇文章,可以学习下:

OpenAI的官方Prompt工程指南详解

编写高质量Prompt的14个有效方法

 

标签:提示,prompt,示例,--,模型,问题,AI,Prompt,提问
From: https://www.cnblogs.com/51kata/p/18572574

相关文章

  • 别再乱糟糟!学术知识的高效整合法则
    在信息爆炸的时代,如何高效管理知识成为了学术工作者的重要挑战。以往,许多人将知识管理局限于单纯的文档存储与分类,但随着需求的精细化,单纯的工具已不足以应对复杂的学术需求。今天想和大家聊一个不那么显而易见但非常实用的知识管理概念——动态结构化看板,这或许能给你不一样的启......
  • 深入理解 Java 虚拟机-第一部分 走进 Java 笔记
    Sun/Oracle公司研发的热门虚拟机有三个:ClassicVM/ExactVM/HotSpotVMClassicVM:基于句柄(Handle)的对象查找方式,需要外挂JITExactVM:优于ClassicVM,使用了准确式内存管理(记录内存中存储的类型是地址还是数值),丢弃句柄,内置JIT,支持热点代码探测(通过计数器找出有......
  • 牛客周赛 Round 69
    构造C的歪思路取\(|a-b|+\max(a,b)\)即可构造第三项。代码#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);inta,b;cin>>a>>b;intd=abs(......
  • mysql表
    创建users表(用户信息表)假设我们要记录用户的基本信息,如用户ID、姓名、电子邮件、联系电话、注册日期等。sql--在数据库'weather'中创建一个名为'users'的表USEweather;CREATETABLEusers(idINTAUTO_INCREMENTPRIMARYKEY,--用户ID,主键,自增fir......
  • TCP粘包半包问题
    TCP粘包和半包的问题分析TCP粘包原因:1、发送方每次写入数据<套接字缓冲区大小;tcp相关算法整合碎片化数据包2、接收方读取(接收)套接字缓冲区数据不够及时半包原因:1、发送方写入数据>套接字缓冲区大小2、发送的最大报文长度大于MSS,网络包大于协议的MTU(最大传输单元,1500......
  • 2024年图纸防泄密指南|设计图纸防泄密该怎么做?教你10个方法杜绝泄密
    “千里之堤,溃于蚁穴”,这句古语深刻揭示了细节对于整体安全的重要性。在当今时代,设计图纸作为企业核心资产的组成部分,其保密工作同样需要我们从细节入手,筑牢安全防线。本文将介绍10个有效的防泄密方法,共同构建一道坚不可摧的图纸安全屏障。1.加密图纸文件加密是保护图纸最......
  • vue3-其余新增API
    shallowRef创建一个响应式数据,但只对顶层属性进行响应式处理,只跟踪引用值的变化,不关心值内部的属性变化import{shallowRef}from"vue"importUserInfofrom"@/components/UserInfo.vue";letname=shallowRef("vue")letinfo=shallowRef({name:"html"})conso......
  • 人工智能学习框架
    人工智能(AI)学习框架是构建和训练AI模型的基础工具,以下是对其的详细介绍:一、定义人工智能学习框架代表了AI的支柱,为开发者提供了开发和部署AI模型的基础结构。这些框架通过预定义的算法、优化工具、模型结构和训练流程,简化了AI应用的开发过程,使开发者能够更专注于模型的创......
  • YASKAWA安川机器人DX100轴控制基板维修解析知识
    ASKAWA安川机器人DX100轴控制基板的维修是一项复杂而精细的工作,要求具备丰富的知识和实践经验。通过与子锐机器人维修联系,希望能企业提供一些有益的参考和帮助,在面对轴板故障时能够迅速准确地找到问题所在并妥善处理。一、YASKAWA安川机器人维修步骤与方法1、故障诊断:通过YASKA......
  • table列表 图片预览
    1<el-table-columnlabel="营业执照"align="center"prop="businessLicense">2<templateslot-scope="scope">3<el-image4style="width:60p......