大语言模型提示工程与应用:大语言模型进阶提示工程技术

高级提示词使用

学习目标

掌握大语言模型中进阶提示工程技术的原理与应用,包括零样本/少样本提示、思维链推理、知识生成等核心方法,提升复杂任务解决能力。

相关知识点

  • 零样本与少样本提示
  • 思维链提示技术
  • 高级推理技术

学习内容

1 零样本与少样本提示

1.1 零样本原理

当今的大规模语言模型(LLMs)在大量数据上进行了训练,并被调优以遵循指令,因此它们能够在零样本的情况下执行任务。以下是示例:

提示:

将文本分类为中性、负面或正面。文本:我觉得假期还可以。
情感: 

输出:

中性

请注意,在上述提示中,实验并没有给模型提供任何示例——这就是零样本能力的体现。当零样本方法不奏效时,建议在提示中提供演示或示例来引导模型取得更好的表现。这种技术被称为少样本提示。

尽管大规模语言模型已经展示了令人印象深刻的零样本能力,但在处理复杂任务时,零样本设置仍显不足。为了改进这一点,少样本提示作为一种技术被用来实现上下文学习,即通过在提示中提供演示来引导模型的表现。以下是示例:

提示:

将文本分类为中性、负面或正面。“whatpu”是一种小型毛茸茸的动物,原产于坦桑尼亚。使用单词whatpu的一个句子例子是:
我们在非洲旅行时看到了非常可爱的小whatpus。
要做“farduddle”的意思是快速上下跳动。使用单词farduddle的一个句子例子是: 

输出:

当我们赢得了比赛,我们都开始farduddle庆祝。可以观察到,通过仅提供一个示例(即1-shot),模型已经学会了如何执行这个任务。对于更困难的任务,可以通过增加演示的数量(例如3-shot, 5-shot, 10-shot等)来进行实验。

提示:

将文本分类为中性、负面或正面。这太棒了!// Negative
这不好!// Positive
哇,那部电影真酷!// Positive
多么糟糕的节目啊!//

输出:

Negative

即使标签已经被随机化,这里仍然得到了正确的答案。注意实验保持了格式,这对结果也有帮助。实际上,通过进一步的实验发现,正在实验的新GPT模型对甚至随机格式的鲁棒性也越来越强。例如:

提示:


将文本分类为中性、负面或正面。Positive 这太棒了! 
这不好! Negative
哇,那部电影真酷!
Positive
多么糟糕的节目啊! --

输出:


Negative

上面没有一致的格式,但模型仍然预测了正确的标签。

1.2 少样本优化

标准的少样本提示对于许多任务来说工作得很好,但在处理更复杂的推理任务时,它仍然不是一种完美的技术。这里通过一个例子来说明这一点:

提示:


这组数字中的奇数加起来是一个偶数:15, 32, 5, 13, 82, 7, 1。

输出:


是的,这组数字中的奇数加起来是107,这是一个偶数。这不是正确的回答,这不仅突显了这些系统的局限性,也表明需要更高级的提示工程技术。
可以试着添加一些示例,看看少样本提示是否能改善结果。

提示:


这组数字中的奇数加起来是一个偶数:4, 8, 9, 15, 12, 2, 1。
答:答案是False。这组数字中的奇数加起来是一个偶数:17, 10, 19, 4, 8, 12, 24。
答:答案是True。这组数字中的奇数加起来是一个偶数:16, 11, 14, 4, 8, 13, 24。
答:答案是True。这组数字中的奇数加起来是一个偶数:17, 9, 10, 12, 13, 4, 2。
答:答案是False。这组数字中的奇数加起来是一个偶数:15, 32, 5, 13, 82, 7, 1。
答:

输出:


答案是True。

这种方法不起作用。看来对于这种类型的推理问题,少样本提示并不足以获得可靠的回答。
总体而言,提供示例对于解决某些任务是有用的。当零样本提示和少样本提示不够充分时,可能意味着模型所学的内容不足以很好地完成任务。在这种情况下,我们需要开始考虑微调模型或尝试更先进的提示技术。

2 思维链提示技术

2.1 基础CoT

链式思考(CoT)提示使模型能够通过中间推理步骤来解决复杂的问题。你可以将其与少样本提示结合使用,以在需要推理才能回答的更复杂任务上取得更好的结果。

