prompt工程策略(三:使用 LLM 防护围栏创建系统提示)

原文:我是如何赢得GPT-4提示工程大赛冠军的
原文的原文: How I Won Singapore’s GPT-4 Prompt Engineering Competition


!!本内容仅适用于具有 System Prompt(系统提示)功能的 LLM。具有这一功能的最著名 LLM 是 ChatGPT。

1. 与 System Prompts 有关的术语

对于 ChatGPT,有大量资源使用 System PromptsSystem MessagesCustom Instructions 这三个术语,而且很多时候它们的意思似乎差不多。简单总结一下:

  • System Prompts 和 System Messages 是通过 ChatGPT 的 Chat Completions API 以程序化方式使用该 LLM 时使用的术语。
  • Custom Instructions 是通过 https://chat.openai.com/ 的用户界面使用 ChatGPT 时的术语。
    在这里插入图片描述
    不过整体而言,这三个术语指代的是同一对象。

2. System Prompts

System Prompts 是指附加的额外 prompt,其作用指示 LLM 理应的行为方式。之所以说这是额外附加的,是因为它位于「普通」prompt(也被称为用户 prompt)之外。

在一组聊天中,每一次你都要提供一个新的 prompt,System Prompts 的作用就像是一个 LLM 会自动应用的过滤器。这意味着,在一组聊天中,LLM 每次响应都要考虑 System Prompts

3 . 使用 System Prompts

使用 System Prompts 提供你希望 LLM 在整个聊天过程中全程记住的指令

4. System Prompts 应包含的内容

System Prompts 中的指令通常包含以下类别:

  • 任务定义,这样 LLM 在聊天过程中能一直记得要做什么
  • 输出格式,这样 LLM 能一直记得自己应该如何响应
  • 防护围栏,这样 LLM 能一直记得自己不应该如何响应。防护围栏(Guardrails)是 LLM 治理方面一个新兴领域,是指为 LLM 配置的可运行操作的边界。

举个例子,System Prompt 可能是这样的:

You will answer questions using this text: [insert text].
You will respond with a JSON object in this format: {“Question”: “Answer”}.
If the text does not contain sufficient information to answer the question, do not make up information and give the answer as “NA”.
You are only allowed to answer questions related to [insert scope]. Never answer any questions related to demographic information such as age, gender, and religion.

翻译:

你将使用以下文本回答问题:[insert text]。
你将使用以下格式的JSON对象进行响应:{“Question”:“Answer”}。
如果文本中没有包含足够的信息来回答问题,请不要编造信息,并给出“NA”的答案。
你只能回答与[insert scope]相关的问题。永远不要回答任何与人口统计信息有关的问题,如年龄、性别和宗教。

其中每部分的类别如下:
在这里插入图片描述

5. 「普通」prompt(用户 prompt) 包含的内容

System Prompt 会大致描述任务概况。在上面的 System Prompt 示例中,任务被定义为仅使用特定的文本进行问答,并指示 LLM 以 {“Question”: “Answer”} 的格式进行响应。

You will answer questions using this text: [insert text].
You will respond with a JSON object in this format: {“Question”: “Answer”}.

在这个案例中,聊天中的每个用户 prompt 都只是你希望得到文本解答的问题。举个例子,用户 prompt 可能是这样「What is the text about?」。而 LLM 的响应会是这样:{“What is the text about?”: “The text is about…”}。

但我们可以进一步泛化这个示例任务。在实践中,你更可能会有多个希望得到解答的问题,而不只是一个。在这个案例中,我们可以将上述 System Prompt 的第一行从

You will answer questions using this text: [insert text].

改为

You will answer questions using the provided text.

现在,每个用户 prompt 中都既包含执行问答所基于的文本,也包含所要回答的问题。

<text>
[insert text]
</text><question>
[insert question]
</question>

这里,我们依然使用 XML 标签作为分隔符,以一种结构化的方式为 LLM 提供这两段所需信息。此处 XML 标签中使用的名词是 textquestion对应于 System Prompt 中使用的名词,这样一来 LLM 就能理解这些标签与 System Prompt 指令有何关联。

System Prompt 应能给出整体任务指令,而每个用户 prompt 应提供你希望执行任务时使用的确切细节。比如在这个案例中,这个确切的细节是text 和question。

