Andrew Ng和OpenAI教你写prompt

2023-05-16

  • 课程地址: 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结构化:


总结

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Andrew Ng和OpenAI教你写prompt 的相关文章

  • ChatGPT的具体应用实操教程(建议收藏)

    跟大家分享几个ChatGPT的具体应用实操教程 建议收藏下来慢慢学习 即ChatGPT一炮而红之后 国内外对于ChatGPT的讨论和研究层出不穷 都在说它可以在一定程度上取代人类 ChatGPT到底能不能 什么时候会取代人类我不知道 现在我
  • 飞浆AI studio人工智能课程学习(2)-Prompt优化思路

    文章目录 优化思路 上节课的例子 问题分析 思路解析 Prompt优化技巧 Prompt优化原理 十个技巧高效优化Prompt 迭代法 Trick法 工具法 通用技巧 定基础 通用技巧 做强调 需求强调怎么做 通用技巧 提预设 Trick法
  • 写好“提示”改变“智造未来”-GPT4提示词驶入代码优化驾驶座心得

    开篇 在前端科技的新浪潮中 Artificial Intelligence AI 的逐渐成熟与发展引领着我们向前 其中OpenAI的GPT4提供了我们一种新的可能 帮助我们优化代码 使编程变得更加轻松 在这篇文章中 我们将一同探究如何在1
  • GPT应用开发 - langchain 初始化

    依赖安装 langchain pip install langchain or conda install langchain c conda forge 配置环境 使用langchain依赖一个或者多个模型 数据库 外部的api接口等 下
  • seed+transformer+finetune+图文融合+VLP+Prompt Learning整合

    1 Seed 在神经网络中 参数默认是进行随机初始化的 不同的初始化参数往往会导致不同的结果 如果不设置的话每次训练时的初始化都是随机的 导致结果不确定 当得到比较好的结果时我们通常希望这个结果是可以复现的 如果设置初始化 则每次初始化都是
  • openai

    作者介绍 大二本科网络工程专业在读 持续学习Java 努力输出优质文章 作者主页 逐梦苍穹 所属专栏 人工智能 目录 1 简介 2 如何实现 3 api文档 1 简介 OpenAI 提供了一个名为 OpenAI API 的库 用于与他们的人
  • 大语言模型之八-提示工程(Prompt engineer)

    大语言模型的效果好 很大程度上归功于算力和数据集 算力使得模型可以足够大 大到模型的理解 记忆 推理和生成以及泛化能力可以同时兼备 而数据集则是模型学习的来源 LLM中的prompt方法主要用于fine tune阶段 即在预训练的基础上 针
  • AI绘图:教你几个提示词 100%生成美丽小姐姐

    许多常用提示对于确保高质量的成像结果至关重要 我们将教您一些基本的提示词和设置 以节省您在初始探索过程中的时间 本次用到的模型ChilloutMix 基础设置 默认设置包括图片 大小 512 x 512 采样器 DPM SDE Karras
  • 如何针对您的特定用例训练 ChatGPT

    ChatGPT是一个强大的人工智能语言模型 由OpenAI 它能够与用户进行自然语言对话 并具有广泛的潜在应用 包括客户服务 教育 营销和工作场所沟通 为了确保 ChatGPT 在您的特定用例中有效 根据相关数据训练模型至关重要 在本文中
  • 使用node.js提示用户输入? [复制]

    这个问题在这里已经有答案了 我正在开发一个使用 node js 运行的 JS 项目 但我不知道如何让提示正确地用于用户输入 我从 npm 安装了它 按照步骤操作 我可以让程序提示用户输入 但无法将结果存储在变量中 我想要的是提示用户每回合的
  • 用 UI 对话框替换提示

    如何用简单的 UI 对话框替换此代码中的提示以实现相同的效果 使用提示时 IE 会发出安全警告 HTML
  • psql 提示符更改为“-#”并且该语句未提交

    我是 Postgres 的新手 我设置了一个数据库和表 在 Ubuntu 18 04 命令行 在云服务器上 上 我使用以下命令发出了以下命令psql INSERT INTO psq01 date email firstname lastna
  • 为 Git 存储库自定义 CSH 提示

    当我在 Git 存储库中时 我希望有一个自定义 CSH 提示 如果我不在 git 存储库中 我希望提示符看起来像这样 host name gt 但是当我进入 Git 存储库时必须变成这样 host name GIT REPO ROOT DI
  • 在 JPanel 中创建 Java 命令控制台

    我想创建一个类似于 Windows 命令提示符的 命令控制台 带有命令历史记录等 它位于 JPanel 中 以便可以将其添加到 JFrame 中 我想要做的是向用户呈现提示以允许他们执行命令 我的想法与 BeanShell 控制台类似 但是
  • 从命令行列出所有环境变量

    是否可以列出all来自 Windows 命令提示符的环境变量 相当于PowerShell的东西gci env or ls env or dir env Just do SET 你也可以做SET prefix查看名称以以下开头的所有变量pre
  • 音位间隙和提示()

    我正在浏览Phonegap http www phonegap com Android 的来源 并试图验证他们的notification alert 方法只是委托给原生 JavaScriptalert 功能 他们的代码做了 Notifica
  • 使用 Javascript 在 Photoshop 中保存文件而不提示?

    我正在使用一个简单的脚本来编辑现有图像 无论我做什么 总会出现保存提示 我希望这是 100 自动化的 save 给我一个 saveAs 提示 将其保存为副本 close SaveOptions SAVECHANGES 只是给我一个通用的 您
  • Shell 脚本用户提示/输入

    这是别人写的一个粗略的 korn shell 脚本 我对使用 shell 语法不太了解 我什至不确定这是否可行 有什么方法可以让我运行这个文件并提示输入日期 这样我就不必每次都手动进入脚本并更改它 例如 我想将 1 12 09 替换为从用户
  • Oh-my-posh 主题无法与 Powerline 字体和 ConEmu 一起正常工作

    I use PowerShell as my shell on Windows 7 I find that ConEmu is a really good terminal Since I am not on Windows 10 I ca
  • 如何在C程序执行过程中显示自定义提示符?

    我正在尝试在 Linux 中使用 C 程序模拟终端 并且需要我的程序在程序执行时显示自定义提示 有没有办法使用我的 C 程序显示它 我总是可以尝试手动打印 My prompt 每一行 但我正在寻找更好的方法 另外 除了基本库之外 我无法使用

