Andrew Ng和OpenAI教你写prompt

news2024/10/7 14:22:33
  • 课程地址: https://learn.deeplearning.ai/chatgpt-prompt-eng
  • b站搬运: https://www.bilibili.com/video/BV1No4y1t7Zn

教学人员:Lsa Fulford, Andrew NG

LLM的两种样式

  • Base LLM:基于文本训练数据预测下一个词的概率,依赖于之前的文本,容易产生有毒输出
  • Instruction Tuned LLM:基于指令性的,在指令上进行微调,并基于RLHF反馈机制得到更有用,更真实的,更无害的输出

目标一般建议使用Instruction Tuned LLM。

在使用LLM的时候可以将其当作一个很全能,但不知道做什么的助手,如果LLM效果不好,可能是由于指令不够清楚。

  • 明确问题,喂给相关内容
  • 给LLM时间思考

Prompt的原则和策略

  • 编写明确和具体的指令
  • 给模型足够的时间来思考

原则和策略的实践

安装

  • install:
pip install openai

然后申请相关API的访问账户及密钥

按照原则进行讲解

原则1: 编写明确和具体的指令

策略1: 可以有一些分隔符等,明确不意味着短。

在提示中,说将用三个单引号分隔的文本总结为一句话,然后得到总结之后的意思:

分隔符是比较清楚的将特定的文本部分和提示的其他部分隔开,不同的分隔符都可以。
另外就是避免提示词冲突:

策略2: 可以请求结构化的输出,比如json,html等。

下面的提示词让其以json格式输出三个书本id,书名,作者以及类别等信息

策略3: 要求模型检查是否满足条件

如果不满足条件,则返回自己限定的条件。

策略4: 要求执行模型任务之前,提供成功执行任务的示例

原则2: 给模型时间思考

策略1: 如果急于模型出结果,可能出错,尝试重新构建查询请求相关推理的链或序列

策略2: 指示模型在匆忙作出结论之前思考解决方案,推理过程,实际思考过程


首先模型以学生思维是对的,然后再与自己思考比较

上述示例说明要求模型进行计算并将任务分解成对应的思考步骤,以便给模型更多的思考时间来思考。

模型的局限性

  • 部分内容是编造虚构的内容,不够真实。
  • 减少产生额外的虚构内容,可以要求模型首先从文本中找到任何相关的引用,然后让模型基于这些引用回答内容,这样就可以回溯文档以减少这些幻觉。


迭代提示开发过程

没有通用的prompt,只有适合自己的。

以一个椅子说明书来说:

上述生成的内容很好,但是有点长。进一步的优化prompt:

上述的内容是针对消费者的,如果想生成面向分销商的话,需要更精细一点特性介绍:

更进一步的想输出每个产品的ID

精确的prompt都是通过不断优化得到的。下面写一些更复杂的prompt:

不要想着一开始就写出完美的prmpt,是通过不断的尝试进行的分析生成的结果并不断的优化得到的较优的结果。


摘要:使用chatGPT完成文章总结

如果构建一个电商网站,且有很多的评论留言,下面是文章总结的提示词,创建摘要等。

专注于价格等:

多个评论时候,可以用for循环调用:

缩短的评价内容有助于帮助顾客和自己了解实际情况,快速了解内容,可以根据内容进一步的深入了解。后续也可以将其用于积极消极情感识别。

推理

文本情感标签识别,文本提取等,一般做法是准备数据,设计算法,训练算法,云端部署。整套流程非常长,现在有了chatGPT后,只需要编写提示词即可立刻开始生成结果,大大加快应用程序开发速度,而无需弄清楚如何训练和部署许多不同的模型。

也可以用于提取更丰富的信息:

这种算法称为零样本学习,因为之前都没有标签进行学习。

同样的,如果想对某类新闻感兴趣,可以按照下面的方式进行提醒:

上述过程在以其对于算法工程师来说需要较长的一段时间进行开发,现在对于新手和工程师来说都能轻而易举的做到。


转换

