还不知道怎么提示LLM?ChatGPT提示入门

文章目录

  • 简介:
    • 什么是人工智能?
    • 什么是提示过程?
    • 为什么会出现这样的差异?
  • 为什么需要提示过程?
    • 1) 文章摘要
    • 2) 数学问题求解
  • 如何进行提示过程?
    • 角色提示:
    • 多范例提示:
      • 无范例提示
      • 单范例提示
      • 多范例提示
    • 组合提示:
    • 规范化提示:
    • 风格提示:
  • 提示过程的应用
    • 写邮件:
    • 代码辅助:
    • 代码生成:
    • 代码注释:
    • Debug代码:
  • 总结:
  • 引用:

简介:

什么是人工智能?

从目的的角度出发,人工智能(AI)是人们创造的一些“聪明的”的算法,使得机器能够像人类一样“思考”。这些算法可以写论文、解决数学问题,并创造艺术。该领域的最新进展已经十分先进,以至于人工智能可以写出令人信服的销售邮件、新闻报道,甚至可以赢得艺术比赛。

什么是提示过程?

提示过程指的是人类如何指导 AI 执行任务,即指导人工智能执行任务的过程称为提示过程。我们向 AI 提供一组指令(提示),然后它执行任务。提示可以简单到一个问题,也可以复杂到多个段落。
而提示过程的好坏可以在很大程度上影响到AI大模型生成答案的能力!

为什么会出现这样的差异?

因为LLM本质上是自回归的语言模型,而自回归的语言模型训练是通过Decoder对每个词的位置只可见前面位置的词这样的Mask Self-Attention的形式来计算并生成的,每个词对后面未来的词是不可见的,简而言之,就是当前词的生成依赖于前面已经生成的文本,而这个过程是自回归模型结构决定的。
举个例子,如下图:
在这里插入图片描述

在自回归模型解码生成上面一句话的过程中,解码器是如何训练计算loss的呢?
<s>,北,京,欢,迎,你这个例子做生成过程来解释。(<s>为起始词,为结束词)
训练时:
把“<s> 北,京,欢,迎,你”的word embedding和position embedding处理后后输入到decoder中去,而用于指导其每个位置生成的ground-truth应该是 “北,京,欢,迎,你,”

  1. 将<s> 作为decoder的初始输入,将decoder的最大概率输出词向量A1和‘北’做cross entropy(交叉熵)计算error。
  2. 将<s>,“” 作为decoder的输入,将decoder的最大概率输出词 A2 和‘京’做cross entropy计算error。
  3. 将<s>,“北”,“京” 作为decoder的输入,将decoder的最大概率输出词A3和’欢’ 做cross entropy计算error。
  4. 将<s>,“北”,“京”,“欢” 作为decoder的输入,将decoder最大概率输出词A4和‘迎’做cross entropy计算error。
  5. 将<s>,“北”,“京”,“欢” ,“迎” 作为decoder的输入,将decoder最大概率输出词A5和‘你’做cross entropy计算error。
  6. 将<s>,**“北”,“京”,“欢” ,“迎” ,“你”**作为decoder的输入,将decoder最大概率输出词A5和结束词做cross entropy计算error。
    那么并行的时候是怎么做的呢,我们会有一个mask矩阵在这叫sequence mask,因为他起到的作用是在decoder编码我们的target sequence的时候对每一个词的生成遮盖它之后的词的信息,形状上图所示。
    这也就是为什么LLM可以用海量的数据进行自回归模型的训练,因为每个token的解码是可以并行的,这也是RNN无法做到的,唯一的挑战就是对于GPU的资源消耗。
    同时,因为LLM训练和生成解码的自回归特性,如何使用有效的提示过程,就可以让LLM在解码的时候捕捉到更加丰富的“前情提要”信息,从而生成出更加准确且连贯的答案!

为什么需要提示过程?

以下是两个提示的示例:

1) 文章摘要

