当前位置: 首页>装修建议> 正文

搞IT的还不会大模型Prompt,是不是要失业了……

2025-10-1244

在数字化浪潮的推动下,AI大模型以其卓越的自然语言处理能力和智能交互特性,迅速在很多领域中占据了重要地位。比如:与传统客服相比,AI大模型展现出了无可比拟的优势,通过精心设计的prompt,能使我们在客服托管、智能客服等多个项目和业务场景中发挥显著作用,大幅提高工作效率,优化成果质量。为了精进个人能力以及助力产研学习氛围的提升,本人在学习完吴恩达教授以及其他前辈们有关prompt的课程之后,整理了这份学习资料,以供大家学习交流。该笔记将深入探讨prompt的定义和撰写框架,详细阐述打造高效prompt的原则与策略,同时从技术原理层面剖析prompt,助力读者更好地运用大模型,提升业务价值。

第一节:Prompt定义及基本框架

一、什么是Prompt

大模型prompt指在大语言模型应用中,用于“提示”模型唤起特定能力以解决实际问题的提问方式。早期它被称作“输入形式”或“输入模板”,后来“prompt”(提示)这一叫法因契合大语言模型语境,能准确体现其在调用模型能力方面的关键作用,成为公认术语。

大模型多数核心能力在预训练阶段形成,prompt就像钥匙,引导模型从预训练积累的海量信息中,精准唤起如理解复杂文本、总结信息、生成内容、逻辑推理等能力,满足用户实际需求。它并非把模型当作单纯知识库,而是高效调用其能力,实现类似人类运用智能解决复杂问题的效果,是prompt工程的核心,对用好大语言模型意义重大。

二、撰写Prompt的基本框架

1、Prompt包含的要素

指令:想要模型执行的特定任务或指令。


上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。


输入数据:用户输入的内容或问题。


输出指示:指定输出的类型或格式。

2、Prompt五大框架

2.1RTF框架

RTF(Role-Task-Format)框架是一个非常简单通用的Prompt提示框架,我们和任意大模型对话场景下都可以使用该规范进行改进输出。


T-Task(任务):任务,告诉大模型需要为我们做的事情


F-Format(格式):大模型最终结果的返回格式(比如:表格、Markdown、英文等等)

主要优点:

简单、方便。


指定Role角色,可以让大模型在当前的角色范围内回答知识,这在一些特定的领域中非常有效。


指定Role角色也能让工程上检索知识能够确定边界范围,配合元数据所发挥的威力会更强。


如果结合RAG知识内容检索,那么上下文回答的内容会让用户感觉更加是顺畅。

2.2思考链模式

通过这种模式来逐步改善大模型的推理能力,非常适合一些复杂的任务处理。例如:

分析型或者逻辑推理型的任务


决策


解决问题(比如程序员根据错误日志找Bug)

而要使用这种模式,只需要在末尾添加”让我们逐步思考”即可。例如:

模型输出结果output1:在人工客服服务场景下,客户主要诉求为:微信账号存在安全风险导致无法添加好友、单点拦截、下载安装微信出现问题等,寻求客服协助解决问题。output2:在人工客服服务场景下,客户主要诉求为:微信账号存在安全风险导致无法添加好友,以及因违规行为被限制登录,客户希望客服能够尽快处理这些问题。数据源(与指令区分)user_datasource="""XXX……"""模型输出ulli《三体》-刘慈欣/lili《基地》-艾萨克·阿西莫夫/lili《银河帝国:机器人五部曲》-艾萨克·阿西莫夫/li/ul

策略3:要求模型检查条件是否满足

在面对复杂任务时,如果在一些假设条件,而这些条件并非总是成立,那么我们需要引导模型首先对这些假设进行检查。若条件不满足,模型应明确指示并停止继续执行任务,以避免无效计算和错误结果。同时,考虑潜在的边缘情况,并为模型设定相应的处理规则,能够有效减少意外错误,确保模型输出的稳定性和可靠性。

