当前位置: 首页 > article >正文

【大模型基础_毛玉仁】3.4 Prompt 技巧


目录

    • 3.4 Prompt 技巧
      • 3.4.1 规范Prompt 编写
        • 1)任务说明要明确
        • 2)上下文丰富且清晰
        • 3)输出格式要规范
        • 4)排版要清晰
      • 3.4.2 合理归纳提问
        • 1)复杂问题拆解
        • 2)追问
      • 3.4.3 适时使用CoT
        • 1)何时使用CoT
        • 2)灵活使用CoT
      • 3.4.4 善用心理暗示


3.4 Prompt 技巧

基于上下文学习和思维链等Prompt工程技术,进一步提升大语言模型生成质量的Prompt技巧,包括合理归纳提问、适时运用思维链(CoT)、巧妙运用心理暗示等。应用这些技巧可引导模型生成更精准、符合预期的内容,提升其在实际应用中的表现。

.

3.4.1 规范Prompt 编写

经典的Prompt 通常由任务说明,问题,上下文,输出格式等部分中的一个或几个组成。

图3.16: 经典的Prompt示例
在这里插入图片描述

1)任务说明要明确

明确的任务说明是构建有效Prompt的关键要素之一。一个清晰、具体的任务说明能够确保模型准确理解任务要求,并产生符合预期的输出。

为确保任务说明的明确性,需做到以下几点:

  • 使用明确的动词,如“判断”、“分类”、“生成”等,避免模糊动词;

  • 使用具体的名词定义任务输出或目标,如情感分类中的“积极”和“消极”;

  • 任务说明应简洁明了,避免冗长复杂;

  • 结构化布局,将任务说明置于较长Prompt的开头和结尾,以突出关键信息。

2)上下文丰富且清晰

在Prompt设计中,上下文对模型回答的准确性至关重要。

  • 一是上下文的丰富性,其内容的多样性和相关性能够提升模型的理解和回答准确率,可以包括与问题直接相关的背景信息、具体的演示示例,或是对话的连续性内容。

  • 二是上下文的清晰性,要求上下文信息必须与问题紧密相关,避免包含冗余或不必要的信息,直接指向任务的核心,减少模型在处理信息时的混淆和误解。

3)输出格式要规范

规范的输出格式对模型输出的可用性和准确性至关重要。指定明确的输出格式可使其结构化,便于下游任务提取和使用内容。常用格式有JSON、XML、HTML、Markdown、CSV等,各具用途和优势。

为确保输出格式的规范性,有以下措施:

  • 明确指定输出格式:在Prompt中指出模型应使用的格式,如“请以JSON格式返回结果”,并选择广泛接受且易于处理的格式(如JSON、CSV),便于解析和数据交换。

  • 提供输出格式示例:在Prompt中给出具体示例,如在JSON中明确关键字,帮助模型理解预期的输出结构。

4)排版要清晰

清晰的排版对模型理解Prompt至关重要,能助其准确捕捉任务关键信息,提高执行准确性和效率。复杂排版易致信息模糊,影响输出质量。清晰排版需使用合适分隔符和格式化技巧,明确区分Prompt各部分。

为了确保Prompt的排版清晰,有以下措施:

  • 使用一致的分隔符:选一种或几种分隔符(如“#”、“###”、“—”等)区分Prompt不同部分。

  • 合理使用空白和缩进:增加空白行和适当缩进,增强可读性,帮助模型区分内容块。

  • 清晰的标题和子标题:为每个部分提供清晰的标题或子标题,使模型快速识别主题。

.

3.4.2 合理归纳提问

在与大语言模型交互时,提问质量影响信息获取的效率和深度。精心设计的提问能明确需求,引导模型聚焦问题核心,获得精准且有价值的答案。

本节介绍“合理归纳提问”以提升交互质量,重点讲解“复杂问题拆解”和“追问”两个高级策略。它们能帮助理解问题本质,提高获取信息和解决问题的效率,使模型输出更准确全面,满足需求。

1)复杂问题拆解

