Prompt Engineering 完整指南

news2024/11/15 21:51:22

Prompt Engineering 完整指南

在这里插入图片描述

Prompt Engineering 是与 AI 模型进行交互的关键技术,通过精心设计的指令(prompt)引导模型生成高质量的输出。本文将详细介绍 prompt 设计的最佳实践、基本原则以及高级技巧,帮助你在实际应用中最大化模型的效用。

1. Prompt 设计的基本原则

1.1 清晰明确

一个好的 prompt 应该避免模糊不清,直接指出期望的结果。清晰的指令可以减少模型产生误解的可能性,从而提高生成内容的质量。例如,与其说“写点东西”,不如更具体地要求“写一篇关于气候变化对极地冰盖影响的500字文章”。

1.2 具体化和分步指引

对于复杂的任务,将任务分解成多个步骤有助于模型理解并准确完成任务。例如,以下示例展示了如何分步进行指引:

1. 用一句话总结下面的文本。
2. 将该摘要翻译成英语。
3. 列出摘要中的所有专有名词。

这种方法不仅可以使模型产生结构化的输出,还能确保每个步骤的完成质量。

1.3 上下文提供

为模型提供足够的背景信息或上下文可以显著提高生成结果的相关性。例如,如果要求模型写一个故事,可以先给出角色背景和故事设定,这样能帮助模型理解任务的细节。

1.4 示例引导

Few-shot 示例是帮助模型理解预期输出风格的有效方法。在 prompt 中加入几个示例,可以引导模型识别模式,从而生成符合预期的输出。以下是一个示例:

Q: 5 + 3 = ?
A: 8
Q: 10 + 7 = ?
A: 17

这种方式可以有效地提高模型在处理类似问题时的准确性。

2. 进阶策略

2.1 使用逻辑框架

在需要复杂推理的场景中,使用特定的思维逻辑或框架可以帮助模型生成更具逻辑性的输出。例如,要求模型使用贝叶斯定理来计算某个事件的概率,可以使结果更加准确和有理有据:

假如你是天气预测器,最近 7 天都没有下雨,请根据贝叶斯定理思考明天下雨的概率。

这种方式让模型不仅仅是简单地预测结果,还能提供合理的推理过程。

2.2 提供推理过程

为了避免模型快速得出错误结论,可以通过 prompt 引导模型进行一系列相关推理。指示模型在给出最终答案前先思考问题,或分步骤进行推理,这样可以提升结果的可靠性。

2.3 角色扮演

在某些情况下,赋予模型一个特定的角色有助于生成更符合预期的内容。例如,要求模型以“科学家”或“历史学家”的身份回答问题,可以使输出更具专业性和权威性。这种方法在编写技术文档、教学材料或角色扮演对话时尤为有效。

3. 常用技巧和最佳实践

3.1 迭代优化

在实际操作中,通过逐步调整 prompt,反复测试和优化,可以找到最佳的 prompt 设计。可以先从简单的指令开始,然后逐步增加复杂性和细节,通过对比不同 prompt 的输出,选择最优的设计。

3.2 思维框架的一致性

引导模型在生成内容时保持思维框架的一致性可以提高输出的逻辑性。例如,要求模型在整个过程中都遵循同一逻辑框架或使用同一分析方法,能有效减少生成结果的逻辑错误。

3.3 控制生成风格

通过控制 prompt 中的语言风格和结构,可以引导模型生成符合特定要求的内容。例如,在要求模型生成具有正式语气的商业报告时,prompt 可以明确规定输出的格式和语气,确保结果的专业性。

4. 实践案例

案例1:贝叶斯推理

要求模型基于贝叶斯定理进行推理,可以得到更具逻辑性和准确性的结果。以下是一个关于天气预测的示例:

假如你是天气预测器,最近 7 天都没有下雨,请根据贝叶斯定理思考明天下雨的概率。

该 prompt 通过指定思维方式,约束模型在一个合理的逻辑框架内进行推理,最终输出的结果更符合预期。

案例2:角色扮演

在一个终身学习者的场景下,赋予模型一个“学习助手”的角色,可以帮助引导用户学习新知识。这一场景下,prompt 设计如下:

