#Prompt##提示词工程##AIGC##LLM# 学写Prompt 提示词 :使用大型预训练语言模型的关键考量_rawinst-程序员宅基地

技术标签: LLM入门教程笔记  语言模型  aigc  AIGC  自然语言处理  prompt  


如果有不清楚的地方可以评论区留言,我会给大家补上的!
本文包括:
Prompt 的一些行业术语介绍
Prompt 写好提示词的方法经验介绍(附示例教程)
LLM自身存在的问题(可以用Prompt解决的以及无法用Prompt解决的)

技术性能与策略

性能指标

  • 精确度 (Precision):选出的东西中,有多少是正确的。(准确-谨慎则高)
  • 召回率 (Recall):所有应该被挑选出来的东西中,实际上有多少被挑选出来了。(全面-宽松则高)
  • F1得分 (F1):同时考虑精确度和召回率,给出一个综合的评分。如果你的F1得分很高,那么你在挑选时既准确又全面。
  • 模板粘性 (Template Stickiness):在语言模型中,模板粘性描述的是模型在多次使用相同的提示或模板时,保持一致性的能力。高粘性意味着模型很可能重复使用相同的方式来回应,而低粘性意味着模型的回应可能会有更多的变化。(灵活则低)

输入方法

定向刺激提示与标准提示
定向刺激:需要特定信息或在特定情境下的问题
详细地说明,“这是一朵玫瑰,它有红色的花瓣和带刺的茎。” 你给予的信息是具体的、有方向的,旨在引导他更准确地识别玫瑰。
标准提示:普遍性回答的场景
“这是一朵花,你认为是什么种类?”这里你没有给出具体的指引,只是提出了一个开放式的问题。标准提示就是这样,它不包含额外的指导或信息,让模型自己去解释和回答。这种提示更加通用,可以适用于更多的情况,但可能不会像定向刺激提示那样引导出特定类型的回答。

输入:问题+文本+选项
输出:基本原理+回答
程序辅助语言模型 (PAL)

输入(用户提供):
提示(用户给模型):
我有一系列的数字:3, 7, 2, 8。我需要计算它们的总和。请写一个Python脚本来计算这些数字的总和。


输出(模型生成):
回答(模型给出的Python脚本):
# Python脚本来计算数字总和
numbers = [3, 7, 2, 8]
total_sum = sum(numbers)
print("数字的总和是:", total_sum)

提示词列表
随机指示必须出现的词语
(比如儿童list[
“王子”, “公主”, “巫婆”, “巨人”, “精灵”, “小动物”,
“魔法”, “魔法森林”, “魔法法杖”, “魔法咒语”,
“冒险”, “困难”, “危险”,
“友情”, “朋友”, “支持”, “关心”,
“爱情”, “浪漫”,
“家庭”, “亲子关系”,
“冒险之旅”, “未知世界”, “新朋友”,
“奇幻世界”, “仙境”, “仙女王国”, “奇幻森林”,
“教育”, “道德”, “品德”, “解决问题”,
“快乐结局”,
“魔毯”, “魔镜”, “魔法戒指”
])
训练数据、教科书式训练、扩充训练:目标受众对应训练数据不一样

策略定义与应用

  • Baseline: 标准使用,无特殊策略。
  • CoT (Chain of Thought): 提供推理链的示例来帮助模型分步骤解决问题。
  • Zero-CoT: 不提供示例,要求模型自发推理。
  • **Auto-CoT:**内部进行推理但不显示全部过程的系统。