假设你正在阅读一篇关于佛罗里达州降雪的文章。你想快速了解文章的主要内容,因此你向 AI 展示你正在阅读的内容,并要求进行摘要:
佛罗里达州很少下雪,特别是在中部和南部地区。除了州的极北部地区外,佛罗里达州大部分主要城市都没有记录到可测量的降雪量,尽管记录到了少量的痕迹,或者每个世纪观测到几次空气中的飘雪。根据国家气象局的数据,在佛罗里达群岛和基韦斯特群岛自欧洲殖民以来没有发生过飘雪的情况,已有超过300年时间。在迈阿密、劳德代尔堡和棕榈滩,超过200年中只有一次关于在空气中观察到飘雪的报告,发生在1977年1月。在任何情况下,自这次1977年的事件以来,迈阿密、劳德代尔堡和棕榈滩都没有看到过飘雪的情况。

以下是 AI 的回复。更简洁易读!
佛罗里达州很少下雪,除了州的极北部地区外,在过去的200年中迈阿密、劳德代尔堡和棕榈滩这些主要城市中只有一次观察到空气中飘雪的报告。

2) 数学问题求解

如果你有一个数学方程,想让语言模型来解决,你可以通过提问 “数学方程等于几” 来输入提示。
对于一个给定的问题,你的完整提示可能是这样的:
965 * 590 等于几?

对于这个提示,GPT-3(一种 AI 模型)有时会回答 569,050(不正确)。
而如果我们不是问965 * 590 等于几?,而是问确保你的答案完全正确。965*590 等于几?确保你的答案完全正确:,GPT-3 将会回答 569,350(正确)这就是提示工程的重要性所在。

如何进行提示过程?

有很多种提示方式

角色提示:

一种提示技术是给 AI 分配一个角色。例如,你的提示可以以"你是一名医生"或"你是一名律师"开始,然后要求 AI 回答一些医学或法律问题。举个例子:
你是一个能解决世界上任何问题的杰出数学家。试着解决下面的问题:100100/40056 是多少?

AI (GPT-3 davinci-003) 的答案:
答案是 1400。

例如:
我想让你充当软件开发人员。我将提供一些关于 Web 应用程序要求的具体信息,您的工作是提出用于使用 Golang 和 Angular 开发安全应用程序的架构和代码。我的第一个要求是’我想要一个允许用户根据他们的角色注册和保存他们的车辆信息的系统,并且会有管理员,用户和公司角色。我希望系统使用 JWT 来确保安全。

更多角色提示语句见

  • 中文:150种ChatGPT最佳实践提示模版
  • 英文:Awesome ChatGPT Prompts

多范例提示:

多范例提示(few shot prompting), 这种策略将为模型展示一些例子(shots),从而更形象地描述你的需求。通过给出少量例子来对模型进行提示,从而使得模型快速得到想要的结果模式,从而在指定的范式下生成

不同类型的范例提示
单词 shot 在该场景下与 example(范例) 一致。除了多范例提示(few-shot prompting)之外,还有另外两种不同的类型。它们之间唯一的区别就是你向模型展示了多少范例。
类型:

  • 无范例提示(0 shot prompting): 不展示范例
  • 单范例提示(1 shot prompting): 只展示 1 条范例
  • 多范例提示(few shot prompting): 展示 2 条及以上的范例

无范例提示

无范例提示是最基本的提示形式。它仅仅是向模型展示提示信息,没有提供任何示例,并要求其生成回答。因此,你到目前为止看到的所有指令和角色提示都属于无范例提示。无范例提示的另一个例子是:
Add 2+2:

这是无范例提示,因为我们没有向模型展示任何完整的示例。

单范例提示

单范例提示是向模型展示一个示例。例如:
Add 3+3: 6
Add 2+2:

我们仅向模型展示了一个完整的示例(“Add 3+3: 6”),因此这是一个单范例提示。

多范例提示

多范例提示是向模型展示2个或更多示例。例如:
Add 3+3: 6
Add 5+5: 10
Add 2+2:

这是我们向模型展示了至少2个完整的示例(“Add 3+3: 6”和“Add 5+5: 10”)。通常,展示给模型的示例越多,输出结果就越好,因此在大多数情况下,多范例提示比另外两种提示更受欢迎。

组合提示:

以下是一个包含上下文、指令以及多示例提示的例子:
Twitter是一个社交媒体平台,用户可以发布称为“推文”的短消息。推文可以是积极的或消极的,我们希望能够将推文分类为积极或消极。以下是一些积极和消极推文的例子。请确保正确分类最后一个推文。
Q: 推文: "今天真是美好的一天!"这条推文是积极的还是消极的?
A: 积极的
Q: 推文: 我讨厌这个班级"这条推文是积极的还是消极的?
A: 消极的
Q: 推文: “我喜欢牛仔裤上的口袋”
A:

通过添加额外的上下文和示例,我们通常可以提高人工智能在不同任务上的表现。

规范化提示:

以下是在一个提示中将时常看到的一些组成部分:

  • 角色
  • 指令/任务
  • 问题
  • 上下文
  • 示例(few shot)
    我们发现,通过规范这样的语句往往可以提升LLM回答的准确程度
    例如:
    假如你是一名Python程序员。
    请编写python代码,生成3个单词数组(每个数组6个单词)分别包括介词、动词和名词,名词也用作直接宾语,从中选出指定的词组成一个句子,并确保可以执行。

输出结果可能像下面一样:
import random
prepositions = [‘at’, ‘in’, ‘on’, ‘with’, ‘under’, ‘over’]
verbs = [‘run’, ‘jump’, ‘dance’, ‘sing’, ‘laugh’, ‘cry’]
nouns = [‘cat’, ‘dog’, ‘tree’, ‘flower’, ‘book’, ‘computer’]

preposition = random.choice(prepositions)
verb = random.choice(verbs)
noun = random.choice(nouns)

madlib = f"I {verb} {preposition} the {noun}."

print(madlib)

风格提示:

风格指导就是要求 AI 以某种特定的风格来表达。如果没有给出风格指导的问题,ChatGPT 通常会返回一两个短段落的回答,少数需要更长的回答时会返回更多内容。
一个更详细的风格提示的例子可能是:
[问题]“以拥有20多年经验和多个博士学位的[领域]专家的风格和水平写作。在回答中优先考虑有建设性的、不太知名的建议。使用详细的例子进行解释,尽量少离题和耍幽默。“
使用风格输入提示将大大提高回答的质量!
思维链提示:
思维链(CoT)提示过程是一种最近开发的提示方法,它鼓励大语言模型解释其推理过程。下图显示了 few shot standard prompt(左)与链式思维提示过程(右)的比较。

常规提示过程 vs 思维链提示过程(Wei et al.)
思维链的主要思想是通过向大语言模型展示一些少量的 exemplars,在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。由浅入深,提升问题质量
例子:
哪种方法是更快的回家方式?
选项1:乘坐10分钟的公共汽车,然后40分钟的公共汽车,最后10分钟的火车。
选项2:乘坐90分钟的火车,然后骑行45分钟,最后10分钟的公共汽车。

选项1需要60分钟,即10+40+10

提示过程的应用

学会一些提示语句还需要在具体的实战中应用,提升工作效率

写邮件:

想象一下,有一天你生病了,不能去上班。这里有一个简单的提示,可以写一封电子邮件给你的老板,告诉他们你病了。
我的名字:克洛丝
老板的名字:凯尔希

写一封严肃、专业的电子邮件给我的老板,告诉他我今天因为生病不能上班。请简洁明了:

AI生成:
尊敬的凯尔希先生:

我是克洛丝,很抱歉地通知您,我今天因为生病不能上班。我会尽快恢复健康,并尽快回到工作岗位。

谢谢您的理解,

克洛丝

代码辅助:

作为程序员,生成代码,注释代码,debug代码都是效率很低的事情,那在ChatGPT的帮助下,我们可以做到更高效地完成这些操作

代码生成:

和上述例子相同:
假如你是一名Python程序员。
请编写python代码,生成3个单词数组(每个数组6个单词)分别包括介词、动词和名词,名词也用作直接宾语,从中选出指定的词组成一个句子,并确保可以执行。

代码注释:

你可以要求ChatGPT为你的代码添加注释,并对其进行格式化以便阅读。在你的提示词指令之后,添加三个#号,然后粘贴你想要它清理的代码:
假如你是一名Python程序员。 请将下列Python代码添加行注释并重新构造代码结构以使其易于阅读:

Debug代码:

ChatGPT不仅可以检测代码中的语法错误,还可以找到执行代码时会出现的逻辑错误。下面是一个Python脚本的例子,由于第3行的逻辑错误,在第4行最终会导致“除以零”错误。尝试使用以下简单的提示词来查找并修复错误:
假如你是一名资深的程序员,负责python程序的开发,请debug此Python代码,找出错误:

当然,提示学习有很多很多有趣的应用,我们可以使用一些公开的提示文档进行使用,从而提升工作效率

总结:

GPT不止是技术,会带来一场产业革命;AI替代不了人,但会用AI的人能替代你。

引用:

Transformer解读:https://blog.csdn.net/fs1341825137/article/details/120247499?spm=1001.2014.3001.5501
提示工程学习文档:https://www.promptingguide.ai/zh
https://learnprompting.org/zh-Hans/docs/intro
github开源项目:https://github.com/dair-ai/Prompt-Engineering-Guide
思维链提示论文:Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia,
F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting
Elicits Reasoning in Large Language Models.

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

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

相关文章

Redis-设置密码linux服务器

操作步骤 打开Redis的配置文件&#xff0c;通常位于 /etc/redis/redis.conf。在配置文件中找到 #requirepass 或 requirepass 的行&#xff0c;如果存在的话&#xff0c;取消行首的注释符号 #。将密码设置为你想要的值&#xff0c;例如 requirepass YourPassword。确保将 Your…

Gitlab 安装全流程

Version&#xff1a;gitlab-ce:16.2.4-ce.0 简介 Gitlab 是一个开源的 Git 代码仓库系统&#xff0c;可以实现自托管的 Github 项目&#xff0c;即用于构建私有的代码托管平台和项目管理系统。系统基于 Ruby on Rails 开发&#xff0c;速度快、安全稳定。它拥有与 Github 类似…

Android AppCompatActivity标题栏操作

使用 AndroidStudio 新建的工程默认用 AppCompatActivity &#xff0c;是带标题栏的。 记录下 修改标题栏名称 和 隐藏标题栏 的方法。 修改标题栏名称 Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R…

龙讯旷腾PWmat已部署至曙光智算平台

编者荐语&#xff1a; 近期&#xff0c;龙讯旷腾核心产品PWmat已成功部署至曙光智算AC.sugon.com平台&#xff0c;可为用户提供包括分子建模、第一性原理计算、数据可视化等在内的完备的超级计算云服务&#xff0c;让大家能够轻松上手具有完全自主知识产权的大尺度高性能材料计…

详解Spring的循环依赖问题、三级缓存解决方案源码分析

0、基础&#xff1a;Bean的生命周期 在Spring中&#xff0c;由于IOC的控制反转&#xff0c;创建对象不再是简单的new出来&#xff0c;而是交给Spring去创建&#xff0c;会经历一系列Bean的生命周期才创建出相应的对象。而循环依赖问题也是由Bean的生命周期过程导致的问题&#…

Hyperf 如何做到用两个端口 9501/9502 都能连接 Websocket 服务以及多 Worker 协作实现聊天室功能

为何 Hyperf 能够在两个端口上监听 WebSocket 连接&#xff1f; 源码角度来看&#xff0c;在配置了多个 Servers 时&#xff0c;实际上&#xff0c;只启动了一个 Server 注&#xff1a;我之前接触的代码都是启动一个服务绑定一个端口&#xff0c;之前也看过 swoole 扩展的文档…

SpringBoot 配置优先级

一般而言&#xff0c;SpringBoot支持配置文件进行配置&#xff0c;即在resources下的application.properties或application.yml。 关于配置优先级而言&#xff0c; application.properties>application.yml>application.yaml 另外JAVA程序程序还支持java系统配置和命令行…

PHP实现轻量级WEB服务器接收HTTP提交的RFID刷卡信息并回应驱动读卡器显示播报语音

本示例使用的读卡器&#xff1a;RFID网络WIFI无线TCP/UDP/HTTP可编程二次开发读卡器POE供电语音-淘宝网 (taobao.com) <?php mb_http_output(utf-8); $port88; $socket socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $bool socket_bind($socket, "0.0.0.0",…

html表格中加入斜线,使用css给table表格表头单元格添加斜线

背景&#xff1a;业务给了90张word电子表格&#xff0c;需要用html设计出来。 如图所示&#xff0c;红色区域的下斜线如何实现&#xff1f; 先说结论&#xff1a;html中table没有直接的斜线表头标签&#xff0c;但结合css、svg之类的可以实现。 #lineTd{ background:#FFFFFF u…

卷积神经网络——上篇【深度学习】【PyTorch】【d2l】

