玩转ChatGPT:吴恩达/OpenAI合作教程《面向开发者的ChatGPT提示工程》

一、写在前面

最近,吴恩达与CloseOpenAI合作出了一个教程《面向开发者的ChatGPT提示工程》,第一时间就观摩了,有些体会,现在把个人觉得有意思的搬运过来。

我的机器学习入门就是看的吴恩达的教程!大佬长得像冯巩,哈哈哈。

原版视频地址:

https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/

B站已经有中文版:

https://space.bilibili.com/15467823/channel/seriesdetail?sid=3247315&ctype=0

下面是第一节课的笔记。多说一句,我觉得第一节课的内容干货满满(讲的是方法论,值得细细评味),后面的课都是基于这些原则展开:

二、提示工程的两个关键原则

(1)Write clear and specific instructions. 编写清晰而具体的指令

(a)你应该通过提供尽可能清晰和具体的指令来表达你希望模型做什么,这将引导模型走向预期的输出,并减少你得到不相关或不正确反应的机会。

(b)不要把写一个清晰的提示和写一个简短的指令混淆起来,因为在许多情况下,较长的指令实际上为模型提供了更清晰描述和上下文,可以带来更详细和相关的输出。

总结一下:指令越清晰越好,越具体越好,不要吝啬你的句子。

(c)帮助你写出清晰而具体的指示的第一个策略:使用分隔符来明确指出输入的不同部分。举个例子:

咒语:将 {文本} 中的主要内容总结成一句话,50个字左右。

{所谓的不平衡数据集指的是数据集各个类别的样本量极不均衡。以二分类问题为例,假设正类的样本数量远大于负类的样本数量,通常情况下通常情况下把多数类样本的比例接近100:1这种情况下的数据称为不平衡数据。不平衡数据的学习即需要在分布不均匀的数据集中学习到有用的信息。}

 总结一下:使用定界符(如大括号)可以使模型清晰地了解需要总结的确切文本,定界符可以是任何明确的标点符号,将特定文本片段与提示的其他部分分开。

(d)帮助你写出清晰而具体的指示的第二个策略:要求一个结构化的输出。比如说,以Markdown、HTML或JSON格式输出,或者像我之前以表格的形式展示。举个例子:

咒语:生成一个包含三个编造的书名作者和流派的列表。分别以表格的形式展示出它们的书籍ID、书名、作者和流派。

(e)帮助你写出清晰而具体的指示的第三个策略:要求模型检查条件是否得到满足。有点拗口,她是这么解释的,如果任务中的假设不一定被满足,那么我们可以告诉模型先检查这些假设。如果这些假设不被满足,指出这一点,并在完成任务的过程中停止。你也可以考虑潜在的边缘情况,告诉模型应该如何处理它们以避免意外的错误或结果。举个例子:

咒语:如果 {文本} 的主要内容包含步骤信息,那么按照下面格式对文本内容进行总结:

材料:

步骤:

第一步:...

第二步:-

第N步:-

如果 {文本} 的主要内容不包含步骤信息,那么久简单输出“无法改写”。

{啤酒鸭是一道非常受欢迎的烤鸭菜肴。制作啤酒鸭需要准备鸭子、啤酒、食盐、老抽、白糖、姜、大葱和香料袋(八角、草果、桂皮、丁香、花椒等)等材料。首先,将鸭子宰杀并清理干净,去掉内脏和头部,然后将鸭子整洗净备用。接下来,将香料袋中的香料放入锅中煸炒出香味,取出备用。然后,煮开一锅水,加入适量啤酒、食盐、老抽、白糖、姜、大葱和香料袋,煮至香味溢出。将煮好的啤酒汁放凉,将鸭子浸泡在啤酒汁中腌制4小时以上(越久越入味)。为了让鸭肉入味,可以在啤酒汁中加入适量盐和酱油,也可以在鸭子表面涂抹适量酱油和料酒。将腌制好的鸭子放在烤箱中,以180度烤40分钟,取出后涂上蜂蜜,再放回烤箱继续烤20分钟左右,直到鸭皮金黄酥脆。在烤制的过程中,可以根据自己口味调整烤制时间和温度,以达到最佳口感。最后,取出烤好的啤酒鸭,切成合适的块状即可食用。煮汁时可加入香料袋,使啤酒汁更香,涂上蜂蜜可增添甜味。享用啤酒鸭时,可以搭配啤酒或其他饮料,更加美味可口。}

 我把文本换一下:

(f)帮助你写出清晰而具体的指示的第四个策略:在指令中举一个具体的例子,让模型依葫芦画瓢。这个就不举例子了,大家都懂怎么操作。