Auto-CoT通常是通过训练过程中使用特定的数据集和训练策略来实现的,让模型学会在给出答案前先展现出解题的逻辑链条。

  • +inst (instructions): 添加说明以指导模型回答。
    • +rawinst: 用户直接提供指导。“请按照五段式论文的格式回答以下问题…”
    • +sysinst: 系统提供角色和任务说明。“作为一个旅行顾问,你应该提供…”
    • +bothinst: 指导分为用户消息和系统消息。
      | 简称 | 描述 | |
      | — | — | — |
      | Baseline | 标准的回答模式,不使用任何特别的指导或推理策略。 | “巴黎是哪个国家的首都?” -> “巴黎是法国的首都。” |
      | CoT | 展示解决问题的思考过程,通常用于复杂问题的逐步推理。 | “如果我有3个苹果,吃掉了一个,我还有几个?” -> “你开始有3个苹果,吃掉1个,所以3-1=2。你还有2个苹果。” |
      | Zero-CoT | 不展示推理过程,直接给出答案。 | “如果我有3个苹果,吃掉了一个,我还有几个?” -> “你还有2个苹果。” |
      | rawinst | 用户提供明确的指导来告诉模型如何回答问题。 | 用户提示: “用诗的形式告诉我太阳的重要性。” -> 模型回答: “太阳,天空的炽热之心…” |
      | sysinst | 系统提供的角色和任务说明,指导模型如何回答。 | 系统提示: “作为历史老师,解释一下法国大革命。” -> 模型回答: "法国大革命是…” |
      | bothinst | 结合用户和系统的指令来指导模型。 | 系统提示: “作为科学家…”, 用户提示: “…解释黑洞。” -> 模型回答: "黑洞是…” |
      | mock | 通过模拟对话来提供指令,通常用于角色扮演。 | “如果我是国王,你作为顾问会告诉我什么?” -> "陛下,我建议…” |
      | reit | 通过重复关键说明来强化指导。 | “请记住,每次回答都要提到数据。数据显示…” -> 模型每次回答时都会提及数据。 |
      | strict | 要求模型严格按照给定的模板回答。 | “按照五段论格式回答…” -> 模型回答会有明确的介绍、三个支撑段落和结论。 |
      | loose | 允许模型在给定的框架内自由发挥。 | “你可以自由地讨论关于月球的事实。” -> 模型提供了一系列有关月球的有趣事实。 |
      | right | 要求模型得出正确的结论,强调准确性。 | “确保你的回答是科学上正确的…” -> 模型回答时会重点确保信息的准确性。 |
      | info | 提供额外的信息以解决常见的推理失败。 | “考虑到地球是圆的,解释日落。” -> 模型会利用这个信息来解释日落。 |
      | name | 为模型提供一个名称,有助于在对话中建立身份和上下文。 | “你叫什么名字?” -> “你可以叫我Alex。” |
      | pos | 在查询之前向模型提供积极的反馈。 | “你之前的解释非常好,请继续这样解释…” -> 模型在后续的回答中会保持同样的风格。 |

实例说明

  • 用例分析:使用CoT策略提高解决数学问题的准确率。
  • 性能提升:在使用+bothinst策略时,F1得分提升至87.5%。
    | 提示修改 | 精确度(Precision) | 召回率(Recall) | F1得分(F1) | 模板粘性(Template Stickiness)模板粘性(模板粘性) |
    | — | — | — | — | — |
    | 基线 (Baseline)基线(Baseline) | 61.2 | 70.6 | 65.6 | 79% |
    | CoT | 72.6 | 85.1 | 78.4 | 87% |
    | Zero-CoT | 75.5 | 88.3 | 81.4 | 65% |
    | +rawinst | 80 | 92.4 | 85.8 | 68% |
    | +sysinst | 77.7 | 90.9 | 83.8 | 69% |
    | +bothinst | 81.9 | 93.9 | 87.5 | 71% |
    | +bothinst+mock | 83.3 | 95.1 | 88.8 | 74% |
    | +bothinst+mock+reit | 83.8 | 95.5 | 89.3 | 75% |
    | +bothinst+mock+reit+strict | 79.9 | 93.7 | 86.3 | 98% |
    | +bothinst+mock+reit+loose | 80.5 | 94.8 | 87.1 | 95% |
    | +bothinst+mock+reit+right | 84 | 95.9 | 89.6 | 77% |
    | +bothinst+mock+reit+right+info | 84.9 | 96.5 | 90.3 | 77% |
    | +bothinst+mock+reit+right+info+name+ | 85.7 | 96.8 | 90.9 | 79% |
    | +bothinst+mock+reit+right+info+name+pos | 86.9 | 97 | 91.7 | 81% |

文化考量与偏见

语言与文化关联

https://arxiv.org/pdf/2303.17466.pdf

  • 文化适应性:通过添加特定文化提示,减少模型回应的文化差异。
    • 英语与美国文化
    • 汉语与中国文化

文化偏见

https://arxiv.org/ftp/arxiv/papers/2303/2303.16281.pdf

  • GPT文化偏见问题:指出GPT等模型在处理不同文化背景的输入时可能存在的偏见。
  • 重要性:数字平台在社会领域的广泛影响和跨学科合作的必要性。

