从IBM论文看提示词工程优化实践

开心盖土 2024-03-28 05:06:15

在人工智能的浪潮中,大型语言模型(LLM)以其惊人的自然语言理解和生成能力,成为了目前非常重要的生产力工具。然而,要真正驾驭LLM的威力,恰当的"提示"就显得尤为关键。随着大型语言模型 (LLM) 的兴起,提示词工程已成为与这些模型进行交互的关键方式。提示词工程是指设计和优化提示词的过程,以使 LLM 生成所需的输出。

最近,IBM 发表了一篇论文《探索企业中的提示词工程实践》,分析了企业环境中提示词工程的运用。该论文基于对 57 个用户会话的分析,共包含 1523 个提示词,揭示了从业者如何编辑和改进提示词。IBM论文的分析为我们提供了一窥提示词工程潜在优化路径的机会。

论文的主要发现

用户主要编辑提示词的上下文部分,其次是任务指令和标签。研究发现在编辑上下文中,添加示例会对输出结果产生显著影响。

用户经常使用多个模型输出。平均每个会话会尝试3.6种不同的模型,这个分析结果跟我自己的实践也非常一致。我一般都是把GPT4、Claude3、Gemini1.5再加上Kimi一起打开,同时进行提示词输入。因为你不知道哪个模型会“发疯”,即使是号称最强的GPT4也不是每次都能输出比较理想的结果,而从实践结果看,这种方法非常有效。

提示词中的标签(label)编辑是第三个最常见的提示符组件编辑。标签编辑通常采用标识符、冒号、分隔符或描述信息部分的开始/结束标记的形式。例如在Claude3中常用的<s>和</s>、<example>和</example>等。标签修改是希望让LLM关注提示中某些潜在的可参数化结构。

论文中总结了一份完善的提示词包含的组件和它们的事例,我归纳总结并添加了一些内容列出下表:

1. **任务目标(task)**:

- 这些是用来明确告知模型执行特定任务的词汇。

- 例子:根据文档回答问题;总结文档。

2. **角色(persona)**:

- LLM在生成输出时应扮演的人或角色类型。。

- 例子:顾问,批评家,SQL专家等。

3. **限制(Constraints)**:

- 对输出内容设置限制条件。

- 例子:风格、字数、格式、包含或不包含的内容等。

4. **句柄未知回应(handle-unknown)**:

- 如果缺少生成请求输出所需的知识,输出应该是什么的描述。

- 例子:"如果你不知道,回应以 [...]"。

5. **上下文信息(Contextual Information)**:

- 提供足够的背景信息和示例来引导模型更好地理解和执行任务。

- 例子:故事背景,技术术语解释,格式示例等。

6. **步骤(method)**:

- LLM生成输出应遵循的过程描述。

- 例子:让我们一步步思考。深吸一口气,一步一步地做这件事。

- 说明:一般以上诉例子开头,然后列出工作流(Workflow),

7. **标签(label)**:

- 提示中用于标识提示元素的标签文本。

- 例子:<Context> </Context>等。

在实际的LLM使用中,每个模型接受的提示词格式和组件可能会有部分区别,我前面有文章介绍Claude3对话框中输入时,要特别注意添加必要的标签(label),而其他个别模型对是否添加标签并不重要。

IBM的研究强调了在人工智能的应用过程中观察、分析和优化提示词的重要性。通过总结提示词使用的规律,有助于我们掌握提示词工程的基本规律,灵活运用于不同AI大语言模型的输出中,提高LLM的生成效率。

参考链接:https://arxiv.org/abs/2403.08950

0 阅读:10
评论列表

开心盖土

简介:感谢大家的关注