你是一个终身学习者,同时也是一个求知欲强的探索者。我们将合作探索和学习新的知识和技能。

通过这样的设计,模型能够更有效地帮助用户制定学习计划,并提供个性化的建议。

5. 总结

Prompt engineering 是与 AI 模型进行高效交互的关键技术。通过遵循上述原则和策略,你可以显著提高模型输出的质量和相关性。无论是在简单任务还是复杂推理中,合理的 prompt 设计都能够为你的工作带来极大的帮助。希望这份指南能够为你在实践中提供有价值的参考

#Prompt 原则示例 Prompt
1如果你更喜欢简洁的答案,直接切入主题,无需使用礼貌用语。Could you kindly describe the structure of a human cell, please? -> Describe the structure of a human cell.
2在 prompt 中加入预期的受众信息,例如受众是该领域的专家。Construct an overview of how smartphones work, intended for seniors who have never used one before.
3在互动对话中,将复杂任务分解为一系列更简单的 prompt。P1: Distribute the negative sign to each term inside the parentheses of the following equation: 2x + 3y - (4x - 5y)
P2: Combine like terms for ‘x’ and ‘y’ separately.
P3: Provide the simplified expression after combining the terms.
4采用肯定性指令,例如“执行”,避免使用否定性语言。How do buildings remain stable during earthquakes?
5当需要对某个主题有更深入的理解时,使用解释性提示。Explain to me like I’m 11 years old: how does encryption work?
6在 prompt 中加入“我将奖励 $xxx 给更好的解决方案”的表述。I’m going to tip $300K for a better solution! Explain the concept of dynamic programming and provide an example use case.
7使用 few-shot 示例进行提示。Example 1: Translate the following English sentence to French: “The sky is blue.” (Response: “Le ciel est bleu.”)
Example 2: Translate the following English sentence to Spanish: “I love books.” (Response: “Amo los libros.”)
8格式化你的 prompt,先使用 ‘###Instruction###’,然后(如适用)使用 ‘###Example###’ 或 ‘###Question###’,然后再提供内容。###Instruction### Translate a given word from English to French.
###Question### What is the French word for “book”?
9在 prompt 中加入 “Your task is” 和 “You MUST”。Your task is to explain the water cycle to your friend. You MUST use simple language.
10在 prompt 中加入 “You will be penalized”。Your task is to explain the water cycle to your friend. You will be penalized if you fail to use simple language.
11在 prompt 中使用 “Answer a question given in a natural, human-like manner”。Write a paragraph about healthy food. Answer a question given in a natural, human-like manner.
12使用诸如“逐步思考”的提示词。Write a Python code to loop through 10 numbers and sum all of them. Let’s think step by step.
13在 prompt 中加入 “Ensure that your answer is unbiased and avoids relying on stereotypes”。How do cultural backgrounds influence the perception of mental health?
Ensure that your answer is unbiased and avoids relying on stereotypes.
14允许模型通过提问来收集足够的细节和要求,以便提供所需的输出。From now on, ask me questions until you have enough information to create a personalized fitness routine.
15使用“教我[定理/主题/规则名]并在最后进行测试,但不要给出答案”来测试理解。Teach me about the KVL law and include a test at the end, and let me know if my answers are correct after I respond, without providing the answers beforehand.
16在 prompt 中赋予 LLM 角色。If you were an expert economist, how would you answer this: What are the key differences between a capitalist and a socialist economic system?
17在 prompt 中使用分隔符。Compose a persuasive essay discussing the importance of ‘renewable energy sources’ in reducing greenhouse gas emissions.
18在 prompt 中多次重复特定词语或短语。Evolution, as a concept, has shaped the development of species. What are the main drivers of evolution, and how has evolution affected modern humans?
19将链式思维与 few-shot 示例结合使用。Example 1: “Divide 10 by 2. First, take 10 and divide it by 2. The result is 5.”
Example 2: “Divide 20 by 4. First, take 20 and divide it by 4. The result is 5.”
Main Question: “Divide 30 by 6. First, take 30 and divide it by 6. The result is…?”
20在 prompt 结尾使用输出引导词。Describe the principle behind Newton’s First Law of Motion. Explanation:
21要求模型写出详细的文本。Write a detailed paragraph for me on the evolution of smartphones in detail by adding all the information necessary.
22在不改变风格的情况下修正或更改特定文本。Try to revise every text sent by users. You should only improve the user’s grammar and vocabulary and make sure it sounds natural. You should maintain the original writing style, ensuring that a formal paragraph remains formal.
Paragraph: Renewable energy is really important for our planet’s future. It comes from natural…
23在 prompt 中处理多文件代码情况。Generate code that spans more than one file, and generate a Python script that can be run to automatically create the specified files for a Django project with two basic apps for different functionalities.
24在 prompt 中利用开头的词句、短语或句子进行引导。I’m providing you with the beginning of a fantasy tale: “The misty mountains held secrets no man knew.” Finish it based on the words provided. Keep the flow consistent.
25明确说明模型需要遵循的要求,包括关键词、规则、提示或指令。Create a packing list for a beach vacation, including the following keywords “sunscreen,” “swimsuit,” and “beach towel” as essential items.
26在 prompt 中包含仿照提供的样本来写作的指令。“The gentle waves whispered tales of old to the silvery sands, each story a fleeting memory of epochs gone by.” Use the same language based on the provided text to portray a mountain’s interaction with the wind.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2047905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode添加宏定义