改进措施

  • 案例研究:分析数字平台如搜索引擎和社交媒体在文化表达上的差异。
  • 多学科合作:推动计算机科学与人文社会科学的交流合作。

模型的逻辑连贯性

GPT逻辑步骤

  • 跳步问题:连续逻辑步骤中的错误累积可能导致后续推理的准确率下降。

解决策略

  • 记忆性能提升:提高模型对前文记忆的保持能力,减少逻辑跳步问题。

不让GPT输出过多信息

https://www.promptingguide.ai/applications/pf
DO NOT SAY THINGS ELSE OK, UNLESS YOU DONT UNDERSTAND THE FUNCTION
只要输出……,其余不要输出。

案例

案例一

现在你是导演,我讲给你补充知识和示例,你需要为我的故事设计连续并且完整的多个镜头,并将这些镜头整理成文字给我。我将给你这个故事的剧本,请按照故事剧本里的内容,将故事剧本的内容进行分拆,并转化成摄像机从开始到结束的画面,分拆后的每一个画面作为一个镜头文本的内容。请注意,生成的镜头文本不要遗漏故事剧本里的内容,也不要重复地出现故事剧本的内容。保证你所设计的镜头,能让故事连贯、流畅、完整地展现

+inst (instructions)+sysinst: 系统提供角色和任务说明。
reit 通过重复关键说明来强化指导。

知识补充:
2.镜头语言,你需要有创意性地设计镜头语言,镜头语言包括镜头种类和镜头角度。镜头种类有以下几种:单人镜头、双人镜头、多人镜头、过肩镜头、主观镜头;镜头角度有以下几种:平视、俯视、仰视、航拍。

提示词列表

7.你需要分析故事剧本的内容,对每一个镜头发生的地点进行补充。请按照以下顺序逐次进行补充细化:1、地点的具体名词,如卧室的床、花园的角落、厕所的马桶、树木的树根等。2、地点的造型特点,如陈旧腐朽的、整洁干净的、凌乱的等。……

CoT

**示例:**第1场,第1镜
#剧本原文#:一群人围在药店柜台前,手中还提着塑料袋,塑料袋里装着各种感冒药与退烧药(非特写)。
#镜头语言#:[‘多人镜头’,‘平视’]
#关键词#:[‘药店’,‘群众’,‘塑料袋’,‘感冒药’,‘退烧药’,‘中年男人’,‘柜台’,‘不耐烦’,‘离开’,‘气愤’,‘大声喊叫’,‘混乱’,‘焦急’,‘挤向柜台’,‘叙事重点’,‘情绪高涨’,‘失控’]
……

strict 要求模型严格按照给定的模板回答。

案例二

逐步分析最后一句话表达的此时情况:

CoT

  1. 这段话里面出现的人物有几个
    输出要求:只用告诉我阿拉伯数字,不要输出其他内容
    输出示例:人物个数:2

strict 要求模型严格按照给定的模板回答。

……

  1. 人物之间最后所处的相对位置推理过程
    相对位置即人物间的距离和角度,人物分别在场景中的位置,可通过逐句推理获取相对位置,推理过程需要展示,小场景人物位置判断需要结合上下文。大场景人物位置需要按照上文推理。

info 提供额外的信息以解决常见的推理失败。
reit 通过重复关键说明来强化指导。

5.相对位置推理结论
输出要求:根据上面的推理过程获得最后的相对位置。无论结果是什么,位置信息具体描述 以外的多余内容不要输出。如果未提供相对位置且无法推测,请直接输出“无法确定”,其余内容不用输出

只要输出……,其余不要输出。

参考资料

www.promptingguide.ai
https://www.promptingguide.ai/applications/pf Prompt Engineering Guide
https://flowgpt.com/creative/stable-diffusion
https://arxiv.org/abs/2305.18189v1 标记角色:使用自然语言提示来衡量语言模型中的刻板印象
https://arxiv.org/abs/2301.01768 对话式人工智能的政治意识形态:ChatGPT 亲环境、左翼自由主义倾向的证据汇集
https://arxiv.org/abs/2303.16421 ChatGPT 是一个知识渊博但缺乏经验的求解器:大型语言模型中常识问题的调查
https://arxiv.org/abs/2304.05351 华尔街新手:针对多模式股票走势预测挑战的 ChatGPT 零样本分析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45312236/article/details/135482253

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签