AI实践与学习2_提示词工程(PE)学习与实践

前言

想要GPT模型回答的更好,更好的应用在业务场景中,需要考虑Prompt的写法规则、模型参数、渲染方式(流式响应)等

下面主要结合开源文档梳理一些写Prompt的一些技巧。

https://learningprompt.wiki/zh-Hans/docs/chatgpt-learning-path
https://www.promptingguide.ai/zh

目录

  • PE基础知识
  • PE高级
  • 结合业务实践

1、PE基础知识

基本原则

  • 使用新模型
  • Prompt最好包含完整信息
  • Prompt简洁易懂并减少歧义
  • Prompt使用正确的语法、标点符号。

使用技巧

  • 优先告诉要干什么,然后才是不要干什么
  • 增加示例
  • 增加场景以及人物角色

2、PE高级

2.1、提示词元素框架

1、Basic Prompt Framework应该包含4个部分

  • Instruction(必须): 指令,即你希望模型执行的具体任务。
  • Context(选填): 背景信息,或者说是上下文信息,这可以引导模型做出更好的反应。
  • Input Data(选填): 输入数据,告知模型需要处理的数据。
  • Output Indicator(选填): 输出指示器,告知模型我们要输出的类型或格式。

在写Prompt的时候,并不一定要包含所有4个元素,可以根据情景进行元素排列组合

  • 推理:Instruction + Context + Input Data
  • 信息提取:Instruction + Context + Input Data + Output Indicator

2、CRISPE Prompt Framework应该包含6个部分,完备性更高

  • CR: Capacity and Role(能力与角色)。你希望 ChatGPT 扮演怎样的角色。
  • I: Insight(洞察力),背景信息和上下文(坦率说来我觉得用 Context 更好)。
  • S: Statement(指令),你希望 ChatGPT 做什么。
  • P: Personality(个性),你希望 ChatGPT 以什么风格或方式回答你。
  • E: Experiment(尝试),要求 ChatGPT 为你提供多个答案。

举例

Capacity and RoleAct as an expert on software development on the topic of machine learning frameworks, and an expert blog writer.把你想象成机器学习框架主题的软件开发专家,以及专业博客作者。
InsightThe audience for this blog is technical professionals who are interested in learning about the latest advancements in machine learning.这个博客的读者主要是有兴趣了解机器学习最新进展技术的专业人士。
StatementProvide a comprehensive overview of the most popular machine learning frameworks, including their strengths and weaknesses. Include real-life examples and case studies to illustrate how these frameworks have been successfully used in various industries.提供最流行的机器学习框架的全面概述,包括它们的优点和缺点。包括现实生活中的例子,和研究案例,以说明这些框架如何在各个行业中成功地被使用。
PersonalityWhen responding, use a mix of the writing styles of Andrej Karpathy, Francois Chollet, Jeremy Howard, and Yann LeCun.在回应时,混合使用 Andrej Karpathy、Francois Chollet、Jeremy Howard 和 Yann LeCun 的写作风格。
ExperimentGive me multiple different examples.给我多个不同的例子。

2.2、模型的Zero-shot特性技巧

Zero-Shot Chain of Thought意思是模型的输出结果是一步步链式形成的,这个技巧使用起来非常简单,只需要在问题的结尾里放一句** Let‘s think step by step (让我们一步步地思考)**,模型输出的答案会更加准确。

这个技巧来自于 Kojima 等人 2022 年的论文 Large Language Models are Zero-Shot Reasoners。在论文里提到,当我们向模型提一个逻辑推理问题时,模型返回了一个错误的答案,但如果我们在问题最后加入 Let‘s think step by step 这句话之后,模型就生成了正确的答案。