文章目录 5、卷积神经网络5.1、卷积5.1.1、理论部分5.1.2、代码实现5.1.3、边缘检测 5.2、填充和步幅5.2.1、理论部分5.2.2、代码实现 5.3、多输入多输出通道5.3.1、理论部分5.3.2、代码实现 5.4、池化层 | 汇聚层5.4.1、理论部分5.4.2、代码实现 5、卷积神经网络 5.1、卷积 …

Elasticsearch学习

1、什么是Elasticsearch? Elaticsearch&#xff0c;简称为 ES&#xff0c; ES 是一个开源的高扩展的分布式全文搜索引擎&#xff0c; 是整个 ElasticStack 技术栈的核心。可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats&#xff0…

Hope.money:新兴DeFi项目如何重新定义稳定币生态的未来?

联储加息导致金融市场紧缩&#xff0c;Terra、3AC、FTX等知名中心化机构未能妥善应对而暴雷&#xff0c;并重创了整个加密货币市场&#xff0c;导致参与者损失惨重。这些事件揭示了中心化机构的局限&#xff0c;投资者对其资产掌控权的担忧愈发强烈。 自2018年首个DeFi协议Com…

简单介绍 CPU 的工作原理

内部架构 CPU 的根本任务就是执行指令&#xff0c;对计算机来说最终都是一串由 0 和 1 组成的序列。CPU 从逻辑上可以划分成 3 个模块&#xff0c;分别是控制单元、运算单元和存储单元 。其内部架构如下&#xff1a; 【1】控制单元 控制单元是整个CPU的指挥控制中心&#xff…

2023年Java核心技术面试第二篇(篇篇万字精讲)

目录 四. 强引用&#xff0c;软引用&#xff0c;弱引用&#xff0c;幻象引用之间的区别&#xff1f; 1.前言 2.强引用 2.1 强引用赋值为null 2.2 超过了引用的作用域 2.2.1 描述&#xff1a; 2.2.2 作用域内&#xff1a; 2.2.3 不在作用域内: 3. 软引用&#xff08;SoftRefere…

华为云classroom赋能--Toolkit系列插件DevSecOps助力开发者提速

一、前言 DevOps的概念想必大家都不陌生&#xff0c;它是一组过程、方法与系统的统称&#xff0c;通过它可以对交付速率、协作效率、部署频率速率、质量、安全和可靠性等进行提升改善。相比传统的软件开发模式&#xff0c;它是一种工作方式和文化的转变&#xff0c;把开发者和…

C++笔记之注册的含义

C笔记之注册的含义 code review! 文章目录 C笔记之注册的含义1.注册对象到Qt的信号槽系统中2.注册函数到Qt的元对象系统中元对象系统例1例2 3.注册自定义类型到C STL容器中4.将函数指针传递给另一个类&#xff0c;注册回调函数class ICallback存在的意义例1&#xff0c;用于说…

Python Opencv实践 - 图像中值滤波

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) print(img.shape) pixel_count img.shape[0] * img.shape[1] print(pixel_count)#为图像添加椒盐噪声 #参考资料&#xf…

Java中异常的详细讲解与细节讨论

用一个代码引出异常为什么要使用异常 代码&#xff1a; public static void main(Sting args[]){int n1 1;int n2 0;System.out.println(n1/n2);//这里会抛ArihmaticException,因为除数不能为0,若未用异常处理机制则程序直接结束&#xff0c;后面的代码将不执行。这样很不好…

windows ipv4 多ip地址设置,默认网关跃点和自动跃点是什么意思?(跃点数)

文章目录 Windows中的IPv4多IP地址设置以及默认网关跃点和自动跃点的含义引言IPv4和IPv6&#xff1a;简介多IP地址设置&#xff1a;Windows环境中的实现默认网关跃点&#xff1a;概念和作用自动跃点&#xff1a;何时使用&#xff1f;关于“跃点数”如何确定应该设置多少跃点数&…

我的创作纪念日(C++修仙练气期总结)

分享自己最喜欢的一首歌&#xff1a;空想フォレスト—伊東歌詞太郎 机缘 现在想想自己在CSDN创作的原因&#xff0c;一开始其实就是想着拿着博客当做自己的学习笔记&#xff0c;笔记嘛&#xff0c;随便写写&#xff0c;自己看得懂就ok了的态度凸(艹皿艹 )。也是用来作为自己学习…