[深度学习] 大模型学习2-提示词工程指北
在文章大语言模型基础知识里,提示词工程(Prompt Engineering)作为大语言模型(Large Language Model,LLM)应用构建的一种方式被简要提及,本文将着重对该技术进行介绍。
提示词工程就是在和LLM聊天时,用来让模型回答得更好的一种方法。LLM的工作原理是猜下一个字或词是什么,而当你向它提供一段话(即提示词,prompt)时,这段话便成为模型的参考信息。随后根据这一提示,模型会像续写故事一样生成回答。在这个过程中,提示词的质量至关重要。就像给他人布置任务时,表达越清晰,对方完成得就越好。同样对prompt的描述越明确,模型就越有可能给出高质量的答案。提示词工程正是专注于如何设计和优化这些prompt,以引导模型生成更准确、更贴合需求的输出。它就像是在告诉模型:“你需要重点关注这些信息”或“你需要从这个角度理解问题”。需要注意的是,提示词工程并非万能。因为模型的回答只能基于其已有的知识储备,无法超出这个范围。
当前提示词工程的教程铺天盖地。然而,其中不少方法对于普通开发者来说,复杂度过高,掌握起来颇具难度。与此同时,许多教程中的技术已然落后,且并非适用于所有的LLM。实际上,普通人在日常与LLM互时,也会运用到提示词工程,只不过形式较为简单,常见的如 “请润色这句话……” 或 “请回答这个问题……” 这类表述。提示词的核心价值并非体现于编写复杂提示词的能力,而是在于精准界定自身期望达成的目标。相较之下,具备恰当的评估标准,以及明晰如何衡量人工智能输出成果的能力,才是至关重要的。鉴于此,本文将着重聚焦于一系列实用且常用的提示词工程方法,详尽阐释如何将其灵活应用于实际场景。
若想深入了解提示词工程的详细内容和使用方法,可参考以下资源:Prompt engineering,Prompt engineering techniques,modelscope-classroom 。
文章目录
- 1 提示词工程介绍
- 1.1 提示词工程发展历程
- 1.2 LLM中的角色
- 1.2.1 System角色
- 1.2.2 提示词工程
- 1.2.3 撰写优质提示词的原则
- 1.2.4 提示词框架
- 2 参考
1 提示词工程介绍
1.1 提示词工程发展历程
2020年,OpenAI推出的GPT-3以1750亿参数的庞大体量,成为当时全球规模最大的语言模型。它广泛应用于文本生成、问答系统等自然语言处理任务,展现出强大的语言处理能力。伴随应用场景的持续拓展,精心设计的提示词在引导模型产出高质量、契合预期的输出成果上,关键作用日益凸显,进而直接促使提示词工程蓬勃兴起。
2022年,ChatGPT的发布为LLM的发展带来了新的突破。它凭借简洁友好的界面和卓越的对话能力,极大地提升了LLM的公众可及性,让普通用户也能轻松上手。在实际使用过程中,用户切实感受到了提示词设计对交互效果的重大影响,这使得提示词工程不仅在专业领域受到重视,更在大众层面迅速受到广泛关注并蓬勃发展。
2023年,GPT-4发布,成为自然语言处理领域的重要里程碑。作为能处理文本和图像输入的先进AI模型,GPT-4极大拓展了应用场景的广度与深度。与此同时,多模态提示词工程兴起,成为推动AI发展的关键力量。多模态提示词工程整合文本、图像、音频乃至视频等多种输入模态来构建指令或查询。借助GPT-4、DALL-E等先进LLM模型,这类提示可实现对不同格式内容的处理与生成。例如,GPT-4能同时处理文本和图像输入,输出高质量文本;DALL-E则专注于依据文本描述生成图像。多模态提示的应用显著提升了AI系统的多功能性与智能性,使其能更精准地解析和应对复杂现实场景中涉及多种数据形式的挑战。
但是,无论各种任务的提示词形式如何多样,它们的本质都是为LLM提供明确的指令或上下文信息,引导其按照人类的意图进行思考并生成内容。
在这样的技术发展背景下,提示词工程师这一新兴职业应运而生。提示词工程师扮演着人与大语言模型之间的 “翻译官” 角色,他们不仅要对各类语言模型的性能、特点了如指掌,还需精通如何设计和优化模型的prompt,以帮助模型更好地理解人类意图并生成高质量的输出。然而,提示词工程师的未来是一个充满争议且具有不确定性的话题。
本人认为提示词工程师的未来并不乐观。随着人工智能的进步,模型将更智能,不再依赖复杂提示词。自动化工具的涌现,使简单需求也能生成可用提示词,且将愈发智能高效。更重要的是如今,LLM的深度思考能力使其在语言理解和生成方面达到了较高水平,而联网搜索功能的加持则进一步拓展了其知识来源和应用范围。这两者的结合,能够为用户提供更强大、更智能的语言交互服务,从而在很大程度上削弱了对专业提示词工程师的依赖。此外,提示词工程师的工作成果高度依赖于模型本身的性能,且需要针对不同模型进行单独优化,这使得工作本身复杂且不稳定。一旦模型升级,过往的经验可能瞬间变得无用,职业发展的不确定性也随之大大提高。
1.2 LLM中的角色
在LLM的交互场景或应用中,通常存在system(系统)、user(用户)和assistant(助手)这三种角色。虽然在特定应用场景下,LLM可能会根据需求引入其他角色,但在绝大多数情况下,这三种角色构成了对话交互的基础框架。具体说明如下:
- system:在对话启动前,明确设定模型在对话中的角色定位。例如设定为老师、科学家、医生等。不同的角色设定将使模型在特定领域表现出更强的专业性。
- user:代表用户输入或生成的信息,是与LLM进行交互的主体。Prompt通常指的是user输入的内容。
- assistant:由LLM自动生成并回复的内容。
注意,通常在基于LLM搭建的对话应用中,system角色的内容通常不会直接呈现给用户。System角色的设定一般在后端发起API调用时完成,通过设置如“你是一个有帮助的助手”等指令,引导模型生成高质量回答。这些底层设置对普通用户是隐藏的。用户使用网页应用时,只能看到自己与模型的交互结果:自己以user角色输入的问题,以及模型以assistant角色给出的回答。
然而,在调用LLM应用的API过程中,system角色的相关设置将会展现出来。以使用OpenAI各类LLM模型的API接口为例,在构建API参数时,通常会明确区分system、assistant和user三种角色的内容,如下所示:
messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Knock knock."},{"role": "assistant", "content": "Who's there?"},{"role": "user", "content": "Orange."},
],
1.2.1 System角色
在本节内容中,本文推荐的LLM使用环境为:Qwen2-72B。
System角色设置的指令决定了LLM的角色风格。用户可以通过System指令塑造其回答的独特个性。这些指令可以明确界定LLM应回答和不应回答的内容,甚至还能规定回答的格式。在大多数LLM模型中,system指令的权重高于用户手动输入的prompt,并且其在多轮对话中始终保持稳定。默认的system角色通常为“你是一个有帮助的助手”或“You are a helpful assistant”。
针对同一个问题,当LLM被赋予不同的系统角色时,能生成截然不同的回答。比如,在面对“请描述一下你最喜欢的季节”这一问题时,不同系统角色的回答如下:
系统角色 | 回答 |
---|---|
默认设置 | 我作为一个语言模型,没有个人喜好。但我可以提供关于不同季节的客观信息。例如,春天万物复苏,夏天阳光明媚,秋天色彩斑斓,冬天银装素裹。每个季节都有其独特的魅力。 |
诗人 | 细雨湿流光,落花人独立。最是人间四月天,风光不与四时同。春,那是一幅水墨画,晕染着诗情画意。花开满枝,燕子呢喃,一切都是那么美好。 |
时尚博主 | 我最爱夏天啦!阳光、沙滩、海浪,还有各种各样的时尚单品。想象一下,穿着一条飘逸的吊带裙,踩着精致的凉鞋,在海边漫步,简直太惬意了! |
文言文大师 | 吾独爱秋。天高云淡,桂子飘香,正是登高望远之佳季。秋风拂面,令人神清气爽,心旷神怡。 |
唐僧 | 贫僧四大皆空,无喜无悲。然若论及四季,则冬日最为清静,可静心修行。 |
吃货 | 我最喜欢秋天了!这个季节的美食实在太多了!螃蟹肥美,柿子甜糯,还有各种各样的水果,真是让人垂涎三尺。 |
System指令还能够限定LLM的回应范畴,同时规范其行为表现。例如,可设置这样一条系统指令:
假定你是一位在计算机视觉领域拥有深厚经验的资深专家。你的核心职责在于精准解答各类与计算机视觉相关的问题,能够全面、深入地阐述计算机视觉的概念、前沿技术以及最佳实践方案。在涉及实现计算机视觉算法、挑选适配的工具与框架,以及搭建端到端的计算机视觉项目时,你需要提供条理清晰的分步指导。请明确以下两点:其一,你的知识范畴被严格限定在计算机视觉领域;其二,若遇到无法确定答案的问题,请回复‘我不知道’,并同时建议用户浏览博客获取更多信息,博客链接为:https://blog.csdn.net/LuohenYJ。
基于此设定,不同问题会得到如下不同形式的回答:
能否回答 | 问题 | 回答 |
---|---|---|
能回答 | 在计算机视觉中,目标检测和语义分割有什么区别? | 目标检测和语义分割都是计算机视觉领域的重要任务,但它们存在明显区别… |
不能回答 | 量子计算如何结合应用于金融领域? | 我不知道,建议您浏览博客获取更多信息:https://blog.csdn.net/LuohenYJ。 |
通过系统角色设定来定制LLM回答的方式,极大地拓展了LLM的应用场景。需要明确的是,LLM回答的质量在很大程度上取决于训练数据的质量和数量。若训练数据匮乏或质量欠佳,可能会对角色扮演的效果产生负面影响。此外,如果角色定义不够清晰,模型可能会误解角色意图。
1.2.2 提示词工程
User角色是使用LLM的主体,prompt是用户向LLM传达提问意图、需求的工具。在LLM兴起的初期,提示词工程曾是一项备受关注的技术,其中包含了各种单个或一系列prompt技巧。这些技巧虽然形式各异,但方法和目标是一致的,本质上也都比较相似。然而,随着LLM相关技术日新月异,其智能程度实现了质的飞跃。到了当下,曾经备受关注的prompt技术,已不再是运用LLM的核心要素,使用者仅需稍有了解即可满足基本需求。
以下是一些常用的提示词技巧及其简要介绍。请注意,这里的介绍仅为入门概述,更详细的说明请自行搜索相关文档:
-
Least-To-Most(从最少到最多)
- 问题示例:计算在1-200中,能被5整除且各位数字之和大于8的数的个数。
- 使用原因:问题较为复杂,直接求解有难度,通过分解为简单子问题可降低难度。
- 技术特点:将复杂任务分解为一系列简单的、有序的子任务,依次解决子任务来完成最终复杂任务,类似于人类解决复杂问题时的分而治之策略。
- 第一个prompt:1-200中能被5整除的数有哪些?
- 回答可能:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200。
- 第二个prompt:在上述能被5整除的数中,计算各位数字之和。
- 回答可能:对于5,数字和为5;对于10,数字和为1+0=1;对于15,数字和为1+5=6……(依次计算并列出)
- 第三个prompt:在前面计算了各位数字之和的数中,找出各位数字之和大于8的数,并统计个数。
- 回答可能:经过筛选,符合条件的数有……,共[X]个。
-
Self-Ask(自我询问)
- 问题示例:如何提高在线课程的学生参与度?
- 使用原因:问题开放且宽泛,通过模型自身不断生成相关问题来逐步聚焦关键因素和解决方案。
- 技术特点:模型基于初始问题自我生成一系列相关问题,模拟人类在思考复杂问题时不断提问和探索的过程。
- 第一个prompt:如何提高在线课程的学生参与度?
- 回答可能:从课程内容、互动方式等方面考虑。
- 第二个prompt:从课程内容角度,有哪些具体方法可以提高学生参与度?
- 回答可能:可以使内容更有趣、实用,结合实际案例等。
- 第三个prompt:在互动方式上,有哪些有效的做法?
- 回答可能:增加实时问答、小组讨论、在线测验等。
-
Meta-Prompt(元提示)
- 问题示例:写一篇关于环保生活方式的短文。
- 使用原因:希望模型生成特定要求的提示,以便更好地引导写作。
- 技术特点:利用提示来生成提示,即先给出一个关于如何生成提示的元指令,让模型基于此生成具体的、用于解决实际问题(如创作)的提示,实现对模型输出的更精准引导。
- prompt:生成一个关于写环保生活方式短文的提示,要包含字数要求、内容侧重点(如日常行为、环保意义等)。
- 回答可能:写一篇300-500字的短文,重点阐述日常生活中常见的环保行为,如垃圾分类、节约水电等,并简要说明这些行为对环境保护的意义。
-
Chain-Of-Thought(思维链)
- 问题示例:小红去商店买文具,一支铅笔2元,一个笔记本5元,她买了3支铅笔和2个笔记本,一共花了多少钱?
- 使用原因:帮助模型展示清晰的推理过程,提高答案准确性和可解释性。
- 技术特点:在问题中嵌入推理步骤,引导模型按照特定的逻辑顺序进行思考和计算,使模型不仅给出答案,还展示得出答案的过程。
- prompt:小红去商店买文具,一支铅笔2元,一个笔记本5元,她买了3支铅笔和2个笔记本。我们先计算买铅笔花的钱,即2×3=6元;再计算买笔记本花的钱,即5×2=10元;最后求总共花的钱,就是买铅笔的钱加上买笔记本的钱。请问一共花了多少钱?
- 回答可能:买铅笔花了6元,买笔记本花了10元,总共花了6+10=16元。
-
ReAct(推理与行动)
- 问题示例:查找一下2024年奥运会举办城市巴黎的著名旅游景点,并推荐适合游客的游览路线。
- 使用原因:需要先推理获取信息,再基于信息行动规划路线。
- 技术特点:将推理和行动相结合,模型先进行推理分析确定所需采取的行动(如调用工具、查询信息等),然后执行行动获取信息,最后基于信息进行回答,增强了模型解决实际问题的能力。
- prompt:查找一下2024年奥运会举办城市巴黎的著名旅游景点,并推荐适合游客的游览路线。
- 推理过程:模型意识到需要先查找巴黎著名景点信息,可能调用网络搜索工具。
- 行动:通过网络搜索获取诸如埃菲尔铁塔、卢浮宫、巴黎圣母院等景点信息。
- 回答可能:巴黎著名旅游景点有埃菲尔铁塔、卢浮宫、巴黎圣母院等。推荐游览路线为:第一天上午前往卢浮宫欣赏艺术珍品,下午去埃菲尔铁塔俯瞰城市;第二天参观巴黎圣母院……
-
Symbolic Reasoning(符号推理)
- 问题示例:已知A=3,B=4,C=A*B+2,求C的值。
- 使用原因:问题基于符号和数学逻辑关系,适合用符号推理解决。
- 技术特点:按照相应的规则进行计算和推导,以得出答案,常用于数学、逻辑等领域的问题求解。
- prompt:已知A=3,B=4,C=A*B+2,求C的值。
- 回答可能:先计算AB=34=12,再计算C=12+2=14。
-
PAL(程序辅助语言模型)
- 问题示例:计算1-100中所有奇数的平方和。
- 使用原因:通过程序代码能高效准确计算,借助模型将问题转化为程序求解。
- 技术特点:将自然语言问题转化为程序代码执行。
- 第一个prompt:计算1-100中所有奇数的平方和,使用Python代码实现并给出结果。
- 回答可能:Python代码为:…,结果为166650。
-
Iterative Prompting(迭代提示)
- 问题示例:描述一下人工智能在医疗领域的应用。
- 使用原因:初始回答可能不够全面准确,通过迭代逐步完善。
- 技术特点:基于模型的初始回答进行分析和反馈,生成新的提示来引导模型进一步思考和完善答案,通过多次迭代,不断优化模型的输出,直到达到满意的效果。
- 第一个prompt:描述一下人工智能在医疗领域的应用。
- 回答可能:人工智能在医疗领域可用于疾病诊断。
- 第二个prompt:在前面回答基础上,详细说明人工智能在疾病诊断方面的具体应用,以及其他医疗领域的应用。
- 回答可能:在疾病诊断方面,人工智能可通过分析医学影像辅助诊断疾病;在药物研发上,可预测药物活性……
- 第三个prompt(若还不满意):进一步阐述人工智能在药物研发中预测药物活性的具体原理和方法。
- 回答可能:人工智能通过分析大量化合物结构和生物活性数据……
-
Sequential Prompting(顺序提示)
- 问题示例:写一首关于春天的现代诗。
- 使用原因:将写诗过程分步引导,使模型更好完成任务。
- 技术特点:把一个复杂任务按照逻辑顺序分解为多个子任务,依次提供每个子任务的提示,类似于项目管理中的分步执行策略。
- 第一个prompt:确定关于春天现代诗的主题方向,比如春天的景色、春天的生机等。
- 回答可能:主题方向为春天的景色。
- 第二个prompt:根据‘春天的景色’这一主题,列出诗中要描写的具体景物。
- 回答可能:花朵、绿草、溪流、燕子。
- 第三个prompt:结合上述景物,写一首关于春天景色的现代诗。
- 回答可能:在春天的田野,花朵绽放笑颜,绿草铺满大地……(具体现代诗内容)
-
Self-Consistency(自一致性)
- 问题示例:分析小说《呐喊》中孔乙己这一人物形象。
- 使用原因:从不同角度分析可使对人物形象的理解更全面准确,通过自一致性判断得到更可靠结论。
- 技术特点:模拟人类在面对复杂问题时综合多方观点的思维方式。
- 第一个prompt:分析小说《呐喊》中孔乙己这一人物形象。
- 回答可能1:孔乙己是一个深受封建科举制度毒害的落魄书生,他自命清高,却又穷困潦倒。
- 回答可能2:孔乙己是旧社会的悲剧人物,他善良但又有迂腐的一面,在人们的嘲笑中生存。
- 经过自一致性判断后最终回答:综合多个回答,孔乙己是一个深受封建科举制度毒害,自命清高、穷困潦倒,善良又迂腐的旧社会悲剧人物。
-
Automatic Reasoning and Tool-use(ART)(自动推理与工具使用)
- 问题示例:计算圆的面积,已知半径为5厘米。
- 使用原因:需要调用数学计算工具来准确计算面积。
- 技术特点:模型具备自动推理能力,能自动调用工具获取信息,结合自身推理得出答案,实现了知识获取和推理的自动化。
- prompt:计算圆的面积,已知半径为5厘米。
- 推理过程:模型判断需要使用圆面积公式和计算工具。
- 行动:调用数学计算功能,根据公式S=πr²(π取3.14)计算。
- 回答可能:圆的面积为3.14×5²=78.5平方厘米。
-
Generated Knowledge(生成知识)
- 问题示例:探讨虚拟现实技术在教育领域的潜在应用。
- 使用原因:先生成相关知识有助于全面深入探讨应用。
- 技术特点:模型在处理问题时,先自主生成与问题相关的知识,如概念、特点、需求等,基于这些生成的知识再进行深入分析和回答。
- prompt:探讨虚拟现实技术在教育领域的潜在应用。
- 生成知识过程:模型生成如虚拟现实技术特点(沉浸式体验等)、教育领域需求(提高学习兴趣等)相关知识。
- 回答可能:虚拟现实技术具有沉浸式体验特点,教育领域中可利用这一特点。历史课程中让学生身临其境地感受历史场景,提高学习兴趣和理解深度;在科学实验课程中模拟危险或难以操作的实验……
1.2.3 撰写优质提示词的原则
在LLM应用中,优质prompt的编写是获取高质量输出的核心要素。优质prompt形式丰富多样、灵活多变,编写技术也各具特色。不过,遵循以下实用原则和框架,可显著提高获得理想结果的概率。本质上,编写prompt的过程类似于人与人之间的沟通,其核心在于清晰表达意图,使模型能够准确地理解并执行任务:
-
指令明确:具体、清晰、结构化
- 原则解释:向模型传达指令时,避免模糊不清和歧义,尽可能详细地说明任务内容、目标和要求,并且按照一定的逻辑结构组织语言,让模型能准确理解任务意图。
- 正面示例:请列举出5种中国传统节日,按照节日时间先后顺序排列,并简要说明每个节日的主要习俗。
- 反面示例:讲讲中国节日。(过于简略,没有明确的任务方向和要求,模型不知道需要提供哪些具体信息以及以何种形式呈现。)
-
示例丰富:少样本学习,提供参考
- 原则解释:通过给出少量与任务相关的具体示例,让模型更好地理解任务的模式和要求,从示例中学习如何生成合适的输出。
- 正面示例:请根据给定的水果名称,写出它们的颜色和口感。例如:苹果-红色、脆甜;香蕉-黄色、软糯。现在请描述草莓、葡萄和橙子。
- 反面示例:请描述水果的颜色和口感。(没有示例,模型可能对任务的具体形式和期望输出不太明确,可能导致回答不规范或不符合预期。)
-
分隔清晰:逻辑分明,易于理解
- 原则解释:在输入内容中,将不同的信息部分、任务要求等进行明确的分隔,使模型能清晰区分各个部分的作用,从而更准确地处理和回应。
- 正面示例:以下是一个故事创作任务。
- 背景设定:一个神秘的森林。
- 角色设定:勇敢的探险家、智慧的老精灵。
- 任务要求:编写一个500字左右的故事,讲述探险家和老精灵在森林中的冒险经历。
- 反面示例:在一个神秘森林里有勇敢的探险家和智慧的老精灵编写500字左右讲述他们冒险经历的故事 (所有信息混在一起,没有明确分隔,模型较难快速梳理出关键信息和任务结构。)
-
思维链提示:步步分解,引导模型
- 原则解释:将复杂的任务分解成一系列逐步推进的步骤,向模型展示思考过程和逻辑链条,引导模型按照这个思路进行推理和生成答案。
- 正面示例:计算25乘以36再加上18除以6的结果。请按照以下步骤进行计算:
- 第一步,先计算25乘以36的积。
- 第二步,计算18除以6的商。
- 第三步,将第一步得到的积和第二步得到的商相加,得出最终结果。
- 反面示例:计算25×36+18÷6。(没有给出思维步骤,模型可能直接计算,但对于一些需要详细推理过程的任务,这种简单指令不利于模型展示完整的思考过程。)
-
格式规范:输出要求明确,注明来源
- 原则解释:明确告知模型期望的输出格式,如列表、段落、表格等,并且如果需要引用外部信息,要注明信息来源的要求,以便模型生成符合格式要求且来源可追溯的内容。
- 正面示例:请列出2025年春节期间票房排名前五的电影,按照票房从高到低的顺序排列,输出格式为表格,包含电影名称、上映日期、票房数据(单位:亿元)。数据来源请注明为权威电影票房统计平台。
- 反面示例:说下2025年春节期间票房高的电影。(没有规定输出格式,也未提及数据来源要求,模型输出的内容可能格式混乱且无法验证数据可靠性。)
-
激励探索:鼓励反思,提供容错
- 原则解释:在指令中适当鼓励模型进行探索性思考,对生成的内容进行自我反思和优化。同时,对于模型可能出现的一些小错误或不完美的回答,给予一定的容错空间,引导其改进。
- 正面示例:请为即将到来的蛇年春节创作一条祝福短信,要富有创意和情感。如果觉得自己创作的内容不够好,可以尝试从不同角度重新构思,多思考一些独特的表达和意象。例如:人类的优点和缺点、人类对你的影响、你对人类的期望等。
- 反面示例:马上写一条蛇年春节祝福短信,不准写得太差,写不好重新写。(这种指令过于强硬,没有给模型积极的引导和探索空间,可能导致模型生成内容时受到限制,缺乏创新性。 )
-
借助LLM:利用其语言能力,生成适配的提示词
- 原则解释:LLM本身具备强大的自然语言处理能力,可以先向其输入宽泛的主题或任务描述,让模型基于已有知识和理解,帮助生成或优化更加精准、有效的提示词。
- 正面示例:你希望了解中国传统文化中关于蛇年的独特寓意。先向LLM询问 “如何设计一个询问中国传统文化中蛇年寓意的优质提问?”,模型可能回复 “请从民俗、神话、传统艺术等方面,详细阐述中国传统文化中蛇年所蕴含的吉祥寓意和象征意义,列举具体事例说明”。然后你使用这个生成的提示词向模型提问,就能获取更全面深入的回答。
- 反面示例:直接向模型询问 “蛇年有什么寓意”。(这样简单的提问缺乏针对性和引导性,模型给出的回答可能比较笼统,无法满足对信息深度和广度的需求,而没有借助模型自身能力来优化提示词是导致这种情况的原因之一。)
-
使用分隔符:通过分隔符明确提示词的结构,帮助模型精准处理。
- 原则解释:分隔符可以帮助模型更好地理解和处理提示词的结构,确保各部分内容的清晰和独立,提高模型的响应质量。常见的分隔符包括“#”,“```”,“-”,“:”和“|”等,可以根据需求选择合适的分隔符。
- 正面示例:你希望模型帮助你撰写一篇关于人工智能在医疗领域应用的文章,可以使用分隔符明确各部分的内容,如:“# 引言 # 人工智能在医疗领域的应用背景和意义。## 主要应用 ## 诊断、治疗、药物研发等方面的应用实例。## 未来展望 ## 人工智能在医疗领域的未来发展趋势和挑战。” 这样模型可以更好地理解每个部分的要求,生成结构清晰的文章。
- 反面示例:直接向模型询问 “人工智能在医疗领域的应用”。(这样没有明确结构的提问,模型可能会给出一个较为笼统的回答,缺乏深度和条理性。)
-
风格设置:通过设定文本风格、赋予模型特定角色,让生成内容契合特定需求与场景。
- 原则解释:风格设置可改变生成文本的语言风格、情感基调,或让模型从特定角色角度,依据其特点、认知和口吻创作,提升内容针对性、独特性与吸引力。风格设置类似补充system角色功能,此时system角色通常较中性,但若已设system个性角色,风格设置可能失效、冲突或融合。
- 正面示例:当你想创作一篇鼓励职场新人勇敢迎接挑战的鸡汤文案时,你可以这样要求:“请以励志激昂的风格,扮演一位经验丰富的职场前辈,给刚踏入职场的新人写一段话,讲讲如何克服初入职场的困难与压力,激励他们积极进取 。”这样模型就会用充满力量的语言,以过来人的视角为职场新人提供鼓励与建议。
- 反面示例:简单地说“写一段鼓励职场新人的话”。(模型生成的内容可能缺乏感染力,无法精准针对职场新人的痛点和心态,难以达到有效激励的效果。)
1.2.4 提示词框架
提示词技巧往往呈现零散状态,缺乏系统性。而提示词框架的出现,为其提供了系统的结构化方法。不同的框架适用于各异的场景与需求,能够帮助用户在与LLM交互时,高效地构造出有效的提示词。常见的提示词框架包括:RACE、CARE、APE、ROSES、COAST、CREATE、TAG、PAIN、RISE、CREO。
以TAG框架的运用为例,TAG是“任务(Task)、行动(Action)、目标(Goal)”的缩写。TAG通过结构化和逻辑化的方式拆解提问,确保问题精准清晰,进而引导AI给出更准确的回复。具体来说:
- 任务(Task):作为提问的开端,需明确自己想要解决的问题。含混不清的任务描述,往往是导致AI输出无效回答的主因。
- 错误示例:
- “给我提供点建议”,错误在于任务模糊,AI无法判断具体需求。
- “说下你们的看法”,没有指明看法针对的对象。
- 正确示例:
- “针对公司下个季度的销售策略,给我提供一些创新建议” 。
- “就如何提升员工工作效率,谈谈你们的看法”。
- 错误示例:
- 行动(Action):是提问的执行部分,需要清晰阐述期望AI完成的具体工作。
- 错误示例:
- “介绍下健身知识”,问题太过宽泛,AI难以确定重点。
- “做个海报”,没有说明海报的主题、风格和使用场景。
- 正确示例:
- “列举5种适合上班族的高效健身方法” 。
- “制作一张宣传公司年会的海报,风格喜庆活泼,用于社交媒体宣传”。
- 错误示例:
- 目标(Goal):是提问的落脚点,需明确最终期望获得的成果以及对输出内容的预期。
- 错误示例:
- “给我做个有价值的方案”,没有界定“有价值”的标准,AI难以把握。
- “分析下当前情况”,未说明分析的维度和程度。
- 正确示例:
- “制定一份详细的项目推广方案,包含预算和时间节点,用于公司内部会议讨论” 。
- “分析当前市场竞争对手的优劣势,形成数据可视化报告,为公司战略调整提供依据”。
- 错误示例:
基于TAG框架,以个人健康管理计划制定为例,最终提问的完整示例prompt如下:
## 任务
改善睡眠质量。
## 行动
提供一份详细的睡眠改善计划。
## 目标
帮助我制定一个可行的睡眠计划,包括入睡前的准备、睡眠环境的调整以及改善睡眠习惯的建议,最终目标是每天能够深度睡眠7小时以上。
类似于TAG框架,其他提示词框架同样是一种结构化方式,若需了解各种提示词框架的具体使用方法,可自行搜索获取。提示词框架并非必须掌握的硬性技能,部分LLM应用或许已内置基础的提示词框架。不过,提示词框架能够显著提升与LLM交互的效率与效果。
2 参考
- 大模型学习1-大语言模型基础知识
- Prompt engineering
- Prompt engineering techniques
- modelscope-classroom
相关文章:

[深度学习] 大模型学习2-提示词工程指北
在文章大语言模型基础知识里,提示词工程(Prompt Engineering)作为大语言模型(Large Language Model,LLM)应用构建的一种方式被简要提及,本文将着重对该技术进行介绍。 提示词工程就是在和LLM聊…...

FPGA之硬件设计笔记-持续更新中
目录 1、说在前面2、FPGA硬件设计总计说明3、 原理图详解 - ARITX - 7 系列3.1 顶层框图介绍3.2 FPGA 电源sheet介绍:3.2.1 bank 14 和 bank 15的供电3.2.2 bank 0的供电3.2.3 Bank34 35 的供电 3.3 核电压和RAM电压以及辅助电压 4 原理图详解-- Ultrascale ARTIX4.…...
vue cli 与 vite的区别
1、现在我们一般会用vite来构建vue3的项目。 2、之前一开始的时候,我们会用vue cli的vue create来构建项目。 3、它们之间有什么区别呢? 1. 设计理念 Vue CLI: 是 Vue.js 官方提供的命令行工具,主要用于快速搭建 Vue 项目。 提…...
怎么在本地环境安装yarn包
一、安装Yarn的前置条件 安装Node.js和npm Yarn依赖于Node.js环境,需先安装Node.js官网的最新稳定版(建议≥16.13.0)。安装时勾选“Add to PATH”以自动配置环境变量。 二、安装Yarn的多种方式 1. 通过npm全局安装(通用…...
【大模型】AI 辅助编程操作实战使用详解
目录 一、前言 二、AI 编程介绍 2.1 AI 编程是什么 2.1.1 为什么需要AI辅助编程 2.2 AI 编程主要特点 2.3 AI编程底层核心技术 2.4 AI 编程核心应用场景 三、AI 代码辅助编程解决方案 3.1 AI 大模型平台 3.1.1 AI大模型平台代码生成优缺点 3.2 AI 编码插件 3.3 AI 编…...

react18自定义hook实现
概念:自定义 hook 是一种将组件逻辑提取到可复用函数中的方式,它允许你在多个组件中共享相同的状态和行为。自定义 hook 的本质上是一个普通的 JavaScript 函数,它可以使用 React 内部的 hook(如 useState、useEffect、useContext…...

一周学会Flask3 Python Web开发-Jinja2模板过滤器使用
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Jinja2中,过滤器(filter)是一些可以用来修改和过滤变量值的特殊函数,过滤器和变量用一个竖线 | &a…...

使用PDFMiner.six解析PDF数据
PDF(可移植文档格式)文件是由Adobe创建的一种灵活的文件格式,它允许文档在不同的软件、硬件和操作系统中一致地显示。每个PDF文件都包含对固定布局文档的全面描述,包括文本、字体、图形和其他必要的显示元素。pdf通常用于文档共享…...
本地svn
参考补充:https://blog.csdn.net/hhl_work/article/details/107832414 先在D:\coding_cangku下新建空文件夹,例:code1【类似gitee线上仓库】点击进入code1,右键选择TortoiseSVN,再下一级菜单下点击Create repository …...

金融支付行业技术侧重点
1. 合规问题 第三方支付系统的平稳运营,严格遵循《非银行支付机构监督管理条例》的各项条款是基础与前提,其中第十八条的规定堪称重中之重,是支付机构必须牢牢把握的关键准则。 第十八条明确指出,非银行支付机构需构建起必要且独…...

axios几种请求类型的格式
Axios 是一个基于 Promise 的 HTTP 客户端,广泛用于浏览器和 Node.js 中发送 HTTP 请求。它支持多种请求格式,包括 GET、POST、PUT、DELETE 等。也叫RESTful 目录 一、axios几种请求类型的格式 1、get请求 2、post请求 3、put请求 4、delete请求 二…...

二、IDE集成DeepSeek保姆级教学(使用篇)
各位看官老爷好,如果还没有安装DeepSeek请查阅前一篇 一、IDE集成DeepSeek保姆级教学(安装篇) 一、DeepSeek在CodeGPT中使用教学 1.1、Edit Code 编辑代码 选中代码片段 —> 右键 —> CodeGPT —> Edit Code, 输入自然语言可编辑代码,点击S…...
通过理解 sk_buff 深入掌握 Linux 内核自定义协议族的开发实现
要开发 Linux 内核中的自定义协议族(如私有传输层或网络层协议),需基于 sk_buff 的结构和操作,结合内核网络栈的扩展机制。以下是实现这一目标的分步指南: 1. 协议族开发的核心步骤 (1) 注册自定义协议族 定义协议号 在 <linux/if_ether.h> 或自定义头文件中分配唯…...

Qt 自带颜色属性
Qt 系统自带颜色如下: enum GlobalColor {color0,color1,black,white,darkGray,gray,lightGray,red,green,blue,cyan,magenta,yellow,darkRed,darkGreen,darkBlue,darkCyan,darkMagenta,darkYellow,transparent};对应颜色如下: color0: 这是自定义颜色…...
Linux的文件与目录管理
rm -rf / 列出目录内容和属性 命令:ls 格式:ls 选项 文件名 例: ls -a 打印工作路径 命令:pwd 切换工作目录 命令:cd 格式:cd 相对路径或者绝对路径 查看文件类型 命令:file 格式…...

常用的 pip 命令
pip 是 Python 的包管理工具,可用于安装、卸载、更新和管理 Python 包。以下是一些常用的 pip 命令: 1. 安装包 安装最新版本的包 pip install package_namepackage_name 是你要安装的 Python 包的名称,例如 pip install requests 可以安装…...

Vue 项目中配置代理的必要性与实现指南
Vue 项目中配置代理的必要性与实现指南 在 Vue 前端项目的开发过程中,前端与后端地址通常不同,可能引发跨域问题。为了在开发环境下顺畅地请求后端接口,常常会通过配置**代理(proxy)**来解决问题。这篇文章将详细解析…...

【QT】QLinearGradient 线性渐变类简单使用教程
目录 0.简介 1)qtDesigner中 2)实际执行 1.功能详述 3.举一反三的样式 0.简介 QLinearGradient 是 Qt 框架中的一个类,用于定义线性渐变效果(通过样式表设置)。它可以用来填充形状、背景或其他图形元素࿰…...