随机推荐

  • CefSharp.WinForms 112.2.70最新版体验

    一 准备 下载最新包及依赖包 对应 NET4 5 2 后续版本可能4 6 2 到packages中 本地升级更快 NuGet Gallery CefSharp WinForms 112 2 70 NuGet Gallery CefSharp
  • VUE3(.NET6)管理后台

    基于Admin NET框架 xff0c 预览下效果 内置功能 主控面板 xff1a 控制台页面 xff0c 可进行工作台 xff0c 分析页 xff0c 统计等功能的展示 用户管理 xff1a 对企业用户和系统管理员用户的维护 xff0c
  • 2011年养成的一个工作习惯

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 有一句名言 xff0c 没有记录的公司 xff0c 迟早要垮掉的 xff0c 多么尖锐 个人也不是如此吗 xff1f 在下半年 xff0c
  • Cefsharp.WinForms-v112.3.0 带您最新版体验(小更新)

    一 准备 下载最新包及依赖包 对应 NET4 5 2 后续版本可能4 6 2 到packages中 本地升级更快 NuGet Gallery CefSharp WinForms 112 3 0 NuGet Gallery CefSharp
  • 无人机飞行控制算法、控制律设计软件与半物理仿真

    工业级多功能可编程飞行控制系统专业的图形化控制律设计软件灵活强大的工程应用开发平台DSP处理器及高精度传感器自定义高速遥测数据采集嵌入式半物理仿真系统丰富的用户设备接口适用于固定翼 旋翼机 特殊飞行器 车船艇 机器人 云台等 概 述 xff
  • 程序调试记录

    最近把师兄的程序在万兆网络上进行测试 xff0c 现在把调试中出现的问题进行记录 xff1a 1 xff09 其中一共是十六块板子 xff0c 板子的配置文件是sipixel xml xff0c 每块板子的配置信息里都有对应的IP xff0
  • 华清远见嵌入式学习day27——编译工具和环境搭建

    0 系统移植四天课程安排 1 编译工具 xff0c 环境搭建 2 bootloader 3 kernel 4 文件系统 1 嵌入式系统的应用领域 1 军事 2 医疗 3 移动设备 4 家电 5 工控 2 什么是嵌入式系统 一般的定义 xff
  • tf.Variable函数的用法

    tf Variable xff08 initializer xff0c name xff09 xff1a initializer是初始化参数 xff0c 可以有tf random normal xff0c tf constant xff0c
  • Docker入门操作+文件备份

    文件备份操作 bin sh it is a shell script which provides function of auto backup ecology logfiles regularly by 494389 date 61 9
  • Qnap Docker(Container Station)更改国内镜像源

    0x01qpkg环境 通常qnap市场中下载的qpkg应用 xff0c 其环境变量就在自己的包环境中 所以要修改系统中的配置 xff0c 通常需要修改qpkg应用中对应的配置 即 share CACHEDEV1 DATA qpkg xxx
  • docker源码编译(containerd+runc源码编译)

    目录 源码下载docker cli docker enginebugsgo get timeoutdebian超时git clone TLS containerd源码编译runc源码编译docker 43 containerd 43 run
  • ros中激光雷达的消息类型(sensor_msgs/LaserScan Message)说明

    最近在做一些视觉和激光数据融合的项目 xff0c 但是对激光数据的结构不是太了解 xff0c 因此查了很多相关的内容 xff0c 记录以下 下图是在http wiki ros org中截取的图片 xff1a Header 是一个结构体 xf
  • Linux下安装常见的configure错误列表

    Linux下安装常见的configure错误列表 标签 xff1a linux nginx configure 安装 错误 it 附一些常见的configure错误列表供参考 configure error No curses termca
  • 世界上不存在完美的人性

    白夜追凶 观后感 作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 前几天看了克里斯多福 诺兰导演的惊悚电影 白夜追凶 剧情大致如下 xff1a 威尔 多莫 xff08 阿尔 帕西诺饰 x
  • k210-arduino深度学习视觉机械臂抓取

    一 arduino对机械臂的基础控制 1 首先实现arduino对机械臂的控制 xff08 点动和自动 xff09 xff0c 六个轴分别定义为xyzjkl 点动 xff1a 点动方式为按一下对应按键使对应轴正转或反转3度 xff0c 此方
  • stm32串口助手配置步骤

    串口设置的一般步骤可以总结为如下几个步骤 xff1a 1 串口时钟使能 xff0c GPIO 时钟使能 2 设置引脚复用器映射 xff1a 调用 GPIO PinAFConfig 函数 3 GPIO 初始化设置 xff1a 要设置模式为复用
  • linux查看新增串口、USB设备,Minicom + Usb转串口

    查看新增串口 USB设备 注意 xff1a 虚拟机环境下的ubuntu默认情况下是不能自动识别的 xff0c 需要在虚拟机窗口右下角点击 34 Prolific USB Serial Controller 34 xff0c 然后选择 34
  • yolo图像检测数据集格式转换:xml 与 txt格式相互转换

    格式介绍 一图流介绍的比较详细 xff0c 一般图像检测数据集格式为txt或者xml格式 xff0c 在使用labelimg进行标注的时候 xff0c 可以设置获得不同格式的数据集 xff0c 以满足不同算法训练格式要求 xff1a 一般建
  • 二分类确定画出roc曲线,以及基于roc曲线获得最佳划分阈值

    问题 在做二分类问题时候 xff0c 有正样本和负样本 构建的算法 xff0c 针对每个样本会输出一个分数值 假设该分数大小为 0 1 区间内的值 有时候单纯地以分数0 5位阈值划分样本为预测为1或者预测为0 xff0c 效果有时候并不好
  • Andrew Ng和OpenAI教你写prompt

    课程地址 xff1a https learn deeplearning ai chatgpt prompt engb站搬运 xff1a https www bilibili com video BV1No4y1t7Zn 教学人员 xff1a