大模型非常擅长将其输入转换为不同的格式。比如将一段文本从一种语言转换或翻译成另一种语言,或者帮助拼写和语法纠正,甚至可以转换格式,比如输入HTML,让其输出为JSON。这些以前是需要非常长的正则方式去提取转换,现在可以基于大模型基于几个简单的提示就能轻松的实现了。

翻译

假设现在需要一个通用翻译器,可以使用for循环,指定输出类型即可:

语气转换

json转html

进行展示:

拼写检查和语法检查

进一步的优化:

校准评论:

查看优化前后的不同:

扩展

从一个短句扩展成一个长的句子,email或者essay。但要注意使用方式,有的人使用它生成大量的垃圾邮件,废话文学等。

模型中的温度参数,允许我们改变模型响应的多样性,可以将温度视为模型的探索程度或随机性。

温度越高随机性越强,温度越低模型余越稳定。如果需要模型稳定,建议将温度设为0,每次执行的结果相同,如果需要创造性的输出,可以使用更高的温度。


构建聊天机器人

可以使用大模型构建一个自己的聊天机器人,比如AI客服代理,或者餐厅的AI点餐机。

这里定义了两个函数,一个是从prompt,一个是从message列表作为输入。

消息队列引导chatGTP根据具体设置回答,

自动化收集用户提示和信息。

这样模型有了上下文。使用UI进行展示

输出结果json结构化:


总结

基于一个项目的经验开始构建第二个项目,第三个项目等等。

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

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

相关文章

制作Alpine Linux镜像报错errors: 15 distinct packages available

1.执行报错 执行docker build -t 镜像:版本 -f Dockerfile . 报错: 2.查看网上的解决思路 网上文档解决思路: 这边我做了一下改变把这些写入了dockerfile 加了几个RUN RUN rm -rf /var/cache/apk RUN mkdir -p /var/cache/apk RUN apk update -v 发现还…

Java基本数据类型详解及应用示例

Java作为一门强类型语言,基本数据类型是非常重要的概念。Java中基本数据类型分为四种类别:整数类型、浮点数类型、字符类型和布尔类型。其中,每一种数据类型都有着不同的占用字节数和表示范围,合理使用选择不同的数据类型可以提高…

数组低效的“插入”和“删除”

插入操作 假设数组的长度为 n,现在,如果我们需要将一个数据插入到数组中的第 k 个位置。为了把第 k 个位置腾出来,给新来的数据,我们需要将第 k~n 这部分的元素都顺序地往后挪一位。那插入操作的时间复杂度是多少呢&a…

ChatGPT 中文指令指南,教会你如何使用chatgpt实现中文你想要的答案

🧠 ChatGPT 中文指令指南,教会你如何使用chatgpt实现中文你想要的答案 1.学习英语–替代词典 App 场景例子Prompts解释中文英文意思,并解释单词的词根词缀。可以替代词典。告诉我 Egocentric 的词性和音标,并使用中文和英文解释…

OpenAI开源语音识别模型Whisper在Windows系统的安装详细过程

1、安装Python Python的安装很简单,点击这里进行下载。 安装完成之后,输入python -V可以看到版本信息,说明已经安装成功了。 如果输入python -V命令没有看到上面的这样的信息,要么是安装失败,要么是安装好之后没有自…

【自然语言处理】【大模型】CodeGen:一个用于多轮程序合成的代码大语言模型

CodeGen:一个用于多轮程序合成的代码大语言模型 《Code Gen: An Open Large Language Model For Code with Multi-Turn Program Synthesis》 论文地址:https://arxiv.org/pdf/2203.13474.pdf?trkpublic_post_comment-text 相关博客 【自然语言处理】【大…

【EasyPoi实战系列】Spring Boot使用EasyPoi实现一对多的导出 - 第469篇

​ 历史文章(文章累计460) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》…

Exams/2012 q1g

module top_module (input [4:1] x,output f ); assign f ~x[2]&~x[4] | ~x[1]&x[3] | x[2] & x[3] & x[4]; endmodule

4-Tr0ll-1百个靶机渗透(精写-思路为主)

