《AI大模型开发笔记》——Prompt提示词最佳实践

为什么需要提示词优化

什么是 Prompt enginnering?
提示词:解释一下什么是大语言模型的Prompt enginnering


图1. 什么是Prompt Enginnering?

通过上面ChatGPT的说明,我们可以看到,prompt工程化就是如何写prompt提示词的一些技巧。
那么,为什么需要进行提示词优化呢?

  • 第一点,对个人使用者: 提高使用大语言模型的效率,让大模型更好的为我们服务。
  • 第二点,对于开发者:改善大语言模型输出的稳定性。
    (详细解说,请参考视频: https://youtu.be/cVPFbRuXoY0 )

最近OpenAI官方发布了一个如何来写Prompt的best practices(最佳实践)。这里,给大家分享看看OpenAI都介绍了哪些prompt的方法和技巧。

共分为六个策略:

  • 给出清晰的指示
  • 提供参考文字
  • 将复杂任务拆分为更简单的子任务
  • 给GPT时间思考
  • 使用外部工具
  • 系统性的进行测试

策略一:给出清晰的指示

GPT 无法读取您的想法。如果你认为输出内容太长,可以要求简短回复。如果输出内容太简单,可以要求专家级写作。如果您不喜欢输出的格式,可以示范您想看到的格式。GPT在猜测您想要的内容方面越少,您得到想要的内容的可能性就越大。

技巧1:在查询中包含详细信息以获得更相关的答案

【观看视频解说】

为了获得高度相关的回应,请确保请求提供任何重要的细节或背景信息。否则,您就是让模型来猜测您的意思。

更好
我该如何在Excel中加数字? 视频解说我该如何在Excel中对一行美元金额求和?我想要自动地对一个工作表的所有行做这个操作,并且让所有的总数显示在右边的一个名为“总计”的列中。
谁是总统?2021年墨西哥的总统是谁,选举是多久举行一次?
编写代码来计算斐波那契数列。视频解说编写一个TypeScript函数来高效地计算斐波那契数列。请充分注释代码,解释每一部分的作用以及为什么以这种方式编写。
总结会议记录。用一段文字总结会议记录。然后用markdown列出发言人及其各自的要点。最后,如果有的话,列出发言人建议的下一步行动或待办事项。

技巧2:要求模型扮演一个角色

系统消息(system message)可以用来指定模型在回复中所扮演的角色。

  • 例子:
 系统:当我请求帮助撰写某些内容时,您将回复一份文件,在每段中至少包含一个笑话或幽默评论。用户:给我的钢螺栓供应商写一张感谢便条,感谢他们及时且在短时间内完成交货。这使我们能够完成一份重要的订单。

技巧3:使用分隔符清晰地标示输入的不同部分

像三重引号、XML标签、章节标题等分隔符可以帮助划分文本的不同部分以便进行不同的处理。

  • 例1:
  用户: 用俳句来总结用三重引号界定的文本。"""在此插入文本"""
  • 例2:
  系统: 您将获得两篇关于同一主题的文章(用 XML 标签分隔)。先总结一下每篇文章的论点。然后指出哪一个提出了更好的论点并解释原因。用户: <article>在这里插入第一篇文章</article> <article>在这里插入第二篇文章</article>
  • 例3:
  系统: 您将获得论文摘要和建议的标题。论文标题应该让读者清楚地了解论文的主题,但也应该引人注目。如果标题不符合这些标准,请提出 5 个替代方案。用户: 摘要:在此插入摘要 标题:在此插入标题

对于这种简单的任务,使用分隔符可能不会对输出质量产生影响。然而,任务越复杂,消除任务细节的歧义就越重要。不要让 GPTs 费力去理解你究竟要求它们做什么。

技巧4:指定完成任务所需的步骤

一些任务最好通过一系列步骤来明确指定。明确地写出这些步骤可以使模型更容易遵循它们。

系统: 按照以下分步指示来回应用户输入。步骤1 - 用户会提供三重引号内的文本。用“Summary: ”作为前缀,将这段文本总结为一句话。步骤2 - 将步骤1中的总结翻译成西班牙语,并以“Translation: ”作为前缀。
用户: """insert text here"""

技巧5:提供示例

为所有示例提供适用的通用指示通常比通过示例演示任务的所有排列更高效,但在某些情况下,提供示例可能更容易。例如,如果您希望模型模仿一种回应用户查询的特定风格,而这种风格很难明确描述。这被称为“少样本(few-shot)”提示。

系统
以一致的风格回答。
用户
教我关于耐心。
助手
雕刻最深山谷的河流源于一个朴素的泉眼;最宏伟的交响乐源于单个音符;最复杂的挂毯始于一根孤立的线程。
用户
教我有关海洋的知识。

技巧6:指定输出的期望长度

你可以要求模型生成具有给定目标长度的输出。目标输出长度可以用单词、句子、段落、项目符号等的数量来指定。然而,请注意,指示模型生成特定数量的单词的精度不高。模型更可靠地生成具有特定数量的段落或项目符号的输出。

  用户: 用大约 50 个单词总结由三重引号中的文本。"""在此插入文本"""用户: 将用三重引号界定的文本总结为两段。"""在此插入文本"""用户: 将由三引号中的文本总结为 3 个要点。"""在此插入文本"""

参考文献

  • [1] https://platform.openai.com/docs/guides/gpt-best-practices

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

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

相关文章

容器安全检测和渗透测试工具

《Java代码审计》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484219&idx1&sn73564e316a4c9794019f15dd6b3ba9f6&chksmc0e47a67f793f371e9f6a4fbc06e7929cb1480b7320fae34c32563307df3a28aca49d1a4addd&scene21#wechat_redirect Docker-bench-…

使用ENSP实现NAT

一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为12.12.12.1/30 ip address 12.12.12.1 30进入e0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置…

pnpm:包管理的新星,平替 npm 和 yarn

​ pnpm&#xff0c;一个老牌的 node.js 包管理器&#xff0c;支持 npm 的所有功能&#xff0c;完全足以用来替代 npm。它采用全局存储&#xff0c;每个项目内部使用了硬链接&#xff0c;所以很省空间&#xff0c;安装速度快。 本文介绍下 pnpm 的基本概念&#xff0c;安装、…

【大数据学习 | Spark-Core】Spark的分区器(HashPartitioner和RangePartitioner)

之前学过的kv类型上面的算子 groupby groupByKey reduceBykey sortBy sortByKey join[cogroup left inner right] shuffle的 mapValues keys values flatMapValues 普通算子&#xff0c;管道形式的算子 shuffle的过程是因为数据产生了打乱重分&#xff0c;分组、排序、join等…

计算机网络基础全攻略:探秘网络构建块(1/10)

一、计算机网络基础概念 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路和通信设备连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递的计算机系统…

游戏陪玩系统开发功能需求分析

电竞游戏陪玩系统是一种专门为游戏玩家提供陪伴、指导和互动服务的平台。这类系统通常通过专业的陪玩师&#xff08;也称为陪练师&#xff09;为玩家提供一对一或多对一的游戏陪伴服务&#xff0c;帮助玩家提升游戏技能、享受游戏乐趣&#xff0c;甚至解决游戏中的各种问题。电…

关于SpringBoot集成Kafka

关于Kafka Apache Kafka 是一个分布式流处理平台&#xff0c;广泛用于构建实时数据管道和流应用。它能够处理大量的数据流&#xff0c;具有高吞吐量、可持久化存储、容错性和扩展性等特性。 Kafka一般用作实时数据流处理、消息队列、事件架构驱动等 Kafka的整体架构 ZooKeeper:…

Linux 下的IO模型

一&#xff1a;四种IO模 1.1&#xff1a;阻塞式IO&#xff08;最简单&#xff0c;最常用&#xff0c;效率最低&#xff09; 阻塞I/O 模式是最普遍使用的I/O 模式&#xff0c;大部分程序使用的都是阻塞模式的I/O 。 缺省情况下&#xff08;及系统默认状态&#xff09;&#xf…

vue3项目部署在阿里云轻量应用服务器上

文章目录 概要整体部署流程技术细节小结 概要 vue3前端项目部署在阿里云轻量服务器 整体部署流程 首先有一个Vue3前端项目和阿里云应用服务器 确保环境准备 如果是新的服务器&#xff0c;在服务器内运行以下命令更新软件包 sudo apt update && sudo apt upgrade -y …

tcpdump交叉编译

TCPDUMP在Libpcap上开发。 首先需要编译libcap。 网上那么多教程&#xff0c;下载地址都只给了一个英文的官网首页&#xff0c; 你尽可以试试&#xff0c;从里面找到下载地址都要费半天时间。 \color{red}网上那么多教程&#xff0c;下载地址都只给了一个英文的官网首页&#…

linux基本命令(1)

1. 文件和目录操作 ls — 列出目录内容 ls # 显示当前目录的文件和目录 ls -l # 显示详细的文件信息&#xff08;权限、大小、修改时间等&#xff09; ls -a # 显示所有文件&#xff08;包括隐藏文件&#xff09; ls -lh # 显示详细信息并以易读的方式显示文件大小 cd — 改…

KubeSphere 最佳实战:K8s 构建高可用、高性能 Redis 集群实战指南

首发&#xff1a;运维有术。 本指南将逐步引导您完成以下关键任务&#xff1a; 安装 Redis&#xff1a;使用 StatefulSet 部署 Redis。自动或手动配置 Redis 集群&#xff1a;使用命令行工具初始化 Redis 集群。Redis 性能测试&#xff1a;使用 Redis 自带的 Benchmark 工具进…

使用 Python 实现目标检测

目录 简介环境准备数据集模型选择预处理模型加载与推理结果可视化优化与调参部署与应用参考资料 简介 目标检测是计算机视觉中的一个重要任务&#xff0c;旨在识别图像或视频中的特定对象并标注它们的位置。近年来&#xff0c;深度学习技术的发展使得目标检测的准确性和效率…

【人工智能】Python与Scikit-learn的模型选择与调参:用GridSearchCV和RandomizedSearchCV提升模型性能

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在机器学习建模过程中,模型的表现往往取决于参数的选择与优化。Scikit-learn提供了便捷的工具GridSearchCV和RandomizedSearchCV,帮助我们在参数空间中搜索最佳组合以提升模型表现。本文将从理论和实践两个角度…

Oracle-索引的创建和优化

-- Oracle数据库会为表的主键和包含唯一约束的列自动创建索引 -- 索引种类 -- 普通索引 create index idx_emp_index_sal on emp_index(sal); -- 唯一索引 create unique index uq_idx_emp_index_ename on emp_index(ename); -- 组合索引 create index idx_…

02 python基础 python解释器安装

首先在网站&#xff1a;Welcome to Python.org进行下载安装python 最新的解释器不一定是最好的&#xff0c;最稳定的才一定是最好的&#xff1b;要关注解释器最后维护 的时间。 一、python的安装 python安装的时候一定要在下载勾选好添加path环境 安装的时候尽量选择好自己的安…

视频截断,使用 FFmpeg

使用 FFmpeg 截取视频并去掉 5 分 49 秒后的内容&#xff0c;可以使用以下命令&#xff1a; ffmpeg -i input.mp4 -t 00:05:49 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 192k output.mp4-i input.mp4&#xff1a; 指定输入视频文件 input.mp4。 -t 00:05:49&#x…

java编程开发基础,正则表达式的使用案例Demo

java编程开发基础,正则表达式的使用案例Demo!实际开发中&#xff0c;经常遇到一些字符串&#xff0c;信息的裁剪和提取操作&#xff0c;正则表达式是经常使用的&#xff0c;下面的案例&#xff0c;可以帮助大家快速的了解和熟悉&#xff0c;正则表达式的使用技巧。 package com…

Windows Pycharm 远程 Spark 开发 PySpark

一、环境版本 环境版本PyCharm2024.1.2 (Professional Edition)Ubuntu Kylin16.04Hadoop3.3.5Hive3.1.3Spark2.4.0 二、Pycharm远程开发 文件-远程-开发 选择 SSH连接&#xff0c;连接虚拟机&#xff0c;选择项目目录即可远程开发

WebGL进阶(十一)层次模型

理论基础&#xff1a; 效果&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vie…