在处理复杂问题时,我们可以将问题分解为更小、更易于理解的子问题,并逐一解决

这一过程包括两个关键步骤:分步引导和归纳总结。

  • 分步引导:把复杂问题细化为多个子问题,引导模型逐一深入分析和回答,确保每个子问题得到详尽解答,为归纳总结奠定基础。

  • 归纳总结:汇总各子问题答案,综合形成全面回答,把握问题各方面,确保最终答案准确完整。

2)追问

在对话中,用户通过追问可使大语言模型输出更符合心意。这种交互能加深理解、丰富讨论,更精准地表达用户想法,指导模型输出更贴近需求。

追问依形式和目的分为三种:深入追问、扩展追问、反馈追问。

  • 深入追问:用户根据模型输出继续发问,挖掘特定话题的深层信息,适用于需要详尽解释的场景,引导模型提供更细致深入的信息,加深对特定领域的理解。

  • 扩展追问:在模型回答基础上,要求提供更多相关信息或例子,拓宽讨论广度,收集更多数据、例证或选项,帮助用户获得更广泛的视角,增加对话题的理解,适用于需要全面了解主题的场景。

  • 反馈追问:当模型输出不符合预期或存在错误时,用户提供反馈,指出问题并请求更正或澄清,通过反馈机制提升模型准确性,确保信息正确性,提高对话质量。

.

3.4.3 适时使用CoT

1)何时使用CoT

使用CoT需综合考虑任务类别、模型规模和模型能力:

  • 任务类别:CoT适用于算术、常识和符号推理等复杂推理任务,能引导模型生成中间推理步骤,提升正确率。但对于情感分类、常识问答等简单问题,标准提示方法已足够,使用CoT可能适得其反。

  • 模型规模:CoT在参数量超千亿的巨型模型上效果显著,如PaLM和GPT-3。但在小模型上可能生成逻辑不连贯的思维链,甚至不如标准提示方法。

  • 模型能力:未进行推理指令微调的模型(如早期GPT-3、LLaMA2-13B-Base等),CoT提示可激发其推理能力;而已微调的模型(如ChatGPT、GPT-4、LLaMA2-13B-Chat等)即使无CoT指令,也能生成清晰推理步骤,有时无CoT指令反而性能更佳,可能因已内化CoT指令。

2)灵活使用CoT

灵活使用CoT需根据任务需求和模型特性调整其使用方式,主要体现在调整详细程度和使用不同形式:

调整详细程度

  • 根据用户需求指定CoT输出的详细程度。简单计算问题可直接给出结果,复杂推理问题需通过样例引导展示完整推理步骤。

使用不同形式

  • Zero-Shot CoT和Auto CoT:在无需特定领域知识、仅需逻辑推理和逐步分析的任务中,通过“让我们一步一步思考”这种提示词引导模型以CoT形式回答。

  • Self-Consistency:处理需高准确度和可靠性的任务时,要求模型生成多个回答并筛选出一致性最强的答案,如编写代码时确保逻辑一致。

  • ToT和GoT:对于包含创意思维的任务,利用ToT和GoT在多个思维路径中探索和选择,如创作故事时选取最有趣或合理的情节发展方向。

.

3.4.4 善用心理暗示

在硅谷,有句创业金句“Fake it till you make it”(假装它直到你成功)。含义是先吹嘘想法吸引资本和人才,再努力实现目标。它源于积极心理暗示方法,即通过模仿自信乐观,可在生活中实现这些品质。积极心理暗示也可用于激发大语言模型潜力,可通过角色扮演和情景代入传达给模型。

角色扮演

  • 通过Prompt指导大语言模型扮演特定角色如数据科学家、诗人、律师等),可显著改善其与角色相关的技能。在指令中包含具体属性、职责、知识和技能等信息,能引导模型输出更准确、更高质量的回答

