掌握完美提示词技巧:最大化利用ChatGPT及其他大语言模型
如今上网,你会看到大量关于AI及AI驱动工具将如何革命性改变生活和世界的文章、帖子、推文、TikTok和视频。虽然很多炒作并不现实,但像ChatGPT、Copilot和Claude这样的大语言模型(LLM)确实能让枯燥困难的任务变得更容易。关键在于知道如何与它们对话。
像ChatGPT、Copilot和Claude这样的LLM是基于文本的工具,因此它们非常擅长分析、总结和生成可用于各种项目的文本,这并不令人意外。然而,像任何其他工具一样,知道如何有效使用它们对于获得想要的积极结果至关重要。在最近的一次网络研讨会(https://www.youtube.com/watch?v=D1pIfpcEBtI)中,我分享了一些更有效使用LLM的技巧,并在此再次提供供您使用。
首先,一些定义:
- 人工智能(AI):“人工智能”指的是计算机科学的一个学科,致力于制造能像人类一样思考的计算机系统。
- 大语言模型(LLM):一种能处理和生成自然语言文本的AI模型。
- 模型:“模型”指的是一个数学框架或算法,通过在海量数据集上训练来识别模式、理解语言,并根据接收的输入生成类人文本。这些模型使用神经网络处理和预测信息,使其能够执行文本完成、翻译和问答等任务。
- 提示词:提示词是提供给模型的输入文本或查询,用以引发响应。它通过提供上下文、指令或问题来指导模型的输出,处理并生成相关文本。
因此,总结来说:LLM是AI的一种形式。我们使用提示词向LLM提供指令或命令。它们以类似于人类生成的文本的响应和/或输出进行回复。然而,挑战在于并非所有提示词都是平等的。
我倾向于使用以下类别对提示词进行分类:
- 简单查询:很像搜索引擎查询,但通常会给出更相关的结果。适用于“快速而粗略”的问题或任务。
- 详细指令:包括要执行任务的一些具体细节,并可能包含有关如何呈现或组织结果输出的一些指导。
- 上下文提示:一种结构化的提示,包括多层指令和关于如何格式化和组织输出的非常具体的指导。
- 对话式提示:更像与另一个人的对话,而不是单一提示。非常适合以迭代方式进行头脑风暴和/或完善想法。
简单查询
这种提示很简单,是大多数人大多数时间使用的格式。它只涉及问一个简单的问题,比如“一只未携带货物的燕子的空速是多少?”或“生命、宇宙和一切的终极问题的终极答案是什么?”
通常,响应比从搜索引擎得到的更有用,因为它直接回答问题,而不是给你数百万个可能包含你要找的答案的网页链接。
详细指令
这是一种中等复杂度的提示,你向LLM提供更多关于你希望它做什么的细节。例如:
我需要一个Python脚本,能够按TLD、然后按域、最后按子域对互联网域名进行排序。该脚本需要能够处理多个子域,例如www.jpl.nasa.gov。
在这个例子中,我告诉LLM我想要一个Python脚本,并给出了几个关于它应该如何工作的具体标准。虽然这比简单查询更好,但可能需要多次尝试才能获得正常工作或满足你需求的输出。
上下文提示
上下文提示是最复杂的,但定义你想要什么以及如何想要它最终会带来回报。
Microsoft Learn网站有一个关于LLM提示工程的页面(https://learn.microsoft.com/en-us/ai/playbook/technology-guidance/generative-ai/working-with-llms/prompt-engineering#prompt-components),其中包括以下图形,展示了如何制作一个好的上下文提示:
提示组件
你是谁?
首先,Microsoft建议提供“指令”。我喜欢称之为“定义角色”,即你希望LLM为此任务采用的角色。这样做为很多事情奠定了基础,从研究领域到声音或其他可能适用的“标准”,取决于所涉及的主题。
以下是一些例子:
你是一名高级渗透测试员,擅长使用Kali Linux渗透测试发行版。你了解其默认工具,并且知道许多优化可能在渗透测试中使用的道德黑客命令的方法。你能够与极客、C级高管以及介于两者之间的所有人交谈。
你是一名专业厨师,专门为有多个孩子的家庭制作易于制作的餐点。只要可能,你努力在准备全家人都能享用的餐点时平衡良好的营养与便利性。你的语气轻松且信息丰富,鼓励他人准备美味、经济且不需要大量时间制作的餐点。
你是一名友好且富有想象力的讲故事者,喜欢为6或7岁以下的幼儿创作引人入胜且舒适的睡前故事。你的故事旨在舒缓,充满温和的冒险,通常以 relatable 的角色、动物和鼓励社会行为的简单课程为特色。
注意:如有疑问,更多的指令更好。
上下文
接下来是Microsoft称之为“任务特定知识”的部分。这是你为所涉及的主题设定舞台的地方。显然,你可以根据需要尽可能详细。
提供的指导应适合道德黑客、网络安全研究人员和其他可能从事渗透测试的信息安全专业人员。
餐点应设计为吸引成人和儿童,为挑食者提供选项,并变化以适应饮食限制或偏好。目标是帮助忙碌的父母准备全家可以一起享用的美味健康餐点。
故事应适合年龄,不含任何可怕或过于复杂的内容,并旨在激发孩子们准备睡觉时的惊奇感和安全感。
要遵循/模仿的示例
向LLM提供示例非常重要。因为LLM和其他AI并非真正智能,除非你具体且详细地告诉它们,否则它们无法知道你想要什么。(这也适用于人,但那是另一篇博客文章。😉)
你提供的示例不仅可作为LLM可以遵循的模板,还让你有机会包含任何你希望最终产品中有的具体细节、格式约定等。将其视为为LLM的成功做好准备。
运行Nmap命令:在终端中执行以下命令,对目标IP地址192.168.1.1的前1000个端口(-p 1-1000)执行基本TCP SYN扫描(-sS):
nmap -sS -p 1-1000 192.168.1.1
命令解释:nmap
:运行Nmap的命令。-sS
:执行TCP SYN扫描,这是一种快速且隐蔽的端口扫描方法。-p 1-1000
:指定要扫描的端口范围(端口1到1000)。192.168.1.1
:要扫描的目标IP地址。将其替换为你的目标的实际IP地址。
慢炖锅鸡肉和蔬菜 食材:4块无骨去皮鸡胸肉、4根大胡萝卜,去皮切块、4个土豆,去皮切块、1个洋葱,切碎、3瓣大蒜,切碎、1杯鸡汤、1茶匙干百里香、1茶匙干迷迭香、盐和胡椒调味 instructions:将鸡胸肉放入慢炖锅底部。在鸡肉上加入胡萝卜、土豆、洋葱和大蒜。将鸡汤倒在食材上。撒上百里香、迷迭香、盐和胡椒。盖上盖子,低火煮6-8小时,或直到鸡肉和蔬菜变软。 serving:直接从慢炖锅中取出鸡肉和蔬菜,享受一顿丰盛、无需费心的晚餐,清理工作极少。
注意:如果你希望食谱对国际读者更易访问,考虑在你的示例中包括公制和英制测量。
蒂米和魔法树的冒险 从前,在一个坐落在巨大魔法森林边缘的小村庄里,住着一个名叫蒂米的男孩。一个阳光明媚的下午,蒂米决定探索森林,在那里他发现了一棵闪烁着彩色光芒的魔法树。树用温柔的声音对他说:“你好,蒂米!我授予每个找到我的孩子一个愿望。”蒂米仔细思考,希望获得与动物交谈的能力。突然,他听到一阵欢快的声音合唱,森林动物们聚集在一起,渴望聊天并分享他们的故事。从那天起,蒂米在魔法森林中有了新朋友和无尽的冒险,总是带着精彩的故事回家分享。 每个晚上,当他渐渐入睡时,蒂米都会梦见魔法树以及第二天他将进行的愉快对话。
问题或任务请求
一旦你建立了上下文,就是时候向你的LLM提出实际请求,告诉它你希望它做什么。你在设定舞台上投入的工作将以更可靠的结果获得回报,但你可能需要稍微调整和完善一些事情。然而,这不一定是一件坏事。
即使你广泛设定了舞台并提供了详细的示例和指令,LLM也不会完全按照你的方式说话。不要犹豫,调整输出,调整词汇选择、标点或格式,以添加你自己的个人印记。
我是这样想的:当我烘焙时,我从盒装混合物开始,但添加额外的美味来增强已有的东西。可能像在香蕉面包混合物中添加额外的肉桂,或在罂粟籽松饼中添加杏仁提取物这样的小事。或者可能是更广泛的事情,如在巧克力蛋糕面糊中加入橙汁和布丁混合物。
归根结底,无论你利用什么工具生成最终产品,你发布的任何东西都是你的责任。投入时间确保你发布、打印或出版的内容以你想要的方式说出你想要说的话。像ChatGPT、Copilot、Claude、Ollama等LLM是为了帮助你,而不是取代你,无论媒体和过度热情的高层管理人员怎么想。
对话式提示
对我来说,对话式提示是LLM真正闪耀的地方,因为它感觉 less like work and more like I’m chatting with my own personal mentor, tutor, or subject matter expert。就像与另一个人讨论事情时发生的情况一样,与ChatGPT或其他LLM进行对话是一个迭代的、进化的过程。随着对话的进行,它会演变,完善正在讨论的焦点或方向。
我喜欢与ChatGPT聊天的另一个非常重要的原因是:LLM是非评判性的。当我提问或需要澄清时,它们不会批评、居高临下或让我感到不足。这使得LLM在学习新材料或科目时 extremely effective。
作为在信息技术各个方面工作了几十年的人,我非常清楚,虽然有许多人会自由地并以大量鼓励分享他们所知道的东西,但IT中有足够多的人将提问视为无知和无能的标志。他们不将问题视为学习和变得更有能力的愿望,而是将其视为弱点,并将提问者标记为不合格和无能。
这种负面态度对于刚