2.3、其他相关参数

  1. Mode: 最近更新了第四种 Chat 模式,一般使用 Complete 就好,当然你可以用其他模式,其他模式能通过 GUI 的方式辅助你撰写 prompt。
  2. Model: 这里可以切换模型。不同的模型会擅长不同的东西,根据场景选对模型,能让你省很多成本:
    1. Ada:这是最便宜,但运算速度最快的模型。官方推荐的使用场景是解析文本,简单分类,地址更正等。
    2. Babbage:这个模型能处理比 Ada 复杂的场景。但稍微贵一些,速度也比较快。适合分类,语义搜索等。
    3. Curie:这个模型官方解释是「和 Davinci 一样能力很强,且更便宜的模型」。但实际上,这个模型非常擅长文字类的任务,比如写文章、语言翻译、撰写总结等。
    4. Davinci:这是 GPT-3 系列模型中能力最强的模型。可以输出更高的质量、更长的回答。每次请求可处理 4000 个 token。适合有复杂意图、因果关系的场景,还有创意生成、搜索、段落总结等。
  3. Temperature: 这个主要是控制模型生成结果的随机性。简而言之,温度越低,结果越确定,但也会越平凡或无趣。如果你想要得到一些出人意料的回答,不妨将这个参数调高一些。但如果你的场景是基于事实的场景,比如数据提取、FAQ 场景,此参数就最好调成 0。
  4. Maximum length: 设置单次生成内容的最大长度。
  5. Stop Sequence: 该选项设置停止生成文本的特定字符串序列。如果生成文本中包含此序列,则模型将停止生成更多文本。
  6. Top P: 该选项是用于 nucleus 采样的一种技术,它可以控制模型生成文本的概率分布,从而影响模型生成文本的多样性和确定性。如果你想要准确的答案,可以将它设定为较低的值。如果你想要更多样化的回复,可以将其设得高一些。
  7. Presence Penalty: 该选项控制模型生成文本时是否避免使用特定单词或短语,它可以用于生成文本的敏感话题或特定场景。
  8. Best of: 这个选项允许你设置生成多少个文本后,从中选择最优秀的文本作为输出。默认为 1,表示只生成一个文本输出。
  9. **Injection start text: **这个选项可以让你在输入文本的开头添加自定义文本,从而影响模型的生成结果。
  10. **Injection restart text: **这个选项可以让你在中间某个位置添加自定义文本,从而影响模型继续生成的结果。
  11. **Show probabilities: **这个选项可以让你查看模型生成每个单词的概率。打开此选项后,你可以看到每个生成的文本单词后面跟着一串数字,表示模型生成该单词的概率大小。

3、实践

如提示词模板

作为 `%s` 学科的教师,你正在准备一道考试题目,你要做的是:理解并解答这到题,
将这道题的答案和解析正确的写出来,一定要保证答案正确性!
题目为:`%s`, 题型为:`%s`。
要求:
(1)回答请使用简洁的中文。
(2)答案和解析内容之间加一个分号保持格式整洁。
(3)如果是选择题请正确给出正确答案对应的选项。

结合以上规则对其进行优化

参考CRISPE Prompt Framework

Capacity and Role把你想象成一位 %s 学科的教师以及义教育界知识储备丰富的学者。
Insight这个教师、学者的工作主要分析并理解在校学生提出的试题,然后给出该试题的答案与解析。
Statement根据试题场景正确解答试题 %s,让我们一步步思考,并给出解析论证答案的正确性质。
Personality在回应时,使用简洁的中文参照%s格式。
Experiment如果是试题是选择题需要给出正确的选项。
把你想象成一位 `%s` 学科的教师以及义教育界知识储备丰富的学者。
这个教师、学者的工作主要分析并理解在校学生提出的试题,然后给出该试题的答案与解析。
根据试题场景正确解答试题 `%s`,让我们一步步思考,并给出解析论证答案的正确性质。
在回应时,使用简洁的中文参照 `%s` 格式。
如果是试题是选择题需要给出正确的选项。

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

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

相关文章

网络机顶盒什么牌子好?内行盘点最新网络机顶盒排行榜

网络机顶盒是我们使用率最高的数码产品,因工作关系经常会有朋友问我网络机顶盒什么牌子好,怎么挑选网络机顶盒?今天要介绍的是目前业内最新发布的网络机顶盒排行榜,不懂行的朋友们可以以此作为参考。 第一名:泰捷WEBOX…

CocoaPods podfile 文件配置

记录一下关于 CocoaPods podfile 文件配置 指定源(Source) 默认情况下,在全局级别指定的源将按照依赖项匹配指定的顺序进行搜索。 对于特定的依赖,可以单独指定依赖源: pod PonyDebugger, :source > https://github.com/CocoaPods/Specs.git使用字库…

【Java并发编程九】同步控制

