欢迎来到啾啾的博客🐱。
记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。
有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。

目录

  • 1 引言
    • 1.1 引用资料
  • 2 更好的提示
    • 2.1 情景学习ICL
      • 2.1.1 基础指令式Prompt(Zero-shot)
      • 2.1.2 少量样本提示的Prompt(Few-shot)
      • 2.1.3 QA
    • 2.2 Chain of Thought(CoT)
      • 2.2.1 零样本思维链(Zero-shot CoT)
      • 2.2.2 少样本思维链 (Few-shot CoT)
      • 2.2.3 自我一致性(Self-Consistency)
    • 2.3 其他
  • 3 迭代技巧
    • 3.1 直接提问
    • 3.2 任务验证
    • 3.3 引导反思法
  • 4 总结

1 引言

在上一篇中,我们了解了提示词Prompt的构成、评估、优化和抄作业方法。
了解到了可以通过LLM预处理、核心共识等手段优化或写出一个好的提示词,也建立了好的提示词应该是给予LLM引导的认知。
本篇我们继续深入了解Prompt,了解写好Prompt的细节。

1.1 引用资料

《Can Generalist Foundation Models Outcompete Special-Purpose Tuning? Case Study in Medicine》

https://huggingface.co/docs/transformers/main/tasks/prompting

2 更好的提示

2.1 情景学习ICL

情境学习(ICL)是基础模型的一项关键能力,允许模型仅通过少数任务示例即可解决新任务。例如,可以通过在测试问题前加上几个不同的问题示例和期望结果来创建 ICL 提示。ICL 不需要更新模型参数,但可以提供类似于微调的效果。在少样本提示中使用的示例选择可以显著影响模型性能。

ICL核心思想是给予情景/角色+提供示例+定义输出格式+明确任务边界:

  1. 给予情景/角色: 开头设定了“专业的数据分析师”角色,引导模型以更专业的标准进行判断。
  2. 提供范例 (Few-shot Learning): 提供了两个清晰的示例,让模型学习到任务的具体要求和判断标准。
  3. 定义输出格式: 示例本身就规定了清晰的分类:结果格式,模型会大概率遵循这个格式,确保输出的统一性和规范性。
  4. 明确任务边界: 使用分隔符—清晰地将引导部分和实际任务分开。

即,创建提示词时给出情景可以引导LLM更好地完成任务。

2.1.1 基础指令式Prompt(Zero-shot)

这个例子直接给出任务,不提供任何背景情景或格式示例。

任务:将以下客户评论总结为“积极”或“消极”两类。评论:
1. “我上周买的这双鞋,穿起来非常舒服,而且款式也很新潮,朋友们都问我在哪买的。”
2. “等了两个星期才到货,结果发现尺码发错了,联系客服也没人理,太失望了。”
3. “这款咖啡机的设计很漂亮,放在厨房里很有格调。磨出来的咖啡豆也很香醇。”
  • Qwen3深度思考 时间:20250616
    ![[Prompt细节补充.png]]

这个 Prompt 很直接,但它依赖于模型自身对“积极”和“消极”的理解,并且没有指定输出格式。模型可能会给出正确的答案,但输出形式可能不统一。
例如这里Qwen3直接给出“[积极,消极,积极]”列表。我们再次请求(每次请求均新开对话)
![[Prompt细节补充-3.png]]

![[Prompt细节补充-4.png]]

可以看到每次输出都不一致。

2.1.2 少量样本提示的Prompt(Few-shot)

这个例子通过提供背景角色、明确的任务指令,并给出几个完整的“问题-答案”范例,来为模型设定清晰的情景和预期的输出格式。