1 起因 在用vscode看项目代码时,如果源文件中的代码块被某个宏定义给包裹住了,则在vscode的默认配置下,不会高亮显示这块被包裹住的代码,如下图中229行开始的代码被STM32F40_41xxx所控制,没有高亮显示。 由于STM32F4…

SSH升级至9.8p1

此前写过一个有关升级ssh的帖子,当时的情况是ssh5.3p1 升级到 ssh8.0 p1 下面是链接:https://blog.csdn.net/zhurobert/article/details/103193205?spm1001.2014.3001.5501 此次升级的环境是CentOS-7.6.1810 ssh版本7.4p1 准备好升级包后上传至/home…

Ubuntu 下 NFS服务开启

NFS(Network File System,网络文件系统)是一种基于TCP/IP传输的网络文件系统协议,它允许网络中的计算机之间通过TCP/IP网络共享资源。简单来说NFS就是一个文件传输的协议,可以用来传输文件。 使用如下命令安装 NFS 服务…

怎样选择开放式耳机好?精选五大实力出众爆款安利!

开放式耳机通过空气传导技术传递声音,不需要插入耳道,这种设计不仅保护了耳朵,还确保了佩戴的稳定性和舒适性。与传统的入耳式耳机相比,开放式耳机有助于保持耳道清洁,并允许用户在享受音乐的同时保持对周围环境的警觉…

Ps:首选项 - 增效工具

Ps菜单:编辑/首选项 Edit/Preferences 快捷键:Ctrl K Photoshop 首选项中的“增效工具” Plugins选项卡允许用户管理 Photoshop 中的插件和扩展功能,通过调整这些设置,用户可以根据自己的需求来扩展 Photoshop 的功能&#xff0c…

前端post传入拿到数据,后端报null,并且能够添加或者编辑成功

检查conterller层注解接到实体类的注解是不是没加( RequestBody ) 后端: 前端: 那么就看注解,因为contrller层有个接值注解( RequestBody )

Why Does ChatGPT Fall Short in Providing Truthful Answers?

文章目录 题目摘要简介相关工作模型和数据集结果事实性背后的能力提高 QA 的事实性结论 题目 为什么 ChatGPT 无法提供真实的答案? 论文地址:https://arxiv.org/abs/2304.10513 摘要 ChatGPT 等大型语言模型的最新进展已显示出影响人类生活各个方面的巨大潜力。然而…

18.token刷新拦截器

