chatgpt可以写java代码吗 chatgpt怎么写出高质量的程序代码
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
- 前言
- 一、Zero-Shot提示
- 二、Few-Shot 提示
- Few-shot Prompting 的局限性
- 三、Chain-of-Thought Prompting
- 四、Zero-Shot CoT
- 五、Self-Consistency
- 六、Generated Knowledge 提示
- 七、Automatic Prompt Engineer (APE)
- 总结
随着ChatGPT的大火,提示工程在大模型中的重要性不言而喻,本文参考国外Prompt Engineering Guide完成国内中文版本的《提示工程指南》,希望能够和大家一起交流,分享及发现提示工程的美妙之处。文章所有内容可以在ChatGPT_Prompt_Chinese中找到。
到这个时候,应该很明显了,改进提示可以帮助在不同任务上获得更好的结果。这就是提示工程的整个理念。
虽然那些例子很有趣,但在我们深入探讨更高级的概念之前,让我们更正式地介绍一些概念。
今天的大语言模型在大量数据的训练和调整指令后,能够进行zero-shot任务执行。我们实际上在前面部分尝试了一些zero-shot示例。这里是我们使用的一个示例:
Prompt:
Output:
请注意,在上面的提示中,我们没有提供模型任何示例――这就是zero-shot功能的作用。当zero-shot无法正常工作时,建议在Prompt中提供演示或示例。下面我们将讨论称为 few-shot 提示的方法。
尽管大型语言模型已经展示了显著的zero-shot能力,但当使用zero-shot设置时,它们在更复杂的任务上仍然表现不足。为了改进这一点,few-shot prompt被用作一种技术,以实现上下文学习,在Prompt中提供演示,以引导模型获得更好的性能。这些演示作为后续示例的条件,我们希望模型生成响应。
让我们通过一个在Brown et al. 2020中提出的示例来演示 few-shot 提示。在这个例子中,任务是在一个句子中正确使用一个新词。
Prompt:
Output:
我们可以清楚地观察到,模型通过仅提供一个示例(即1-shot)学会了如何执行任务。对于更困难的任务,我们可以尝试增加演示次数(例如3-shot、5-shot、10-shot等)。
根据 Min et al. (2022),在进行 few-shot 时,以下是一些有关演示/范例的技巧:
- “演示中指定的标签空间和输入文本的分布都是关键因素(无论标签是否正确)”
- 即使只是使用随机标签,使用的格式也对性能起着关键作用,这比不使用标签要好得多。
- 附加结果表明,从真实标签分布中选择随机标签(而不是均匀分布)也有帮助。 让我们尝试一些示例。让我们首先尝试一个具有随机标签的示例(意味着将负面和积极标签随机分配给输入):
Prompt:
Output:
尽管标签已被随机化,我们仍然得到了正确的答案。请注意,我们也保留了格式,这也有所帮助。实际上,通过进一步实验,我们正在进行的新型 GPT 模型似乎变得更加强大,即使是在随机格式下也是如此。例如:
Prompt:
Output:
标准的 Few-shot Prompting 技术对于许多任务来说表现良好,但在处理更复杂的推理任务时仍不是一种完美的技术。让我们演示一下为什么会出现这种情况。您还记得我们之前提供的以下任务的例子吗?
如果我们再试一次,模型输出如下:
这不是正确的回答,这不仅突显了这些系统的局限性,而且需要更先进的提示工程技术。让我们尝试添加一些示例,看看是否可以改善 Few-shot Prompting 的结果。 Prompt:
Output:
Few-shot Prompting 对于此类推理问题的已经能够获得可靠响应。上面的例子提供了任务的基本信息。如果您仔细观察,我们所介绍的任务类型涉及几个更多的推理步骤。换句话说,如果我们将问题分解成步骤,并向模型演示,可能会有所帮助。最近,chain-of-thought (CoT) prompting已经普及,用于解决更复杂的算术、常识和符号推理任务。
总的来说,提供示例对于解决一些任务是有用的。当零次提示和少次提示不足时,这可能意味着模型所学到的不足以胜任任务。因此,建议开始考虑微调您自己的模型或尝试更高级的提示技术。接下来,我们将讨论一种流行的提示技术,称为 chain-of-thought prompting,它已经广受欢迎。
Wei等人(2022)介绍了 chain-of-thought (CoT) prompting,它通过中间推理步骤实现复杂的推理能力。您可以将其与 Few-shot Prompting 结合使用,以在需要推理后响应的更复杂任务中获得更好的结果。
Prompt:
Output:
哇!我们可以看到当我们提供推理步骤时,结果是完美的。实际上,我们可以通过提供更少的示例来解决此任务,即只提供一个示例似乎就足够了: Prompt:
Output:
请记住,作者声称这是足够大的语言模型所产生的一种新兴能力。
最近提出的一个新思路是 zero-shot CoT (Kojima等人 2022),其基本上涉及将“让我们一步步思考”添加到原始提示中。让我们尝试一个简单的问题,看看模型的表现如何:
Prompt:
Output:
答案是不正确的!现在让我们试试特殊提示的方式。 Prompt:
Output:
实际上,这个简单的提示在这个任务上非常有效,令人印象深刻。这在您没有太多示例可用于提示的情况下特别有用。
或许,对于提示工程来说,更高级的技术之一就是self-consistency。Wang et al. (2022)提出了自一致性的概念,旨在“取代链式思维提示中使用的简单贪婪解码”。其思路是通过少次 CoT 来采样多条不同的推理路径,并使用生成结果来选择最一致的答案。这有助于提高 CoT 提示在涉及算术和常识推理任务中的性能。
让我们尝试下面这个算术推理的例子:
Prompt:
Output:
不得不说,chatgpt在这块儿已经比da【【微信】】 “聪明”了不少,已经能够正确回答这类算数推理的问题了。
Prompt:
Output 1:
Output 2:
Output 3:
计算最终答案涉及几个步骤(请查看论文了解详情),但为了简单起见,我们可以清楚地看到已经出现了大多数的答案,因此那将成为最终答案。
大语言模型(LLMs)不断得到改进,其中一种流行的技术是能够整合知识或信息,以帮助模型进行更准确的预测。
使用类似的想法,模型是否也可以在进行预测之前生成知识?这正是 Liu et al. 2022在论文中尝试的内容――生成用作提示的知识。特别是,这对于常识推理等任务有多大帮助?
让我们试试一个简单的提示
Prompt:
Output:
这种错误揭示了大型语言模型在执行需要更多关于世界知识的任务时的局限性。我们如何通过知识生成来改进这一点?
首先,我们生成一些“知识”: Prompt:
Knowledge 1:
Knowledge 2:
我们正在使用Liu et al. 2022的论文中提供的提示。
下一步是将知识整合并得出预测。我将问题重新格式化为问答格式,以指导答案的格式。 Prompt:
Answer 1 :
Answer 2 (confidence is a lot lower):
在这个例子中发生了一些非常有趣的事情。在第一个答案中,模型非常自信,但在第二个答案中则不然。我为了演示目的而简化了这个过程,但在得出最终答案时还有一些细节需要考虑。请查阅论文以获取更多信息。
Zhou et al., (2022)提出了一个名为“自动提示工程师”(APE)的框架,用于自动生成和选择指令。指令生成问题被构建为自然语言合成,使用LLMs解决黑盒优化问题来生成和搜索候选解决方案。
第一步涉及一个大型语言模型(作为推理模型),该模型给出输出演示,为任务生成指令候选项。这些候选解决方案将指导搜索过程。指令使用目标模型执行,然后根据计算的评估分数选择最适合的指令。
APE发现了比人工设计的“让我们一步一步地思考”(Kojima等人,2022年)更好的零样本CoT提示。
该提示“让我们一步一步地解决它,以确保我们有正确的答案。”引发了连锁思维,并提高了在MultiArith和GSM8K基准测试中的性能。
本文涉及一个与提示工程相关的重要主题,即自动优化提示的想法。虽然本指南不会深入探讨这个主题,但如果您对此感兴趣,以下是几篇关键论文:
- AutoPrompt - 提出了一种基于梯度引导搜索的方法,用于自动创建各种任务的提示。
- Prefix Tuning - 一种轻量级的Fine-tuning替代方案,为NLG任务准备一个可训练的连续前缀。
- Prompt Tuning - 提出了一种通过反向传播学习软提示的机制。
这篇文章我们介绍Prompt提示工程的一些高级示例,也对如何进一步调教大模型有了更深入的了解,在带你玩转ChatGPT 专栏中,我们会继续介绍ChatGPT的更多应用及实践案例。
三变科技股票值得长期持有吗
“东财转2”于2020年7月17日起进入转股期,公司股票自2020年7月17日至2020年8月6日连续15个交易日的收盘价格均不低于当期转股价格(13.13元/股)的130%已触发赎回条款。
赎回价格:100.12元/张
赎回登记日:2020年8月27日
赎回日:2020年8月28日
停止交易和转股日:2020年8月28日
发行人资金到账日(到达结算公司账户):2020年9月2日
投资者赎回款到账日:2020年9月4日
根据安排,截至2020年8月27日收市后仍未转股的“东财转2”将被强制赎回,本次赎回完成后,“东财转2”将在深圳证券交易所摘牌。持有人持有的“东财转2”如存在被质押或被冻结的,建议在停止交易和转股日前解除质押和冻结,以免出现无法转股而被赎回的情形。
本次可转债赎回价格可能与“东财转2”停止交易和转股前的市场价格存在较大差异,特别提醒持有人注意在限期内转股。如果投资者不能在2020年8月27日当日及之前自行完成转股,可能面临损失,敬请投资者注意投资风险。
敬请投资者仔细阅读相关公告,注意投资风险。