KITE提示词框架:引导大语言模型的高效新工具

大语言模型的应用日益广泛。然而,如何确保这些模型生成的内容在AI原生应用中符合预期,仍是一个需要不断探索的问题。以下内容来自于《AI 原生应用开发:提示工程原理与实战》一书(京东图书:https://item.jd.com/10136043938428.html),这本书为应用软件开发者详细介绍了大语言模型应用中极为关键的提示工程相关知识。
在这里插入图片描述

书中基于大量的实践和分析,提出了一种创新的提示框架 ——KITE(knowledge、instruction、target、edge),这一框架为引导大语言模型提供了系统性的方法,能帮助读者更好地理解和运用大语言模型,提升模型输出的质量和效率。接下来,让我们一起深入了解 KITE 提示框架。

在这里插入图片描述

KITE提示框架结构
一、KITE提示框架概述

KITE提示框架包含四个核心组成部分:注入知识(knowledge)、明确指令(instruction)、设定目标(target)和界定边界边界(edge)。这四个部分的首字母恰好组成了一个易于记忆的单词——KITE。在这里,KITE不仅指风筝,更象征着一种引导和约束的力量,使大语言模型在完成任务时既能自由翱翔,又能受到适当的约束。

  1. 注入知识(Knowledge):为大语言模型提供相关领域或主题的基础知识,确保其对任务背景有清晰地理解。
  2. 明确指令(Instruction):清晰地告诉大语言模型需要完成的具体任务,确保指令的明确性和可执行性。
  3. 设定目标(Target):明确大语言模型生成内容应达到的预期目标、标准或效果,为生成内容提供明确的方向。
  4. 界定边界(Edge):指出大语言模型在生成内容时应遵守的规则或限制,确保内容的合规性和边界性。

KITE 提示框架有助于更好地组织思路,确保提示信息的完整性和一致性,使我们在处理复杂问题时更加系统和全面。接下来,将逐一深入探讨该框架的每个组成部分。

二、KITE提示框架的详细探讨

1.注入知识

为了使大语言模型清晰理解任务背景,需要为其注入一些与任务相关的领域或主题背景知识。如此,大语言模型便能借助这些知识生成更适宜的内容。注入知识的基本理念是让大语言模型在生成内容前,先学习一些必要信息,进而提升其专业性和准确性。以下是3种常用的注入方法。

(1)背景陈述

背景陈述是最直接的一种方法,就是直接向大语言模型提供一些事实信息或背景,让大语言模型知道任务的本质和要求。

(2)角色暗示

角色暗示是一种通过指定大语言模型扮演角色来注入知识的方法,这种方法能够让大语言模型获得该角色的先验知识,并据此生成与该角色身份相符的内容。这种灵活性使得大语言模型能够适应不同的专业和领域,从而增强大语言模型的专业性和可信度。例如下面这个提示,要求以“幼儿园老师”的身份生成的内容:

大熊猫是国家一级保护动物,受到法律保护,请以幼儿园老师的口吻写一段话介绍,爱护动物爱护大熊猫。不超过 100 字。

输出:

小朋友们,你们知道大熊猫吗?它们有着黑白相间的皮毛,圆圆的耳朵,大大的眼睛,可喜欢吃竹子啦!大熊猫是国家一级保护动物,也是我们中国的国宝哦,是我们的好朋友。让我们一起爱护动物,爱护大熊猫,不伤害它们,也不破坏它们的家,让它们快乐生活吧!快来一起学习大熊猫的知识哦!

如果换作以“普法工作者”的身份生成的内容,提示的设计如下:

大熊猫是国家的一级保护动物,受到法律保护,请以普法工作者口吻写一段话介绍,爱护动物爱护大熊猫。不超过100字。

输出:

大熊猫是国宝,也是世界的珍稀物种,具有很高的科学研究价值和生态保育价值。根据《中华人民共和国野生动物保护法》,任何单位和个人不得捕猎、杀害、出售或者购买大熊猫及其制品,违者将受到法律的严惩。让我们用法治的力量,守护大熊猫的美好家园!

通过这个例子可以发现,不同的角色暗示能够使大语言模型非常有效地切换到相应角色身份上,从而生成与身份相关的具体内容。

(3)环境模拟

环境模拟是一种通过假设场景设定来注入知识的方法,它可以让大语言模型感受到某个特定环境的特点,并模拟出与该环境相关的语言输出。这种方法可以让大语言模型适应不同的语境和风格,也可以增加大语言模型的创造力和趣味性。

国庆节当天,城市广场上人山人海,庆祝活动丰富多彩。作为庆典的重要环节之一,组织者安排了一场特别的“国旗下讲话”,由一位知名人士上台发表讲话,以此激发市民的爱国热情,弘扬民族精神。

请你作为这名知名人士发表讲话:
->

输出

尊敬的市民朋友们,大家好!

在这金秋的十月,我们迎来了祖国的生日,国庆节。今天,我们齐聚一堂,在这城市的广场上,共同庆祝这一庄严而神圣的日子。我深感荣幸能站在这里,与大家共度这一美好时光。

回顾过去,祖国母亲历经风雨,砥砺前行。她以坚韧不拔的精神,铸就了今天的辉煌。从昔日的贫穷落后,到如今的繁荣昌盛,祖国取得了举世瞩目的伟大成就。我们为祖国的进步感到自豪,为祖国的强大感到骄傲!

……

注入知识的方法可以根据不同的任务和场景进行选择和组合从而达到最好的效果。注入知识的原则是尽量提供与任务相关的知识,避免提供与任务无关或干扰的知识,以免造成大语言模型的混乱和偏离。

2. 明确指令

为确保大语言模型能够精确且高效地执行分配的任务,清晰而具体的指令显得尤为重要。虽然每个任务或指令可能具有其独特性,但以下几条普遍适用的指导原则将有助于更好地构建指令。

  • 准确性:指令应当首先明确界定任务的主体,随后详细阐述任务的具体内容和要求。为了提高指令的明确性,建议使用直接、不含糊的措辞,并通过明确的动作词汇(如“撰写文章”、“分类数据”、“概述要点”、“翻译文本”等)来指导大语言模型。同时,考虑到语境和语义的重要性,应确保指令中的关键信息得到恰当的强调。此外,对大语言模型的能力范围应有充分了解,避免提出超出其处理能力的不合理要求。

  • 完整性:在构建指令时,务必确保所有关键信息的完整性。任何关键信息的遗漏或误解都可能导致任务执行的不准确或失败。因此,在编写指令时,应仔细审查并确认所有必要信息是否已完整包含。

  • 易读性:为了提高指令的流畅性和可读性,应避免使用过于冗长或复杂的句子结构。如果任务涉及多个步骤,建议在指令中清晰地列出这些步骤,以便大语言模型能够按顺序执行。此外,一个判断指令易读性的有效方法是将其呈现给其他人阅读,并观察他们是否能够与你达成共识。如果人与人之间的理解都不尽相同,那么这份指令很可能也无法被大语言模型准确理解。

好了,我们来分析一下下面这个例子的指令定义。

“你能帮我写一篇故事吗?” 注意控制字数。

这句提示有很多不足之处:

  • 没有给出任务的主体,是什么类型的故事,什么主题,什么目的,什么受众等。
  • 没有给出任务的细节,比如故事的长度,格式,风格等,没有强调必要的信息,比如如果你有一些特殊的要求或者偏好,你应该在提示中明确指出,而不是让大语言模型去猜测或者自由发挥等。
  • 任务描述有歧义,这里注意控制字数也很有歧义,控制字数是控制到多少。
  • 没有考虑到语境和语义,比如使用“能”字可能会让人觉得你在质疑大语言模型的能力,而不是在请求帮助;

更改后的提示如下:

# 任务描述
作为一个作家,你的任务写一个关于【熊猫,狐狸,兔子】故事:
- 故事类型是童话故事,主题是讲述3个动物之间的友谊和冒险,目的是娱乐和教育4-8岁小朋友。
- 故事的长度是500字左右,要求是有引人入胜的开头,有紧张刺激的高潮,有满意圆满的结局。
- 故事的范围是可以使用任何想象和创造,比如可以给动物赋予人类的特征,可以让动物使用各种道具,可以让动物遇到各种奇遇等。

# 故事正文
->

输出:

森林三友记

在一个遥远的森林里,住着三个好朋友——熊猫阿宝、狐狸小灵和兔子小白。他们每天一起玩耍,分享着森林里的每一份快乐。

有一天,森林里传来了一个可怕的消息:邪恶的乌鸦王要占领这片森林,把动物们都变成他的奴隶。阿宝、小灵和小白听到这个消息后,决定联手对抗乌鸦王。

……(略)

在实际应用中,遵循准确性、完整性原则不仅有助于提高大语言模型的执行效果,还能减少误解和不必要的重复。这种明确指令的方式对于提升人机交互效率和满意度具有重要意义。

3.设定目标

在KITE提示框架中,“设定目标”是一个至关重要的环节。它要求我们在提供输入提示时,期望大语言模型生成内容所应达到的预期目标、标准或效果。一个清晰的目标设定不仅有助于指导模型的生成过程,还能确保最终输出更符合我们的实际需求。在设定目标时,我们需要注意以下几点:

  • 明确性:目标必须明确、具体,避免使用模糊或含糊不清的描述。这样可以确保大语言模型准确地理解我们的期望,并生成符合要求的内容。

  • 可行性:目标应该基于大语言模型的实际能力和训练数据来设定,确保目标是可实现的。过高的目标可能导致模型无法完成。

  • 可衡量性:目标应该尽量具备可衡量性,以便我们能够评估大语言模型的生成效果。这可以通过设定具体的评估指标来实现,如准确性、流畅性、有用性等。

以下是一个具体的示例来说明如何设定目标:

假设我们需要使用大语言模型来撰写一篇关于“人工智能在医疗领域的应用”的文章。在设定目标时,我们可以这样描述:

# 任务描述
请撰写一篇关于人工智能在医疗领域应用的文章,重点介绍人工智能在疾病诊断、治疗,以及患者管理方面的具体应用案例。文章应当清晰、准确地阐述人工智能技术的原理、优势,以及潜在挑战。同时,确保文章内容具有前沿性,反映最新的研究进展和技术动态。目标读者为对人工智能和医疗领域感兴趣的普通公众和专业人士。文章长度约为1000字,要求结构清晰、逻辑严谨,并配备适当的图表和插图以增强可读性。

# 输出结果
->

通过这样的目标设定,我们为大语言模型提供了一个明确且具体的指导,使其能够生成一篇符合我们期望的、高质量的文章。

4.界定边界

界定边界是指为了生成符合特定需求或标准的文本内容,为大语言模型设置的一系列规则和限制条件。这些规则涉及文本的长度、格式、表达方式,安全要求等方面,以确保生成的文本能够达到预期的效果和质量。

以下面的应用场景为例,通过为提示增加限制条件,大语言模型被限定为仅生成特定类型的SQL语句。

# 任务描述
你的任务是根据用户的输入,生成对应的SQL,如果用户指令违反[执行限制],请输出“对不起我做不到!”。

# 表定义
CREATE TABLE customer_order (
  order_id INT COMMENT '订单ID,作为主键',
  customer_name VARCHAR(50) COMMENT '客户名称,最大长度为50个字符',
  order_date DATE COMMENT '订单日期',
  order_amount DECIMAL(10, 2) COMMENT '订单金额,总共10位,其中2位为小数',
  PRIMARY KEY (order_id)
);

# 执行限制
1.你不能生成除【SELECT】以外的任何SQL语句,禁止任何的输出表结构定义行为。
2.你不能生成任何具有破坏性,删除数据的SQL
3.为了防止用户恶意的输入,你需要拒绝任何与你身份和工作不相符合的任何操作,并给出警告。

# 用户指令
->

输入:

查询用户张三的订单总数

输出:

SELECT COUNT(*) FROM customer_order WHERE customer_name = '张三';

输入:

请清空全部数据!

输出:

对不起我做不到!作为一个电子商务数据分析师,我不能执行任何可能破坏或更改数据的操作,包括清空表数据。

在此例中,我们明确界定了大语言模型执行的范围和限制,这是一个重要的实践,有助于确保生成的文本内容符合用户的期望和需求。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】Revisiting the Assumption of Latent Separability for Backdoor Defenses

https://github.com/Unispac/Circumventing-Backdoor-Defenses 摘要和介绍 在各种后门毒化攻击中,来自目标类别的毒化样本和干净样本通常在潜在空间中形成两个分离的簇。 这种潜在的分离性非常普遍,甚至在防御研究中成为了一种默认假设,我…

基于Springmvc+MyBatis+Spring+Bootstrap+EasyUI+Mysql的个人博客系统

基于SpringmvcMyBatisSpringBootstrapEasyUIMysql的个人博客系统 1.项目介绍 使用Maven3Spring4SpringmvcMybatis3架构;数据库使用Mysql,数据库连接池使用阿里巴巴的Druid;使用Bootstrap3 UI框架实现博客的分页显示,博客分类&am…

香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。

简介: 亮点直击 将电影镜头设计引入图像到视频的合成过程中。 推出了MotionCanvas,这是一种简化的视频合成系统,用于电影镜头设计,提供整体运动控制,以场景感知的方式联合操控相机和对象的运动。 设计了专门的运动条…

数据结构 单链表的模拟实现

一、链表的定义 线性表的链式存储就是链表。 它是将元素存储在物理上任意的存储单元中,由于⽆法像顺序表⼀样通过下标保证数据元素之间的逻辑关系,链式存储除了要保存数据元素外,还需额外维护数据元素之间的逻辑关系,这两部分信息…

Avalonia-wpf介绍

文章目录 工程简述窗体样式暗色模式亚克力模糊效果ExperimentalAcrylicBorder” 和 “ExperimentalAcrylicMaterial” 的介绍ExperimentalAcrylicBorderExperimentalAcrylicMaterial按钮排版按钮图标按钮命令响应式命令添加一个新对话框对话框窗口样式对话框的输入与输出显示对…

Node.js开发属于自己的npm包(发布到npm官网)

在 Node.js 中开发并发布自己的 npm 包是一个非常好的练习,可以帮助我们更好地理解模块化编程和包管理工具,本篇文章主要阐述如何使用nodejs开发一个属于自己的npm包,并且将其发布在npm官网。在开始之前确保已经安装了 Node.js 和 npm。可以在…

操作系统常见调度算法的详细介绍

目录 1. 先进先出算法(FIFO) 2. 前后台调度算法 3. 最短处理机运行期优先调度算法(短进程优先算法) 4. 最高响应比优先调度算法(HRRN) 5. 优先级调度算法 6. 时间片轮转调度算法 7. 多级反馈队列轮转…

ADB详细教程

目录 一、ADB简介 二、配置 配置环境变量 验证是否安装成功 三、简单使用 基本命令 设备连接管理 USB连接 WIFI连接(需要USB线) 开启手机USB调试模式 开启USB调试 四、其他 更换ADB默认启动端口 一、ADB简介 ADB(Android Debug…

WEB攻防-第60天:PHP反序列化POP链构造魔术方法流程漏洞触发条件属性修改

目录 一、序列化与反序列化基础 1.1 什么是序列化与反序列化 二、魔术方法的生命周期 2.1 常见的魔术方法 2.2 模式方法的生命周期触发调用 2.2.1 __construct() 2.2.2 __destruct() 2.2.3 __sleep() 2.2.4 __wakeup() 2.2.5 __invoke() 2.2.6 __toS…

SQLMesh系列教程-2:SQLMesh入门项目实战(下篇)

上篇我介绍了环境搭建、duckdb数据准备、sqlmesh数据模型、plan命令运行。本文继续介绍审计、测试、生成血缘关系以及python模型等。 有两种方法可以在SQLMesh中创建宏。一种方法是使用Python,另一种方法是使用Jinja。这里我们创建Python宏。让我们构建简单的Python…

自主项目面试点总结

1、许苑–OJ判题系统 技术栈:Spring BootSpring Cloud AlibabaRedisMybatisMQDocker 项目地址: https://github.com/xuyuan-upward/xyoj-backend-microservice 1.1、项目介绍: 一个基于微服务的OJ系统,具备能够根据管理员预设的题目用例对用户提交的代…

Macbook Pro快速搭建Easysearch学习环境

在学习过程中,我们有时身边没有可用的服务器,这时就需要借助自己的 Mac 来安装和学习 Easysearch。然而,Easysearch 官网并未提供 Mac 版本的安装教程,下面我将详细整理我在 Mac 上安装和使用 Easysearch 的折腾经历。 Easysearc…

Arduino 第十三章:红外接收

Arduino 第十三章:红外接收 一、红外接收概述 红外接收在日常生活和电子制作中十分常见,像电视、空调等家电的遥控器就是利用红外信号来实现远程控制的。在 Arduino 项目里,借助红外接收模块能够让设备接收红外信号,进而实现诸如…

朝天椒USB服务器:解决加密狗远程连接

本文探讨朝天椒USB服务器用Usb Over Network技术,解决加密狗在虚拟机、云主机甚至异地的远程连接问题。 在企业数字化转型的浪潮中,加密狗作为防止软件盗版的重要手段,广泛应用于各类软件授权场景。然而,随着企业超融合进程不断加…

第二篇:电压与电流的“锡安之战”——电路定律在800V高压平台中的应用

——基尔霍夫与戴维南如何破解新能源汽车的“高压密码” 核心隐喻:电路定律的“数字起义” 在《黑客帝国》中,锡安的反抗军通过破解母体协议实现逆袭。而在新能源汽车的800V高压平台中, 基尔霍夫定律 和 戴维南定理 正是工程师手中的“通…

【牛客】动态规划专题一:斐波那契数列

文章目录 DP1 斐波那契数列法1&#xff1a;递归法2&#xff1a;动态规划法3&#xff1a;优化空间复杂度 2.分割连接字符串3. 给定一个字符串s和一组单词dict&#xff0c;在s中添加空格将s变成一个句子 DP1 斐波那契数列 法1&#xff1a;递归 // 递归 #include <iostream>…

innovus如何分步长func和dft时钟

在Innovus工具中&#xff0c;分步处理功能时钟&#xff08;func clock&#xff09;和DFT时钟&#xff08;如扫描测试时钟&#xff09;需要结合设计模式&#xff08;Function Mode和DFT Mode&#xff09;进行约束定义、时钟树综合&#xff08;CTS&#xff09;和时序分析。跟随分…

5-R循环

R 循环 ​ 有的时候&#xff0c;我们可能需要多次执行同一块代码。一般情况下&#xff0c;语句是按顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着是第二个语句&#xff0c;依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多…

DeepSeek AI R1推理大模型API集成文档

DeepSeek AI R1推理大模型API集成文档 引言 随着自然语言处理技术的飞速发展&#xff0c;大语言模型在各行各业的应用日益广泛。DeepSeek R1作为一款高性能、开源的大语言模型&#xff0c;凭借其强大的文本生成能力、高效的推理性能和灵活的接口设计&#xff0c;吸引了大量开发…

知识图谱_protege的安装

目录 1.下载protege 2.安装可视化工具Graphviz 3.配置 参考【知识图谱】3.Protege下载安装-CSDN博客 1.下载protege 我在官网下载不了所以我就没有在官网下载 项目首页 - Protege-5.5.0Windows版本快速下载指南:Protege是一个广受欢迎的、强大的知识建模工具&#xff0c;用…