问题 上一篇博客中提到使用redis来存用户的登录信息,解决了session不共享问题。 在拦截器中,重新设置了用户信息的有效期,保证只要用户一直请求就永不过期。但是并不是每个请求都会经过拦截器的(因为登录拦截器,不是…

多个文件上传

♥️作者:小宋1021 🤵‍♂️个人主页:小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

【书生大模型实战营】LMDeploy 量化部署进阶实践

LMDeploy 量化部署进阶实践 【书生大模型实战营】LMDeploy 量化部署进阶实践任务环境将大模型封装为API接口服务以命令行形式连接API服务器以Gradio网页形式连接API服务器 LMDeploy Lite和InternLMkv cacheW4A16 模型量化和部署W4A16 量化 KV cacheKV cache 量化 LMDeploy与Int…

【JavaEE】MyBatis 实战指南:从 JDBC 到高效数据库操作的进阶教程

目录 MyBatis 操作数据库JDBC 操作⽰例回顾什么是MyBatis?MyBatis⼊⻔1. 准备⼯作2. 配置数据库连接字符串3. 写持久层代码4. 单元测试使用MyBatis可能遇到的问题 MyBatis的基础操作打印⽇志参数传递增(Insert)返回主键 删(Delete)改(Update)查(Select)起别名结果映射开启驼峰…

vue使用高德获取当前地区天气

1、收件箱 | 高德控制台 (amap.com) 首先打开高德开放平台注册一下 2、创建一个应用获取到key后面获取天气的时候 请求接口的时候会用到key 2.1.1 创建应用的时候注意类型选成天气 2.1.2 创建完成之后就点添加key 然后选择web服务就行 3、可以调取天气接口 天气查询-基础 API…

https握手过程详解

https握手过程详解 上一篇《HTTPS通讯全过程》中https握手过程实际上还有更多的细节,为什么会这样设计呢?是因为一开始将握手过程时,吧步骤说的太详细会导致更难理解惹。所以我就先在上一篇把部分细节忽略,把原来几步的过程先简化…

洛杉物理服务器怎么样?

洛杉矶作为美国科技和互联网的重要中心,物理服务器的质量通常非常高,可以提供卓越的性能、强大的安全性、多样的配置选项和专业的服务支持。以下是对洛杉物理服务器的详细介绍。 1. 优质的性能 稳定的网络连接:洛杉矶物理服务器位于先进的数据…

CASS11时空版 全新升级支持多版本CAD软件下载License使用

南方数码地形地籍成图软件CASS,经过二十余年的发展,市场和技术积累丰厚,用户遍及国内外测绘地理信息相关行业。软件销量和市场占有率持续领先,是业内应用广,服务优的软件品牌。 南方数码深刻理解信息化测绘的内…

合宙LuatOS生成毫秒级时间戳

合宙Luatos - os操作 os.time()生成时间戳的精度只能达到秒级,在很多联网应用中需要毫秒级的时间戳。 经查看LuatOS-SOC接口文档,发现了解决办法。 socket - 网络接口文档 通过文档,我们只要获取当前数,然后把毫秒数与os.time(…

【C语言】:字符和字符串中的字符比较

1.入门 当我们想要一个字符和字符串中的某个字符进行比较时,可以直接用“”进行比较。 为什么可以用“”? 因为字符是存放在常量区,字符变量的值是固定的,字符之间的比较,本质上是对字符的ASCII比较。ASCII_百度百科…

FinalData-绿色便携免安装数据恢复软件 下载

下载地址(资源制作整理不易,使用需付费,不能接受请勿浪费时间下载): 链接:https://pan.baidu.com/s/17CH5tkSc2qAj-6FuGvfb9Q?pwdvyze 提取码:vyze

基于Java语言的能源管理系统-水电气热油数据采集系统

基于Java语言的能源管理系统-水电气热油数据采集系统 介绍 适用于高能耗企业、建筑、工厂、园区的水、电、气、热、油、空压机等能源数据采集、分析、报表; 基于SpringCloud的能源管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud全家桶-能管…

string模拟

本章准备对string模拟进行讲解,以下是string的学习网址: string - C Reference (cplusplus.com) string本质可以理解为储存char类型的顺序表,其中string的迭代器用一个char*就可以解决。所以string类成员变量如下: 这里用了一个命…