及时工程是有效管理LLMs的关键。它是在LLMs普及之后出现的一门新学科。这有助于更好地了解 LLMs 的限制和功能。总之,这对于确保 LLMs 的可靠性能,同时促进跨不同领域或应用程序的可扩展定制至关重要。

我有时会看到人们在 LinkedIn 和 Twitter 等平台上抱怨 ChatGPT 在特定(独特)主题上的表现并不像看上去那么好。事情真的是这样吗,还是我们走错了路?

我有消息要告诉你,它可能与我们所遵循的道路有关 🙃 是的,有时我们犯了最大的错误,认为 LLM 模型是人类,并通过在后台解释它们来回答问题 🤖 实际上,我们不应该忘记,后台有一个模型试图预测下一个标记,它唯一关心的是向我们返回最正确的答案。

这就是为什么,我们应该将模型握在手中并告诉它如何进行,尤其是在复杂和大型任务中。这有助于模型达到预期且更准确的输出。

提高自定义场景的效率和生产力,无需微调流程。

快速工程通过构建清晰的背景、要求、必要的细节、一些限制和示例,在提高不同企业的效率和生产力方面发挥着至关重要的作用,因为它可以减少响应时间、提高准确性并提高质量。

照片由作者使用 GenAI 创建和制作

因此,实际上即时工程类似于训练模型,以便在不花费大量时间的情况下产生更准确和自然的语言响应。这就是为什么,我们可以通过简单的提示轻松满足我们的要求,而无需训练或微调模型。

然而,结果的质量取决于我们提供的信息量以及提示的精心制作。

提示可以包含大量信息,也可以简单而确定,但通常包含一些详细信息,例如上下文、输入或有关问题的示例,有助于提高结果的质量。

模型猜测你想要什么的次数越少,你得到它的可能性就越大。

虽然我们说提示工程与开发和设计提示相关,但它实际上涵盖了广泛的技能和技术,可用于使用 LLMs 进行交互和开发。这样我们就可以了解LLMs的实际边界。

现在,我们将通过 OpenAI Playground 上的一些示例来讨论基本的提示和设计流程的一般技巧。

在这样做之前,我想解释一下 LLMs 的一些设置及其一些关键参数,因为我们将在下一节中使用一些 LLM 的 API 来获得不同的结果为了我们的提示。

这些参数对于提高响应的可靠性和可取性起着至关重要的作用,需要进行一些实验才能为您的案例应用正确的设置。

照片由作者使用 GenAI 创建和制作

以下是使用不同 LLM 提供商时会遇到的常见设置:

温度:关于模型创意。例如,如果提高温度,模型的行为会更加随机,从而鼓励更多样或创造性的输出,反之亦然。

Top P:这与多样性有关。例如,如果您减少 Top P,模型会给出准确且真实的答案。如果你想获得更多样化的响应,你应该将其增加到更高的值。

一般建议是更改温度或顶部 P,但不能同时更改两者。

最大长度:关于响应语句的长度。您可以设置最大长度并防止过长或不相关的响应并控制成本。

停止序列:它是一个停止模型生成标记的字符串。基本上,这是控制模型响应的长度和结构的另一种方法。例如,您可以通过添加“16”作为停止序列来告诉模型生成不超过 16 个项目的列表。

频率惩罚:它与词频有关,因此如果模型多次生成一个词,那么您可以增加它,因为较高的频率惩罚会阻碍重复的词。

存在惩罚:存在惩罚是一种对重复标记施加惩罚的机制,但与频率惩罚不同的是,它平等地对待所有重复标记。无论一个令牌出现两次还是十次,惩罚都是相同的。

此功能可以防止模型在其响应中过度重复短语。调整存在惩罚可以影响模型的文本生成,较高的惩罚可以促进多样化和创造性的输出,而较低的惩罚可能有助于保持焦点。

与温度和最高 P 一样,一般建议是更改频率惩罚或存在惩罚,但不能同时更改两者。

在解释了常见的 LLM 设置后,让我们通过一些简单提示的基本示例来了解提示的基础知识。

我使用 LAMINI Playground 根据提示测试 LLM 输出,如下面的屏幕截图所示,但是您可以使用任何其他 LLM Playground 并查看提示的效果。

 LAMINI游乐场

让我们开始尝试一些句子完成示例来展示提示的力量:

 迅速的:

<span id="25ef" data-selectable-paragraph="">The sky is</span>

 输出:

<span id="3a15" data-selectable-paragraph="">The sky is blue.</span>

正如您在上面的示例中所看到的,LLM 使用一系列在给定上下文中有意义的标记进行响应。您可能认为输出足够好,但这取决于您的具体任务。根据您的目标,这可能是意想不到的并且与您的目标相去甚远。