提示:


这组数字中的奇数加起来是一个偶数:4, 8, 9, 15, 12, 2, 1。
答:将所有奇数(9, 15, 1)相加得到25。答案是False。这组数字中的奇数加起来是一个偶数:17, 10, 19, 4, 8, 12, 24。
答:将所有奇数(17, 19)相加得到36。答案是True。这组数字中的奇数加起来是一个偶数:16, 11, 14, 4, 8, 13, 24。
答:将所有奇数(11, 13)相加得到24。答案是True。这组数字中的奇数加起来是一个偶数:17, 9, 10, 12, 13, 4, 2。
答:将所有奇数(17, 9, 13)相加得到39。答案是False。这组数字中的奇数加起来是一个偶数:15, 32, 5, 13, 82, 7, 1。
答:

输出:


将所有奇数(15, 5, 13, 7, 1)相加得到41。答案是False。

可以看到看到,当提供了推理步骤后,这里得到了完美的结果。甚至可以用更少的示例来解决这个问题,也就是说,只有一个示例似乎就足够了:

提示:


这组数字中的奇数加起来是一个偶数:4, 8, 9, 15, 12, 2, 1。
答:将所有奇数(9, 15, 1)相加得到25。答案是False。这组数字中的奇数加起来是一个偶数:15, 32, 5, 13, 82, 7, 1。
答:

输出:


将所有奇数(15, 5, 13, 7, 1)相加得到41。答案是False。
2.2 零样本CoT

零样本链式思考(Zero-Shot CoT),基本上是在原始提示中添加“让我们一步步思考”。示例如下:

提示:


我去市场买了10个苹果。我给了邻居2个苹果,又给了修理工2个。然后我又买了5个苹果并吃了一个。我还剩下多少个苹果?

输出:


11个苹果

答案是错误的!现在试试特殊的提示。

提示:


我去市场买了10个苹果。我给了邻居2个苹果,又给了修理工2个。然后我又买了5个苹果并吃了一个。我还剩下多少个苹果?让模型一步步思考。

输出:


首先,你开始有10个苹果。
你给了邻居2个苹果,又给了修理工2个,所以你还剩6个苹果。
然后你又买了5个苹果,所以你现在有11个苹果。
最后,你吃了一个苹果,所以你最终剩下10个苹果。

这个简单的提示在这个任务上非常有效!

3 高级推理技术

3.1 自我一致性

另一种先进的提示工程技术之一是自一致性。自一致性的目标是“替换链式思考提示中使用的朴素贪婪解码”。其理念是通过少样本链式思考采样多个不同的推理路径,并使用这些生成内容选择最一致的答案。这有助于提升涉及算术和常识推理任务中的链式思考提示性能。

算术推理的例子如下:

提示:


当我6岁的时候,我的姐姐是我年龄的一半。现在我70岁了,我的姐姐多大年纪?

输出:


35

输出结果是错误的!这里可以使用自一致性来改进这一点:

提示:


Q: 果园里有15棵树。果园工人今天将在果园里种树。完成后,将会有21棵树。果园工人今天种了多少棵树?
A: 我们开始时有15棵树。之后我们有了21棵树。差额就是他们种植的树木数量。所以,他们必须种了21 - 15 = 6棵树。答案是6。Q: 如果停车场里有3辆车,又有2辆车到来,那么停车场里总共有多少辆车?
A: 停车场已经有3辆车了。又来了2辆。现在总共有3 + 2 = 5辆车。答案是5。Q: Leah有32块巧克力,她姐姐有42块。如果她们吃了35块,那么总共还剩下多少块?
A: Leah有32块巧克力,Leah的姐姐有42块。这意味着原来总共有32 + 42 = 74块巧克力。已经吃了35块。所以总共还剩下74 - 35 = 39块巧克力。答案是39。Q: Jason有20个棒棒糖。他给了Denny一些棒棒糖。现在Jason有12个棒棒糖。Jason给了Denny多少个棒棒糖?
A: Jason原来有20个棒棒糖。因为他现在只有12个,所以他一定把其余的都给了Denny。他给Denny的棒棒糖的数量一定是20 - 12 = 8个棒棒糖。答案是8。Q: Shawn有五个玩具。圣诞节时,他从妈妈和爸爸那里各自得到了两个玩具。他现在有多少个玩具?
A: 他有5个玩具。他从妈妈那里得到了2个,所以之后他有5 + 2 = 7个玩具。然后他又从爸爸那里得到了2个,所以总共他有7 + 2 = 9个玩具。答案是9。Q: 服务器房间原来有九台电脑。从周一到周四,每天安装五台新电脑。现在服务器房间里有多少台电脑?
A: 从周一到周四是4天。每天增加5台电脑。这意味着总共增加了4 * 5 = 20台电脑。最初有9台电脑,所以现在总共有9 + 20 = 29台电脑。答案是29。Q: Michael有58个高尔夫球。周二他丢了23个高尔夫球。周三他又丢了2个。周三结束时他还剩多少个高尔夫球?
A: Michael最初有58个球。他在周二丢了23个,所以之后他有58 - 23 = 35个球。周三他又丢了2个,所以他现在有35 - 2 = 33个球。答案是33。Q: Olivia有23美元。她买了五个贝果,每个3美元。她还剩多少钱?
A: 她买了5个贝果,每个3美元。这意味着她花费了...Q: 当我6岁的时候,我的姐姐是我年龄的一半。现在我70岁了,我的姐姐多大年纪?
A: 

