LLM提示词工程和提示词工程师Prompting and prompt engineering

news/2024/7/7 23:59:04

你输入模型的文本被称为提示,生成文本的行为被称为推断,输出文本被称为完成。用于提示的文本或可用的内存的全部量被称为上下文窗口。尽管这里的示例显示模型表现良好,但你经常会遇到模型在第一次尝试时无法产生你想要的结果的情况。你可能需要多次修改提示中的语言或其编写方式,以使模型按照你想要的方式行为。这种开发和改进提示的工作被称为提示工程。
在这里插入图片描述

这是一个大话题。但是,一种强大的策略是在提示中包括你希望模型执行的任务的示例,以使模型产生更好的结果。

在上下文窗口中提供示例被称为上下文学习。让我们看看这个术语是什么意思。通过上下文学习,你可以通过在提示中包括示例或额外数据来帮助LLMs更多地了解所询问的任务。这里有一个具体的例子。在这里的提示中,你要求模型对评论进行情感分类。因此,这部电影的评论是积极的还是消极的,提示包括指令“对此评论进行分类”,然后是一些上下文,这种情况下是评论文本本身,以及在最后生成情感的指令。这种方法,将你的输入数据包括在提示中,被称为零次推断。最大的LLMs在这方面表现得非常好,掌握了要完成的任务,并返回了一个好答案。在这个示例中,模型正确地识别了情感为积极的。
在这里插入图片描述

另一方面,较小的模型可能会在这方面遇到困难。这里是GPT-2生成的一个完成示例,GPT-2是ChatGPT的早期较小版本的模型。如你所见,模型没有遵循指令。尽管它确实生成了与提示相关的文本,但模型无法弄清楚任务的细节,并且没有识别情感。这就是在提示中提供示例可以提高性能的地方。
在这里插入图片描述

如你所见,提示文本更长了,现在以一个完成的示例开始,该示例向模型展示了要执行的任务。在指定模型应对评论进行分类之后,提示文本包括了一个样本评论。我喜欢这部电影,然后是一个完成的情感分析。在这种情况下,评论是积极的。接下来,提示再次说明了指令,并包括了我们希望模型分析的实际输入评论。你将这个新的更长的提示传递给较小的模型,该模型现在有更好的机会理解你指定的任务和你想要的响应格式。包括单个示例被称为一次推断,与你之前提供的零次提示形成对比。
在这里插入图片描述

有时,单个示例可能不足以让模型学习你希望它执行的操作。因此,你可以扩展给出单个示例的想法,以包括多个示例。这被称为少次推断。这里,你正在使用一个甚至更小的模型,该模型在一次推断中未能很好地进行情感分析。相反,你将尝试通过包括第二个示例来进行少次推断。这次是一个消极的评论,包括不同输出类的示例组合可以帮助模型了解它需要做什么。你将新的提示传递给模型。这次它理解了指令,并生成了一个正确识别评论情感为消极的完成。
在这里插入图片描述

所以,总结一下,你可以设计你的提示来鼓励模型通过示例学习。尽管最大的模型在零次推断中表现得很好,但较小的模型通常只擅长少数任务。
在这里插入图片描述

通常,这些任务与它们接受培训的任务相似。你可能需要尝试几个模型来找到适合你的用例的模型。找到适合你的模型后,你可以尝试一些设置,以影响模型生成的完成的结构和样式。让我们在下一个视频中看一下其中的一些配置设置。
在这里插入图片描述

参考

https://www.coursera.org/learn/generative-ai-with-llms/lecture/ZVUcF/prompting-and-prompt-engineering


http://lihuaxi.xjx100.cn/news/1465254.html

相关文章

语法篇--XML数据传输格式

一、XML概述 1.1简介 XML,全称为Extensible Markup Language,即可扩展标记语言,是一种用于存储和传输数据的文本格式。它是由W3C(万维网联盟)推荐的标准,广泛应用于各种系统中,如Web服务、数据…

图床项目进度(一)——UI首页

1. 前言 前面我不是说了要做一个图床吗,现在在做ui。 我vue水平不够高,大部分参考b站项目照猫画虎。 vue实战后台 我使用ts,vite,vue3进行了重构。 当然,我对这些理解并不深刻,许多代码都是游离于表面&am…

jps(JVM Process Status Tool):虚拟机进程状况工具

jps(JVM Process Status Tool):虚拟机进程状况工具 列出正在运行的虚拟机进程,并显示虚拟机执行主类名称(Main Class,main()函数所在的类)以及这些进程的本地虚拟机唯一ID(LVMID&am…

Dubbo之Wrapper源码解析

功能概述 为了减少反射的调用&#xff0c;Dubbo会为每个服务提供者的实现生成一个Wrapper类&#xff0c;通过Wrapper类去调用真正的接口实现类。 功能分析 核心类Wrapper分析 主要成员变量分析 private static final Map<Class<?>, Wrapper> WRAPPER_MAP ne…

Kubernetes 使用 Rancher 管理

K8S集群管理工具 只能管理单个K8S集群 kubectl命令行管理工具 dashboard&#xff08;K8S官方的UI界面图形化管理工具&#xff09; &#xff08;管理多集群很麻烦&#xff0c;切换不同集群每次需要更改kube-config文件[kubectl配置文件]&#xff0c;如果kubeadm部署每次都需…

漏洞指北-VulFocus靶场专栏-中级02

漏洞指北-VulFocus靶场专栏-中级02 中级005 &#x1f338;thinkphp lang 命令执行&#xff08;thinkphp:6.0.12&#xff09;&#x1f338;step1&#xff1a;burp suite 抓包 修改请求头step2 修改成功&#xff0c;访问shell.php 中级006 &#x1f338;Metabase geojson任意文件…

每日一题——螺旋矩阵

题目 给定一个m x n大小的矩阵&#xff08;m行&#xff0c;n列&#xff09;&#xff0c;按螺旋的顺序返回矩阵中的所有元素。 数据范围&#xff1a;0≤n,m≤10&#xff0c;矩阵中任意元素都满足 ∣val∣≤100 要求&#xff1a;空间复杂度 O(nm) &#xff0c;时间复杂度 O(nm)…

Redis手动实现分布式锁-Demo

1、pom文件依赖 <!--引入Redis操作依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2、具体实现 package com.xch;import org.spring…