ReentrantLock(重入锁) ReentrantLock的基本使用 ReentrantLock可以自己决定加锁的位置和解锁的位置。 package myTest;import java.util.ArrayList; import java.util.concurrent.locks.ReentrantLock;public class myTest implements Runnable{// 重入锁public static Reen…

CISP模拟试题(三)

免责声明 文章仅做经验分享用途,利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!!! 1. 人们对信息安全的认识从信息技术安全发展到信息安全保障,主要是由于: A.为了更好地完成组…

毕业设计ASP.NET 2368酒店信息管理系统【程序源码+文档+调试运行】

一、摘要 本文旨在设计并实现一个功能全面、易于使用的酒店信息管理系统。系统将管理员、客户和前台客服三种用户的需求纳入考虑,并针对每种用户设计了相应的功能模块。系统功能包括用户管理、客户管理、客房管理、商品管理、客房预订管理、入住管理和系统管理。此…

【JS】Chapter13-构造函数数据常用函数

站在巨人的肩膀上 黑马程序员前端JavaScript入门到精通全套视频教程,javascript核心进阶ES6语法、API、js高级等基础知识和实战教程 (十三)构造函数&数据常用函数 1. 深入对象 1.1 创建对象三种方式 利用对象字面量创建对象const o {…

Android跨进程通信,IPC,RPC,Binder系统,C语言应用层调用

文章目录 Android跨进程通信,IPC,RPC,Binder系统,C语言应用层调用()1.概念2.流程3.bctest.c3.1 注册服务,打开binder驱动3.2 获取服务 4.binder_call Android跨进程通信,IPC&#xf…

Linux 下集成开发环境 – PyCharm介绍

介绍 在这篇指南中,我将向你介绍一个集成开发环境 - PyCharm, 你可以在它上面使用 Python 编程语言开发专业应用。 Python 是一门优秀的编程语言,因为它真正实现了跨平台,用它开发的应用程序在 Windows、Linux 以及 Mac 系统上均…

Redis-核心数据结构

五种数据结构 String结构 String结构应用场景 Hash结构 Hash结构应用场景 List结构 List结构应用场景 Set结构 Set结构应用场景 ZSet有序结构 ZSet有序结构应用场景

智能井盖传感器功能有哪些?

智能井盖传感器是一种集成了多种先进技术的传感器设备,旨在强化城市的公共安全,确保城市基础设施的稳定运作。这种传感器具有多种功能,例如实时监测井盖状态、监测井下气体等是否超出阈值。借助智能井盖传感器,政府和城市管理部门…

sapjco3.dll has version “721.619“, but required is at least version “721.913“

context with path [] threw exception [org.glassfish.jersey.server.ContainerException: java.lang.ExceptionInInitializerError: Native library sapjco3 is too old. Found library C:\Windows\System32\sapjco3.dll has version “721.619”, but required is at least …

ThinkPHP 系列漏洞

目录 2、thinkphp5 sql注入2 3、thinkphp5 sql注入3 4、 thinkphp5 SQL注入4 5、 thinkphp5 sql注入5 6、 thinkphp5 sql注入6 7、thinkphp5 文件包含漏洞 8、ThinkPHP5 RCE 1 9、ThinkPHP5 RCE 2 10、ThinkPHP5 rce3 11、ThinkPHP 5.0.X 反序列化漏洞 12、ThinkPHP…

Python---函数的嵌套(一个函数里面又调用了另外一个函数)

函数嵌套调用------就是一个函数里面又调用了另外一个函数。 基本语法: # 定义 函数B def funcB():print(这是funcB函数的函数体部分...)# 定义 函数A def funcA():print(- * 80) # 这一行为了更好区分print(这是funcA函数的函数体部分...)# 假设我们在调用funcA…

论文速览 Arxiv 2023 | DMV3D: 单阶段3D生成方法

注1:本文系“最新论文速览”系列之一,致力于简洁清晰地介绍、解读最新的顶会/顶刊论文 论文速览 Arxiv 2023 | DMV3D: DENOISING MULTI-VIEW DIFFUSION USING 3D LARGE RECONSTRUCTION MODEL 使用3D大重建模型来去噪多视图扩散 论文原文:https://arxiv.org/pdf/2311.09217.pdf…

一文了解ChatGPT Plus如何完成论文写作和AI绘图

2023年我们进入了AI2.0时代。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车,就有可能被淘汰在这个数字化时代,如何能高效地处理文本、文献查阅、PPT…

AIGC ChatGPT 4 将数据接口文件使用Python进行入库Mysql

数据分析,数据处理的过程,往往将采集到的数据,或者从生产库过来的接口文件,我们都需要进行入库操作。 如下图数据: 将这样的数据接口文件,进行入库,插入到Mysql数据库中。 用Python代码来完成。 ChatGPT4来完成代码输入。 ChatGPT4完整内容如下: 这个任务可以使用`…

Motion Plan之搜素算法笔记

背景: 16-18年做过一阵子无人驾驶,那时候痴迷于移动规划;然而当时可学习的资料非常少,网上的论文也不算太多。基本就是Darpa的几十篇无人越野几次比赛的文章,基本没有成系统的文章和代码讲解实现。所以对移动规划的认…

聊一聊小程序单聊页面构思

主题界面构建 主题界面构建可以有很多种做法,一种为左右平分式UI设计,简单来说就是对方和我方聊天DOM各占屏幕的一半,完全可以使用flex的布局以及vw构建,一种吧聊天内容作为整体聊天界面的子节点,聊天container内容的高…

逻辑漏洞(越权)

逻辑漏洞(越权) 0x01 何为逻辑漏洞 逻辑漏洞是指,在编写程序的时,一个流程处理处理逻辑,不够谨慎或逻辑不完整,从而造成验证失效、敏感信息暴露等问题,这类问题很难利用工具去发现&#xff0c…