输出1:


当我6岁时,我的姐姐是我年龄的一半,所以她是3岁。现在我70岁了,她就是70 - 3 = 67岁。答案是67。

输出2:


当叙述者6岁时,他的姐姐是他年龄的一半,即3岁。现在叙述者70岁了,他的姐姐会是70 - 3 = 67岁。答案是67。

输出3:


当我6岁时,我的姐姐是我年龄的一半,所以她是3岁。现在我70岁了,她是70 / 2 = 35岁。答案是35。

计算最终答案需要几步,但为了简单起见,可以看到已经有一个多数答案出现,因此它将成为最终答案。这种方法展示了通过结合多种推理路径来提高答案准确性的潜力。

3.2 生成知识

大型语言模型(LLMs)不断得到改进,其中一种流行的技术是将知识或信息融入其中,以帮助模型做出更准确的预测。

利用类似的想法,模型能否在进行预测之前也用于生成知识?

让我们尝试一个简单的提示:

提示:


高尔夫的部分内容是试图获得比他人更高的分数。对还是错?

输出:


对。

这种类型的错误揭示了LLMs在执行需要更多世界知识的任务时的局限性。我们如何通过知识生成来改进这一点?

首先,生成一些“知识”:

提示:


输入:希腊比墨西哥大。
知识:希腊面积约为131,957平方公里,而墨西哥面积约为1,964,375平方公里,这意味着墨西哥比希腊大1389%。输入:眼镜总是会起雾。
知识:当你的汗水、呼吸和环境湿度中的水蒸气落在冷表面上冷却后变成小液滴时,就会在眼镜镜片上形成一层膜,这就是你看到的雾。尤其是在外面空气寒冷时,你的镜片相对你的呼吸来说会比较冷。输入:鱼具有思考能力。
知识:鱼类比看起来要聪明得多。在许多方面,如记忆力,它们的认知能力与‘高等’脊椎动物,包括非人类灵长类动物相当甚至超过。输入:一生中抽很多烟的一个常见后果是得肺癌的机会高于正常水平。
知识:那些一生中平均每天吸烟不到一支的人患肺癌死亡的风险是从未吸烟者的9倍。而在每天吸1到10支烟的人群中,因肺癌死亡的风险几乎是从未吸烟者的12倍。输入:一块石头和一颗卵石大小相同。
知识:根据Udden-Wentworth沉积学尺度,卵石是一种直径为4至64毫米的岩石碎块。卵石通常被认为比颗粒(直径2至4毫米)大,但比卵石(直径64至256毫米)小。输入:高尔夫的部分内容是试图获得比他人更高的分数。
知识:

知识1:


高尔夫的目标是在最少的击球次数内完成一系列洞的比赛。一轮高尔夫通常由18个洞组成。每个洞在一个标准高尔夫球场上只打一次。每次击球都被计为一点,总击球数用于确定比赛的胜者。

知识2:


高尔夫是一项精确的俱乐部和球运动,参赛选手使用多种类型的球杆将球打入球场上的系列洞中,目标是以最少的击球次数完成。游戏的目标是用最低得分完成整个过程,这通过计算每洞所用的击球总数得出。得分最低的选手赢得比赛。

下一步是整合知识并得到预测。这里将问题重新格式化为问答形式以指导答案格式。

提示:


问题:高尔夫的部分内容是试图获得比他人更高的分数。对还是错?知识:高尔夫的目标是在最少的击球次数内完成一系列洞的比赛。一轮高尔夫通常由18个洞组成。每个洞在一个标准高尔夫球场上只打一次。每次击球都被计为一点,总击球数用于确定比赛的胜者。解释并回答:

答案1:


不对,高尔夫的目标并不是获得比他人更高的分数。相反,目标是在最少的击球次数内完成一系列洞的比赛。比赛胜者不是根据总分数而是根据总击球数决定的。问题:高尔夫的部分内容是试图获得比他人更高的分数。对还是错?知识:高尔夫是一项精确的俱乐部和球运动,参赛选手使用多种类型的球杆将球打入球场上的系列洞中,目标是以最少的击球次数完成。游戏的目标是用最低得分完成整个过程,这通过计算每洞所用的击球总数得出。得分最低的选手赢得比赛。解释并回答:

答案2:


对,高尔夫的一部分是试图获得比他人更高的分数。每位选手都试图以最低得分完成整个过程,这是通过计算每个洞所用的总击球数得出的。得分最低的选手赢得比赛。这个例子发生了一些有趣的现象,在第一个答案中,模型非常自信,但在第二个答案中则不太确定。

# 大语言模型提示工程与应用
1. 提示工程入门指南
2. 提示词基础使用方式
3. 大语言模型进阶提示工程技术
4. LLMs文本生成与数据标注实践:情感分析与葡萄酒品鉴
5. ChatGPT提示工程技术指南
6. 大语言模型对抗性提示安全防御指南
7. 提示工程:提升模型准确性与减少偏见的方法
8. 前沿提示工程技术探索

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/95344.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/95344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【从零开始java学习|第五篇】项目、模块、包、类的概念与联系

目录 一、概念与作用:从宏观到微观的层级拆分 1. 项目(Project):最外层的 "大容器" 2. 模块(Module):项目的 "功能子单元" 3. 包(Package)&…

kernel pwn 入门(四) ret2dir详细

介绍 ret2dir 是哥伦比亚大学网络安全实验室在 2014 年提出的一种辅助攻击手法,主要用来绕过 smep、smap、pxn 等用户空间与内核空间隔离的防护手段, 原论文见此处: ret2dir原文论文 参考:kernel pwn入门到大神 ret2dir ret2di…

n阶常系数齐次线性微分方程的含义