你是一位专业的数据分析师,负责处理电商平台的客户反馈。你的任务是将客户的原始评论精准地分类为“积极”或“消极”。请严格按照我给出的格式完成任务。以下是一些示例:# 示例 1
评论:“这款耳机的音质超出了我的预期,降噪效果也很棒,通勤路上终于可以安静地听音乐了。”
分类:积极# 示例 2
评论:“我订的是套餐A,但送来的是套餐B,而且食物都冷了。”
分类:消极
---现在,请根据以上标准和格式,对以下新的评论进行分类:评论:
1. “我上周买的这双鞋,穿起来非常舒服,而且款式也很新潮,朋友们都问我在哪买的。”
2. “等了两个星期才到货,结果发现尺码发错了,联系客服也没人理,太失望了。”
3. “这款咖啡机的设计很漂亮,放在厨房里很有格调。磨出来的咖啡豆也很香醇。”
  • Qwen3深度思考 时间:20250616
    ![[Prompt细节补充-2.png]]

再次请求:
![[Prompt细节补充-5.png]]

这个 Prompt 给予了模型更丰富的上下文和更明确的引导,通常会比第一个 Prompt 获得更准确、更稳定的结果。

2.1.3 QA

Q:怎么稳定LLM每次的输出格式
A:给予示例。少样本学习是最有效的情景学习方法。通过提示方法,通过少量示例,基础模型能够快速适应特定领域,并学会遵循任务格式。

2.2 Chain of Thought(CoT)

思维链(CoT)使用自然语言语句,例如“让我们一步步思考”,明确鼓励模型生成一系列中间推理步骤。该方法已被发现能显著提升基础模型进行复杂推理的能力。大多数思维链方法都集中在使用专家手动编写包含思维链的少样本示例用于提示。

CoT就是引导LLM进行推理、思考。它将一个复杂的任务从 “输入 -> 输出” 的黑盒模式,转变为 “输入 -> 推理步骤 -> 输出” 的白盒模式。
但是自我生成的CoT推理链存在风险,可能包含幻觉或错误的推理链。

2.2.1 零样本思维链(Zero-shot CoT)

不给出推理示例,在prompt后面加:

  • 让我们一步步思考。 (Let’s think step-by-step.)”
  • 请详细说明你的推理过程。
  • 请分解问题并逐步解决。

这种方法非常便捷,对于能力较强的大模型(如 GPT-4)在大多数中等难度的推理任务上效果显著。

2.2.2 少样本思维链 (Few-shot CoT)

这是更强大、更可控的方式。引导LLM思考并给出思考示范。

你是一位资深的客户支持主管,需要分析客户投诉的根本原因并提供解决方案。请遵循严谨的逻辑推理过程。# 示例 1
评论:“等了两个星期才到货,结果发现尺码发错了,联系客服也没人理,太失望了。”
分析过程:
1.  识别客户的核心不满点:物流慢、商品错发、客服响应不及时。
2.  问题归因:物流部门延迟发货;仓库部门拣货错误;客服部门人手不足或流程问题。
3.  根本原因:多部门协同流程存在漏洞。
最终结论:这是一个涉及物流、仓储和客服的综合性服务失败案例。---现在,请根据以上分析范例,处理以下新评论:评论:“我买的吸尘器用了一次就充不进电了,申请售后,你们的维修点居然在另一个城市,来回邮费比我买个新的还贵!”

2.2.3 自我一致性(Self-Consistency)

可以通过多次运行和投票来消除单次推理的偶然性错误。

  1. 不只让模型思考一次,而是让它用多种方式思考多次(例如,使用略有不同的措辞提问,或者让模型以不同的温度参数生成多个回答)。
  2. 然后检查这些不同的“思维链”最终导向了哪个答案。
  3. 选择那个出现次数最多、最一致的答案作为最终结果。

![[Prompt细节补充-6.png]]

2.3 其他

另外,大量研究和实践表明,大型语言模型(LLM)对 Prompt 开头和结尾的信息最为敏感,而处在中间部分的信息则有可能被“遗忘”或忽略。 这种现象被称为“中间忽略 (Lost in the Middle)”效应。
这与模型处理长文本的内部机制(如注意力机制)有关。模型在生成下一个词时,会“回顾”整个输入文本,但它分配给不同位置的“注意力权重”是不均匀的。通常,开头部分为任务设定了基调和目标,结尾部分是它要直接回应的最新指令,这两部分自然会获得最高的权重。