文章目录 目录 文章目录 前言 一、信息收集 二、提权 1.提权方法1 2.提权方法2 3.提权方法3 4.提权方法4 5.root免密登录的方法 总结 前言 思路清晰: 1.信息收集,寻找内网靶机,得到可以利用的ftp、ssh和web站点的常规端口。 2.因为这个靶机…

Visual Studio 2019离线安装包获取和安装教程

摘要 介绍Visual Studio 2019离线安装方法和配置及注意事项 关键词 VS2019 离线安装 Visual Studio 2019版本与以往的2015、2013、2012版本不同,采用了新的模块化安装方法。微软官方也并未提供ISO镜像,根据官方提供的离线下载方案(docs.mic…

「AI 孙燕姿」翻唱华语乐坛歌曲爆红全网,AI 翻唱将带来哪些影响?是否会有版权等问题?

在某视频平台上,“AI孙燕姿”成了新网红,它翻唱过周杰伦的《发如雪》、翻唱过郭顶的《水星记》、翻唱过赵雷的《我记得》,受到了网友的追捧,甚至有网友宣布“这是2023年最火的声音”。 网上除了AI孙燕姿,还有AI周杰伦…

AOP、spring事务管理

目录 AOP简介 AOP入门案例 AOP配置管理 AOP通知类型 业务层接口执行效率 AOP通知获取数据 百度网盘密码数据兼容处理 AOP事务管理 AOP简介 什么是AOP? AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结…

HTML <area> 标签

实例 带有可点击区域的图像映射: <img src="planets.jpg" border="0" usemap="#planetmap" alt="Planets" /><map name="planetmap" id="planetmap"><area shape="circle" coords=&q…

AHUT周赛2

1.A - Mahmoud and Ehab and the MEX Problem - A - Codeforces 核心在于x之前的数肯定是有的&#xff0c;x是没有的 所以从0开始一直到x&#xff0c;如果哪个数没有就加上哪个数(操作数1)&#xff0c;如果有x就删去x(操作数1) AC代码&#xff1a; #include<iostream>…

【UML】

文章目录 1.uml图2.类图3.类合类之间关系&#xff1a;泛化关系4.类合类之间关系&#xff1a;实现关系5.类合类之间关系&#xff1a;关联关系6. 聚合关系 组合关系 依赖关系6.1聚合关系6.2 组合关系6.3 依赖关系 7.用例图8.时序图9.状态图10.活动图 1.uml图 2.类图 新建类图 新…

【超全解决方法】关于anaconda navigator启动时一直卡在 loading applications 的问题

问题描述 点开 anaconda navigator 一直处于以下页面&#xff0c;且过了很长时间都加载不出来。 &#xff08;至于为什么会出现这样的问题&#xff0c;原因是我更新了anaconda navigator 之后就出现一大堆问题&#xff0c;最终点开anaconda navigator却一直开在下面的页面&am…

【sop】基于灵敏度分析的有源配电网智能软开关优化配置(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【类和对象(中)】六大默认成员函数

文章目录 前言一、&#x1f33a;构造函数&#xff08;重点&#x1f33a;&#xff09;1.构造函数的特性 二、&#x1f33a;析构函数&#xff08;重点&#x1f33a;&#xff09;1.析构函数的特性 三、&#x1f33a;拷贝构造函数 &#xff08;重点&#x1f33a;&#xff09;1.拷贝…

Powerlink协议在嵌入式linux上的移植和测试(电脑和linux板通信实验)

使用最新的openPOWERLINK 2.7.2源码&#xff0c;业余时间搞定了Powerlink协议在嵌入式linux上的移植和测试&#xff0c;并进行了下电脑和linux开发板之间的通信实验。添加了一个节点配置&#xff0c;跑通了源码中提供的主站和从站的两个demo。这里总结下移植过程分享给有需要的…

4。计算机组成原理(4)CPU

嵌入式软件开发&#xff0c;非科班专业必须掌握的基本计算机知识 核心知识点&#xff1a;数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统 CPU&#xff08;中央处理器&#xff09;是计算机的核心部件&#xff0c;它主要负责执行计算机指令&#xff0c…