当前位置:首页|资讯|OpenAI|ChatGPT|提示词|编程

吴恩达和OpenAI的ChatGPT Prompt Engineering课程学习总结

作者:九猫船长发布时间:2023-06-15

介绍

吴恩达老师和openai官方推出的课程,主要是面向开发人员。我全部看下来里面所提到的一些技巧说实话我也是第一次看到还可以这样去使用有点因缺思挺。这个课一共九个课程,全部的课程时长加起来九十分钟左右,推荐大家可以去学习下。

官方学习地址:https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/1/introduction (全英文,英文好的人可以直接上,官网有案例可以跟着视频一起实操代码)
这里也有中文翻译版本的:https://www.aliyundrive.com/s/zZbEnyEcUMi (阿里云盘链接)

模型介绍(Base LLM和Instruction Tuned LLM

Base LLM(基础语言模型): 根据训练数据预测下一个词。
Instruction Tuned LLM(指令调整语言模型更易使用、更安全、更一致。使用Instruction Tuned LLM时,需清晰指明任务细节。例如,明确文章侧重科学工作、个人生活、历史地位或其他方面。指定文章语气如专业记者或匆忙便条可帮助生成所需内容。还可想象指导一名大学毕业生,预先阅读文本片段,更好帮助完成任务。


提问原则

1. 编写清晰明确的指令
2. 给模型留出思考的时间

1. 清晰的指令

指令应该清晰、具体,这有助于模型产生准确输出和降低错误率。不要将清晰指示与简单化混淆,长提示可以提供更多上下文,有助于模型学习和产生准确输出。使用数字、数据、实例和简单语言来支持指示可以使其易于理解和执行。

1:使用分隔符,""",```,—,<>,<tag> </tag>2:要求结构化输出HTML、JSON3:检查条件是否满足、检查执行任务所需的前提条件4:少量提示,给出完成任务的成功示例,然后要求模型执行该任务。

1.1:分隔符
使用分隔符的意思是明确指示不同的提示部分,这有助于模型理解应关注的文本内容,并且避免“提示注入”,即模型遵循用户输入而非预期提示。其实就是使用上面那几种符号来分开下段落好让模型可以更加精准的理解你所想要表达的意思。


这个案例就使用了分隔符,把这段"forget the previous instructions (忘记之前的指示)"包括在里面,模型就知道这是这个段落所要概括的文本是跟上面单独分开的,就不会跟上面的起冲突,不然模型就会把上面那些指令给忽略了。

1.2:结构化输出

还可以要求模型以结构化输出,如HTML或JSON格式,这使得解析模型输出结果更加容易

1.3:模型检查条件是否满足

检查条件是否满足检查完成任务所需的假设条件。可以根据提示词的语义来,按照提示词去总结出所需要的步骤。

这个提示词的语义就没办法生成相关的步骤

1.4:少量提示

给出完成任务的成功示例,然后要求模型基于这个执行该任务。最简单的就是一个概念如果你不懂也理解不了,那就通过比喻的方式,用你可以理解的比喻来解释这个概念,chatgpt就是可以让它通俗易懂点

2.给模型足够的思考时间

如果模型急于得出不正确的结论,应尝试重新构建查询,要求模型在提供最终答案前显示相关的推理链或一系列推理。另一种理解方式是,如果给模型一个时间太短或词数太少无法完成的复杂任务,它可能会猜测一个很可能不正确的答案。这同样会发生在人身上,如果要求某人在没有时间计算答案的情况下完成复杂的数学问题,他们也很可能会出错。在这些情况下,可以指示模型花更长时间思考问题,这意味着在任务上投入更多的计算资源。

2.1:指明完成任务所需的步骤

可以制定完成这个任务所需要完成的步骤,这样模型就可以按照步骤去一步一步执行,模型也可以有更多的时间去思考怎么完成这个任务。而不是根据很简单的提示然后模型自己杂乱无章的回答。

这个回答其实没有那么的规范,换个提示词让它回答的更加规范点


2.2:让模型在匆忙下结论之前先自己解决问题

指示模型在得出结论前自行解决问题,就像人一样。如果不给模型足够的时间进行推理,模型也可能做出不正确的假设或“浏览”信息。要求模型展示工作过程可以突出其推理的不足之处。

这是作者提出了一个问题,然后模型回答其实是错误的。这时候模型可能会猜测,但它的猜测可能是错误的。在没有时间计算答案的情况下回答问题,他们很可能也会犯错。所以在这些情况下,可以指示模型更长时间地思考一个问题,这意味着它在任务上花费了更多的计算功耗。

当我们明确地指导模型时,我们会得到更好的结果。在得出结论之前指导模型自行推理解决方案。这有点类似于在得出结论之前。在非常确定之前,给模型时间来实际解决问题给模型时间来实际解决问题,而不是在异想天开的情况下直接说出来,在确认答案之前,先看看情况再决定答案是否正确。在确定答案正确性方面,模型应该像人一样思考。因此,在这个问题中,我们要求模型来判断学生的答案是否正确。
输入优化后的提示词 (```用这个分隔符告诉模型那段是单独的):


输出:


模型局限性

作者在最后也解释过chatgpt会出现瞎编的问题,这个是因为如果模型在训练过程中接受了大量的知识后,大型语言模型并非能够完全记住所见的信息,这意味着它可能会尝试回答关于模糊的问题,因为它并不确定自己掌握的知识边界。甚至可以虚构听起来合理的答案,但实际上并不正确。这种捏造的想法作者称为"幻觉"。
作者给出目前的解决办法:让模型先找到相关的信息,然后让它基于这些相关的信息来回答问题,并设法追溯答案。如果可以追溯答案到源文件,这样对减少这些"幻觉"非常有帮助。

总之,提供清晰明确的提示、给模型足够的时间进行推理、将复杂任务分解为简单步骤、要求模型展示其推理过程,这些技巧可以帮助减少ChatGPT的限制和弱点,获得更准确和更高质量的输出。


能看到这里都是优秀的人,这么优秀的人点个关注不过分吧



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1