此时,提示的重要性就显现出来了,它有助于理解提供更多内容或指导来具体说明我们想要实现的目标的必要性。

让我们再试一次,提供更多细节,一起看看改进情况:

 迅速的:

<span id="5506" data-selectable-paragraph="">Complete the sentence:<br>The sky is</span>

 输出:

<span id="5554" data-selectable-paragraph="">The sky is a vast and beautiful expanse that covers the Earth and provides essential light and weather.</span>

是不是更有意义、更详细呢?好吧,我们指示模型完成句子,因此上面的结果看起来好多了,因为它完全遵循了它的指示。

该术语用于在执行特定任务时创建有效的提示来指导模型,称为提示工程。

照片由作者使用 GenAI 创建和制作

“提示不是软件工程。它更接近谷歌搜索。 “

-Sharon Zhou

今天的 LLMs 能够执行各种高级任务,从文本摘要/扩展到数学推理再到代码生成。为此,我们只需生成适当的提示即可。

让我们来看看释放 LLMs 力量的一般提示原则和技巧。

🔸原则 1:从简单开始

我们的目标是获得更好的结果,因此请务必记住,这确实是一个迭代过程,尤其是在努力使用 LLMs 完成复杂任务时。我们不可能一次性完成一项大工作,对吗?

🙃 在这种情况下,最好从简单开始,逐渐详细,根据我们收到的通知或反馈扩展我们的提示。这避免了给即时设计过程增加太多的复杂性,就像生活的各个方面一样。 🎯

🔸原则2:写出具体的指令

我们可以将此视为我们想要应用某人的专业知识。但首先我们需要了解我们需要什么样的专业知识。因此,我们可以确定需要专业知识的特定领域,并选择该领域中最好的专业知识。

如果我们将LLMs视为多学科专家,为了获得预期的最准确答案,我们必须通过使用诸如“写入”,“分类”,“总结”等指令来准确指定我们需要的内容, “翻译”、“订购”等。

