初探提示工程

430 阅读22分钟

初探提示工程

你是否想过拥有一个能够和你聊天、创作、提供信息的智能伙伴?你是否想过利用人工智能的力量来解决你的问题、满足你的需求、实现你的梦想?如果你的答案是肯定的,那么chatgpt就是你的最佳选择!

chatgpt是一个基于GPT技术的在线平台,它可以让你和一个强大的语言模型进行交互,体验不同的功能和场景。无论你是想要找一个有趣的聊天对象,还是想要获得一些灵感和创意,或者是想要获取一些有用的信息和知识,chatgpt都可以帮助你达成目标,让你感受到人工智能的魅力和潜力。

本文的目的是为那些刚接触或者想要更好地使用Chatgpt的用户,提供一些实践经验和建议。在这篇文章中,我将分享一些使用chatgpt的实践经验,帮助你更有效地使用这个强大而灵活的平台。我将介绍如何使用提示项目,以及一些使用chatgpt的实用技巧。我希望这篇文章能够激发你对chatgpt的兴趣和好奇心,让你能够用chatgpt来创造出令人惊喜的应用。

提示工程(Prompt)

Prompt 是一种向人工智能模型提供指令的方式,让它能够根据您的需求生成合适的回答。

提示(Prompt)就像是给另一个人提供指令,他很聪明但对您的任务细节并不了解。也可以设想您要指导一位刚毕业的大学生完成任务,您需要告诉他哪些信息以及期望得到怎样的结果。当人工智能模型LLM无法正常运作时,问题可能在于指令不够明确。

提示工程(Prompt Engineering)是一种通过有组织、系统化的方法来优化输入提示的过程。这种方法可以帮助我们更好地利用AI模型,提高输出质量,节省时间和资源,以及提高用户友好性。

提示工程之所以重要,是因为它可以提高输出质量、节省时间和资源以及提高用户友好性。通过精心设计的提示,我们可以引导AI模型生成更准确、更相关的答案。有效的提示可以帮助模型更快地找到正确答案,从而减少计算时间和成本。此外,通过精心设计提示,可以引导模型生成更符合人类语言习惯和逻辑的回答,使得用户与模型的交流更加自然和顺畅。

提示工程涉及到四个主要元素:用户输入、上下文信息、提示语和输出生成内容。用户输入是用户提供的问题、需求或指令,上下文信息是与任务相关的背景信息,有助于模型理解任务。提示语是引导模型生成期望输出的关键词或短语,而输出生成内容是模型根据输入生成的文本、代码或其他形式的回答。

在提示工程中,我们可以使用一些简单的提示来引导模型生成期望的输出。例如,可以通过提供一个问题或需求,然后让模型根据这个问题或需求生成相应的答案。同时,我们还可以调整模型参数,如Temperature和max_tokens,来控制输出的随机性和长度。Temperature是控制输出随机性的参数,值越高,输出越多样化,值越低,输出越保守。而max_tokens是限制输出长度的参数,表示输出的最大词语数量。超出则截断。

Prompt 的设计非常重要,因为它会影响模型的理解和输出质量。为了充分利用 ChatGPT,以便在与 AI 进行交流时获得更准确和有用的回答,您需要遵循一些基本原则和策略来编写 Prompt。

在使用 ChatGPT 之前,你需要先了解一些 Prompt 的通用模板,当你不知道该怎么提问的时候,通过三层结构,可以让你有条理、有框架地提出问题,并得到 ChatGPT 更有效的回答。

ChatGPT 基础三层提示语结构:目标优先、输入数据、设置输出

  • 尽可能在提示语的一开头,用一到两句话,先清楚说出自己的最终目的。这样可以让 ChatGPT 知道你想要什么样的结果,以及如何评估它的回答。
  • 和 ChatGPT 传达任务目的后,可以开始说明任务、问题的独特背景资料,明确具体的描述跟任务相关的人事时地物。这样可以让 ChatGPT 有足够的信息来理解你的问题,并生成相关的回答。
  • 可以请 ChatGPT 提供这样的任务格式:提供表格、代码、流程图、简报、markdown 等。这样可以让 ChatGPT 知道你想要什么样的输出形式,以及如何组织和呈现它的回答。

正面例子:

请你帮我写一个关于如何使用 ChatGPT 的简短介绍,包括它是什么、能做什么、怎么用等内容。请用 markdown 语法写成一个段落

反面例子:

我想吃饭。(目标优先)
我饿了,但不知道吃什么好。(输入数据)
请给我一个菜单。(设置输出)
(反面原因:目标不清晰,输入数据不相关,设置输出不合适)

我想学习编程。(目标优先)
编程是一种用计算机语言来创建软件和应用的技能。编程可以让你实现很多有趣和有用的功能。(输入数据)
请教我如何编程。(设置输出)
(反面原因:目标太宽泛,输入数据太简单,设置输出太复杂)

正面例子:

我想找到一款美味的晚餐菜单。(目标优先)
我喜欢意大利菜、中式菜肴和素食,但我对辣椒过敏。(输入数据)
请为我提供一个包含前菜、主菜和甜点的晚餐菜单建议。(设置输出)

我想学习一门适合初学者的编程语言。(目标优先)
我对编程感兴趣,但没有任何经验。我想学习一门易于入门且有广泛应用的编程语言。(输入数据)
请推荐一门编程语言,并简要介绍其特点和学习资源。(设置输出)

ChatGPT 高级三层提示语结构:指派角色、原始数据、任务模板

除了基础三层提示语结构外,还有一种更高级也更灵活的 Prompt 结构,它可以让你处理一些复杂和模糊的任务,它包含三个部分:

  • 明确设定要指派给谁去完成什么任务,也就是指派 ChatGPT 一个处理任务的特殊角色。这样可以让 ChatGPT 知道你想要它扮演什么样的身份,并根据相应的知识和技能来生成回答。
  • 比起说明任务背景,不如直接给出任务混乱但完整的原始资料,让 ChatGPT 自己去分析。这样可以让 ChatGPT 有更多的自由度和创造力来处理数据,并生成更有价值的回答。
  • 比起说明输出条件,不如直接给出任务成果的完整模板,让 ChatGPT 依照模板去产出结果。这样可以让 ChatGPT 知道你想要什么样的输出结构和内容,并按照你的要求来填充模板。

这个模板适合用于一些复杂和模糊的任务,例如写一个深入的分析、评论、故事等。它的优势是可以让 ChatGPT 发挥它的智能和创造力,来生成一个超出你期望的回答。它的局限是可能需要花费更多的时间和精力来设计和调整 Prompt,以及检查和评估 ChatGPT 的回答。

例子1:

假设你是一位敏捷项目管理专家,请帮我制定一个在办公室小团队导入敏捷管理的计划。以下是我收集的一些原始数据,请你根据金字塔原理的格式,写出一个简单可行的计划。

- 我们办公室目前很多项目都会拖延时程,而且大家对项目管理没有概念。
- 我们需要一个初步简单可行的计划来开始推展这个计划。
- 我们的团队有 10 个人,分别是 3 个开发人员,2 个设计师,2 个测试人员,1 个产品经理,1 个项目经理,1 个运营人员。
- 我们目前使用的工具有 Slack、Trello、Google Docs 等。
- 我们每周有两次团队会议,每次半小时。

例子2:

角色设定:假设您是一位营养专家。
任务设定:请为一位素食主义者提供一份健康的一日三餐计划。
结果模板:早餐:{早餐};午餐:{午餐};晚餐:{晚餐}。

// 输出
早餐:{一碗豆浆或粥,加上一些油条或馒头;一份豆腐脑或素包子;一个苹果或梨};
午餐:{一碗米饭或面条,搭配一些炒或煮的蔬菜,如白菜、菠菜、茄子等;一份素菜馅的饺子或包子;一些腌制或发酵的食物,如泡菜、豆腐乳、酸奶等};
晚餐:{一碗米饭或面条,搭配一些炒或煮的蔬菜,如青椒、芹菜、西红柿等;一份豆类或坚果类的菜肴,如红烧豆腐、花生米、杏仁仁等;一些水果,如香蕉、桔子、草莓等}。

设计 Prompt 的原则

在使用ChatGPT时,设计有效的Prompt至关重要。为了充分利用ChatGPT的能力,可以遵循以下设计原则:

原则一:编写清晰、具体的指令

为了让 ChatGPT 准确地理解你的意图和需求,你需要编写清晰、具体的指令,避免模糊、含糊或过于复杂的表达。你可以使用以下策略来提高指令的清晰度和具体性:

策略一:使用分隔符清晰地表示输入的不同部分,分隔符可以是:```,“”,<>,,等。这样,ChatGPT 就可以区分输入的内容和格式,以及输入的开始和结束。例如:

<输入>
如何使用 ChatGPT 写文章
</输入>

策略二:要求一个结构化的输出,可以是表格、 Json、HTML 等格式。这样可以让 ChatGPT 明确地知道你期望的输出形式,并按照相应的规则进行生成。例如,如果你想让 ChatGPT 对一个网页进行简单的分析,你可以要求它以 Json 格式返回网页的标题、描述、关键词等信息。例如:

{
  "title": "ChatGPT Online",
  "description": "ChatGPT, which stands for Chat Generative Pre-trained Transformer, was initially built using the GPT-3.5 language model. This chatbot’s base is a neural network that draws data directly from the internet to generate its response.",
  "keywords": ["ChatGPT", "OpenAI", "AI", "chatbot", "text generation"]
}

策略三:提供少量示例。这样可以让 ChatGPT 学习你期望的输出风格和内容,并尝试模仿它们进行生成。示例应该与指令相关,并且足够简洁和典型。例如,如果你想让 ChatGPT 生成一个关于苹果公司的简介段落,你可以提供以下示例:

你的任务是以一致的风格回答问题。

<孩子>: 教我耐心。

<祖父母>: 挖出最深峡谷的河流源于一处不起眼的泉眼;最宏伟的交响乐从单一的音符开始;最复杂的挂毯以一根孤独的线开始编织。

<孩子>: 教我韧性。

// <祖父母>: 韧性就像是一棵树,它需要经历风吹雨打、寒冬酷暑,才能成长得更加坚强。在生活中,我们也需要经历各种挫折和困难,才能锻炼出韧性。记住,不要轻易放弃,坚持下去,你会发现自己变得更加坚强。

原则二:给模型明确的目标和指导

要让 ChatGPT 能够高效地完成任务,你需要给它一个明确的目标和指导。这样,ChatGPT 就可以根据你的目标和指导来选择合适的策略和方法。以下是一些给模型明确目标和指导的策略:

策略四:指定完成任务所需的步骤。这样,ChatGPT 就可以按照你给出的步骤来逐步完成任务,并在每一步检查结果是否正确。例如:

生成一首诗

- 主题:春天
- 风格:五言绝句
- 步骤:
    - 第一句:写出春天的景象
    - 第二句:写出春天的感受
    - 第三句:写出春天的意义
    - 第四句:写出春天的寄语

迭代设计 Prompt

迭代设计 Prompt 是一种有效的方法,可以通过不断迭代的过程来改进 Prompt,从而找到适合任务的 Prompt。迭代设计 Prompt 的步骤如下:

  • 第一步:根据任务的需求和目标,编写一个初始的 Prompt。
  • 第二步:输入 Prompt 给 ChatGPT,并观察它的回答。
  • 第三步:根据 ChatGPT 的回答,评估 Prompt 的效果,并找出需要改进的地方。
  • 第四步:根据评估结果,修改 Prompt,并重复第二步和第三步,直到得到满意的回答。

例子:

假设你希望获取关于健康饮食的更详细和个性化的建议。

你可以从一个简单的问题开始,例如:“如何保持健康饮食?”。ChatGPT可能会给出一些建议,如“保持均衡饮食,多吃蔬菜水果,少吃油腻食物。”

这个回答可能太简单了,你可以尝试改进Prompt,例如:“请给我5个具体的健康饮食建议。”。ChatGPT可能会给出更详细的回答,如:“1. 每天吃5-9份蔬菜和水果;2. 选择全谷物食品,如糙米和全麦面包;3. 限制加工食品和高糖零食的摄入;4. 增加富含omega-3的食物,如鱼、坚果和种子;5. 确保每天摄入足够的水分。”

考虑到不同人的需求可能不同,你可以尝试让Prompt更具体,例如:“请给办公室工作者提供5个健康饮食建议。”

如果回答仍然不够满意,可以继续修改Prompt,例如:“请根据年龄、性别和运动量为办公室工作者提供5个健康饮食建议。”ChatGPT可能会给出更个性化的回答,如:“1. 年轻女性办公室工作者应确保摄入足够的铁质,可以选择瘦肉、豆类和绿叶蔬菜;2. 中年男性办公室工作者应注意控制热量摄入,避免过多的碳水化合物和高脂肪食物;3. 对于运动量较大的办公室工作者,可以在运动后补充适量的蛋白质,如鸡胸肉、鸡蛋和豆腐;4. 年长办公室工作者应注意摄入足够的钙质,可以选择低脂奶制品、骨头汤和绿叶蔬菜;5. 对于所有办公室工作者,保持水分平衡非常重要,每天至少喝8杯水。”

第一版:“如何保持健康饮食?”
第二版:“请给我5个具体的健康饮食建议。”
第三版:“请给办公室工作者提供5个健康饮食建议。”
第四版:“请根据年龄、性别和运动量为办公室工作者提供5个健康饮食建议。”

应用实践

写文章

在本次应用实践中,我们将向您展示如何利用ChatGPT撰写一篇关于技术的文章。利用它来生成技术文章的大纲、自动撰写文章内容和调整写作风格。

首先生成文章大纲,向ChatGPT提供您的文章主题。

prompt:"请为一篇关于‘使用chatgpt的实用技巧’的技术文章生成一个大纲。”

接下来,为了让ChatGPT更好地理解您的需求,您可以提供更详细的信息,例如文章的受众和目的。

prompt:"请为一篇关于‘使用chatgpt的实用技巧’的技术文章生成一个大纲。文章的受众是能简单使用chatgpt的程序员,文章的目的是帮助受众高效使用chatgpt。”

最后,您可以进一步明确文章的重点内容,以便ChatGPT为您生成更精确的大纲。

prompt:"担任chatgpt专家,请为一篇关于‘使用chatgpt的实用技巧’的技术文章生成一个大纲。文章的受众是能简单使用chatgpt的程序员,文章的目的是帮助受众高效使用chatgpt。重点内容包括提示工程、实用技巧、应用实践。”
你好,这是Bing。我会尝试为你生成一个大纲。😊

使用chatgpt的实用技巧

引言:介绍chatgpt的基本功能和优势,激发读者的兴趣和好奇心。
正文:
提示工程:介绍如何设计有效的提示,以引导chatgpt生成期望的回复,包括提示的结构、语言、长度、风格等要素,以及一些常用的提示模板和技巧。
实用技巧:介绍如何选择合适的模式和参数,根据不同的目的和场景,介绍chatgpt提供的三种模式(平衡、创造、精确)和相关的参数(温度、重复率、最大长度等),并给出一些示例和建议。
应用实践:介绍如何利用chatgpt的搜索功能和建议功能,以获取更多的信息和灵感,提高回复的质量和多样性,以及如何使用chatgpt的创意模式,生成诗歌、故事、代码、歌词等内容,以及如何优化和改进生成的内容。
安全问题:介绍如何避免生成有害、侵权或冒犯性的内容,以及如何应对用户的不良行为或请求。
结论:总结chatgpt的实用技巧,强调chatgpt的潜力和价值,鼓励读者尝试和探索chatgpt。

评估生成的大纲,根据需要进行调整。您可以在调整后的大纲中添加、删除或修改章节,以确保文章结构清晰。这里我把安全问题删掉了,它跟主题不符。

根据生成的大纲,您可以使用ChatGPT自动撰写文章的各个部分。例如:

“担任chatgpt专家,请根据章节标题“迭代设计 Prompt”撰写内容。”

发现效果不太理想,加上重点

担任chatgpt专家,请根据章节标题“迭代设计 Prompt”撰写内容。该章节的重点是操作步骤。
迭代设计 Prompt 的步骤如下:

- 第一步:根据任务的需求和目标,编写一个初始的 Prompt。
- 第二步:输入 Prompt 给 ChatGPT,并观察它的回答。
- 第三步:根据 ChatGPT 的回答,评估 Prompt 的效果,并找出需要改进的地方。
- 第四步:根据评估结果,修改 Prompt,并重复第二步和第三步,直到得到满意的回答。

然后再根据这个步骤生成相应的实例。最终输出的结果即是前面章节的“迭代设计 Prompt”。

逐个输入每个章节,AI将为您生成相应的内容。然后,您可以将生成的内容拼接在一起,形成完整的文章。

要调整ChatGPT的写作风格,您可以在提问时明确指定所需的风格。例如,如果您希望文章更正式,可以这样询问:“请用正式的写作风格为我撰写引言部分。”同样,如果您希望文章更通俗易懂,可以这样询问:“请用简单易懂的语言为我撰写引言部分。”

限制和挑战

使用ChatGPT自动生成内容是一种快速且方便的方式来解决各种问题和需求。然而,这种方法也存在一些限制和挑战。在使用ChatGPT时,我们需要注意以下几个方面:

  1. 生成内容的准确性问题:ChatGPT的生成结果可能存在一定的准确性问题,特别是对于某些领域的专业知识。因此,我们需要通过访问权威资源来核实关键信息,以确保提供给用户的答案是准确的。
  2. 可靠性与一致性:在不同的输入条件下,ChatGPT可能会产生不一致的回答,这可能会影响答案的可靠性。为了获得更稳定的答案,我们可以通过提供多种表述方式来帮助ChatGPT更好地理解问题。
  3. 信息来源与引用:有些问题可能需要引用相关的科普文章或权威机构的数据来支持生成的答案,以增强答案的可信度。因此,我们需要注意查找相关的引用资料。
  4. 与实际情况不符:ChatGPT的训练数据可能存在时间上的局限性,导致在某些情况下无法提供正确的答案。因此,在使用ChatGPT时,我们需要结合实际情况,避免产生误导。

下面是一些例子,这些例子展示了在使用ChatGPT时可能会遇到的一些限制和挑战:

例1:错误的历史信息

用户询问:“哪位美国总统在任期内遇刺身亡?” ChatGPT回答:“林肯总统在任期内遇刺身亡。” 然而,如果用户稍微改变问题:“哪位美国总统在任期内遇刺未遂?” ChatGPT可能回答:“罗纳德·里根总统在任期内遇刺未遂。” 这说明模型可能无法提供完整的信息。

例2:不一致的回答

用户询问:“地球离太阳有多远?” ChatGPT回答:“地球离太阳约为9300万英里(1.5亿公里)。” 当用户稍微改变问题表述:“地球与太阳之间的距离是多少?” ChatGPT可能回答:“地球与太阳之间的距离约为9100万英里(1.47亿公里)。” 这两个回答虽然相近,但数值有所不同,显示出模型在不同输入条件下可能产生不一致的回答。

例3:缺乏信息来源

用户询问:“新冠病毒的病原体是什么?” ChatGPT回答:“新冠病毒的病原体是一种名为SARS-CoV-2的冠状病毒。” 虽然这个回答是正确的,但它没有提供任何信息来源或引用,使用户难以判断其可信度。

例4:与实际情况不符

用户询问:“2023年的奥斯卡最佳影片是哪部?” 由于ChatGPT的训练数据可能截止于2022年,它可能无法提供正确的答案。模型可能会生成一个与现实情况不符的回答,如:“2023年的奥斯卡最佳影片是《信条》。” 这种情况下,用户需要注意将生成的内容与实际情况相结合,避免产生误导。

如何克服这些限制和挑战?

1.对关键信息进行核实,确保内容的准确性

例如,当用户询问某部电影的上映时间时,ChatGPT可以访问权威电影资讯网站,如IMDb或豆瓣电影,来核实相关信息。这样可以确保提供给用户的上映时间是准确的。

2.使用多种表述方式,以获得更稳定的答案

假设您想了解如何制定一个健康的饮食计划。为了确保您的问题清晰且不容易被误解,您可以尝试使用以下多种表述方式提问: 请问如何制定一个健康的饮食计划? 我想了解如何安排一周的健康饮食,您能给我一些建议吗? 您能提供一些建立健康饮食习惯的方法吗?

3**.在必要时查找相关的引用资料,以支持生成内容的可信度**

当用户提出关于科学知识的问题时,ChatGPT可以引用相关的科普文章或权威机构的数据来支持生成的答案。例如,当用户询问地球是如何形成的时,ChatGPT可以引用美国宇航局(NASA)的资料,以提高答案的可信度。

4.结合实际情况,避免产生误导

假设您想了解如何制定一个适合自己的锻炼计划。为了避免误导,您可以提供一些实际情况,例如: 我是一名锻炼初学者,每周有3天、每次1小时的时间可以用于锻炼。由于我有膝关节问题,需要避免高强度的跑步和跳跃运动。请问如何制定一个适合我的锻炼计划? 通过结合实际情况,您可以帮助ChatGPT更好地理解您的需求,并提供更准确和有针对性的答案。

结语

本文为你分享了一些使用chatgpt的实践经验,帮助你有效地利用它。我们介绍了如何使用提示项目和一些实用技巧。我们还展示了一些使用chatgpt的实际案例,从不同的领域和角度,分享了一些成功或有趣的chatgpt应用。

我们希望通过本文,能够激发你对chatgpt的兴趣和好奇心,也能够启发你创造自己的chatgpt应用。chatgpt是一个强大而灵活的工具,它可以帮助你实现很多想法和目标。无论你是想要娱乐、学习、工作还是创造,chatgpt都可以为你提供支持和帮助。它可以让你感受到人工智能的魅力和潜力,也可以让你发现自己的潜力和创造力。

如果你准备好了,那么让我们开始吧!