总结:首先我们需要编写清晰而具体的指令。提供了4个策略,使用分隔符来明确指出输入的不同部分;要求一个结构化的输出;要求模型检查条件是否得到满足;在指令中举一个具体的例子,让模型依葫芦画瓢。

(2)Give the model time to think. 给模型思考的时间

大佬解释:如果一个模型因急于得出结论而出现推理错误,应该尝试重新设计询问,要求模型有一连串或一系列相关的推理,然后再由模型提供最终答案。如果你给一个模型一个太过复杂的任务,那么它就无法在短时间内或用很少的词来完成,最终可能会编造一个不正确的答案。

说人话就是,要给模型思考的时间,好比我们算一道数学题都要打草稿呢。

(a)第一个策略:指定完成一项任务所需的步骤。直接举例她的第一个例子:

咒语:Perform the following actions:

1 - Summarize the following text delimited by triple backticks with 1 sentence.

2 - Translate the summary into Chinses.

3 - List each name in the Chinese summary.

4 - Output a sheet object that contains the following keys: chinese_summary, num_names.

Separate your answers with line breaks.

Text:

‘’’ In a charming village, siblings Jack and Jill set out on a quest to fetch water from a hilltop well. As they climbed, singing joyfully, misfortune struck-Jack tripped on a stone and tumbled down the hill, with Jill following suit. Through slightly battered, the pair returned home to comforting embraces. Despite the mishap, their adventurous spirits remained undimmed, and they continued exploring with delight. ‘’’

 然后,她又换了一个咒语(主要是输出格式有变化):

Perform the following actions:

1 - Summarize the following text delimited by <> with 1 sentence.

2 - Translate the summary into Chinese.

3 - List each name in the Chinese summary.

4 - Output a sheet object that contains the following keys: chinese_summary, num_names.

Use the following format:

Text: <text to summarize>

Summary: <summary translation>

Translation: <summary translation>

Name: <list of names in Chinese summary>

Output JOSN: <josn with summary and num_names>

Text:

< In a charming village, siblings Jack and Jill set out on a quest to fetch water from a hilltop well. As they climbed, singing joyfully, misfortune struck-Jack tripped on a stone and tumbled down the hill, with Jill following suit. Through slightly battered, the pair returned home to comforting embraces. Despite the mishap, their adventurous spirits remained undimmed, and they continued exploring with delight. >

 总结一下:首先读取文本 ——> 用英文总结文本内容 ——> 翻译总结句子 ——> 提取名字 ——> 输出JOSN格式。把任务层层分解,一步一步解决,最后汇总。

(b)第二个策略:指示模型不要急于得出结论,先尝试找出解决方案。模型给出结论以后,告诉TA正确与否。所谓的人在回路?看看她的例子:

咒语:Determine if the students solution is correct or not.

Question:

Im building a solar power installation and I need help working out the financials.

- Land costs $100 / square foot

- I can buy solar panels for $250 / square foot

- I negotiated a contract for maintenance that will cost me a flat $100k per year, and an additional $10 / square foot

What is the total cost for the first year of operations as a function of the number of square feet.

Students Solution:

Let x be the size of the installation in square feet.

Costs:

  1. Land cost: 100x
  2. Solar panel cost: 250x
  3. Maintenance cost: 100,000 + 100x

Total cost: 100x + 250x + 100,000 + 100x = 450x + 100,000

 然而,模型给出的结论是学生是正确的。确实,学生的解题思路没问题,只是粗心看错了一个数字。咋一看,确实以为是正确的。

 所以,需要修改策略:让模型自己就这个问题想出方案,然后再和学生的方案作对比,这样就能准确地判断学生的方案是否正确。

咒语:Determine if the students solution is correct or not.

To solve the problem do the following:

- First, work out your own solution to the problem.

- Then compare your solution to the students solution and evaluate if the students solution is correct or not. Dontt decide if the students solution is correct until you have done the problem yourself.

Use the following format:

Question:

‘’’

question here

‘’’

Students solution:

‘’’

Students solution here

‘’’

Actual solution:

‘’’

steps to work out the solution and your solution here

‘’’

is the students solution the same as actual solution just calculated:

‘’’

yes or no

‘’’

student grade:

‘’’

correct or incorrect

‘’’

Question:

Im building a solar power installation and I need help working out the financials.

- Land costs $100 / square foot

- I can buy solar panels for $250 / square foot

- I negotiated a contract for maintenance that will cost me a flat $100k per year, and an additional $10 / square foot

What is the total cost for the first year of operations as a function of the number of square feet.

Students Solution:

Let x be the size of the installation in square feet.

Costs:

  1. Land cost: 100x
  2. Solar panel cost: 250x
  3. Maintenance cost: 100,000 + 100x

Total cost: 100x + 250x + 100,000 + 100x = 450x + 100,000

 有没有一种感觉,TA的思维模式,有点像人类,甚至犯的错误都很像。