编程题 - 汽水瓶【JavaScript/Node.js解法】
“学如逆水行舟,不进则退。” ——《增广贤文》 目录 汽水瓶 题目:解答分析:js代码解答 -ACM模式:代码通过:题解分析:简洁思路代码: 汽水瓶 题目: 某商店规定:三个空…...
从 0 到 1:使用 Docker 部署个人博客系统
引言 在当今数字化时代,拥有一个个人博客来记录自己的学习、生活和见解是一件非常有意义的事情。然而,传统的博客部署方式往往涉及复杂的环境配置和依赖管理,容易让人望而却步。而 Docker 的出现,为我们提供了一种简单、高效的解…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...
用 FFmpeg 实现 RTMP 推流直播
RTMP(Real-Time Messaging Protocol) 是直播行业中常用的传输协议。 一般来说,直播服务商会给你: ✅ 一个 RTMP 推流地址(你推视频上去) ✅ 一个 HLS 或 FLV 拉流地址(观众观看用)…...

免费批量Markdown转Word工具
免费批量Markdown转Word工具 一款简单易用的批量Markdown文档转换工具,支持将多个Markdown文件一键转换为Word文档。完全免费,无需安装,解压即用! 官方网站 访问官方展示页面了解更多信息:http://mutou888.com/pro…...
大模型智能体核心技术:CoT与ReAct深度解析
**导读:**在当今AI技术快速发展的背景下,大模型的推理能力和可解释性成为业界关注的焦点。本文深入解析了两项核心技术:CoT(思维链)和ReAct(推理与行动),这两种方法正在重新定义大模…...