大语言模型入门(三)——提示词编写注意事项

news2024/10/5 1:38:13

一、提示词编写原则

        提示词的编写应当遵循两个原则, 一个是指令必须清晰且具体,另一个是应当给模型充足的时间去思考。首先,你的指令足够清晰和具体,才能让大模型明确你需要它执行的任务,从而降低我们得到无关或者不正确响应的可能性。清晰的指令意味着提示词的篇幅要足够长(长到可以清晰表达你的需求),对于一些复杂的任务,提示词的长度可以达到几百甚至上千个字符。其次,对于一些需要较多思考过程的任务,应该给模型时间去思考,就像我们做一个旅游计划,首先应该确定日期、其次确定目的地、再次交通方式等等,需要一步一步来。对于大模型,我们也可以提示它一步一步思考,并且给出每一步的推导过程,这样才能获得更为有效的响应。

二、优质提示词的关键要素

        提示词的编写看似简单,但为了让模型的输出符合预期,有一些关键要素必须要注意。尤其是应用到业务中的时候,相信谁也不希望大模型的回答捉摸不透。开始接触大模型提示的时候,笔者以为就是一个语文问题,等到了解得更深入了,才知道这当中的学问可不少。以下是几个常见的注意事项。

1、灵活使用分隔符

        分隔符的使用主要在两方面:一方面是告诉大模型哪部分是我们给他的指令,哪部分是它需要识别的内容,比如下面的图片中笔者告诉大模型它需要识别的是三个双引号包围的内容(可以是任何我们定义的标点符号),其余的就是我给它的指令;另一方面是告诉模型的输出需要注意的地方,比如下图我们让模型识别城市实体,对每一个识别出来的实体直接用“#”包围,这样方便我们后续观看和处理。

45b9a6664ce94badaa1653602bc33814.png

2、引导模型进行结构化输出

        结构化的输出更有利于我们处理模型的答复,尤其是当我们使用API批量生成回答的时候,结构化的输出可以大大减少我们解析模型答复的工作量。

ca7ab433eb70401f8d913b16bfa68ccf.png

3、提供一到两个示例

        对于一些比较复杂的或者高度定制化的任务,推荐给模型一到两个示例(Few-Shot),这样更有利于模型理解我们的需求,比如下面让模型模仿我的语气回答问题。

33949735edbc467fbebec6428434b688.png

4、指定任务步骤

        指定任务步骤是让模型输出可控的有效手段,通过告诉模型首先干什么,其次干什么,最后干什么的方式让模型按步骤进行响应。

fd2f91b163c24e9babe00030aaae476a.png

5、给模型适当的激励

        给模型适当的激励也能让模型有更正面的情绪响应我们的需求,例如告诉模型这个答复对你很重要,或者告诉模型我们会给它一点好处。例如如下的对比,当我们告诉模型会给它小费的时候,它的响应多积极!

0e83f0a4619848de8552e1bfa8658d73.png

三、总结

        编写提示词的过程中,掌握几个关键要素,可以让模型生成的结果更符合我们的预期,时不时给一些激励,PUA一下模型,或许生成的结果质量更优(毕竟老板喂给我们的饼,吃不完就只能喂给大模型了)!

 

 

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

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

相关文章

C# 入坑JAVA 潜规则 注解 列表 listMch,该列表存储了一个映射(Map)的集合 等 入门系列3

java注解 好像和C# 特性 差不多 Data Builder NoArgsConstructor AllArgsConstructor 在Java中,Data、Builder、NoArgsConstructor和AllArgsConstructor是Lombok库提供的注解,它们用于简化Java对象的创建和处理。Lombok是一个流行的Java库,…

java部分总结

一、Java语言发展简史 Java 语言源于 1991 年 4 月, Sun 公司 James Gosling 博士 领导的绿色计划 (Green Project) 开始启动,此计划最 初的目标是开发一种能够在各种消费性电子产品( 如机顶盒、冰箱、收音机等 ) 上运行的程序架构。这个就是 Jav…

基于Pulid-Flux一致性换脸

Pulid-Flux 简介 Pulid-Flux是风格一致性保持和迁移组件,是字节Pulid团队继SDXL的Pulid版本沉淀基础上再次出发布的PuLID-FLUX-v0.9.0 Flux版本风格一致性组件。能够提供了一个无需调整的身份ID一致性和定制化解决方案,能够被应用于风格一致性保持领域包…

如何写出更牛的验证激励

前言 芯片验证是为了发现芯片中的错误而执行的过程,它是一个破坏性的过程。完备的验证激励可以更有效地发现芯片错误,进而缩短验证周期。合格的验证激励必须能产生所有可能的验证场景(完备性),包括合法和非法的场景,并保持最大的…

Stable Diffusion绘画 | 来训练属于自己的模型:炼丹启动

经过前面几轮辛苦的准备工作之后,现在开始进入终篇的炼丹环节。 在「上传素材」页面,点击「开始训练」: 可以在「查看进度-进度」中,查看模型训练的整体进度: 求助!!!操作「开始训练…

