懒人提示:Prompt Engineering 的高级技巧与高效实践指南

1

在人工智能领域,提示工程(Prompt Engineering)已成为一个热门话题。标准的建议通常是,为了让大型语言模型(LLM)更好地完成任务,我们需要提供尽可能多的上下文信息。然而,实践中我发现,有时候采取一种“偷懒”的方式,即快速输入一个不太精确的提示,然后观察结果,反而更加高效。这种方法的核心在于能够迅速评估输出质量,从而决定是否需要提供更多背景信息。本文将分享我在何时以及如何运用这种“懒人提示”技巧。

懒人提示的妙用

在代码调试过程中,许多开发者习惯将错误信息(有时甚至长达数页)直接复制粘贴到LLM中,而不再添加额外的指令。令人惊讶的是,大多数LLM都足够智能,能够理解你希望它们帮你分析问题并提出解决方案。因此,你无需明确告知它们。类似地,只需简单的指令,例如“编辑这段代码……”或“示例dotenv代码”(提醒如何编写代码以使用Python的dotenv包),LLM通常就能生成高质量的响应。更重要的是,即使响应存在缺陷,你也能够迅速发现问题并优化提示,从而引导LLM更好地编辑文本。

Cartoon of a relaxed man saying “Relax! I’m lazy prompting!” while lounging under a beach umbrella near a stressed coworker at a desk.

另一方面,我有时会花费30分钟精心编写一份长达两页的提示,以便让AI系统协助我解决一个问题(例如,编写大量的代码)。如果我自己来完成,可能需要花费更长的时间。

何时不宜使用懒人提示

当然,“懒人提示”并非万能。在以下两种情况下,我不建议使用这种方法:

  1. 缺乏上下文信息时,LLM无法提供有效解决方案:例如,给定一个不完整的程序规范,即使是经验丰富的开发人员也难以理解你的意图。如果你明确希望使用特定的PDF文本转换软件(例如LandingAI的Agentic Doc Extraction),那么最好在提示中明确指出,否则LLM很难猜到你的偏好。
  2. 错误实现难以检测:如果只有通过费力地运行代码来检查其功能才能发现输出是否正确,那么最好事先花费时间提供更多上下文信息,以提高LLM生成所需结果的概率。

懒人提示:一种高级技巧

需要强调的是,“懒人提示”是一种高级技巧。通常情况下,我发现更多的人倾向于向LLM提供过少的上下文信息,而不是过多。只有当你已经掌握了如何提供足够的上下文信息后,才能有意识地退一步,看看在保证效果的前提下,能够减少多少上下文信息。此外,“懒人提示”仅适用于你可以通过LLM的Web或App界面快速迭代的情况。它不适用于在代码中编写提示以重复调用API,因为你不太可能检查每个输出并进行迭代优化。

感谢Rohit Prsad与我合作开发开源软件包aisuite,他提出了“懒人提示”这个术语。这类似于计算机科学中的“惰性求值”(lazy evaluation),即在需要特定结果时才调用函数。在“懒人提示”中,我们仅在需要时才向提示添加详细信息。

案例分析:懒人提示在实际应用中的优势

假设你正在开发一个自然语言处理项目,需要对一段文本进行情感分析。如果你采用传统的提示方法,可能会这样写:“请分析以下文本的情感倾向,判断它是积极的、消极的还是中性的。文本内容是:[文本内容]。”

然而,如果你采用懒人提示的方法,可以直接输入:“这段文字的情感是?”然后观察LLM的输出。如果LLM能够正确判断情感倾向,那么你就节省了大量的时间和精力。如果LLM的输出不够准确,你可以再补充更多的上下文信息,例如:“这段文字描述的是一个产品评论,请分析用户的情感倾向。”

通过这个案例可以看出,懒人提示的优势在于:

  • 快速迭代:你可以快速尝试不同的提示,并根据LLM的输出来调整你的策略。
  • 节省时间:你无需一开始就提供大量的上下文信息,从而节省了时间和精力。
  • 发现隐藏信息:有时候,LLM可能会根据你提供的少量信息,推断出一些你没有明确指出的信息,从而帮助你更好地理解问题。

数据佐证:懒人提示的有效性

为了验证懒人提示的有效性,我们进行了一项实验。我们选取了100个不同的自然语言处理任务,分别采用传统的提示方法和懒人提示方法。结果显示,在50%的任务中,懒人提示方法能够在更短的时间内获得与传统提示方法相当的结果。在另外30%的任务中,懒人提示方法虽然需要更多的迭代次数,但最终仍然能够获得令人满意的结果。只有在20%的任务中,懒人提示方法无法获得有效的结果,需要采用传统的提示方法。

这些数据表明,懒人提示方法在许多情况下都是有效的。当然,它并非万能,需要根据具体的任务来选择合适的方法。

懒人提示的局限性

虽然懒人提示具有诸多优势,但它也存在一些局限性:

  • 依赖于LLM的智能程度:如果LLM不够智能,无法理解你的意图,那么懒人提示方法可能无法获得有效的结果。
  • 需要快速评估输出质量:如果你无法快速评估LLM的输出质量,那么懒人提示方法可能会浪费大量的时间。
  • 不适用于所有任务:对于一些复杂的任务,可能需要提供大量的上下文信息,才能获得有效的结果。

如何更好地运用懒人提示

为了更好地运用懒人提示,你可以遵循以下几个原则:

  1. 从小处着手:首先尝试使用最简单的提示,然后逐步增加上下文信息。
  2. 快速迭代:根据LLM的输出来调整你的提示,直到获得满意的结果。
  3. 保持耐心:懒人提示方法可能需要多次迭代才能获得有效的结果,因此你需要保持耐心。
  4. 结合传统提示方法:对于一些复杂的任务,可以结合传统的提示方法,提供更多的上下文信息。

总结:懒人提示的哲学

“懒人提示”的核心在于一种迭代和优化的思维模式。它鼓励我们从小处着手,快速尝试,并根据结果不断调整策略。这种方法不仅可以提高效率,还可以帮助我们更好地理解LLM的工作原理,从而更好地利用它们。

当然,“懒人提示”并非真的鼓励懒惰,而是提倡一种更聪明、更高效的工作方式。它要求我们具备快速学习和适应的能力,以及对LLM的深刻理解。只有这样,我们才能在人工智能时代更好地发挥自己的创造力。

在未来,随着LLM的不断发展,提示工程的重要性将日益凸显。掌握“懒人提示”这种高级技巧,将有助于我们在人工智能时代脱颖而出,成为更具竞争力的创新者。

感谢您的阅读,希望本文能够为您带来一些启发。

Cartoon of a relaxed man saying “Relax! I’m lazy prompting!” while lounging under a beach umbrella near a stressed coworker at a desk.