情景代入

  • 将大语言模型置于特定的“情景”或“环境”中,可影响其生成的文本内容和风格。情景代入是将特定情境下的专业知识、历史背景等信息嵌入到模型的响应中,使其能够深入理解并反映特定情境下的文化社会背景与现实环境,从而生成更加丰富和有深度的回答。

.


其他参考:【大模型基础_毛玉仁】系列文章


声明:资源可能存在第三方来源,若有侵权请联系删除!

相关文章:

【大模型基础_毛玉仁】3.4 Prompt 技巧

目录 3.4 Prompt 技巧3.4.1 规范Prompt 编写1)任务说明要明确2)上下文丰富且清晰3)输出格式要规范4)排版要清晰 3.4.2 合理归纳提问1)复杂问题拆解2)追问 3.4.3 适时使用CoT1)何时使用CoT2&…...

探索PyMOL新插件NRGSuite-Qt:全面提升分子对接、结合位点预测与动力学模拟的研究效率

随着分子建模和计算生物学的快速发展,分子对接(Molecular Docking)、结合位点预测、相互作用分析以及动力学研究等领域的工具越来越重要。这些工具不仅帮助研究人员理解分子间的相互作用机制,还能加速药物设计和优化过程。NRGSuit…...

sql2022 复制 事务级别发布后无法删除

Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. 用SA用户登录执行下列语句 USE [xxxxx] GO EXEC dbo.sp_changedbowner loginame Nsa, …...

wokwi arduino mega 2560 - 键盘与LCD显示

截图&#xff1a; 链接&#xff1a; https://wokwi.com/projects/414520193913760769 代码&#xff1a; //cslg lcd key #include <LiquidCrystal.h> // 引入LiquidCrystal库&#xff0c;用于LCD显示 #include <Keypad.h> // 引入Keypad库&#xff0c;用于键盘输…...

Linux设置SSH免密码密钥登录

文章目录 设置SSH免密码密钥登录第一步&#xff1a; 生成SSH密钥对&#xff08;在客户端操作&#xff09;方式一&#xff1a;Windows 10/11 内置的 OpenSSH 客户端&#xff08;推荐&#xff09;常用选项&#xff1a;密钥算法选择建议生成秘钥 方式二&#xff1a;借用Xshell工具…...

深度剖析HTTP协议—GET/PUT请求方法的使用-构造请求的方法

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…...

GPU算力哪家好?GpuGeek推出高性能GPU云服务

在人工智能和深度学习领域&#xff0c;GPU算力租赁已成为推动技术创新的关键因素。随着越来越多的企业和个人开发者投身于AI研究和应用开发&#xff0c;如何高效、灵活地获取GPU算力成为了一个亟待解决的问题。GpuGeek作为一站式AI基础设施平台&#xff0c;凭借其独特的优势&am…...

蓝桥杯算法实战分享

蓝桥杯算法实战分享 蓝桥杯是国内知名的程序设计竞赛&#xff0c;涵盖算法、数据结构、编程技巧等多个领域。本文将从实战角度分享蓝桥杯算法竞赛的常见题型、解题思路和优化技巧&#xff0c;帮助参赛者更好地备战。 1. 常见题型与解题思路 蓝桥杯的题型主要包括以下几类&…...

【每日算法】Day 9-1:贪心算法精讲——区间调度与最优选择(C++实现)

掌握高效决策的核心思想&#xff01;今日深入解析贪心算法的底层逻辑&#xff0c;聚焦区间调度与最优选择两大高频场景&#xff0c;结合大厂真题与严谨证明&#xff0c;彻底掌握“局部最优即全局最优”的算法哲学。 一、贪心算法核心思想 贪心算法&#xff08;Greedy Algorit…...

构建稳健的机器学习系统:应对数据偏移挑战

构建稳健的机器学习系统&#xff1a;应对数据偏移挑战 1. 引言&#xff1a;数据偏移类型与挑战 在机器学习系统从实验室到生产环境的转变过程中&#xff0c;数据偏移&#xff08;Data Shift&#xff09;是最常见也最具挑战性的问题之一。所谓数据偏移&#xff0c;指的是训练数…...