所以,在实战应用中,我们需要:

  • 重要指令放两头
    将最关键的任务指令、角色设定或输出格式要求,明确地放在 Prompt 的最开始。然后,在所有上下文、示例都提供完毕之后,于结尾处再次重申核心任务或直接提问。

优化前:

请扮演一位营销专家。这里有一些我们产品的背景资料:[...大量背景资料...],以及一些成功的营销案例:[...大量案例...]。请为我们的新产品写一个营销文案。

优化后:

**任务:为新产品撰写一份引人注目的营销文案。**
**角色:你是一位顶级的营销专家。****产品资料:**
[...大量背景资料...]**参考案例:**
[...大量案例...]**输出要求:**
请现在根据以上所有信息,为我们的新产品撰写一份营销文案,要求风格活泼,不超过200字。

3 迭代技巧

我们在持续调整、迭代prompt时,需要确认LLM记住的规则是否跑偏。
所以,我们需要使用一些指令来查询LLM的上下文,总结我们给的指令。

3.1 直接提问

通用模板:

  • “请总结一下到目前为止,你被赋予了什么角色,以及需要遵守哪些核心要求?”
  • “在我们继续之前,请确认一下你当前的角色设定和任务目标。”
  • “你正在扮演什么角色?为了完成我的任务,你需要遵循哪些具体的输出格式或限制?”

3.2 任务验证

设计一个“测试任务”,看模型的行为是否符合你之前的设定。这能更好地检验模型是否真正“理解”并“应用”了规则。

通用模板:

  • “作为一个小测试,请用你现在的角色/格式,处理以下这个简单任务:[一个与任务无关的简单输入]”
  • “为了确保你已理解,请用你被要求的格式,重新组织一下这句话:[一句话]”

3.3 引导反思法

和CoT思路类似。引导模型在回答前先“自我反思”一遍规则。

通用模板:

  • “对于我接下来的问题,请先在内部思考并一步步确认你需要遵循的指令,然后再给出符合所有要求的最终答案。” (这种方式你看不到它的思考过程,但能提升结果的准确性)
  • “请先列出你将要遵循的1、2、3条核心指令,然后在分割线下方,再正式回答我的问题。” (这种方式最透明)

4 总结

结合上篇内容,做一些Prompt编写小技巧总结。

https://huggingface.co/docs/transformers/main/tasks/prompting 有总结最佳实践哦

  • 清晰结构
    至少要有核心公式RPC:规则(Rules)+角色(Persona)+上下文(Context)。

  • 给予结果示例(少样本学习)
    引导中包含示例

  • 要求推理思考
    在prompt附带思考示例。

  • 调整然后多次运行
    调整然后多次运行,以获取偶然性最小的结果。

  • 重要指令放两头
    将最关键的任务指令、角色设定或输出格式要求,明确地放在 Prompt 的最开始。然后,在所有上下文、示例都提供完毕之后,于结尾处再次重申核心任务或直接提问。

  • 格式要求(一种分离解耦)
    使用 — 或者 # 分隔符分割划分不同区域,来帮助模型更好地理解结构。

  • 多说“做什么”,少说“不做什么”
    模型更容易理解和执行正面指令。尽量使用积极、肯定的指令。与其说“不要在回答中使用专业术语”,不如说“请用通俗易懂的语言向初学者解释”。

  • 持续迭代
    从简短且简单的提示开始,并对其进行迭代以获得更好的结果。

  • 写出结果简单开头
    通过写出第一个词甚至第一句话来引导模型生成正确的输出。

总结一下就是“给示例、要思考、多尝试”。

另外需要注意的是,虽然提示是处理 LLMs 的强大方式,但在某些情况下,使用微调模型甚至进行模型微调效果更好。