🔹策略 1:️使用分隔符(```、“””、< >、 <tag> </tag> 、:)来清楚地指示输入的不同部分。

下面是一个关于通过使用分隔符来使用特定指令的能力的示例。

<span id="72f8" data-selectable-paragraph="">text = f"""<br>You should express what you want a model to do by \ <br>providing instructions that are as clear and \ <br>specific as you can possibly make them. \ <br>This will guide the model towards the desired output, \ <br>and reduce the chances of receiving irrelevant \ <br>or incorrect responses. Don't confuse writing a \ <br>clear prompt with writing a short prompt. \ <br>In many cases, longer prompts provide more clarity \ <br>and context for the model, which can lead to \ <br>more detailed and relevant outputs.<br>"""<br><br>prompt = f"""<br>Summarize the text delimited by triple backticks \ <br>into a single sentence.<br>```{text}```<br>"""</span>

🔸原则3:说做而不是不做

设计提示时的另一个常见技巧是说不该做什么,而不是说该做什么。这使得模型能够产生更好的结果,因为这鼓励更大的特异性并关注细节,从而使模型产生良好的响应。

通过查看下面的图书推荐聊天机器人示例,您可以更好地理解这一原则的重要性。

❎ 这里是失败提示;专注于不该做的事情。

 迅速的:

<span id="c78b" data-selectable-paragraph="">The following is an agent that recommends books to a customer. DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION.<br>Customer: Please recommend a books based on my interests.<br>Agent: </span>

 输出:

<span id="b397" data-selectable-paragraph="">Of course! I'd be happy to recommend some books based on your interests. Can you please provide me with some information about the type of books you enjoy reading? This will help me make more personalized recommendations.</span>

✅ 这里有一个更好的提示;专注于做什么。

 迅速的:

<span id="aff6" data-selectable-paragraph="">The following is an agent that recommends books to a customer. The agent is responsible to recommend a book from the top global trending books. It should refrain from asking users for their preferences and avoid asking for personal information. If the agent doesn't have a book to recommend, it should respond "Sorry, couldn't find a book to recommend today.".<br>Customer: Please recommend a book based on my interests.<br>Agent:</span>

 输出:

<span id="de51" data-selectable-paragraph="">Hello! I'm happy to help you find a book based on your interests! However, I don't have access to your personal preferences or any information about your reading habits. As a responsible and ethical assistant, I cannot recommend a book without knowing more about your tastes and preferences.<br><br>Instead, I can suggest some popular and highly-rated books that are currently trending globally. Here are a few examples:<br><br><br>"The Nightingale" by Kristin Hannah - a historical fiction novel that explores the lives of two sisters in France during World War II.<br><br>"The Hate U Give" by Angie Thomas - a young adult novel that tackles issues of race, police brutality, and activism in America.<br><br>"The Poppy War" by R.F. Kuang - a fantasy novel set in a world inspired by Chinese history and mythology, following a young orphan who enrolls in a prestigious military academy.<br><br>"The Seven Husbands of Evelyn Hugo" by Taylor Jenkins Reid - a contemporary novel about a reclusive Hollywood star who recounts her life story and her seven marriages to a young journalist.<br><br>"The Power" by Naomi Alderman - a speculative fiction novel that explores a world where women suddenly gain the ability to release electrical jolts from their fingertips, and how this shift in power dynamics changes society.<br><br><br>I hope these suggestions are helpful! If you have any specific genres or topics you're interested in, feel free to let me know and I can try to recommend a book based on that.</span>

🔸原则3:在急于下结论之前指示自己找出解决方案

有时您可能想使用 LLMs 检查问题解决方案的准确性。此时,最好告诉模型首先制定自己的解决方案来检查我们解决方案的准确性,否则模型只会跟随您。

换句话说,它会给你答案,而不会充分检查你的解决方案是对还是错。

❎ 这里是失败提示;

 迅速的:

<span id="d23e" data-selectable-paragraph="">f"""<br>Determine if the student's solution is correct or not.<br><br>Question:<br><br>I'm building a solar power installation and I need help working out the financials. <br><br>- Land costs $120 / square foot<br>- I can buy solar panels for $280 / square foot<br>- I negotiated a contract for maintenance that will cost me a flat $150k per year, and an additional $5 / square foot<br><br>What is the total cost for the first year of operations <br>as a function of the number of square feet.<br><br>Student's Solution:<br><br>Let x be the size of the installation in square feet.<br>Costs:<br>1. Land cost: 120x<br>2. Solar panel cost: 280x<br>3. Maintenance cost: 150,000 + 50x<br>Total cost: 120x + 280x + 150,000 + 50x = 450x + 150,000<br>"""</span>

 输出:

<span id="d2f1" data-selectable-paragraph="">The student's solution is correct. The total cost for the first year of operations as a function of the number of square feet is 550x + 150,000.Here is a better prompt;</span>

✅这里有一个更好的提示;

 迅速的:

<span id="a27e" data-selectable-paragraph="">Your task is to determine if the student's solution is correct or not.<br>To solve the problem do the following:<br>- First, work out your own solution to the problem including the final total. <br>- Then compare your solution to the student's solution and evaluate if the student's solution is correct or not. <br>Don't decide if the student's solution is correct until you have done the problem yourself.<br><br>Question:<br><br>I'm building a solar power installation and I need help working out the financials. <br>- Land costs $120 / square foot<br>- I can buy solar panels for $280 / square foot<br>- I negotiated a contract for maintenance that will cost me a flat $150k per year, and an additional $5 / square foot<br>What is the total cost for the first year of operations <br>as a function of the number of square feet.<br><br>Student's Solution:<br><br>Let x be the size of the installation in square feet.<br>Costs:<br>1. Land cost: 120x<br>2. Solar panel cost: 280x<br>3. Maintenance cost: 150,000 + 50x<br>Total cost: 120x + 280x + 150,000 + 50x = 450x + 150,000</span>

 输出:

<span id="939b" data-selectable-paragraph="">To evaluate the student's solution, we need to compare it to the correct solution.<br>The correct solution is:<br><br>Land cost: 120x<br><br>Solar panel cost: 280x<br><br>Maintenance cost: 150,000 + 5x<br>Total cost: 120x + 280x + 150,000 + 5x = 405x + 150,000<br><br><br>The student's solution is incorrect because they added an extra term of 50x to the maintenance cost, which is not necessary. The correct solution is to add 5x to the total cost, not to the maintenance cost.<br><br>Therefore, the student's solution is not correct.</span>

别忘了亲自尝试一下!

 结论

在本文中,我们了解了提示工程,这是一门为了从 LLMs 中获得更好结果而出现的新学科,并介绍了提示。我们还通过给出一些策略来解释创建有效提示的方法。

在提示工程系列的第二部分中,我们将通过提供精心准备的提示示例和先进的提示工程技术来研究如何使用提示来完成不同的任务,这些技术使我们能够完成更复杂的任务并提高< b1001>

恭喜您阅读本文直到最后!

GIF是由《你爱我吗?》的作者创作的。波士顿动力公司在 YouTube 上发布的视频

再见,下一篇文章我们再相见! 🙃

Pinterest 上 Wayne Hall 的 GIF

“生存下来的不是最强大的物种,也不是最聪明的物种。它是最能适应变化的。”

 -查尔斯·达尔文