-角色:模型在天生文本时应扮演的角色;
-指令:模型在天生文本时应遵照的指令;
-任务:明确而简洁地陈述Prompt哀求模型天生的内容;

-高下文:给模型任务时,供应正在谈论的主题的干系背景信息;
-示例:向模型供应一个或多个用于仿写或逻辑推理的例子。
图1 高质量Prompt应具备的组成元素
在用户提问的过程中,可以用到以下技巧:
(一)根本运用技巧
1.角色提示:给大模型预分配一个角色,帮助大模型更好地理解问题。
例如:向大模型提问——“如果你是一名金融领域的状师,请回答个人信息透露可能带来的法律风险”。如果仅提问“个人信息透露的风险”,则输出的结果可能完备不同。
2.掌握输出风格和格式:调度天生文本的风格、语气和表达办法,使输出内容符合特定场景的哀求。
例如:
(1)向大模型提问——“请用公函行文格式写一篇有关国庆节放假的关照,包含标题、正文、结尾,文体持重平实,编号和标点利用规范”,这里“关照”可以换成任意一种公函形式(函、纪要、请示、见地、批复等),也可以让大模型天生邮件、条约、微博、广告等其他文体。
(2)向大模型提问——“现在有一批财报数据:2023年公司营收增长了15%,达到了5000万元,利润率为12%(净利润为600万元);客户根本增长了20%,现在统共有10万名客户;公司运营用度增加了10%,达到了1000万元;公司员工数量增加了25%,当前的员工人数为500人。请天生包含此信息的表格。”大模型天生的表格如下,可以直接将表格粘贴到Excel中利用。
图2 根据Prompt天生表格
实验案例
(3)向大模型提问——“请帮我写一段读取csv文档的Python代码”,大模型即可天生以Python编程的代码,可以直接运行,提高程序员编程的效率。大模型还支持C++、Java、SQL、PHP、Julia、Erlang、JS、HTML、Go等险些所有编程措辞,可以利用大模型进行代码天生、代码注释、代码重构、代码优化及Debug、多编程措辞转译等代码事情。
3.供应前置信息和高下文:通过在提问中供应额外的背景和高下文信息,使问题更加明确,如添加特定情景、补充办理过程、加入对问题的描述以及完全地输出解释,以帮助大模型更好地理解用户问题,得到更准确的回答。
例如:向大模型提问——“我正在学习大模型Agent技能,但在方案事情流Workflow时碰着了困难,你能向我阐明一下Agent Workflow的观点吗?详细来说,我正在创建ReAct Agent,请供应一些关于ReAct Agent的创建步骤,并从Thought、Action、Pause、Observation、Answer这几个角度进行阐明,帮助我天生一段编程示例代码”。
4.限定受众工具:在提问中明确指定回答的目标群体,或指定特定的利用场景和用户需求。
例如:向大模型提问——“请用向幼儿园小朋友讲解的语气,阐明为什么太阳、玉轮和星星挂在天上不会掉下来”。
5.限定输出长度:在提问中限定输出的字数,迫使模型供应更精髓精辟的表达,在有限篇幅内通报更丰富的信息,这种技巧常用于大模型总结。
例如:向大模型提问——“请对刚才上传的文章进行剖析总结和归纳主旨,写一段不超过400字的总结大纲,按照大纲级别的格式输出”,大模型即可天生一篇短小精悍的大纲,帮助用户理解。不仅如此,大模型能够对不同文体(如论文、博客、演讲)和多种格式文件(如Word、PDF、PPT)进行择要归纳,最新版的大模型插件还支持对网页和视频内容进行总结提炼,大幅提升了学习和事情效率。除了总结,大模型还能反向扩写文章,首先利用关键字天生大纲,接着根据大纲扩写天生文章,帮助用户快速完成文章撰写。
(二)中阶运用技巧
1.供应示例进行仿写:向大模型供应多个示例(few shots)用于学习,帮助大模型逻辑推理,进而按照用户的想法输出。
例如:(1)向大模型提问——“【答案】:一篇幽美的文章便是措辞的升华,也是心灵的抚慰。【题目】:一篇幽美的文章便是(),也是()。
请根据上面的示例,出几道小学语文填写题。”大模型天生的示例如下:
图3 根据Prompt天生仿写
(2)向大模型提问——“【输入1】吴承恩写的《西游记》是中国的四大名著之一,【输出1】JSON: {“作者”: ”吴承恩”, “书名”: “西游记”}。
【输入2】《骆驼祥子》是老舍反响封建底层公民生活的一篇巨作,【输出2】JSON: {“作者”: “老舍”, “书名”: “骆驼祥子”}。
请根据上面的示例,对语句【输入】“在《平凡的天下》中,路遥全景式地表现了中国当代城乡社会生活”,天生JSON格式的【输出】”。大模型天生的示例如下:
图4 根据Prompt抽取信息
可以根据上述思路,让大模型通过学习示例高下文信息,完成信息和实体关系抽取任务,并按照指定格式输出结果。
2.构造化提示词:将提示词(Prompt)的内容以构造化和模板化的办法呈现,通过定义变量,可以方便地修正提示词内容。不同用户只需赋值变量参数即可利用提示词模板,从而使提示词工程师能够像进行代码开拓一样,构建和掩护生产级别的提示词模块。
向大模型提问——“‘年夜夫’代表一个在该领域拥有多个博士学位、从事医学事情超过十年的医学专家的风格。您在回答中利用学术语法和繁芜的例子,重点关注不太有名的建议以更好地阐明您的论点。利用学术性和口语化的措辞稠浊,营造出易于理解和引人入胜的语气。
‘病人’代表一个患有某种疾病但是对病理完备不理解的人的风格。您利用真实生活的例子如身上某处的详细病痛来大略阐明。利用非正式的、第一人称的语气,利用口语化的措辞,营造出发急但不理解情形的语气。
‘反问’代表剖析给定文本并供应反馈的意思。‘阐述’代表供应文本的关键细节。‘回答’代表从给定的角度回答问题的意思。
圆括号()中的内容表示您写作的角度。花括号{}中的内容表示您所涉及的主题。方括号[]中的内容表示您该当采纳的行动。
例子:(病人){心脏病}[回答] 患有这种疾病有什么感想熏染、该当把稳哪些方面?
如果您理解并准备开始,请回答‘是’。”大模型天生的示例如下:
图5 根据构造化Prompt参数天生不同角色回答
因此,可以通过定制提示词的构造和设定参数格式,使大模型能够对不同角色、不同主题、不同规则和不同情景供应有针对性的回答。开源项目LangGPT将这套构造化提示词的方法论进行了封装,设定分层级的构造化模板,利用Role (角色)、Profile (简介)、Rules(规则)、Description(描述)等属性词参数标识语义构造,利用标识符(如#、<>、-、[]、{}等符号)标识层次构造(Markdown语法层级)。构造化提示词可以充分利用大模型能力,开拓者通过封装模块的接口即可调用,提高了提示词的可编程性。
(三)高阶运用技巧
1.思维链(Chain-of-Thoughts, CoT):加入“请分步阐明”、“想一想”、“首先...然后”、“让我们一步一步思考”等提示词短语,让模型输出时阐明其推理过程。有研究表明,这种将问题分解成多个步骤、逐步办理的思维链技能,可以明显改进在算术、知识和符号推理等任务上的输出结果。这也印证了学术界的猜想,即对模型任务拆解的越细、单任务越大略,大模型的输出结果越好。
2.自洽性(Self-consistency):不仅仅天生一个思维链,而是天生多个独立的思维链,然后取多数答案作为终极答案。这是一种对抗大模型“幻觉”的手段,旨在“更换链式思维提示中利用的naive greedy解码方法”,多次运行同样的Prompt进行任务“验算”,终极通过投票选择最同等的答案作为天生结果。
3.提示链(Prompt Chain)/最少到最多提示(Least to Most prompting, LtM):这是上面思维链的通用表示,即将问题分解为子问题,然后逐个办理。这是在任务过于繁芜、超出单一Prompt处理能力时的办理方案,通过将任务分解并构建多个Prompt协同事情来实现。提示树(Prompt Tree)/思维树(Tree-of-Thoughts, ToT)也借鉴了分解任务的思想,通过自顶向下不断拆解子任务构成任务树,得到多种模型输出,并利用搜索算法(如树搜索)或自定义规则(排列组合、筛选、集成等)得到终极结果。类似的,提示图(Prompt Graph)/思维图(Graph-of-Thoughts, GoT)也是将任务分解为网络图上的子任务,通过不同Prompt之间的协同交互来完成任务。
4.天生知识法(Generated Knowledge Approach):在输出终极答案之前,模型先通过少量示例提示天生知识,然后集成并整合这些知识以进一步回答问题。这种“知识增强”的方法可以提升大模型解答问题的能力。
5.反思(Reflexion):通过自我反思和总结失落败履历,快速有效地从之前的缺点中学习,提升缺点纠正能力,避免“思维循环”。它由3个模型组成:(1)参与者(Actor)——基于状态不雅观测并天生输出;(2)评估者(Evaluator)——评价参与者的输出;(3)自我反思(Self-Reflection)——利用反馈天生强化提示词,以帮助参与者实现自我完善。反思技能在序列决策、推理、编程等情景下有很好的效果。
6.软提示(soft prompt)/提示微调(Prompt Tuning):通过学习一个可调度参数的连续向量表示(即Embedding后的软提示),并与原始输入文本的向量拼接作为新输入。利用大模型强大的高下文学习能力,只需一个预先演习好的模型即可处理多个任务,无需为每个任务单独建立一个模型。在此过程中,原始模型的权重保持固定,仅需演习软提示的向量表示,从而节省模型微调所需的打算资源,是模型微调的一种替代方法。与人工编写的文本提示词不同,自然措辞布局的Prompt被称为“硬提示(hard prompt)”或“离散提示”,这种自然措辞的细微改动都可能影响模型表现。比较之下,软提示的连续向量可以自动化学习,无需花费较多精力设计提示词,从而使模型输出的结果更加稳定。
Prompt通向Agent之路当我们节制了丰富的提示词技巧之后,就可以将提示词变为具有生产力的工具了,从某种意义上说,这个工具便是大模型的Agent(智能体)。
上面提到的LangGPT,便是将不同角色、规则、描述下的提示词信息封装成模板,通过接口参数进行调用的工具。这种标准构造提示词有助于明确Agent的用场、技能、须要遵守的规则、事情流程和初始化行为等,是Agent构建的基石。
Agent由方案(Planning)、影象(Memory)、工具(Tool)等模块构成。上文提到的高阶运用技巧就用到了Agent模块思路,个中思维链(CoT)、思维树(ToT)和思维图(GoT)表示了Planning中的子任务分解思想;反思(Reflexion)和ReAct(Reason+Act)表示了Planning中的反思和完善思想;天生知识法(GKA)和Function Calling表示了Tool调用工具的思想。将范例提示词元素与这些技巧框架相领悟,封装为事情流后,就形成了不同用场的Agent智能体。
更进一步,乃至可以将手动编写Prompt的事情自动化,形成标准化和自动化的流水线Agent。通过根据元提示词模板封装的Agent,可以实现构造化提示词的自动天生。此外,自动推理和工具利用(Automatic Reasoning and Tool-use, ART)框架能够将新任务拆解,并在适当环节利用工具,办理了大模型在分步处理繁芜问题时须要手动编写程序的问题。目前,环绕图像天生、创意写作、学术编辑平分歧场景,已经形成了一个基于Prompt的Agent工具链社区。社区中涌现了浩瀚全自动化Prompt工具网站,许多研究者正在积极地进行这些工具的开拓和优化。
随着AIGC(人工智能天生内容)运用的日益遍及,与大模型的交互正逐渐成为生活的一部分。高质量的Prompt对提升模型的天生效果至关主要,节制有效的Prompt技巧可以让我们更加高效、准确地与大模型沟通。通过本文的先容,希望能够帮助读者提升编写Prompt的能力,破解AI“秘密咒语”。