总结:模型也是急性子,拍脑袋给出的答案正确率不高。解决办法:给TA思考的时间,还有引导TA先自己想办法,比对后再下结论。总之就是,三思而后行!

三、模型的局限

我们都见识过了,叫一本正经地胡说八道:

大佬说:尽管语言模型在训练过程中已经接触了大量的知识,在其训练过程中,它并没有完美地记住它所看到的信息。因此,它对自己的知识边界并不十分了解,这意味着它可能会尝试回答一些晦涩难懂的问题,并且可以编造一些听起来很有道理但实际上并不真实的事情。我们把这些编造的想法称为幻觉(Hallucination)。

大佬给的建议:有一个额外的策略来减少幻觉,如果你想让模型基于文本生成答案,你需要先要求模型从文本中找到任何相关的引用,然后要求它使用这些引用来回答问题。

嗯,她没给案例!!!

四、写在最后

  1. 信息量十足。直接听官方的课程,少走弯路。
  2. 后面6节课,有缘再见。因为我看了一遍,没啥惊艳的,可能是我水平不够。待我有所感悟,在加更一期。

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

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

相关文章

Android多语言切换

先看下demo中点击对应要显示语言的按钮&#xff0c;效果图如下&#xff1a; 先贴上项目目录图&#xff1a; values-语言代号-地区代号 分别表示不同地区语言资源&#xff0c;常用的国际化资源如下&#xff1a; 中文&#xff08;中国&#xff09;&#xff1a;values-zh-rCN 中…

Android国际化多语言切换

关于App国际化&#xff0c;之前有讲到国际化资源、字符换、布局相关&#xff0c;想要了解的猛戳用力抱一下APP国际化。借着本次重构多语言想跟大家聊一下多语言切换&#xff0c;多语言切换对于一款国际化App来讲是重中之重&#xff0c;并非难事&#xff0c;但是若要做好也是一件…

几个chatGPT的难题,关于语言转换

不同语言代码的移植一直以来是程序员面临的难题&#xff0c;最近问了问chatGPT能否解决这个问题。 编写一个程序&#xff0c;实现c语言函数转换为php函数 答&#xff1a;这是一个非常困难的问题&#xff0c;因为两种语言的语法、结构和标准库都不相同。如果您希望完成这个任务&…

使用 ChatGPT 从视频脚本创建知识图谱,使用 GPT-4 作为领域专家来帮助您从视频转录中提取知识(教程含完整源码)

我一直很喜欢深海纪录片,因为这里的生态系统和动物与陆地上的大不相同。因此,我决定在水下纪录片上测试 GPT-4 的信息提取能力。此外,我不知道有任何开源 NLP 模型经过训练可以检测海洋植物和生物之间的关系。因此,一部深海纪录片是使用 GPT-4 构建知识图谱的绝佳示例。 数…

ChatGPT实战:短视频文案、脚本创作

你还在拼脑力输出视频脚本吗&#xff1f;AI时代&#xff0c;该提高提高生产力了&#xff0c;机器一天的视频出货量能赶上以往几个月的工作量&#xff0c;人力怎么可能卷的过机器&#xff1f; 使用ChatGPT创作视频脚本可以带来一些好处&#xff1a; 创意激发&#xff1a;ChatGPT…

玩转#ChatGPT之“用Chat GPT 做美食攻略”

ChatGPT是一个大型的语言模型&#xff0c;可以利用其强大的自然语言处理能力来帮助你进行美食攻略。 首先&#xff0c;你需要提供相应地区的美食相关信息&#xff0c;比如当地的名菜、特色小吃、饮食文化等。然后&#xff0c;你可以向ChatGPT提出问题&#xff0c;例如&#xf…

如何使用ChatGPT做一份五一出游攻略?

五一假期即将来临&#xff0c;或许你已经着手计划这个假期的旅游行程了呢&#xff1f; 但是若是缺乏旅游行程规划的经验&#xff0c;或者在选择质量上良莠不齐的攻略时感到困惑&#xff0c;你可以尝试使用ChatGPT来创建一份自己的旅游攻略哦&#xff01; 首先&#xff0c;我们…

如何高效使用ChatGPT

随着ChatGPT的不断推广&#xff0c;许多人在使用时都会遇到一个问题&#xff1a;ChatGPT给出的回答不是我想要的答案。这也是我们早期接触ChatGPT时会遇到的状况——用得“不太好”。 在对ChatGPT不断地探索、尝试以及查阅官方资料后&#xff0c;我们找到了一个突破点。ChatGP…

假期出行小程序+chatgpt旅游攻略

