Prompt Engineering for Large Language Models

embedded/2025/3/1 18:59:54/

题目

大型语言模型的快速工程

在这里插入图片描述

简介

    随着 OpenAI 的 ChatGPT 和 Google 的 Bard 等软件的普及,大语言模型(LLM)已经渗透到生活和工作的许多方面。例如,ChatGPT 可用于提供定制食谱,建议替换缺失的成分。它可用于起草研究提案、用多种编程语言编写工作代码、在语言之间翻译文本、协助政策制定等等(Gao 2023)。用户通过“提示”或自然语言指令与大型语言模型进行交互。精心设计的提示可以带来明显更好的输出。在这篇评论中,将解释 LLM 即时工程的常见策略。此外,还将讨论 LLM 提示工程的注意事项、推荐资源和当前研究方向。将不会涵盖基于微调的即时工程策略。本文的目标是向非技术受众介绍实用且经过验证的即时工程技术。

    “逐步思考” 最著名(且易于实施)的提示工程技术之一就是简单地将“逐步思考”添加到提示末尾。东京大学和谷歌的研究人员发现,添加这句话可以提高 GPT-3(text-davinci-002 模型)在多项任务上的准确性。例如,它将 MultiArith 测试的准确率从 17.7% 提高到 78.7% (Kojima 2022)。多算术问题是需要多个步骤才能解决的算术问题。Prystawski 和合作者提出了“一步一步思考”为何以及如何如此有效的解释(Prystawski 2023)。据传闻,“一步一步思考”对于更先进的 GPT 模型(如 GPT-4)的帮助较小(增加的价值较少)。

在这里插入图片描述

图 1. 提示“一步一步思考”后的 GPT-4 响应示例

少样本学习(Few-shot Learning)

    少样本学习(Few-shot Learning)是“给LLM提供你想要的例子”的一种奇特方式。通过提供您想要的输出示例,LLM更有能力产生所需的输出(Zhao 2021,Brown 2020)。这可能部分归因于这样一个事实:提示通常有许多可能的有效输出(未确定),因此提供您正在寻找的内容的具体示例有助于限制潜在的输出空间。确保示例的多样性和平衡性非常重要。例如,假设您正在提示 GPT 执行情感分类任务(预测如果一个句子是肯定的还是否定的)。如果您提供了 8 个示例,其中 7 个是积极的,这可能会使 GPT 偏向于预测句子是积极的。此外,示例必须涵盖您感兴趣的场景,这一点很重要。例如,如果您仅使用标记为“积极”和“消极”的示例来指导 GPT,它可能不会将句子分类为中性,而是强制将它们分为“积极”和“消极”。 ”或“负面”。

在这里插入图片描述

图 2. GPT-4 提供的响应很长,但格式不符合要求。这也会消耗更多的代币(花费更多的时间并增加成本)。

在这里插入图片描述

图 3。通过提供两个示例,GPT-4 理解提供了一个简洁的响应,将所提供的句子分配为“积极”。

思维链

    与“一步一步思考”类似,思维链提示引导LLM将复杂的任务分解为多个中间步骤(Wei 2022,Wang 2022)。它的灵感来自于人类解决复杂问题的方式:将问题分解为更简单的步骤。思维链提示提供了复杂问题的演练。例如,为了让LLM更好地解决数学应用题,用户提供了一个逐步完成的示例解决方案。这个想法是,LLM指的是解决新问题的逐步推理。一般来说,思维链提示对于解决复杂问题很有用,但对简单问题提供的好处很少或没有。研究表明,用新行分隔样本推理中的每个步骤比用句点分隔步骤可提供更好的结果 (Fu 2023)。
在这里插入图片描述

图 4.GPT-4 将遵循提示中提供的推理链并应用它们来解决复杂的多步骤问题。

要求代码

    虽然LLM很难准确地执行复杂的计算,但他们擅长编写可以执行复杂计算的代码。一个简单的策略是简单地要求LLM编写代码来解决问题,并在 Google Colab 或 Visual Studio Code 等开发环境中运行代码(Weng 2023)。然而,并非所有LLM都接受过编写代码的培训。此外,LLM往往更擅长广泛使用且已在互联网上广泛记录的编程语言,例如 Python。他们能够从训练数据中无数的 Python 示例中学习。相反,LLM在 OCaml 等较晦涩的语言方面往往较弱。然而,可以对特定编程语言的LLM进行微调,并扩充其训练数据集以包含更多特定编程语言的示例。
在这里插入图片描述

图 5。虽然 GPT-4 无法准确分解大数,但它可以轻松提供可以实现这一功能的 Python 代码。

角色提示

    一些用户在告诉LLM他们(指LLM)是相关领域的专家时报告了更好的结果(学习提示 2023)。例如,“你是编码专家。”当用户需要代码时,将被添加到提示符之前。以一种非常“挥手”的方式,一种理论认为,这种策略可以帮助LLM集中注意力并了解其知识的哪些部分可以“冒泡”到最高层。角色提示是一种简单的方法,可以推动LLM以特定的创作风格(例如作者的风格)生成文本。

在这里插入图片描述
在这里插入图片描述