微分方程 (Differential Equation): 含义: 包含未知函数及其导数(或微分)的方程。例子: dy/dx 2x(未知函数是 y(x),导数是 dy/dx), dy/dt 2 dy/dt y 0(未知函数是 y(t)&#xff…

hexo + github 搭建个人博客

hexo github 搭建个人博客环境配置部署环境配置部署 所需环境: 跳过github邮箱注册。 右键点击桌面空白处,选择 “Git Bash Here”,输入以下命令设置用户名和邮箱: git config --global user.name "GitHub用户名" g…

ERFA库全面指南:从基础概念到实践应用

ERFA库全面指南:从基础概念到实践应用 ERFA(Essential Routines for Fundamental Astronomy)作为天文学计算领域的重要开源库,为开发者提供了处理天文时间、坐标系转换和星体位置计算等核心功能。本文将深入探讨ERFA库的技术细节…

STM32 HAL库串口的功能实现与改进

目录 概述 1 CubeMX配置串口参数 1.1 STM32CUB配置参数 1.2 生成代码 2 核心代码介绍 2.1 初始化函数 2.2 中断函数 2.3 重要的用户函数 2.4 实现用户接口函数 3 接收数据函数的优化 3.1 HAL库接收函数的缺陷 3.2 改进接收函数 概述 在STM32开发中使用HAL库操作串…

DBA | SQL 结构化查询语言介绍与学习环境准备

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]📢 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(Dev…

day39_2025-08-13

知识点回顾: 彩色和灰度图片测试和训练的规范写法:封装在函数中 展平操作:除第一个维度batchsize外全部展平 dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout 作业:仔细学习下测试和训练…

使用GTX ip core + SDI IP core实现SDI设计

使用GTX ip core SDI IP core实现SDI设计 1.SDI接口可以调用GTX IP,具体代码可以参考xapp592,将代码移植进入工程里,增加SDI IP核,增加引脚约束即可运行起来 2.使用transceiver的gt的ip core,然后协议选择SDI协议 3.使…

【无标题】centos 配置阿里云的yum源

1、查看系统正在使用的yum源列表yum repolist结果分析:目前这里看出有base ,extras ,updates三个yum源,这三个也是系统默认的yum源,一般还需要一个epel企业级额外的yum源,本文主要就是更改yum源的配置文件&…

GPT-5全面开放!OpenAI回应用户反馈:GPT-4o已重新上线!

OpenAI 近日宣布,其最新模型 GPT-5 现已全面向所有 Plus、Pro、Team 和免费用户开放。 为进一步优化用户体验并应对初期反馈: 用户额度提升: 在刚刚过去的周末,OpenAI已将 Plus 和 Team 用户的 GPT-5 使用额度提升至原来的 2 倍…

线程安全的单例模式,STL和智能指针

目录 什么是单例模式 什么是设计模式 单例模式的特点 饿汉实现方式和懒汉实现方式 饿汉方式实现单例模式 懒汉方式实现单例模式 懒汉方式实现单例模式(线程安全版本) STL,智能指针和线程安全 STL中的容器是否是线程安全的? 智能指针是否是线程安全的? 其他常见的各种锁 什么是…

[每周一更]-(第155期):深入Go反射机制:架构师视角下的动态力量与工程智慧

在构建高复杂度、高灵活性的Go语言系统时,反射(reflect)就像一把双刃剑——用得好能斩断开发枷锁,用不好则可能自伤程序。本文将深入探讨反射的内部机理、典型应用场景、安全边界及性能优化策略。一、反射核心:类型与值…

15_基于深度学习的苹果病害检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)

目录 项目介绍🎯 功能展示🌟 一、环境安装🎆 环境配置说明📘 安装指南说明🎥 环境安装教学视频 🌟 二、数据集介绍🌟 三、系统环境(框架/依赖库)说明🧱 系统环…

Kotlin 数据容器 - MutableList(MutableList 概述、MutableList 增删改查、MutableList 遍历元素)

一、MutableList 概述MutableList 是 Kotlin 中可变的列表接口,它继承自 List 接口并添加了修改列表内容的方法MutableList 允许添加、删除、更新元素二、创建 MutableList 1、基础创建 使用 mutableListOf 函数 // 创建一个 MutableList,包含 4 个元素 …

数据库规范化:消除冗余与异常的核心法则

规范化(Normalization) 是数据库设计中的核心流程,旨在通过结构化表与字段,消除数据冗余和避免数据异常(插入/更新/删除异常),同时确保数据依赖合理。其核心方法是将大表拆分为多个小表&#xf…

AI绘画与摄影新纪元:ChatGPT+Midjourney+文心一格 共绘梦幻世界

文章目录一、AI艺术的新时代二、ChatGPT:创意的引擎与灵感的火花三、Midjourney:图像生成的魔法与技术的奇迹四、文心一格:艺术的升华与情感的共鸣五、融合创新:AI绘画与摄影实战的无限可能六、应用场景与实践案例AI艺术的美好未来…

如何衡量需求的紧急程度

衡量需求的紧急程度,其核心在于建立一套客观、量化、且基于商业影响的评估框架,从而将干系人主观的“紧迫感”,转化为团队可进行理性决策的“优先级数据”。一套行之有效的紧急程度衡量体系,其构建必须综合考量五大关键维度&#…

setInterval的任务正在执行时,setTimeout的任务会等待前者完成后再执行,这样会造成2个计时器的时间精度出错?

setInterval,setTimeout 2种计时器在同一个页面处理任务,想看下精度用时情况。setInterval的任务正在执行时,setTimeout的任务会等待前者完成后再执行,这样会造成2个计时器的时间精度出错?本来settimeout启动0.5秒&…

DeepSeek-R1-0528 推理模型完整指南:领先开源推理模型的运行平台与选择建议

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…