从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.1.3前馈网络(FFN)与激活函数(GELU)优化

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 2.1.3 前馈网络(FFN)与激活函数(GELU)优化1. 前馈网络(FFN)的架构设计与数学原理1.1 FFN在Transformer中的核心作用2. GELU激活函数的数学特性与优化2.1 GELU的数学形式与近似计算3. 逐行代码实现…...

3个版本的Unity项目的异同

根据搜索结果&#xff0c;以下是关于 SPR 3D Sample Scene(URP)、SPR Universal 3D 和 3D(Built-In Render Pipeline) 的定义及区别分析&#xff1a; 1. 定义与用途 SPR 3D Sample Scene(URP) 是基于 Universal Render Pipeline (URP) 的 3D 示例场景&#xff0c;专为展示 URP …...

组态软件之万维组态介绍(web组态、html组态、vue2/vue3组态、组态软件、组态编辑器)

一、什么是组态软件 组态软件是一种用于创建、配置和管理监控和控制系统的软件工具。组态是指不需要编写计算机程序、通过配置的方式完成工业应用开发的系统。它们通常用于工业自动化领域&#xff0c;用于实时监视和控制工业过程。组态软件提供了丰富的功能和工具&#xff0c;使…...

Linux系统perf命令使用介绍,如何用此命令进行程序热点诊断和性能优化

Linux perf 命令使用指南&#xff1a;程序热点诊断与性能优化 perf 是 Linux 系统上一个强大的性能分析工具&#xff0c;它能够帮助开发者进行程序热点诊断和性能优化。下面详细介绍 perf 的使用方法。 1. perf 简介 perf (Performance Event Counters) 是 Linux 内核提供的…...

《Linux运维实战:Ubuntu 22.04使用pam_faillock实现登录失败处理策略》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;Linux运维实战总结 一、背景信息 在ubuntu 22.04中&#xff0c;pam_tally2模块已被弃用&#xff0c;取而代之的是pam_faillock模块。因此&#xf…...

AI Agent开发大全第八课-Stable Diffusion 3的本地安装全步骤

前言 就像我们前面几课所述,本系列是一门体系化的教学,它不像网上很多个别存在的单篇博客走“吃快餐”模式,而是从扎实的基础来带领大家一步步迈向AI开发高手。所以我们的AI课程设置是相当全面的,除了有牢固的基础知识外还有外面互联网上也搜不到的生产级实战。 前面讲过…...

Spring MVC 深度解析:原理、源码剖析与实战

Spring MVC 深度解析&#xff1a;原理、源码剖析与实战 在 Spring 体系中&#xff0c;Spring MVC 作为 Web 层的核心框架&#xff0c;承担着请求处理、参数解析、视图渲染等关键任务。今天&#xff0c;我们将深入剖析 Spring MVC 的执行流程&#xff0c;结合 源码分析&#xf…...

347 前k个高频元素

步骤1&#xff1a;统计元素频率 使用哈希表&#xff08;unordered_map&#xff09;统计每个元素的出现次数&#xff0c;时间复杂度为 O(n)。 步骤2&#xff1a;构建最小堆维护Top K 优先队列&#xff08;最小堆&#xff09;&#xff1a;用priority_queue维护当前频率最高的k…...

BUUCTF-web刷题篇

1.EASYSQL破解密码 万能公式&#xff1a; 1 and 11 1 and 11 1 or 11 1 or 11 解释&#xff1a;payload SELECT * FROM tables WHERE username1 or 11 and password1 or 11 优先级排序&#xff1a;and 优先级高于 or&#xff0c;所以要计算 and 然后再计算 or username1…...

LeetCode 第31~33题

