以下是一些使用语言模型的最佳实践案例:
大型语言模型非常擅长将其输入转换为不同的格式,例如将一种语言中的文本输入并将其转换或翻译成另一种语言,或帮助拼写和语法矫正,因此,您可以输入一段可能不完全符合语法规范的文本,并帮助你稍微修改一下,或者甚至转换格式,例如输入HTML并输出JSON。因此,我以前用一堆正则表达式写的一堆应用程序现在肯定可以更简单地实现,只需要使用一个大型语言模型和几个提示即可。大型语言模型可以使这些转换过程更加简单和高效,为人们提供更好的文本相关应用体验。是的,我现在基本上会使用ChatGPT来校对我所写的每一篇文章,所以现在我很高兴向您展示更多Notebook中的例子。所以首先我们将导入OpenAI并使用相同的getCompletion帮助函数,这是我们在视频中一直在使用的。[heading2]6.1翻译任务[content]接下来我们将执行一个翻译任务。因此,大型语言模型是在很多来源的文本上进行训练的,其中很多是互联网的内容,并且这些文本内容是以许多不同的语言呈现的。这种训练使模型具有进行翻译的能力。这些模型能够以不同程度掌握数百种语言,因此我们将讨论如何使用这种能力的一些示例。让我们从一些简单的例子开始。在第一个例子中,提示是将以下英文文本翻译成西班牙语。Hi,我想订购一个搅拌机。回复是Hola,me gustaría ordenar una licuadora。非常抱歉,对于所有的西班牙语使用者,我从未学过西班牙语,您肯定已经注意到了。好的,让我们再试一个例子。在此例中,提示是告诉我这是什么语言。然后,这是法语,Combien coûte la lampe d’air。让我们运行一下。模型已经确定这是法语。
您可以通过简单的提示词(Prompts)获得大量结果,但结果的质量与您提供的信息数量和完善度有关。一个提示词可以包含您传递到模型的_指令_或_问题_等信息,也可以包含其他详细信息,如_上下文_、_输入_或_示例_等。您可以通过这些元素来更好地指导模型,并因此获得更好的结果。看下面一个简单的示例:提示词输出结果如果使用的是OpenAI Playground或者其他任何LLM Playground,则可以提示模型,如以下屏幕截图所示:需要注意的是,当使用OpenAI的gpt-4或者gpt-3.5-turbo等聊天模型时,您可以使用三个不同的角色来构建prompt:system、user和assistant。其中system不是必需的,但有助于设定assistant的整体行为,帮助模型了解用户的需求,并根据这些需求提供相应的响应。上面的示例仅包含一条user消息,您可以使用user消息直接作为prompt。为简单起见,本指南所有示例(除非明确提及)将仅使用user消息来作为gpt-3.5-turbo模型的prompt。上面示例中assistant的消息是模型的响应。您还可以定义assistant消息来传递模型所需行为的示例。您可以在[此处(opens in a new tab)](https://www.promptingguide.ai/models/chatgpt)了解有关使用聊天模型的更多信息。从上面的提示示例中可以看出,语言模型能够基于我们给出的上下文内容`"The sky is"完成续写。而输出的结果可能是出人意料的,或远高于我们的任务要求。但是,我们可以通过改进提示词来获得更好的结果。让我们试着改进以下:提示词输出结果结果是不是要好一些了?本例中,我们告知模型去完善句子,因此输出的结果和我们最初的输入是完全符合的。提示工程(Prompt Engineering)就是探讨如何设计出最佳提示词,用于指导语言模型帮助我们高效完成某项任务。以上示例基本说明了现阶段的大语言模型能够发挥的功能作用。它们可以用于执行各种高级任务,如文本概括、数学推理、代码生成等。
正如软件工程中将复杂系统分解成多个模块一样,将提交给语言模型的任务分解成更小的子任务也是一种良好的实践。复杂任务通常比简单任务更容易出错,而且可以将复杂任务重新定义为一系列简单任务的工作流程,其中每个任务的输出作为下一个任务的输入。策略:使用意图分类识别用户查询中最相关的指令,根据用户意图选择最相关的指令集。对于需要很长对话的应用,总结或过滤之前的对话内容,避免超出模型的上下文窗口大小限制。将长文档分段总结,并递归构建完整摘要,逐步总结长文档的内容。[heading3]4.给予模型“思考”时间[content]就像你需要时间计算17乘以28一样,模型也需要时间进行推理才能得到正确答案。在回答问题之前,给予模型一定的“思考”时间可以减少推理错误。可以让模型在给出最终答案之前先进行“思考链”推理,提高答案的可靠性。策略:指导模型在得出结论之前先尝试给出自己的解决方案,避免受到用户提供的错误解决方案的干扰。使用“内心独白”或一系列查询来隐藏模型的推理过程,避免在某些应用场景中泄露答案。询问模型是否在之前的回答中遗漏了什么,确保信息的完整性。