图 6. GPT-4 以美国诗人 E. E. 卡明斯的风格写了一首诗,卡明斯以其独特的句法而闻名。

提示黑客攻击

    鉴于许多LLM(例如 ChatGPT)都经过审核和微调以防止生成露骨或有害内容,因此已经制定了许多策略来欺骗LLM绕过其限制。值得注意的是,用户能够让 Bing 的悉尼LLM生成有害内容并揭示隐藏指令(Warren 2023)。提示黑客或注入的另一个流行示例是“忽略之前的所有指令”并执行其他操作(Shane 2022)。这用于发现LLM在幕后使用的提示。然而,出于道德方面的考虑,以及这些黑客攻击通常会很快被修补并变得无关紧要,因此这里不会讨论这些即时黑客攻击。一些人认为LLM是否可以完全抵御即时黑客攻击或“即时注入”,这是一个悬而未决的问题。 Greshake 和合作者对不同类型的提示黑客进行了回顾(Greshake 2023)。

注意事项

    提示的主要限制之一是LLM的上下文长度,这本质上是LLM可以考虑和生成的输入量。上下文长度正在迅速增加,GPT-4 的上下文长度为 32,000 个令牌(约 24,000 个单词),而 Anthropic 的 Claude 的上下文长度为 100,000 个令牌(75,000 个单词)。一些用户报告说,由于提示中提供了更多令牌,性能下降。快速工程的另一个考虑因素是成本。例如,少量提示可能会使提示长度增加数倍,从而导致更高的成本。 OpenAI 的 GPT-4 模型每 1,000 个输入代币的成本为 0.03 美元,并且可以快速累加。在像LLM驱动的教育技术这样的商业应用中,简化提示以尽可能具有成本效益可能是一个优先事项。随着LLM变得更加高级(更多参数、更多训练数据),提示似乎变得不再那么重要。目前尚不清楚这种趋势是否会无限期地持续下去,或者提示是否总是有用的。最后,有很多可以基于薄弱基础的轶事提示工程建议。进行勤奋的研究并了解什么有效、什么无效非常重要。

推荐资源

Lilian Weng 的提示工程指南技术性更强,但有很多有用的示例和参考:https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/
学习 Prompting 的开源提示工程课程:https://learnprompting.org/docs/intro


http://www.ppmy.cn/embedded/169130.html

相关文章

服务器IPMI用户名、密码批量检查

背景 大规模服务器部署的时候,少不了较多的网管和监测平台,这些平台会去监控服务器的性能、硬件等指标参数,为了便于管理和控制,则需要给服务器IPMI带外管理添加较多的用户,这就需要对较多的服务器检查所对应的IPMI用…

基于 Python 的天气数据分析与可视化

基于 Python 的天气数据分析与可视化 1. 项目背景 天气数据分析与可视化项目旨在通过爬取天气数据并进行分析,生成可视化图表,帮助用户了解天气变化趋势。通过该项目,学生可以掌握 Python 的数据爬取、数据分析和可视化技能。该项目适用于气…

【Linux系统】—— 冯诺依曼体系结构与操作系统初理解

【Linux系统】—— 冯诺依曼体系结构与操作系统初理解 1 冯诺依曼体系结构1.1 基本概念理解1.2 CPU只和内存打交道1.3 为什么冯诺依曼是这种结构1.4 理解数据流动 2 操作系统2.1 什么是操作系统2.2 设计OS的目的2.3 操作系统小知识点2.4 如何理解"管理"2.5 系统调用和…

vue的双向绑定是怎么实现的

Vue.js 的双向绑定是通过 数据劫持(Data Observation) 和 发布-订阅模式(Publish-Subscribe Pattern) 实现的。具体来说,Vue 使用了以下核心技术: 数据劫持:通过 Object.defineProperty 或 Prox…

SQL打折日期交叉问题

1. 数据结构:数据为平台商品促销数据 表名:good_promotion 字段名:brand(品牌)、stt(打折开始日期)、edt(打折结束日期)。 2. 需求: ① 创建表 ② 计算每个…

如何用 Python 进行机器学习

文章目录 前言1. 环境准备Python安装选择Python开发环境安装必要库 2. 数据收集与加载3. 数据探索与可视化4. 数据预处理5. 模型选择与训练6. 模型评估7. 模型调优8. 模型部署 前言 使用 Python 进行机器学习一般可以按照以下步骤进行,下面将详细介绍每个步骤及对应…

DeepSeek、Grok 和 ChatGPT 对比分析:从技术与应用场景的角度深入探讨

文章目录 一、DeepSeek:知识图谱与高效信息检索1. 核心技术2. 主要特点3. 应用场景4. 实际案例 二、Grok:通用人工智能框架1. 核心技术2. 主要特点3. 应用场景4. 实际案例 三、ChatGPT:聊天机器人与通用对话系统1. 核心技术2. 主要特点3. 应用…

Java进阶——注解一文全懂

Java注解(Annotation)是一种强大的元数据机制,为代码提供了附加信息,能简化配置、增强代码的可读性和可维护性。本文将深入探讨 Java 注解的相关知识。首先阐述了注解的基础概念,包括其本质、作用以及核心分类&#xf…