在LLM领域中,prompt是指用于引导模型生成期望内容的输入文本。prompt可以是一个问题、一个主题、一段描述等等,它可以帮助模型理解用户的意图并生成相应的内容。在使用LLM进行内容生成时,prompt的选择和设计非常重要,因为它将直接影响生成内容的质量和准确性。
prompt engineering(提示工程):通过开发和优化prompt,帮助语言模型用于各种应用场景和研究领域。
写好prompt的一些具体原则总结:
(1)清晰的指令:足够清晰明确地向模型说明你的需求,避免模糊表达。
(2)提供上下文和例子:给出较为充分的上下文信息或者例子,让模型更好地理解相关背景和你的要求。
(3)善用符号和语法:使用清晰的标点符号、标记有助于模型理解意图,也可使输出更容易被解析。
(4)让模型一步一步地思考:在这种方法中,模型逐步进行思考,并给出涉及的步骤,这样做可以增强模型响应的可解释性和降低结果不准确的可能性。
(5)激励模型反思和给出思路:可以在prompt中用一些措辞激励模型给出理由,这样有助于我们更好地分析模型生成结果;思维过程的生成也有助于其生成更高质量的结果。
(6)给容错空间:若模型无法完成指定的任务,就给模型提供一个备用响应;例如针对文本提问,若无法提供答案则回复“无答案”。
(7)让模型给出信息来源:在模型结合搜索或者外部知识库时,要求模型提供其相应的信息来源,可以帮助LLM的响应减少捏造,并获取到最新的信息。
优质的prompt千变万化,但遵循上述规则,可以总结出一个比较实用的框架,可能可以帮助用户从LLM中收获更高质量的生成结果。包含如下内容:
system message:
你希望大模型扮演什么角色来解决你当前的问题。大模型具有较强的角色扮演能力,相比直接回答往往表现更好。system message中也可以规定大模型的回答范围。
prompt:
指令:明确说明你希望大模型做什么事情,不要含糊其辞。
例子:如果可能,提供尽可能丰富的例子信息。
原因:详细解释你希望模型做这件事情的原因、动机、希望的结果等,这样大模型能更好地理解你的想法,执行需求。
对于复杂任务,让大模型一步一步地思考,可以给出更加合理的答案。
对于输出格式的形容:对于部分场景,明确大模型输出格式的要求,可以更好地获取到更加结构化,适用系统调用的答案。
扩展
Search API + GPT:
调用搜索接口得到结果,再让LLM对其结果进行归纳总结。
(New Bing 的设计思路 = Bing Search + GPT4)
Embedding Search + GPT:
嵌入搜索加ChatGPT的模式非常适合做一个企业内部的Q&A机器人。因为这时企业的数据不需要全部上传到云端,也不需要去微调模型,既节省成本又保护(公司、用户)数据的隐私。
上面介绍的两种工具,一个具有联网能力的Search API,一个是具有本地数据的Embedding Search,都是GPT和某个特定的工具进行整合,那么模型是否可以同时和多个第三方工具进行整合呢?是否可以让模型自己去决定要在哪个步骤自动调用哪些工具呢?这就是今天要介绍的最后一个prompt技术,也是最神奇的,叫ReAct!
ReAct就是Reson(推理)+ Act(动作)
大致的思路是让模型进行推理。在推理过程中,自己决定要调用哪些外部工具,当调用外部工具后,再把结果告诉模型,然后继续推理下一步需要做什么,一步一步的直到把任务完成。
prompt学习文档:提示工程指南 | Prompt Engineering Guide (promptingguide.ai)
ChatGLM官方prompt教学文档:Prompt 工程实践教程 - 飞书云文档 (feishu.cn)

868

被折叠的 条评论
为什么被折叠?



