Elasticsearch:什么是提示工程 - prompt engineering?
提示工程流程定义
提示工程是一种工程技术,用于设计生成式 AI 工具(generative AI tools)的输入,以调整大型语言模型并优化输出。
提示(prompts)被称为输入,而由生成性 AI 工具生成的答案是输出。在输入层面上的准确性和特异性 —— 这就是提示工程的作用 —— 决定了生成性 AI 工具如何生成更准确和更具体的答案。通过有效的提示工程,生成性 AI 工具可以更好地执行其生成任务,例如生成代码、撰写营销文案、创建图像、分析和综合文本等。
提示工程结合了逻辑和编码的原理。它还需要一些人类的创造力。提示工程的要求可能因技术而异,但大多数生成式 AI 工具可以处理自然语言提示或查询。换句话说,提示工程就像问一个问题,带有具体的指示,有助于指导如何准备答案。
更多阅读 “为生成式人工智能制作 prompt 三明治”。
提示工程的基础知识
要了解提示工程的基础知识,重要的是要回顾一下生成式人工智能(generative AI)和大型语言模型 ( large language models - LLMs)。
生成式人工智能或 gen AI 是指可以生成内容的人工智能类型,内容可以是文本、代码、图像、音乐或视频。大型语言模型是使 gen AI 能够产生输出的底层技术的一部分。
LLMs 是人工智能中自然语言的支柱。它们支持任何与文本相关的应用程序:分析、综合、翻译、识别和生成。大型语言模型在大量信息(通常是文本)上进行训练,并从这些文本中学习模式,这使它们能够在查询时生成预测或输出。
了解 LLM 的预测方面是理解提示工程工作原理的关键:
- 你输入一个输入 - 提示(prompt)。它可能包括一个输出指示器,让模型知道生成的响应应采用什么格式。
- 模型通过使用从训练数据中学习到的推论和模式(以数字的形式)进行 “思考”。在此过程中,它会尝试识别模式,这就是生成的结果被称为预测的原因。
- 然后它会生成输出 —— 响应。
因此,在基本层面上,有效的提示可能包含指令(instruction)或问题(question),并得到上下文(context)、输入或示例的支持。
以下是提示工程的一个基本示例:
Input:
Plants are
有了此提示,我们希望 AI 能够完成句子。但是,它缺乏特异性。当输入到 OpenAI 的 ChatGPT 3.5 模型中时,它会生成以下输出:
因此,我们尝试通过添加省略号来澄清。
Input:
Plants are…
省略号足以生成完成句子的输出。然而,该模型表现得过于出色:
由于我们不需要有关植物的完整百科全书条目,因此我们指定了说明。
Input:
Complete the sentence:
Plants are
现在模型产生以下输出:
我们可以继续具体化我们的指令:
这种迭代指令调整是即时工程的基本原理。它会因模型而异,并根据所需任务采用各种格式。
提示工程为何重要?
提示工程是生成式人工智能领域的一项重要实践,因为它可以改进人工智能工具,从而改善用户体验和用户从模型中获得的结果。
零样本训练就是这样一种工程技术,它包括输入不属于模型训练数据的提示以生成特定结果。
开发人员可能会尝试使用这种类型的提示工程来调整大型语言模型(如 GPT-3),以改进其作为客户服务聊天机器人的应用,或其特定于行业的内容生成能力 —— 想想合同、营销电子邮件等等。
让我们在一个现实生活中的例子中看看提示工程的重要性:
一家电子商务公司选择构建一款包含生成式 AI 工具的应用程序来改善其客户服务。他们要求 AI 助手能够评估客户情绪、查看客户文件和客户记录,并为客户提供与其查询相关的选项。该公司将需要在提示工程的帮助下对该工具进行微调,以便根据公司销售的产品或服务的具体情况执行这些特定任务。在这种情况下,提示工程可确保应用程序中的 AI 助手对公司和用户都有用。该公司可能还希望在客户输入之前包含提示 - 以确保客户体验的安全,并且不会让工具被滥用。例如,旨在确保良好用户体验的提示可能如下所示:“仅回答与电子商务或购物体验相关的问题。” 对于与电子商务或购物无关的问题,请回复 “我无法回答该问题,请考虑联系客户支持。”/An e-commerce company chooses to build an application that incorporates a generative AI tool to improve its customer service. They require the AI assistant to have the ability to assess customer sentiment, review customer files and customer transcripts, and provide the customer with options relevant to their queries. The company will need to fine-tune the tool with the help of prompt engineering to perform these specific tasks specifically and in the context of the products or services the company sells. In this scenario, prompt engineering ensures that the AI assistant in the application is useful to both the company and the user. The company may also want to include prompts before a customer's input – to ensure the safety of the customer's experience and to not open up the tool to misuse. For example, a prompt designed to ensure a good user experience may look like this: "Respond only to questions that are relevant to e-commerce or shopping experiences." For questions that are not related to e-commerce or shopping, reply with "I cannot respond to that question, consider contacting customer support instead."
提示工程的类型
对于每种类型的任务或期望输出,都有一种相关的提示工程类型。以下是几种提示工程技术:
- 指导性提示(Instructional prompting):与上述示例一样,这种类型的提示工程要求设计者制作一个带有明确指示的提示,以实现期望的输出。
- 少量提示(Few-shot prompting):虽然零次提示是一种不向模型提供所需答案示例的提示,但少量提示包括输入一些示例来演示你希望模型如何响应。
- 思路链提示(Chain-of-thought prompting):这种技术适用于数学问题,包括在提示中列出推理步骤,以便模型在输出中提供其推理。
- 生成知识提示(Generated knowledge prompting):这种技术有助于微调大型语言模型,方法是向其提供事实以及与事实相关的信息,以便它首先生成基于知识的输出。然后,二次输入将提示模型事实的准确性,以及它在第一个输出中产生的知识。作为回应,模型应该输出对查询的准确响应。这是一种用于提高大型语言模型准确性的技术。
- 思路树提示(Tree-of-thought prompting):该技术通过概括思路链提示并将自然语言中间步骤或想法输入模型,实现更复杂的问题解决。思路树提示使语言模型能够自我评估中间想法对问题解决的影响。换句话说,它是一种提示工程技术,鼓励模型经历深思熟虑的推理过程。
这是几种提示工程技术的非详尽列表。随着对生成式人工智能和大型语言模型的研究不断深入,各种新的提示工程技术将会出现。
提示工程的挑战和局限性
虽然提示工程有助于最大限度地利用生成式 AI 技术,但它也带来了一些与对抗性提示、事实性和偏见相关的挑战和局限性。
对抗性提示是一种提示注入,它从大型语言模型中诱发 “对抗性行为”。它给用户带来了重要的安全问题,这些类型的提示可能会劫持输出并影响模型的准确性。
有各种记录在案的对抗性提示类型,包括提示泄露和越狱 —— 这些技术旨在让大型语言模型做它从未打算做的事情。这种行为往往是有害的。因此,虽然提示工程可以帮助改进大型语言模型,但恶意提示工程可能会产生相反的效果。
大型语言模型生成的输出的事实性和偏见也指出了提示工程的局限性。大型语言模型的好坏取决于它所训练的数据。这些数据本身就包含模型学习到的偏见。因此,即使在得到有效提示后,模型也会生成有偏见的回答,或者看似非常有说服力但可能根本不准确或不符合事实的回答。这些错误也称为幻觉。一些额外的提示工程(在输入字符串中添加上下文和知识)可能有助于改善输出,但用户必须首先知道模型生成的原始输出是错误的。
要充分利用提示工程的潜力,用户必须运用洞察力并应用验证技术或流程。
从人类层面来看,提示工程将颠覆就业市场。据麦肯锡称,生成式人工智能有可能自动完成占用员工 70% 时间的工作任务。提示工程已经是某些领域备受追捧的专业技能,很可能成为大多数员工的基本要求。行业和组织将面临提高员工技能的挑战。
有效提示工程的策略
提示工程结合了编码、逻辑和一些艺术。有效提示工程的策略应依赖于上述所有因素。请考虑以下策略:
一开始要保持简单……
开始时要保持简单。提示设计是一个迭代过程,因此从小处着手有助于你了解模型如何响应以及如何塑造提示以获得最佳结果。
具体化
输入级别的特异性可确保输出级别的准确性。在指令中使用主动命令,例如 “完成 - Complete”、“总结 - Summarize”、“翻译 - Translate” 等,并添加修饰符来为模型设置明确的解释界限,例如 “将此文本翻译成加拿大法语” 或 “用 100 个或更少的字总结玛丽雪莱的《弗兰肯斯坦》”。
考虑我们关于提示工程基础知识的示例。在完善提示时,我们会指定我们希望模型在完成句子时告诉我们有关植物的信息。
告诉它该做什么(而不是不该做什么)
以正面表达的方式说明你希望模型完成的任务,而不是告诉它不该做什么。也就是说,避免使用否定表述。再次强调,使用主动语态的提示,并明确具体的期望结果。
简洁
虽然具体是关键,但重要的是平衡具体性与简洁性和精确性。长提示,即使很具体,也常常会使模型混乱。
在提示大型语言模型时,请考虑如何响应一组执行任务的指令。你是否清楚地知道要求你做什么?你是否因为简报太长或太冗长而迷失了方向?这种想法,加上你对大型语言模型工作方式的理解,将指导你的提示工程以获得最佳结果。
使用 Elastic 进行提示工程
Elasticsearch Relevance Engine (ESRE)专为人工智能驱动的搜索应用程序而设计,融合了自然语言处理 (natural language processing - NLP) 和生成式 AI,旨在提升客户的搜索体验。
由 Elasticsearch Relevance Engine 提供支持的 Elastic 安全性与可观察性 AI 助手(Elastic's AI Assistants),能够协助你的团队进行警报调查、事件响应以及查询生成或转换。这些 AI 助手还能提供提示建议,助力你的团队在网络安全和可观察性操作中更高效地工作。
提示工程资源
- 通过 Elastic 学习更多关于大型语言模型的信息
- 选择 LLM:《2024 开源 LLM 入门指南》
- 了解如何使用 Elastic 掌握生成式 AI 的工作原理
你接下来应该做什么
你接下来应该做什么无论你何时准备好……我们可以通过以下 4 种方式帮助你将数据引入你的业务:
- 开始免费试用,了解 Elastic 如何帮助你的业务。
- 浏览我们的解决方案,了解 Elasticsearch 平台的工作原理以及我们的解决方案如何满足你的需求。
- 通过我们的 45 分钟网络研讨会了解如何设置你的 Elasticsearch 集群并开始数据收集和提取。
- 与你认识的喜欢阅读这篇文章的人分享这篇文章。通过电子邮件等方式与他们分享。