示例:假设我们要求模型计算一个数学表达式,但前提是表达式所有都为正数。

expression="5+3-(-2)"prompt=f"""首先检查表达式'{expression}'中的所有数字是否都为正数。如果是,请计算该表达式的值;如果不是,请输出'表达式中存在非正数,无法计算'。"""模型输出翻译:library造句:Ioftenreadbooksinthelibrary

原则二:给予模型充足的思考时间

当模型因急于得出结论而出现推理错误时,我们需要通过优化式,为模型提供更清晰的推理路径,引导其进行更深入、全面的思考。

策略1:明确完成任务所需的步骤

为模型详细指定完成任务所需遵循的步骤,能够帮助模型有条不推理和计算。通过这种方式,模型可以更清晰地理解任务的逻辑结构,避免因思路混乱而产生错误。例如,要求模型按照特定格式输出,能够引导其在处理过程中注重信息的组织和呈现方式。

示例:要求模型分析一首古诗,格式为“诗歌主题-主要意象-表达情感”。

poem="床前明月光,疑是地上霜。举头望明月,低头思故乡。"prompt=f"""请按照“诗歌主题-主要意象-表达情感”的格式分析这首诗:{poem}"""模型输出首先,从薪酬福利方面,可适当提高薪资水平、完善福利体系,如增加带薪休假天数等;其次,从职业发展角度,为员工提供更多培训机会和晋升通道;再者,从工作环境来看,营造舒适、和谐的办公氛围,加强团队建设活动。综合这些方面,提高公司员工满意度可以从优化薪酬福利、提供职业发展机会以及改善工作环境等措施入手。

三、模型的局限性与应对策略

尽管语言模型在大量数据的训练下展现出强大的能力,但它们并非完美无缺。其中,“幻觉”现象是模型面个重要挑战。

模型“幻觉”

即使模型在训练过程中接触了海量知识,但它并不能完美记住所有信息,也难以精准把握自身知识的边界。这就导致在面对晦涩主题的问题时,模型可能会编造出看似合理但实际上错误的内容,这就是所谓的“幻觉”。

解决幻觉的一种策略

示例:给定一段关于历史事件的文本,要求模型回答相关问题。

text="""1861年,美国爆发了南北战争,这场战争是美国历史上的重要转折点,它主要围绕奴隶制的存废问题展开,北方主张废除奴隶制,南方则坚持保留。最终北方取得了胜利,为美国的工业化发展铺平了道路。"""prompt=f"""请从上述文本中找出相关信息,回答南北战争主要围绕什么问题展开?"""模型会依据自身预训练知识对这个提示进行处理并输出结果

模型能依据自身预训练知识输出“积极”。然而,由于缺乏具体示例引导,对于复杂任务,其效果可能受限。

二、少样本提示(Few-ShotPrompting)

少样本提示在零样本提示效果不佳时发挥作用。它通过为模型提供少量任务示例,帮助模型学习任务模式和规律。例如:

prompt="""“whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用whatpu这个词的句子的例子是:我们在非洲旅行时看到了这些非常可爱的whatpus。“farduddle”是指快速跳上跳下。一个使用farduddle这个词的句子的例子是:"""模型按照提示中的推理步骤进行计算和回答

此技术可与少样本提示结合,增强效果,尤其适用于算术、常识推理等任务,帮助模型更有条理地处理问题。

四、自我一致性(Self-Consistency)

自我一致性技术主要用于优化思维链提示中的推理路径选择。其核心思想是通过提供多个少样本推理示例,让模型从多样的推理结果中筛选出最一致的答案,增强模型在算术和常识推理任务中的可靠性。比如:

prompt="""Q:林中有15棵树。林业工人今天将在林中种树。完成后,将有21棵树。林业工人今天种了多少棵树?A:我们从15棵树开始。后来我们有21棵树。差异必须是他们种树的数量。因此,他们必须种了21-15=6棵树。答案是6。Q:停车场有3辆汽车,又来了2辆汽车,停车场有多少辆汽车?A:停车场已经有3辆汽车。又来了2辆。现在有3+2=5辆汽车。答案是5。Q:当我6岁时,我的妹妹是我的一半年龄。现在我70岁了,我的妹妹多大?A:"""模型根据生成的知识对问题进行回答

像这样先生成相关知识,再整合知识得出准确答案“不是,高尔夫球的目标是以最少杆数完成比赛,而非追求更高得分”,有效提升模型在常识推理任务的准确性。

六、链式提示(PromptChaining)

链式提示是将复杂任务拆解为多个子任务,通过逐个子任务生成提示并传递结果的方式来实现复杂任务的有序处理。以文档问答为例:

假设这里有一个文档变量doc,将其代入提示中进行处理第二个提示根据引文和文档生成回答prompt2="""根据从文档中提取的相关引文(由quotes/quotes分隔)和原始文档(由分隔),请构建对问题的回答。请确保答案准确、语气友好且有帮助。{{文档}}quotes{quotes_list}/quotes"""假设给定数字为4、9、10、13prompt="""输入:4910134+9=13(left101313)10-4=6(left6913)13-6=713-9=44+6=10(left794*6=24(left46)评估是否能得到24:sure"""假设这里有一个检索函数retrieve_documents和一个生成答案的函数generate_answerquestion="谁是首次登上月球的人?"documents=retrieve_documents(question)prompt="根据以下文档回答问题:"+str(documents)+"问题是:"+questionanswer=generate_answer(prompt)模型会生成类似下面的程序步骤然后可以在代码中执行这个程序步骤得到最终答案

在BigBench和MMLU基准测试中,ART在多种任务上表现突出,显著超越少样本提示和自动CoT等方法,提升了模型解决问题的能力和效率。

十、自动提示工程师(APE)

自动提示工程师(APE)技术能够自动生成和筛选任务指令。它通过利用大型语言模型生成指令候选项,再依据评估分数选择最佳指令,从而提升提示生成的效率与效果。比如:

模型根据最终的prompt生成文章总结

例如总结新闻文章时,它先利用大型语言模型生成如“提取文章关键人物、事件和时间”“概括文章主要内容并突出重点”等指令候选项,再依据评估分数选择最佳指令,指导模型生成高质量总结。

十一、Active-Prompt

Active-Prompt技术主要用于解决思维链示例有效性的问题。它通过先查询模型生成多个答案,计算不确定度后挑选最不确定的问题由人类注释示例,再用新示例推断其他问题,从而优化模型对不同任务的适应性。比如:

生成5个答案uncertainty=calculate_uncertainty(answers)ifuncertaintythreshold:选择最不确定的问题由人类注释示例,然后更新提示并重新查询模型new_prompt=update_prompt_with_annotated_example(prompt)final_answer=query_model(new_prompt)else:final_answer=select_most_consistent_answer(answers)策略LM会根据这个提示生成如“重点提取文章中事件的主体、发生的时间和最终结果”的引导提示Q:2015年在36小时后到来。从今天起一周后的日期是多少(格式为MM/DD/YYYY)?从今天起一周后,one_week_from_today=today+relativedelta(weeks=1)Q:今天是2023年2月27日,我出生于25年前,我的出生日期是多少?"""today=datetime(2023,227)('%m/%d/%Y')模型会按照提示中的推理轨迹和操作步骤进行处理,并最终得出答案

在知识密集型和决策任务中表现良好,通过与外部环境交互获取信息来辅助推理。

十五、自我反思(Reflexion)

自我反思框架包含参与者、评估者和自我反思三个模型,旨在帮助模型从错误中学习并提升性能。模拟编程任务的示例如下:

参与者模型生成尝试解决问题的代码和动作result=actor(code)自我反思模型根据评价结果生成改进建议reflection=reflexion(score,result)#将改进建议应用到下一次的代码生成中,实现自我学习和提升

如代码出现语法错误,自我反思模型会提示可能错误原因及修正方向,帮助模型快速学习。

附录

一、术语表

Prompt:在大语言模型应用中,用于“提示”模型唤起特定能力以解决实际问题的提问方式,是prompt工程的核心。

RTF框架:Role-Task-Format框架,通过指定角色、任务和格式规范大模型输出,简单通用。

思考链模式:在提示末尾添加“让我们逐步思考”,引导大模型逐步分析复杂任务,改善推理能力。

RISEN框架:包含角色、指示命令、步骤、最终目标和缩小范围(约束条件),适合特定约束或明确指导方针的任务。

RODES框架:涵盖角色、目标、详细细节、示例和感官检查的提示框架。

密度链模式:利用递归创建更好输出的提示,生成的摘要更密集且适合理解,适用于总结等任务。

少样本提示(Few-shotprompting):为模型提供少量任务示例,帮助其学习任务模式和规律,提升在复杂或特定格式任务中的表现。

零样本提示(Zero-ShotPrompting):模型在无特定任务示例展示下,依靠自身预训练知识和任务理解能力直接处理任务。

思维链提示(Chain-of-ThoughtPrompting):为模型展示详细推理过程,提升其在复杂推理任务中的表现,可与少样本提示结合。

自我一致性(Self-Consistency):通过提供多个少样本推理示例,让模型筛选最一致答案,增强在算术和常识推理任务中的可靠性。

生成知识提示(GeneratedKnowledgePrompting):先让模型生成与任务相关知识,再整合知识得出准确答案,解决模型处理需额外知识任务的局限性。

链式提示(PromptChaining):将复杂任务拆分为多个子任务,逐个子任务生成提示并传递结果,提高任务处理准确性与可靠性。

检索增强生成(RAG):将信息检索与文本生成结合,检索相关文档为模型提供知识支持,缓解“幻觉”问题。

自动推理并使用工具(ART):使模型自动生成包含推理步骤的程序,并在需要时调用外部工具,提升解决问题能力和效率。

自动提示工程师(APE):利用大型语言模型生成指令候选项,依据评估分数选择最佳指令,提升提示生成效率与效果。

Active-Prompt:先查询模型生成多个答案,计算不确定度后挑选最不确定问题由人类注释示例,优化模型对不同任务的适应性。

方向性刺激提示(DirectionalStimulusPrompting):训练策略LM生成引导提示,增强对模型生成结果的掌控力,提升文本摘要等任务的质量。

PAL(程序辅助语言模型):让模型生成程序来解决问题,借助编程运行时提升解决复杂问题的能力。

ReAct框架:使模型交错生成推理轨迹和操作,提升答案的可靠性与可解释性,在知识密集型和决策任务中表现良好。

自我反思(Reflexion):包含参与者、评估者和自我反思三个模型,帮助模型从错误中学习并提升性能。

二、常见问题解答

1.如何选择合适的Prompt框架?

2.为什么模型会出现“幻觉”现象?

模型虽经大量数据训练,但无法完美记住所有知识,也难以精准把握知识边界,面对复杂或生疏主题问题时,就可能编造看似合理但错误的内容。

3.如何利用少样本提示提升模型性能?

提供与任务相关、格式规范的成功示例,示例要涵盖任务的关键要素和模式,让模型学习示例中的规律和逻辑,从而在处理实际输入时生成更符合预期的结果。尤其适用于复杂任务或对输出格式有特定要求的情况。

4.链式提示在实际应用中有哪些优势?

将复杂任务拆解为子任务,使模型处理过程更清晰、有序,逐步深入解决问题,提高了任务处理的准确性与可靠性,避免模型在处理复杂问题时因任务过于复杂而出现混乱或错误。

版权所有©Copyright © 2022-2030 居艺生活圈

备案号:鄂B2-20110110

网站地图