date:10.4(Content:Mr.Peng)( C language practice)

void reverse(char* p, int len) {char* left p;char* right p len - 2;while (left < right){char* temp left;*left *right;//当*left*right后&#xff0c;*temp已经被改为f了*right *temp;//你再*temp赋值给*right时&#xff0c;已经没用了left;right--;}}int main…

前端学习第三天笔记 JavaScript JavaScript的引入 数据类型 运算符 条件语句 字符串

这里写自定义目录标题 JavaScriptJavaScript引入到文件嵌入到HTML文件中引入本地独立js文件引入网络来源文件 JavaScript的注释方式嵌入在HTML文件中的注释JavaScript的输出方式数据类型原始类型&#xff08;基础类型&#xff09;合成类型&#xff08;复合类型&#xff09; 运算…

Github优质项目推荐-第二期

文章目录 Github优质项目推荐 - 第二期一、【hello-algo】&#xff0c;96.1k stars - 算法与数据结构动画图解二、【tabby】&#xff0c;58.6k stars - ssh工具三、【mem0】&#xff0c;22.1k stars - 大模型长期记忆四、【HivisionIDPhotos】&#xff0c;10.6k stars - AI证件…

多智能体协作强化学习中的知识共享

本文提出了一种名为谨慎乐观知识共享&#xff08;CONS&#xff09;的新方法&#xff0c;用于解决合作多智能体强化学习&#xff08;MARL&#xff09;中的知识共享问题。针对传统的行动建议方法可能导致团队探索受阻的情况&#xff0c;即经验丰富的智能体会分享其知识而较不成熟…

【C++算法】10.滑动窗口_长度最小的子数组

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解 题目链接&#xff1a; 209. 长度最小的子数组 题目描述&#xff1a; 解法 解法一&#xff1a;暴力求解&#xff08;会超时&#xff09; 暴力枚举出所有子数组的和。 查找子数组n2&#xff0…

03:(寄存器开发)OLED的简单使用

OLED的简单使用 将江科大的标准库开发OLED的代码进行移植&#xff0c;修改的部分代码如下&#xff1a; /*引脚配置*/ //#define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) //#define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))…

mybatis-plus使用总结

基本使用 mybatis-plus依赖 <!-- mybatis-plus开始 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version></dependency><dependency>&l…

D27【 python 接口自动化学习】- python 基础之判断与循环

day27 判断和循环中常见错误 学习日期&#xff1a;20241004 学习目标&#xff1a;判断与循环&#xfe63;-38 避坑指南&#xff1a;判断和循环中的常见错误 学习笔记&#xff1a; 循环过程中改变遍历次数 遍历中修改列表导致误操作 循环嵌套中的缩进导致运行语句有差别 总结…

17 链表——21. 合并两个有序链表 ★

17 链表 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 算法设计: 合并两个有序链表,并保持有序性,可以采用迭代法和递归法两种…

小白必看web专题!渗透测试还是src?

大家好&#xff0c;我是Dest1ny&#xff01; 今天是回答问题的&#xff0c;有小伙伴私信我&#xff1a; 渗透测试还是src&#xff1f; 今天回答一下&#xff01; 渗透测试&#xff08;Penetration Testing&#xff09;&#xff1a; 渗透测试是一种模拟真实攻击者的技术手段&…

Vue3+TS项目 - ref和useTemplateRef获取组件实例

在Vue2中&#xff0c;子组件使用的是选项式 API &#xff0c;被引用的组件实例和该子组件的 this 完全一致&#xff0c;这意味着父组件对子组件的每一个属性和方法都有完全的访问权。这使得在父组件和子组件之间创建紧密耦合的实现细节变得很容易&#xff0c;当然也因此&#x…

java相关新技术

Java作为一种广泛应用的编程语言&#xff0c;其新技术层出不穷&#xff0c;为开发者提供了更多的工具和框架来构建高效、可扩展的应用程序。以下是一些当前比较热门的Java新技术 Java 17及更高版本&#xff1a; Java平台持续更新&#xff0c;每个新版本都带来了性能改进和新特…

C++学习笔记之类对象(一)

C学习笔记之类&对象&#xff08;一&#xff09; https://www.runoob.com/cplusplus/cpp-classes-objects.html 类是C的核心特性&#xff0c;为用户自定义的数据类型&#xff0c;可以在其中放入数据和函数作为成员&#xff0c;并且以此为模板&#xff0c;创建多个对象个体进…

三维世界的魅力:探索开源的Three.js案例

三维世界的魅力&#xff1a;探索开源的Three.js案例 原生Three.js 和 Cesium.js 案例 - 不断 - 只做开源 。 引言 在这个数字化时代&#xff0c;三维技术已经成为我们生活中不可或缺的一部分。无论是在游戏、电影制作、建筑设计还是虚拟现实中&#xff0c;三维技术都发挥…