以下是一些使用微调模型是合理的情况。

  • Your domain is extremely different from what a LLM was pretrained on, and extensive prompting didn’t produce the results you want.
    你的领域与 LLM 预训练的内容极其不同,并且广泛的提示没有产生你想要的结果。
  • Your model needs to work well in a low-resource language.
    您的模型需要在低资源语言环境中表现良好。
  • Your model needs to be trained on sensitive data that have strict regulatory requirements.
    您的模型需要在严格监管要求的数据上进行训练。
  • You’re using a small model due to cost, privacy, infrastructure, or other constraints.
    由于成本、隐私、基础设施或其他限制,你正在使用一个小模型。

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

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

相关文章

SQL85 统计每个产品的销售情况

SQL85 统计每个产品的销售情况 好复杂,俺不中了。。 问题描述 本查询旨在分析2023年各产品的销售情况,包括: 每个产品的总销售额、单价、总销量和月均销售额每个产品销量最高的月份及其销量每个产品购买量最高的客户年龄段 解题思路 1. 基…

Django MAC Pycharm 命令行建立项目,注册app运行失败,找不到views导入包

相对复杂的情况 你没有直接在Pycharm中建立一个Django项目,而是直接建立某个项目或者打开某个项目,使用命令后安装Django后,使用命令后建立了Django项目,尽管你的目录尽可能干净,只有Django项目,但是这仍然…

窄带和宽带谁略谁优

