大模型提示词初探
大模型提示词初探
在与大模型交互的过程中,提示词起着至关重要的作用,它犹如给模型下达的精准任务指令,直接影响着模型生成内容的准确性、高效性与合理性。合理运用提示词,能够有效减少模型出现错误和幻觉的情况,从而获取更符合期望的结果。
https://www.bilibili.com/video/BV1s24y1F7eq?vd_source=d4713a9f919d1c45d1bd18250fbe957c&spm_id_from=333.788.videopod.sections 视频教程(建议观看)
https://api-docs.deepseek.com/zh-cn/prompt-library/ deepseek 的一些例子
一、提示词的迭代优化
可能并不存在一个通用的完美提示词,能适用于所有应用场景。针对特定的应用,我们需要不断迭代提示词,以达到最佳效果。
二、编写清晰而具体的指示
- 策略 1:使用定界符
- 定界符能够帮助大模型清晰地区分文本段信息和提示词内容。常见的定界符包括三重引号 (“”")、三重反引号 (
)、三重破折号(---)、尖括号(<> )以及XML标签( <tag> </tag>)等。例如,在提供一段文本让模型进行处理时,使用定界符将文本包裹起来,如
f"你好,请总结下这个句话{text}```"
,这样模型就能明确知道需要对定界符内的文本进行总结操作。
- 定界符能够帮助大模型清晰地区分文本段信息和提示词内容。常见的定界符包括三重引号 (“”")、三重反引号 (
- 策略 2:要求结构化输出
- 当我们期望模型的输出具有特定结构时,可以明确要求其以某种格式输出,例如 HTML、JSON 格式等。这有助于后续对输出结果的进一步处理和分析。比如,我们可以给出提示
f"你好,请总结下这个句话```{text}```,并且使用json格式输出,包含原文和总结 "
,这样模型就会按照 JSON 格式返回包含原文和总结内容的结果,方便我们进行数据提取和处理。
- 当我们期望模型的输出具有特定结构时,可以明确要求其以某种格式输出,例如 HTML、JSON 格式等。这有助于后续对输出结果的进一步处理和分析。比如,我们可以给出提示
- 策略 3:检查条件是否满足
- 在某些情况下,需要模型先检查完成任务所需的假设条件是否满足。例如,对于一段关于茶叶制作知识的文本,我们可以要求模型先判断是否为绿茶制作知识,如果是再进行总结。如
prompt = (f"你好,请总结下面这段绿茶知识的制作步骤,首先要先检查这段内容包含绿茶制作的知识,不包含就不总结" f"1,第一步" f"2,第二步" f"n,弟n歩" f"```{text2}```)
,这里的text2
是需要检查和总结的茶叶制作相关文本。
- 在某些情况下,需要模型先检查完成任务所需的假设条件是否满足。例如,对于一段关于茶叶制作知识的文本,我们可以要求模型先判断是否为绿茶制作知识,如果是再进行总结。如
- 策略 4:少样本提示
- 通过给出成功完成任务的示例,能引导模型更好地理解任务要求并执行任务。例如,对于总结绿茶制作步骤的任务,我们可以先提供一个成功的示例,如
prompt = (f"你好,请总结下面这段绿茶知识的制作步骤,按照成功的示例总结" f"```{text}```" f"成功的示例:" f"第一步:购买原料" f"第二步:化工加工 ")
,其中text
是绿茶制作步骤的文本,模型会参考示例的格式和思路来总结给定文本中的绿茶制作步骤。
- 通过给出成功完成任务的示例,能引导模型更好地理解任务要求并执行任务。例如,对于总结绿茶制作步骤的任务,我们可以先提供一个成功的示例,如
三、给模型思考的时间
- 策略 1:指定完成任务的步骤
- 明确列出完成任务的具体步骤,有助于模型按部就班地进行思考和处理。例如,对于判断一个公式是否正确的任务,我们可以指定步骤:
prompt = (f"你好,请计算如下的公式是否正确" f"第一步:你需要确认这是一个加法运算,如果是输出:yes" f"第二步:输出加法左边的值和右边的值" f"第三步:计算加法是否正确" f"再你确认这个公式是否正确前,你需要自己先计算下" f"```{text}```)
,这里text
为公式1 + 256 = 258
,模型会按照这些步骤进行计算和判断。
- 明确列出完成任务的具体步骤,有助于模型按部就班地进行思考和处理。例如,对于判断一个公式是否正确的任务,我们可以指定步骤:
- 策略 2:指示模型在得出结论前自行想出解决方案
- 让模型在给出最终结论之前,先自行思考并尝试找出解决方案,有助于提高模型处理问题的准确性和可靠性。例如在上述判断公式是否正确的例子中,我们要求模型在确认公式是否正确之前先自行计算,这就是给模型留出思考空间,让其基于自身的计算和分析来给出最终结论。
四、代码示例及测试
以下是使用openai
库(这里假设与deepseek - chat
模型交互)来测试不同提示词策略的代码示例:
from openai import OpenAI
# for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`.
client = OpenAI(api_key="<your api key>", base_url="https://api.deepseek.com")# 分割提示词和实际的文本内容
text = f"""
你好,加油\
时间机器
"""
prompt = f"你好,请总结下这个句话```{text}```"# 结构化输出
prompt = f"你好,请总结下这个句话```{text}```,并且使用json格式输出 ,原文和总结 "# 检查条件是否满足
text = f"""
这个是一份绿茶,需要先采摘,再人工烘焙,包装才能售卖
"""
# 验证
text2 = f"""
这个是一份红茶,需要先采摘,再人工烘焙,包装才能售卖
"""
prompt = (f"你好,请总结下面这段绿茶知识的制作步骤,首先要先检查这段内容包含绿茶制作的知识,不包含就不总结"f"1,第一步"f"2,第二步"f"n,弟n歩"f"```{text2}```")# 少样本提示
text = f"""
这个是一份绿茶,需要先采摘,再人工烘焙,包装才能售卖
"""
prompt = (f"你好,请总结下面这段绿茶知识的制作步骤,按照成功的示例总结"f"```{text}```"f"成功的示例:"f"第一步:购买原料"f"第二步:化工加工 ")# 指定完成任务的步骤
# 指示模型在得出结论前先让模型自行想出解决方案
text = "1 + 256 = 258"
prompt = (f"你好,请计算如下的公式是否正确"f"第一步:你需要确认这是一个加法运算,如果是输出:yes"f"第二步:输出加法左边的值和右边的值"f"第三步:计算加法是否正确"f"再你确认这个公式是否正确前,你需要自己先计算下"f"```{text}```")response = client.chat.completions.create(model="deepseek - chat",messages=[{"role": "system", "content": "你是一名资深的编辑作者"},{"role": "user", "content": prompt},],max_tokens=1024,temperature=0.7,stream=False
)
print(response)
print(response.choices[0].message.content)
通过运行上述代码,我们可以针对不同的提示词策略进行测试,观察模型在不同指令下的输出效果,从而不断优化提示词,使其更好地满足我们的需求。需要注意的是,在实际应用中,我们需要根据具体任务和模型的表现,灵活调整和完善提示词,以实现最佳的交互效果。
相关文章:
大模型提示词初探
大模型提示词初探 在与大模型交互的过程中,提示词起着至关重要的作用,它犹如给模型下达的精准任务指令,直接影响着模型生成内容的准确性、高效性与合理性。合理运用提示词,能够有效减少模型出现错误和幻觉的情况,从而…...
Linux的进程替换以及基础IO
进程替换 上一篇草率的讲完了进程地址空间的组成结构和之间的关系,那么我们接下来了解一下程序的替换。 首先,在进程部分我们提过了,其实文件可以在运行时变成进程,而我们使用的Linux软件其实也是一个进程,所以进一步…...
《Vue进阶教程》第三十一课:ref的初步实现
往期内容: 《Vue进阶教程》第二十课:lazy懒执行 《Vue进阶教程》第二十一课:支持缓存 《Vue进阶教程》第二十二课:自定义更新(调度器) 《Vue进阶教程》第二十三课:渲染计算属性的结果 《Vue进阶教程》第二十四课&…...
Wend看源码-Java-集合学习(Queue)
概述 Wend看源码-Java-集合学习(List)-CSDN博客 Wend看源码-Java-集合学习(Set)-CSDN博客 在前两篇文章中,我们分别探讨了Java集合框架的父类以及List集合和Set集合的实现。接下来,本文将重点阐述Java中的Queue集合,包括其内部的数据结…...
大数据面试笔试宝典之HBase面试
1.HBase 数据存储位置 HBase 中的数据存储在哪里? 以什么格式存储?和 Zookeeper 什么关系? 参考答案: 1.HBase 中的所有数据文件都存储在 Hadoop HDFS 文件系统上。 2.包含两种文件类型: HFile : HBase 中 KeyValue 数据的存储格式。HFile 是 Hadoop 的二进制格式文件…...
React基础知识学习
学习React前端框架是一个系统而深入的过程,以下是一份详细的学习指南: 一、React基础知识 React简介 React是一个用于构建用户界面的JavaScript库,由Facebook开发和维护。它强调组件化和声明式编程,使得构建复杂的用户界面变得更…...
实战指南:Shiro、CAS打造完美单点登录体验
引言 想象一下,在日常工作中,我们经常需要进行系统认证和授权。当用户尝试登录一个网站时,他们需要提供用户名和密码,网站会检查这些信息,确认用户是谁。这就是认证的过程。 一旦用户被认证,他们可能会尝…...
光储充一体化解决方案详解。
一、光储充介绍 1、什么是光储充 “光储充”一体化,顾名思义,是由光伏发电、储能、充电集成一体、互相协调支撑的绿色充电模式。其工作原理是利用光伏发电,余电由储能设备存储,共同承担供电充电任务。在用电高峰,光储…...
TDengine 新功能 VARBINARY 数据类型
1. 背景 VARBINARY 数据类型用于存储二进制数据,与 MySQL 中的 VARBINARY 数据类型功能相同,VARBINARY 数据类型长度可变,在创建表时指定最大字节长度,使用进按需分配存储,但不能超过建表时指定的最大值。 2. 功能说明…...
2024年秋词法分析作业(满分25分)
【问题描述】 请根据给定的文法设计并实现词法分析程序,从源程序中识别出单词,记录其单词类别和单词值,输入输出及处理要求如下: (1)数据结构和与语法分析程序的接口请自行定义;类别码需按下表格…...
AF3 checkpoint_blocks函数解读
checkpoint_blocks 函数实现了一种分块梯度检查点机制 (checkpoint_blocks),目的是通过分块(chunking)执行神经网络模块,减少内存使用。在深度学习训练中,梯度检查点(activation checkpointing)是一种显存优化技术。该代码可以: 对神经网络的块(blocks)按需分块,并对…...
VITUREMEIG | AR眼镜 算力增程
根据IDC发布的《2024年第三季度美国AR/VR市场报告》显示,美国市场AR/VR总出货量增长10.3%。其中,成立于2021年的VITURE增长速度令人惊艳,同比暴涨452.6%,成为历史上增长最快的AR/VR品牌。并在美国AR领域占据了超过50%的市场份额&a…...
详解MySQL在Windows上的安装
目录 查看电脑上是否安装了MySQL 下载安装MySQL 打开MySQL官网,找到DOWNLOADS 然后往下翻,找到MySQL Community(GPL) Downloads>> 然后找到MySQL Community Server 然后下载,选择No thanks,just start my download. 然后双击进行…...
细说STM32F407单片机CAN基础知识及其HAL驱动程序
目录 一、CAN总线结构和传输协议 1、 CAN总线结构 (1)闭环结构的CAN总线网络 (2)开环结构的CAN总线网络 (3)隐性电平和显性电平 2、CAN总线传输协议 (1)CAN总线传输特点 &am…...
Ubuntu 22.04 升级 24.04 问题记录
一台闲置笔记本使用的 ubuntu 还是 18.04,最近重新使用,发现版本过低,决定升级,于是完成了 18.04 -> 20.04 -> 22. 04 -> 24.04 的三连跳。 一、升级过程中黑屏 主要问题是在 22.04 升级到 24.04 过程中出现了黑屏仅剩…...
模型选择+过拟合欠拟合
训练误差和泛化误差 训练误差:模型在训练数据上的误差 泛化误差:模型在新数据上的误差 验证数据集:一个用来评估模型好坏的数据集 例如拿出50%的数据作为训练 测试数据集:只能用一次 K则交叉验证 在没有足够数据时使用 算法…...
Leetcode 3404. Count Special Subsequences
Leetcode 3404. Count Special Subsequences 1. 解题思路2. 代码实现 题目链接:3404. Count Special Subsequences 1. 解题思路 这道题是事实上这次的周赛最难的一道题目,不过也是有点巧思在内。 最开始我的想法就是按照乘积构成pair,然后…...
萌萌哒的八戒
萌萌哒的八戒 下载压缩包后,打开发现有一张照片 既然是关于猪的,那就用猪圈密码解码 flag{whenthepigwanttoeat}...
开启家具组装新方式:产品说明书智能指导
在快节奏的现代生活中,人们越来越追求便捷与高效。无论是新房装修还是家具换新,家具组装已成为许多家庭不可避免的一项任务。然而,面对复杂多变的家具图纸和冗长的产品说明书,许多人常常感到无从下手,甚至因操作不当而…...
【连续学习之ResCL算法】2020年AAAI会议论文:Residual continual learning
1 介绍 年份:2020 会议: AAAI Lee J, Joo D, Hong H G, et al. Residual continual learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(04): 4553-4560. 本文提出的算法是Residual Continual Learning (ResC…...
【网络协议】路由信息协议 (RIP)
未经许可,不得转载。 路由信息协议(Routing Information Protocol,简称 RIP)是一种使用跳数(hop count)作为路由度量标准的路由协议,用于确定源网络和目标网络之间的最佳路径。 文章目录 什么是…...
Linux 终端查看 nvidia 显卡型号
文章目录 写在前面1. 需求描述2. 实现方法方法一:方法二方法三: 参考链接 写在前面 自己的测试环境: Ubuntu20.04 1. 需求描述 Linux 终端查看 nvidia 显卡型号 2. 实现方法 方法一: 执行下列指令: sudo update…...
基于neurokit2的心电仿真数据生成实例解析
一 概念 NeuroKit2是一个开源的、社区驱动的、以用户为中心的Python库,可用于多种生理信号的分析处理(例如ECG、PPG、EDA、EMG、RSP),还包括用于特定处理步骤(如频率)的工具提取和过滤方法,并在…...
AMBA-APB
目录 1.APB 协议 2.APB信号列表 3.数据传输 3.1写传输(2种) 3.1.1 无等待状态的写传输 3.1.2有等待状态的写传输 3.2写选通信号 (PSTRB) 字节通道映射 3.3读传输(2种) 3.3.1 无等待状态的读传输 3.3.2有等待状态的读传…...
网安入门之PHP后端基础
PHP 基本概念详解 PHP是一种服务器端脚本语言,常用于动态网站开发和 web 应用程序。以下是 PHP 的基本概念与特点的详细说明: 1. PHP 文件的默认文件扩展名 PHP 文件的扩展名通常为 .php,例如 index.php。PHP 文件可以包含 PHP 代码、HTML…...
windows系统安装完Anaconda之后怎么激活自己的虚拟环境并打开jupyter
1.在win主菜单中找到Anaconda安装文件夹并打开终端 文件夹内有所有安装后的Anaconda的应用软件和终端窗口启动窗口 点击Anaconda Prompt(Anaconda)就会打开类似cmd的命令终端窗口,默认打开的路径是用户名下的路径 2.激活虚拟环境 使用命令…...
【C#特性整理】C#特性及语法基础
1. C#特性 1.1 统一的类型系统 C#中, 所有类型都共享一个公共的基类型. 例如,任何类型的实例都可以通过调用ToString方法将自身转换为一个字符串 1.2 类和接口 接口: 用于将标准与实现隔离, 仅仅定义行为,不做实现. 1.3 属性、方法、事件 属性: 封装了一部分对…...
龙蜥 配置本地yum源8.6----亲测
系统版本: 说明:丫丫的,内网服务安装了个龙蜥操作系统。内网不能访问互联网,所以就需要挂载yum源 用的以前的方法挂载,一直报错 [Couldnt open file /mnt/anolisos/repodata/repomd.xml] yum挂载的时候报错,奇葩!!!,龙蜥的挂载方法好像不一样。 解决: 一、上传并挂…...
Xshell日志录制
步骤 1:设置日志文件位置 打开 Xshell 软件,选择目标会话(或者创建一个新的会话)。右键点击会话名称,选择“属性”。在会话属性窗口中,找到“日志”选项卡。勾选“启用日志记录”。在“文件名”中设置日志…...
vue下载和上传的地址动态ip地址配置方法
vue3结合element-plus实现【下载文件】和【上传文件】的动态ip地址配置 效果图 一、修改【文件上传】静态地址 1、首先引入axios import axios from "/utils/request"; import { getToken } from "/utils/auth"; 定义 const importDialogVisible ref(…...
动手做计算机网络仿真实验入门学习
打开软件 work1 添加串行接口模块,先关电源,添加之后再开电源 自动选择连接 所有传输介质 自动连接 串行线 绿色是通的,红色是不通的。 显示接口。se是serial串行的简写。 Fa是fast ethernet的简写。 为计算机配置ip地址: 为服…...
LeetCode 面试题 17.10. 主要元素
LeetCode 面试题 17.10. 主要元素 数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。 示例 1: 输入:[1,2,5,9,5,9,5…...
Hive之import和export使用详解
在hive-0.8.0后引入了import/export命令。 Export命令可以导出一张表或分区的数据和元数据信息到一个输出位置,并且导出数据可以被移动到另一个hadoop集群或hive实例,并且可以通过import命令导入数据。 当导出一个分区表,原始数据可能在hdf…...
SpringBoot数据字典字段自动生成对应code和desc
效果:接口会返回orderType,但是这个orderType是枚举的类型(1,2,3,4),我想多返回一个orderTypeDesc给前端展示,这样前端就可以直接拿orderTypeDesc使用了。 1. 定义注解 …...
HTML——16.相对路径
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><a href"../../fj1/fj2/c.html" target"_blank">链接到c</a><!--相对路径:-->…...
字——位级运算与有无符号数之间的比较
前言 本文整理和归纳《深入理解计算机系统》这本书的内容,但本文不会继续长篇大论地去将所有内容都总结,而是总结笔者认为容易遗忘或混淆或表述不清的内容。 字 首先字这个概念对于学习过《计算机体系结构》或《操作系统》的同学都不陌生,…...
Python爬虫教程——7个爬虫小案例(附源码)_爬虫实例
本文介绍了7个Python爬虫小案例,包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息,帮助读者理解并实践Python爬虫基础知识。 包含编程资料、学习路线图、源代码、软件安装包等!【…...
‘Optional. get()‘ without ‘isPresent()‘ check
在Java中,Optional类被引入主要是为了解决NullPointerException的问题,它提供了一种更优雅的方式来处理可能为null的情况。Optional.get()方法用于获取Optional实例中包含的值,但如果Optional实例是空的(即没有值)&…...
015-spring-动态原理、AOP的xml和注解方式
强制使用cglib动态代理 spring-AOP的使用...
统计颜色Count Color(POJ2777)题解
有一个长度为L厘米板,L是一个正整数,所以我们可以把它均匀地划分成L个部分,分别从左到右编号为1,2……L,每一个部分长度都为1厘米。现在我们必须给每个部分涂色,一个部分一种颜色,要求完成以下两…...
Nginx 配置 SSL(HTTPS)详解
Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。 随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务…...
Day10补代码随想录 理论基础|232.用栈实现队列|225.用队列实现栈|20.有效的括号|1047.删除字符串中的所有相邻重复项
栈和队列理论基础 抽象认识 栈是先进后出(FIFO),队列是先进先出(LIFO) 队首(先进))队尾(后进)栈顶(后进)栈底(先进) 栈(Stack) 只在一端进行进出操作(只在一端进一端出)像个篮球框,取用篮球从一端进出。 /进栈 int a[1000];//足够大的栈空间 int top-1…...
pytorch基础之注解的使用--003
Title 1.学习目标2.定义3.使用步骤4.结果 1.学习目标 针对源码中出现一些注解的问题,这里专门写一篇文章进行讲解。包括如何自定义注解,以及注意事项,相信JAVA中很多朋友业写过,但是今天写的是Python哦。。。 2.定义 在 Python…...
2024-12-30-g++
title: 探秘 g:C 编程的得力编译器 date: ‘2024-12-30’ category: blog tags: gC 编程编译器技术代码生成与优化 sig: compiler archives: ‘2024-12’ author:way_back summary: g 作为专门用于 C 语言的编译器,在 C 开发领域占据关键地位。它凭借对…...
互联网十万个为什么之什么是微服务
微服务(Microservices)是一种软件架构设计模式,它将应用程序分解为小型、自治的服务单元,这些服务单元可以独立部署、扩展和维护,其中每一个服务单元也都是一个微服务。 基于微服务形成的软件架构风格称为微服务架构&…...
mysql子查询
子查询是嵌套在另一个 SELECT, INSERT, UPDATE, 或 DELETE查询的 SQL 查询。子查询可以在 WHERE 子句中、FROM 子句或 SELECT 列表中出现。 以下是一些使用 MySQL 子查询的常见示例: 1.在 WHERE 子句中使用子查询: SELECT * FROM Employees WHERE s…...
智能故障诊断和寿命预测期刊推荐
往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 基于FFT CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客 基于FFT CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客 P…...
根据语言变化动态更新图片资源方案
根据语言变化动态更新图片资源方案 一、需求描述二、关于 Locale三、实现方案3.1 方案一(不可行)3.2 方案二(不可行)3.3 方案三 一、需求描述 Android 项目中引导页图片包含文字信息,由于应用是适配了三种语言&#x…...
Python世界:数据结构易错点小结
Python世界:数据结构易错点小结 总体list列表tuple元组Stringdict字典mapset 部分笔记汇总,持续刷新中。区别于其他笔记之处在于,主要记录易错点坑点。 总体 数据结构声明辨析 list []tuple () const listditc {} hashset res set(list) 数…...
Linux | Ubuntu零基础安装 nvm 管理nodejs
目录 介绍 项目地址 前置工具 安装 查看环境配置 更新环境变量 查看版本 查看 nodejs包 列表 安装nodejs 查看 nvm 状态 测试 nodejs 介绍 nvm是什么?你可以把它理解成 nodejs的管理软件,方便快速切换nodejs的版本,达到兼容状态 …...