目录 LeetCode 第31题&#xff1a;下一个排列 LeetCode 第32题&#xff1a;最长有效括号 LeetCode 第33题&#xff1a;搜索旋转排序数组 LeetCode 第31题&#xff1a;下一个排列 题目描述 整数数组的一个排列就是将所有成员以序列或线性顺序排列。例如arr[1,2,3]&#xff0c;以…...

【NLP 44、实践 ⑪ 用Bert模型结构实现自回归语言模型的训练】

目录 数据文件 一、模型定义 1.模型初始化 代码运行流程 2.前向传播&#xff0c;计算损失 ⭐ 代码运行流程 二、加载语料 代码运行流程 三、 随机生成样本 代码运行流程 四、建立模型 五、采样策略选择 代码运行流程 六、模型效果测试 代码运行流程 七、模型训练 代码运行流程 …...

Go 语言规范学习(1)

文章目录 IntroductionNotation示例&#xff08;Go 语言的 if 语句&#xff09;&#xff1a; Source code representationCharacters例子&#xff1a;变量名可以是中文 Letters and digits Lexical elementsCommentsTokensSemicolons例子&#xff1a;查看程序所有的token Ident…...

ShapeCrawler:.NET开发者的PPTX操控魔法

引言 在当今的软件开发领域&#xff0c;随着数据可视化和信息展示需求的不断增长&#xff0c;处理 PPTX 文件的场景日益频繁。无论是自动化生成报告、批量制作演示文稿&#xff0c;还是对现有 PPT 进行内容更新与格式调整&#xff0c;开发者都需要高效的工具来完成这些任务。传…...

微信小程序如何接入直播功能

一、小程序直播开通背景 1.政府资质要求 政府的要求&#xff0c;小程序开通直播需要注册主体具备互联网直播的资质&#xff0c;普通企业需要《信息网络传播视听节目许可证》&#xff0c;表演性质的直播需要《网络文化经营许可证》&#xff0c;政府主体需要《社会信用代码》及…...

ArrayList<E>案例//定义一个方法,将价格低于3000的手机信息返回

import java.util.ArrayList;public class ArrayListphone {public static void main(String[] args){//定义一个方法&#xff0c;将价格低于3000的手机信息返回Phone p1new Phone("小米",1000);Phone p2new Phone("苹果",8000);Phone p3new Phone("锤…...

基于Spring Boot的停车场管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

慧通测控汽车智能座舱测试技术

一、引言 随着科技的飞速发展&#xff0c;汽车正从单纯的交通工具向智能化移动空间转变。智能座舱作为这一转变的核心体现&#xff0c;融合了多种先进技术&#xff0c;为用户带来前所未有的驾驶体验。从简单的信息娱乐系统到高度集成的人机交互、智能驾驶辅助以及车辆状态监测…...

Qt进程间通信:QSharedMemory 使用详解

1. 什么是 QSharedMemory&#xff1f; QSharedMemory 是 Qt 中用于进程间共享内存的类。它允许多个进程共享一块内存区域&#xff0c;从而避免数据传输时的 IO 操作&#xff0c;提高通信速度。通过共享内存&#xff0c;多个进程可以直接读写这块内存&#xff0c;而无需经过文件…...

kettle插件-rabbitmq插件

场景&#xff1a;kettle本身可以直接链接rabbitmq&#xff0c;但是需要配置rabbitmq开启mqtt协议&#xff0c;本次讲解下自定义开发组件RabbitMQ consumer&#xff0c;无需开启mqtt协议即可使用。 1、docker 安装rabbitmq 1&#xff09;下载镜像 docker pull rabbitmq 2&…...

为Windows10的WSL Ubuntu启动sshd服务并使用Trae远程连接

Windows10的WSL Ubuntu&#xff0c;使用起来非常方便&#xff0c;但是美中不足的是&#xff0c;无法从Windows主机ssh到Ubuntu 。 解决的方法是在Ubuntu安装sshd服务 Ubuntu安装sshd服务 执行命令 sudo apt install openssh-server 安装好后&#xff0c;先本地测试&#x…...