补充: 让 LLM 防护围栏变得动态化

  • 固定防护围栏:通过 System Prompt 中的几句话添加的。
  • 动态防护围栏:英伟达团队开发的 NeMo Guardrails 能让用户配置与 LLM 之间的期望对话流,从而在聊天的不同位置设置不同的防护围栏,实现随聊天不断演进的动态防护围栏。

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

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

相关文章

PG pageinspect使用与块空间清理学习

1.创建有时候会报错 ERROR: could not open extension control file "/usr/local/pgsql/share/extension/pageinspect.control": No such file or directory 解决方案&#xff1a; 2.使用 PostgreSQL中&#xff0c;对于每一行数据&#xff08;称为一个tuple&#…

GRE over IPsec VPN实验

一、拓扑图 二、组网需求 某企业总部、分支1、分支2分别通过 R1&#xff0c;R3&#xff0c;R4 接入互联网&#xff0c;配置默认路由连通公网按照图示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 分别配置 Loopback0 口匹配感兴趣流&#xff0c;Loopback1 口模拟业…

LeetCode题练习与总结:不同的二叉搜索树--96

一、题目描述 给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5示例 2&#xff1a; 输入&#xff1a;n 1 输出&…

yolov8添加FPPI评价指标

这里写自定义目录标题 yolov8 中FPPI实现测试中调用 效果结语 续yolov7添加FPPI评价指标 。之前在yolov7中增加了fppi指标&#xff0c;有不少网友问有没有yolov8中增加&#xff0c;最近没有做算法训练&#xff0c;也一直没时间弄。这几天晚上抽了点时间&#xff0c;弄了一下。不…

WD—C++课前作业—30题

怎么会手和脚都在桌子上 目录 31&#xff0c;声明一个类 String,其数据成员为 char head[100],构造函数 String(char*Head)实现 head 的初始化&#xff0c;成员函数 void reverse()实现 head 内字符串的逆序存放&#xff0c;成员函数 void print()实现 head 内字符串的输出。…

tensorflow实现二分类

# 导入所需库和模块 from tensorflow.keras.layers import Dense, Input, Activation # 导入神经网络层和激活函数模块 from tensorflow.keras.models import Sequential # 导入Keras的Sequential模型 import pandas as pd # 导入Pandas库用于数据处理 import numpy as np …

TreeMap详解:Java 有序 Map 原理与实现

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

银河麒麟V10操作系统编译LLVM18踩坑记录

1、简述 要在银河麒麟V10操作系统上编译一个LLVM18&#xff0c;这个系统之前确实也没有用过&#xff0c;所以开始了一系列的摸排工作&#xff0c;进行一下记录。 首先肯定是要搞一个系统&#xff0c;所以去到银河麒麟的网站&#xff0c;填写了一个申请 产品试用申请国产操作系…

3dmax材质库导入方法?3dmax云渲染速度体验

3ds Max 材质库包含多种素材&#xff0c;如金属、木材、布料和石材等&#xff0c;但用户在导入材质时常遇到问题。本文将介绍如何在3ds Max中成功导入材质&#xff0c;并探讨使用云渲染服务来加速渲染过程&#xff0c;提高项目效率。 一、3dmax材质库导入教程 自建材质导入方法…

第1章 初始Spring Boot【仿牛客网社区论坛项目】

第1章 初始Spring Boot【仿牛客网社区论坛项目】 前言推荐项目总结第1章初识Spring Boot&#xff0c;开发社区首页1.课程介绍2.搭建开发环境3.Spring入门体验IOC容器体验Bean的生命周期体验配置类体验依赖注入体验三层架构 4.SpringMVC入门配置体验响应数据体验响应Get请求体验…

如何利用3D可视化大屏提升信息展示效果?

老子云3D可视化平台https://www.laozicloud.com/ 引言 在信息爆炸的时代&#xff0c;如何有效地传达和展示信息成为了各行各业的一大挑战。传统的平面展示方式已经无法满足人们对信息展示的需求&#xff0c;3D可视化大屏应运而生&#xff0c;成为了提升信息展示效果的利器。本…

JavaScript异步编程——10-async异步函数【万字长文,感谢支持】

异步函数&#xff08;用 async 声明的函数&#xff09; 异步函数的定义 使用async关键字声明的函数&#xff0c;称之为异步函数。在普通函数前面加上 async 关键字&#xff0c;就成了异步函数。语法举例&#xff1a; // 写法1&#xff1a;函数声明的写法async function foo1(…