今天给大家分享6个提示词小技巧,通用于各种大语言模型(LLMs),不只是ChatGPT,也包括文心一言或各种开源模型,可以帮助改善输出结果。
技巧1:写下清晰且具体的指令 技巧2:给模型思考时间 技巧3:多次提示 技巧4:引导模型 技巧5:分解任务或提示 技巧6:使用外部工具
技巧1:写下清晰且具体的指令
指定期望的输出格式或输出长度。一种方法是让模型扮演一个角色。例如:
“假装你是一个科技博主。”“用大约两句话回复。” “给我这段文字的总结。这里有我喜欢的总结例子___”
提供例子。例如,这是少样本提示(few shot Prompting)的步骤:
第一个例子(first shot):给出一个提示和相应的输出(回答)。第二个例子(second shot):给出第二个提示和输出。 你的提示:给出你实际的提示词。
现在,模型可以按照前两个例子建立的模式来回复。
技巧2:给模型思考时间
模型在立即回应时更容易犯推理错误。
通过要求一系列推理,这促使模型逐步、更谨慎地思考。你可以要求“逐步思考”或者指定具体步骤。这个简单的提示添加非常有效:“一步一步想。”(Think step by step)
例如,如果你要求模型给学生的考试题目打分,你可以这样提示模型:
步骤1:先自己解决这个问题;步骤2:将自己的解决方案与学生的解决方案进行比较; 步骤3:在评估学生解决方案之前完成自己的解决方案计算。
技巧3:多次提示
当准确性最重要(而不是延迟或成本)时,通过不同的提示生成多个响应,然后确定最佳答案。
你可以调整的一些东西包括:
- 温度(temperature):调节大模型响应的随机性或创造性。更高的温度给出更多样、创造性的回应。更低的温度给出更保守、可预测的回应。
- 样本(shots):指的是提示中给出的例子数量。零样本(zero-shot)是指不提供例子,单样本(one-shot)是指提供一个例子,等等。
- 提示(Prompt):更直接或间接地请求解释、进行比较等。
技巧4:引导模型
以下是一些例子:
- 如果输入内容太长,模型可能会提前停止读取。你可以引导模型逐步处理较长的内容,并递归地构建完整的总结。
- 帮助它自我纠正。如果模型一开始就回答错误,就很难自我纠正。“我收到了你关于量子物理的解释,你确定你的答案吗?你能从量子力学的基础知识开始,重新审查并提供一个修正后的答案吗?”
- 不要问有明显倾向的问题。 模型很乐意“取悦”你,所以要引导但要保持提示的开放性,不要在问题中预设答案,比如:
“游戏会导致暴力吗?” (坏问题)“我想了解关子游戏和行为之间关系的研究结果概述,不要带有偏见。”(好问题)
技巧5:分解任务或提示
将复杂任务分解为多个简单任务。这样做的原因是复杂任务的错误率明显要比简单任务高。
“我要去巴黎三天,我需要知道要带什么,最好的餐厅,以及如何乘坐公共交通。”
意图1:去巴黎旅行需要带什么;意图2:推荐巴黎最好的餐厅; 意图3:指导如何在巴黎乘坐公共交通。
AI会分别处理每个意图,为行李打包、用餐和在巴黎出行提供定制化的建议,然后将这些整合成一个全面的回答。
或者,如果子任务是相互关联的:
步骤1:将任务分解成查询。步骤2:将第一个查询的输出输入到下一个查询中。
注意:这也可能会降低成本,因为每一步的成本都会更低。
技巧6:使用外部工具
一般来说,如果一个任务可以通过工具更可靠、高效地完成(相比较大模型),那就将其转移出去,以获得两者的优势。(此条可能不适用于非开发者,普通爱好者可以忽略,但道理就是不要让大模型做不擅长的事情)
以下是一些示例的工具:
- 计算器:大模型在数学方面表现不佳。它们原本的目标是生成token/词语,而不是数字。计算器可以显著提高LLM的数学能力。
- RAG(Retrieval-Augmented Generation,检索增强生成):将大模型连接到外部知识(公开网络或私有知识库),而不是仅仅从上下文窗口中获取信息。
- 代码执行:使用代码执行或调用外部API来执行和测试模型创建的代码。
- 外部函数:为模型定义函数以编写调用。例如,send_email()、get_current_weather()、get_customers()。在用户端执行这些函数,并将响应返回给模型。
以上,希望对你有帮助。