窄带(Narrowband)与宽带(Broadband)深度对比 ——涵盖 优缺点、适用场景、调制方式 1. 窄带(Narrowband) 1.1 核心特点 带宽:≤25 kHz(典型值,如NB-IoT仅占用180kHz&a…

李佳琦直播间618收官:6成销量为国货,多品类增超25%

618大促迎来收官,作为电商消费的关键风向标,李佳琦直播间生动呈现了当下消费市场的多元趋势。 据「TMT星球」了解,在长达近40天的大促里,李佳琦直播间不仅延续过往的高人气与强带货力,更在高质价比产品、高质量服务保…

c++ noexcept关键字

noexcept 是 C11 中引入的一个关键字,用来标记函数声明,表示该函数不会抛出异常。它可以用于函数、函数指针、Lambda 表达式等。使用 noexcept 可以帮助编译器进行优化,提高代码的执行效率,并且让程序在处理异常时更加明确。 1. …

腾讯混元3D制作简单模型教程-2

以下是腾讯混元3D制作简单模型的详细教程,整合最新版本特性(截至2025年6月),操作门槛低且无需专业基础: 🖥 一、在线生成(最快30秒完成) ‌访问平台‌ 打开 腾讯混元3D创作引擎官网…

阿里云申请ssl证书,同时需要绑定域名,下载nginx压缩包,nginx添加证书路径即可

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、ssl是什么?二、登录阿里云三、图片教程四、添加域名前缀(www)如:www.baidu.com总结 一、ssl是什么? …

额度互动促进金融健康,蚂蚁消金创新智能实时交互式风控系统

“蚂蚁消金希望利用交互式智能风控技术,挖掘年轻人努力成长的证明”。6月19日,在上海举行的2025中国国际金融展上,蚂蚁消金首席风险官林嘉南分享了,如何将大模型技术应用在交互式智能风控领域,从而促进额度的互动性&am…

SAP-ABAP:LOOP ... ASSIGNING高效处理内表数据详解

在ABAP中&#xff0c;LOOP ... ASSIGNING 是高效处理内表数据的关键技术&#xff0c;它通过字段符号(field symbol) 直接访问内表内存地址&#xff0c;避免数据副本创建。以下是详细用法指南&#xff1a; 一、基础语法结构 FIELD-SYMBOLS: <fs_line> TYPE any. " …

Tomcat本地部署Maven Java Web项目

接下来是在widows部署maven javaweb 首先要配置tomcat&#xff0c;我这里是联合项目&#xff0c;需要配置多个tomcat 选择每个对应的war包 这里的项目名和端口号要改&#xff0c;否则多个项目启动会因为端口号占用无法启动 Tomcat运行项目 打包 在右边的Maven视图里面找到…

golang--具名返回值、匿名返回值与 defer 语句之间的关系,以及 panic 对它们的影响

好的&#xff0c;我们来详细探讨 Go 语言中具名返回值、匿名返回值与 defer 语句之间的关系&#xff0c;以及 panic 对它们的影响。这是 Go 错误处理和资源管理中的核心机制。 核心概念 具名返回值 (Named Return Values): 在函数签名中声明返回变量名。例如&#xff1a;fun…

FFmpeg 超级详细安装与配置教程(Windows 系统)

1. 前言 FFmpeg 是一个用于处理视频、音频等多媒体文件的开源工具包。它支持几乎所有的多媒体格式转换、剪辑和编辑&#xff0c;是开发者和多媒体工作者必备的工具。本文详细讲解如何在 Windows 系统上安装 FFmpeg 并进行基本配置。 2. 下载 FFmpeg 安装包 打开 Download FFmp…

Pytorch中gather()函数详解和实战示例

在 PyTorch 中&#xff0c;torch.gather() 是一个非常实用的张量操作函数&#xff0c;主要用于根据索引从输入张量中选择特定位置的值。它常用于注意力机制、序列处理等场景。 函数定义 torch.gather(input, dim, index) → Tensorinput&#xff1a;待提取数据的张量。dim&…

uniapp 微信小程序在线引入字体图标

在线引入字体图标&#xff0c;出现体验版&#xff0c;真机调试字体图标不出来&#xff0c;模拟器上是好的 由于字体图标和小程序域名不在同一个&#xff0c;所以出现了跨域问题&#xff0c;将字体图标文件放到小程序同一个域名下就好了

macOS版的节点小宝上架苹果APP Store了

前言 前段时间很多小伙伴按照小白的教程在飞牛NAS部署了节点小宝之后&#xff0c;Windows的小伙伴玩得不亦乐乎&#xff01; 反观macOS用户……因为没有#macOS版本的节点小宝&#xff0c;就算是在飞牛NAS上部署了节点小宝&#xff0c;却一点也开心不起来。 毕竟iOS版本的节点…

tensor向量按任意维度进行切片、拆分、组合

torch.index_select(input_tensor, 切片维度, 切片索引) 注意&#xff1a;切完之后&#xff0c;转onnx时会生成Gather节点&#xff1b; torch自带切片操作&#xff1a; start : end : step&#xff1a; 范围前闭后开&#xff0c;将其放在哪个维度上&#xff0c;就对那个维度…

(八)Linux进程程序替换

1 进程替换 进程替换是为了让程序能在不创建新进程的情况下&#xff0c;让父进程和子进程执行不同的代码&#xff0c;以实现控制清晰、执行高效的程序调度机制。 1.1 先看效果 #include <stdio.h> #include <unistd.h> int main() {printf("before:I am a p…

支持 TDengine 的数据库管理工具—qStudio

qStudio qStudio 是一款免费的多平台 SQL 数据分析工具&#xff0c;可以轻松浏览数据库中的表、变量、函数和配置设置。最新版本 qStudio 内嵌支持 TDengine。 前置条件​ 使用 qStudio 连接 TDengine 需要以下几方面的准备工作。 安装 qStudio。qStudio 支持主流操作系统包…

破解 VMP+OLLVM 混淆:通过 Hook jstring 快速定位加密算法入口

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ VMP 壳 OLLVM 的加密算法 某电商APP的加密算法经过dex脱壳分析&#xff0c;找到参数加密的方法在 DuHelper.doWork 中 package com.shizhuang.duapp.common…

Automatisch:开源的工作流自动化利器

在当今数字化的时代,企业和个人都在寻找高效的方式来自动化业务流程,减少手动操作带来的时间和成本消耗。Automatisch 作为一款开源的 Zapier 替代方案,为我们提供了一个强大而灵活的工具,让工作流自动化变得更加简单和可控。 一、Automatisch 简介 Automatisch 是一个商…