马上五一了,如果想出去旅游,需要提取规划好路线图,我们可以借助chatgpt的路线规划功能帮我们生成一份攻略,按照攻略我们就可以愉快的出去玩耍了。 本文结合chatgpt,利用低代码工具帮我们制作一份旅行导览小程序,可以按照行程方便的出行。 1 制定攻略 我们在聊天窗口输…

快速解决无法登录网页版微信的问题,亲测有效

在公司开发测试阶段&#xff0c;需要使用网页版微信对开发页面进行调试&#xff0c;但是我的两个微信号在扫码登录网页版微信时&#xff0c;都出现了以下提示&#xff1a; 为了你的帐号安全&#xff0c;此微信号不能登录网页微信。你可以使用Windows微信或Mac微信在电脑端登录。…

ChatGPT修bug横扫全场,准确率达78%!程序员该开心还是难过?

金磊 衡宇 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT到底有多会修bug&#xff1f; 这事终于有人正儿八经地搞研究了—— 来自德国、英国的研究人员&#xff0c;专门搭了个“擂台”来检验ChatGPT的这项本领。 除了ChatGPT之外&#xff0c;研究人员还找来了其它三位修bug的“AI…

vue3.0仿写百度分页组件 chatgpt优化版

我写的<template><div class"paginations" v-iftotalItems > 0><button click"changePage(1)" >首页</button><button click"changePage(currentPage - 1)" :disabled"currentPage 1" :class"{ …

ChatGPT目前优化现状

文章目录 复习一下什么是ChatGPT一、目前优化的项&#xff08;使用中的感受&#xff09;二、结合上下文三、断层连续性四、知识跟进总结 复习一下什么是ChatGPT ChatGPT是基于OpenAI的GPT-3.5架构的语言模型&#xff0c;旨在提供广泛的语言理解和生成能力。它通过训练大量的文…

ChatGPT + 低代码,将干掉 40% 的程序员

见字如面&#xff0c;我是军哥&#xff01; 关于程序员失业有个段子&#xff1a;拖拽建站出来的时候&#xff0c;他们人说程序员会失业&#xff1b;低代码出来了&#xff0c;他们说程序员会失业&#xff1b;Copilot出来了&#xff0c;他们说程序员会失业&#xff1b;如今ChatGP…

Java的Idea怎么用ChatGpt,让些代码变丝滑?

发现两款idea的AI插件神器&#xff0c;和一个AI编辑器 1、tabnine https://zhuanlan.zhihu.com/p/343938113 当提示代码出现后&#xff0c;其中 按tab键就可以通用提示出的代码了&#xff0c;alt[ 是换提示代码&#xff0c;试用期限为14天。&#xff08;注意标红的&#xff0…

ChatGPT优化Python代码的小技巧

使用 chatGPT 优化代码并降低运行时的云成本 许多开发人员说“过早的优化是万恶之源”。 这句话的来源归功于Donald Knuth。在他的书《计算机编程的艺术》中&#xff0c;他写道&#xff1a; “真正的问题是&#xff0c;程序员在错误的时间和错误的地方花费了太多时间来担心效率…

为什么有很多国家以及地区要限制chatGPT的发展

作为GPT-3.5 Turbo&#xff0c;我可以尝试为您解答这个问题。虽然我无法提供现实世界的观点&#xff0c;但我可以尝试为您提供一些可能的原因。 限制ChatGPT发展的国家和地区可能有各种原因。以下是其中一些可能的原因&#xff1a; 1.数据隐私和安全&#xff1a; 人们担心使用…

ChatGPT大封号,注册功能关闭!亚洲成重灾区,网友自救喊话:不要登录,不要登录...

明敏 萧箫 发自 凹非寺量子位 | 公众号 QbitAI “不要登录ChatGPT&#xff01;” “暂时远离人工智能和ChatGPT概念板块高位股&#xff01;” 就在这两天&#xff0c;一些关于ChatGPT的疾呼突然在各种社交平台和群聊刷屏了。 而看到这些消息的用户更是感到前所未有的惶恐。 因为…

免登录在线查询OpenAI ChatGPT API key余额

本文目录&#xff1a; 一、问题来源二、几个查询余额的方案1、后台直接查询2、隐藏的接口【现在不好用了】3、最新的方案 三、在线网页查询 一、问题来源 ChatGPT不断强大&#xff0c;用得人多。目前为止OpenAI还是会给新注册的用户送5美金&#xff0c;因此大部分应用还是直接…

使用chatgpt来提高你的编程能力,简直如虎添翼

下面大家跟着我的问题&#xff0c;可以跟着我一起向 chatgpt老师学习&#xff0c;相信我的问题可能你也会感兴趣。 在Java中&#xff0c;boolean类型的数组默认初始化为false。也就是说&#xff0c;如果你创建了一个boolean类型的数组&#xff0c;但是没有初始化它&#xff0c;…