大模型提示词全攻略:从零基础到高阶精通,一文详解收藏必备
大语言模型通过提示工程的辅助,能够应对数学问题和常识推理等复杂任务。这些模型本身并不具备直接处理此类任务的能力,需要通过指导和优化来扩展其功能,以有效执行更广泛的任务。通过使用提示词,可以明确输出格式,提供背景知识,或引导模型完成复杂任务。运用如思维链(Chain-of-Thought,CoT)这样的高级提示技巧,能显著提升模型解决问题的效率。
在提示工程的助力下,大语言模型得以处理数学问题、常识推理等复杂任务。究其本质,这些模型自身并不天然具备处理此类复杂任务的能力,而是依赖于外部的引导与优化,才能拓展功能,胜任更为多元的任务。借助提示词,我们可以规范输出格式、补充背景信息,或指引模型完成复杂任务流程。特别是采用思维链(Chain-of-Thought,CoT)等进阶提示策略,能够大幅增强模型解决问题的效能 。
一、Prompt定义及基本框架
1、Prompt 是什么
Prompt 本质上是引导 AI 系统做出回应的指令或信息。在与 ChatGPT 等 AI 交互时,我们输入的任何文字,无论是提问、下达命令,还是单纯陈述,都属于 Prompt。可以把 AI 想象成一位无所不知的好友,而你与它交流时提出的每个问题、发表的每条评论,就是对话中的 “Prompt”。比如,你询问 “如何看待近期的科技新突破?”,或是请求 “详细讲解一下风能发电的原理”,这些问题和请求就是一个个 “Prompt”,驱使 AI 分享信息、表达观点或完成特定任务。
与人交流类似,Prompt 的质量和明确程度,会直接影响 AI 的回应效果。问题提得清晰具体,就能收获更精准、有价值的回答;若问题模糊,AI 就像你的朋友一样,需要更多信息才能给出有用答案。因此,只有向 AI 发送清晰、明确的 Prompt,它才能更准确理解需求,输出高质量的回应。
2、撰写 Prompt 的基本框架
2.1、Prompt 的核心要素
- 指令:明确告知模型需要执行的具体任务或操作。
- 上下文:提供外部信息或额外背景,帮助语言模型更好地理解并做出合适响应。
- 输入数据:用户实际输入的内容或提出的问题。
- 输出指示:规定 AI 输出的内容类型或格式要求。
2.2、Prompt 五大框架
2.2.1 RTF 框架
RTF(Role-Task-Format)框架是一种极为简洁且普适的 Prompt 提示框架,适用于与任何大模型的对话场景,能够有效提升输出质量。
-
R - Role(角色):为大模型赋予特定身份,如程序员、数据分析师、讲解员、记者等,让其以对应角色的视角展开思考。
-
T - Task(任务):清晰阐述期望大模型完成的具体工作内容。
-
F - Format(格式):明确规定大模型最终输出结果的呈现形式,例如表格、Markdown 文档、英文等。
该框架具有显著优势:
-
操作便捷:结构简单,易于理解和使用。
-
精准定位:指定角色能使大模型在限定领域内作答,在专业场景中表现出色。
-
工程优化:从工程角度看,明确角色有助于界定知识检索边界,与元数据结合可发挥更大效能。
-
体验流畅:若与 RAG 知识内容检索相结合,能让上下文回答更自然流畅,提升用户体验。
2. 2.2 思考链模式
思考链模式专注于提升大模型的推理能力,尤其适用于处理复杂任务,例如:
-
分析与推理:应对分析型或逻辑推理型任务时,引导大模型逐步推导。
-
决策制定:辅助大模型权衡利弊,做出合理决策。
-
问题解决:以程序员根据错误日志排查 Bug 为例,帮助大模型梳理问题脉络,找到解决方案 。
而要使用这种模式,只需要在末尾添加”让我们逐步思考”即可。例如:
# 数据源(与指令区分)
user_datasource = """XXX……"""
prompt1 = """分析一下在人工客服服务场景下,'''{user_datasource}'''中客户有哪些诉求。用一句话概括。"""
prompt2 = """分析一下在人工客服服务场景下,'''{user_datasource}'''中客户有哪些诉求。用一句话概括。让我们逐步思考。"""
# 模型输出结果
output1:在人工客服服务场景下,客户主要诉求为:微信账号存在安全风险导致无法添加好友、单点拦截、下载安装微信出现问题等,寻求客服协助解决问题。
output2:在人工客服服务场景下,客户主要诉求为:微信账号存在安全风险导致无法添加好友,以及因违规行为被限制登录,客户希望客服能够尽快处理这些问题。
# 分析结果
output1中的”单点拦截”并不是用户的诉求,而output2显然更加正确
2.2.3 RISEN框架
- R - Role:大模型所承担的角色
- I - Instructions:指令,与Task(任务)概念相近
- S - Steps:具体执行步骤
- E - End Goal:最终期望达成的目标
- N - Narrowing(Constraints):对任务进行范围限定(约束条件),这和RTF框架中的Format作用相似。不过,RTF框架侧重格式约束,而此处的约束涵盖范围更广,包括但不限于回答内容的特定领域要求、字数限制等。
该框架的主要适用场景:
- 处理具有特定约束条件的任务,如撰写博客文章
- 完成有明确指导规范的工作,例如制定商业计划
2.2.4 RODES框架
- R - Role:角色设定
- O - Objective:任务目标
- D - Details:详细信息
- E - Examples:示例参考
- S - Sense Check:合理性验证
2.2.5 密度链模式
密度链模式Prompt是由Salesforce、麻省理工学院以及哥伦比亚大学的研究人员共同提出的新型提示方式。该提示方法极为高效,它借助递归机制不断优化输出质量。与常规提示相比,通过密度链模式生成的GPT-4摘要信息密度更高,也更便于人们理解。
适用场景:
- 文本总结
- 优化已有提示
- 通过递归方式生成高质量长文本内容
二、打造高效Prompt的两大核心原则
在Prompt工程领域,掌握精妙的撰写策略是释放语言模型强大潜力的关键。本节将深入探讨prompt撰写的两大核心策略,为您揭示如何通过优化指令,引导模型生成更贴合需求、更具质量的输出。
原则一:编写明确和具体的指令
为了让模型精准理解我们的意图,编写清晰、明确且具体的指令至关重要。这不仅能避免模型产生误解,还能显著提升输出结果的相关性和准确性。
策略1:使用分隔符清晰界定输入部分
在构建prompt时,使用分隔符将特定文本部分与提示的其他部分清晰隔开,能有效避免提示词冲突。任何能让模型识别出单独部分的符号都可作为分隔符,常见的包括:
- 章节标题:通过不同层级的标题区分不同内容模块。
- 三重双引号:“”" ,在代码编写中常用于包裹较长的文本字符串。
- 三重单引号:‘’’ ,功能与三重双引号类似,适用于不同的语法环境。
- 三重破折号:— ,在文本中起到明显的分隔作用。
- 角括号:<> ,常被用于标记特定元素。
- XML标签:,利用结构化的标签形式区分不同内容。
示例1:假设我们需要对一段产品描述进行总结,可通过如下方式使用分隔符:
product_description = f"""这是一款全新的智能手表,具备心率监测、睡眠追踪等健康功能,还支持多种运动模式记录,拥有高清显示屏和长达7天的续航能力。"""
prompt = f"""请总结以下产品描述:'''{product_description}'''"""
示例2:如果要让模型对一段用户评论进行情感分析,示例如下:
user_comment = f"""这款手机的拍照效果真的太棒了,色彩还原度高,夜景模式也很出色,唯一不足的是电池续航有点短。"""
prompt = f"""分析以下用户评论的情感倾向:''' {user_comment}''' """
这种方式能够确保模型明确区分指令和待处理文本,避免因指令混淆而产生错误输出。
策略2:要求结构化输出
为了便于后续对模型输出进行解析和处理,我们可以要求模型以特定的结构化格式输出,如HTML或JSON。这种方式能极大提高数据处理的效率,尤其是在Python编程环境中,结构化输出可直接读入字典或列表中,方便进一步的分析与操作。
示例 1:要求模型以 JSON 格式输出。
prompt = "请以json格式列出每个nodeType所体现的用户诉求、客服方案。每一个json-value不超过20个字"
# 数据源(与指令区分)
user_datasource = """XXX……"""
# 模型输出
{
"IVR": {
"用户诉求": "微信使用问题求助",
"客服方案": "引导正常使用或自助处理"
},
"ASYNC": {
"用户诉求": "账号封禁等相关申诉",
"客服方案": "按规则处理或引导自助"
},
"AI": {
"用户诉求": "支付相关问题咨询",
"客服方案": "要求用户详细描述问题"
}
}
示例2:以HTML格式输出一个简单的书籍**。**
prompt = "请以HTML格式列出三本你推荐的科幻小说及其作者。"
# 模型输出
<ul>
<li>《三体》 - 刘慈欣</li>
<li>《基地》 - 艾萨克·阿西莫夫</li>
<li>《银河帝国:机器人五部曲》 - 艾萨克·阿西莫夫</li>
</ul>
策略3:要求模型检查条件是否满足
在面对复杂任务时,如果在一些假设条件,而这些条件并非总是成立,那么我们需要引导模型首先对这些假设进行检查。若条件不满足,模型应明确指示并停止继续执行任务,以避免无效计算和错误结果。同时,考虑潜在的边缘情况,并为模型设定相应的处理规则,能够有效减少意外错误,确保模型输出的稳定性和可靠性。
示例:假设我们要求模型计算一个数学表达式,但前提是表达式所有都为正数。
expression = "5 + 3 - (-2)"
prompt = f"""首先检查表达式 '{expression}' 中的所有数字是否都为正数。如果是,请计算该表达式的值;如果不是,请输出'表达式中存在非正数,无法计算'。"""
# 模型输出
表达式中存在非正数,无法计算
策略4:Few-shot prompting(少样本提示)
在要求模型执,提供成功完成任务的示例,能够帮助模型更好地理解任务要求和期望输出的格式。通过这些示例,模型可以学习到任务的模式和规律,从而在处理实际输入时生成更符合预期的结果。少样本提示尤其适用于处理一些复杂或具有特定格式要求的任务,能够显著提升模型的表现。
示例:要求模型按照特定格式将中文词汇翻译成英文并造句。
prompt = """
示例1:
中文词汇:苹果
翻译:apple
造句:I like to eat apples.
示例2:
中文词汇:学校
翻译:school
造句:I go to school every day.
中文词汇:图书馆
翻译:
造句:
"""
# 模型输出
翻译:library
造句:I often read books in the library.
原则二:给予模型充足的思考时间
当模型因急于得出结论而出现推理错误时,我们需要通过优化式,为模型提供更清晰的推理路径,引导其进行更深入、全面的思考。
策略1:明确完成任务所需的步骤
为模型详细指定完成任务所需遵循的步骤,能够帮助模型有条不推理和计算。通过这种方式,模型可以更清晰地理解任务的逻辑结构,避免因思路混乱而产生错误。例如,要求模型按照特定格式输出,能够引导其在处理过程中注重信息的组织和呈现方式。
示例:要求模型分析一首古诗,格式为“诗歌主题 - 主要意象 - 表达情感”。
poem = "床前明月光,疑是地上霜。举头望明月,低头思故乡。"
prompt = f"""请按照“诗歌主题 - 主要意象 - 表达情感”的格式分析这首诗:{poem}"""
# 模型输出
思乡之情 - 明月 - 对故乡的深切思念
策略2:引导模型在得出结论前充分思考方案
明确指示模型在得出最终结论前,先进行充分的推理和分析,往往能获得更优的结果。这种方式能够促使模型深入挖掘问题的本质,综合考虑各种因素,从而避免因片面或仓促的判断而导致的错误。
示例:问模型“如何提高公司的员工满意度”。
prompt = "在回答如何提高公司的员工满意度之前,请先思考至少三个方面的因素,然后综合这些因素给出全面的建议。"
# 模型输出
首先,从薪酬福利方面,可适当提高薪资水平、完善福利体系,如增加带薪休假天数等;其次,从职业发展角度,为员工提供更多培训机会和晋升通道;再者,从工作环境来看,营造舒适、和谐的办公氛围,加强团队建设活动。综合这些方面,提高公司员工满意度可以从优化薪酬福利、提供职业发展机会以及改善工作环境等措施入手。
模型的局限性与应对策略
尽管语言模型在大量数据的训练下展现出强大的能力,但它们并非完美无缺。其中,“幻觉”现象是模型面个重要挑战。
模型“幻觉”
即使模型在训练过程中接触了海量知识,但它并不能完美记住所有信息,也难以精准把握自身知识的边界。这就导致在面对晦涩主题的问题时,模型可能会编造出看似合理但实际上错误的内容,这就是所谓的“幻觉”。
解决幻觉的一种策略
为了有效应对幻觉问题,我们可以要求模型在回答问题前,首先从给定文本中寻找相关引用,并依据这些引用来构建答这种方式,模型的回答将基于可靠的信息来源,而非凭空臆测,从而大大提高回答的准确性和可信度。同时,这种方法还能够实现答案的可追溯性,便于对模型输出进行验证和审查。
示例:给定一段关于历史事件的文本,要求模型回答相关问题。
text = """1861年,美国爆发了南北战争,这场战争是美国历史上的重要转折点,它主要围绕奴隶制的存废问题展开,北方主张废除奴隶制,南方则坚持保留。最终北方取得了胜利,为美国的工业化发展铺平了道路。"""
prompt = f"""请从上述文本中找出相关信息,回答南北战争主要围绕什么问题展开?"""
# 模型输出
南北战争主要围绕奴隶制的存废问题展开,北方主张废除奴隶制,南方则坚持保留。
三、Prompt技术剖析与应用
在深入探索 prompt 技术的征程中,我们将逐一解析多种关键技术,助力您精准把握其核心要点与应用场景,切实提升应用能力。
1、零样本提示(Zero-Shot Prompting)
零样本提示是一种让模型在没有特定任务示例展示的情况下直接处理任务的技术。其原理在于模型经过大量数据训练和指令调整后,自身具备了一定的通用知识和任务理解能力。例如:
prompt = "判断此文本的情感倾向为积极、消极或中性:这部电影情节紧凑,特效惊人。情感:"
# 模型会依据自身预训练知识对这个提示进行处理并输出结果
模型能依据自身预训练知识输出“积极”。然而,由于缺乏具体示例引导,对于复杂任务,其效果可能受限。
2、少样本提示(Few-Shot Prompting)
少样本提示在零样本提示效果不佳时发挥作用。它通过为模型提供少量任务示例,帮助模型学习任务模式和规律。例如:
prompt = """“whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用 whatpu 这个词的句子的例子是:我们在非洲旅行时看到了这些非常可爱的whatpus。“farduddle”是指快速跳上跳下。一个使用 farduddle 这个词的句子的例子是:"""
# 模型会根据前面的示例学习并生成新的句子
通过提供如上述新词汇造句的示例,模型能够模仿示例的结构和逻辑生成新的内容。不过在复杂推理任务中,仍需进一步优化。
3、思维链提示(Chain-of-Thought Prompting)
思维链提示旨在为模型提供清晰的推理步骤引导,从而显著提升其在复杂推理任务中的表现。它通过在提示中展示详细的推理过程,让模型学习如何逐步分析和解决问题。比如:
prompt = """Roger 有 5 个网球,他又买了 2 罐网球,每罐有 3 个球,他现在共有多少球?
Roger 一开始有 5 个球。
2 罐网球,每罐 3 个,共 6 个球。
5 + 6 = 11。
答案是 11。"""
# 模型按照提示中的推理步骤进行计算和回答
此技术可与少样本提示结合,增强效果,尤其适用于算术、常识推理等任务,帮助模型更有条理地处理问题。
4、自我一致性(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:"""
# 模型会参考前面的推理示例对最后一个问题进行回答,并从多个可能的回答中选择最一致的答案
5、生成知识提示(Generated Knowledge Prompting)
生成知识提示主要用于解决模型在处理需要额外知识的任务时出现的局限性。它的操作方式是先让模型生成与任务相关的知识,再整合这些知识得出准确答案。比如:
prompt = """输入:高尔夫球的一部分是试图获得比其他人更高的得分。
知识:高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括 18 个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。
解释和答案:"""
# 模型根据生成的知识对问题进行回答
像这样先生成相关知识,再整合知识得出准确答案“不是,高尔夫球的目标是以最少杆数完成比赛,而非追求更高得分”,有效提升模型在常识推理任务的准确性。
6、链式提示(Prompt Chaining)
链式提示是将复杂任务拆解为多个子任务,通过逐个子任务生成提示并传递结果的方式来实现复杂任务的有序处理。以文档问答为例:
# 第一个提示用于提取相关引文
prompt1 = """你是一个很有帮助的助手。你的任务是根据文档回答问题。第一步是从文档中提取与问题相关的引文,由####分隔。请使用<quotes></quotes>输出引文列表。如果没有找到相关引文,请回应“未找到相关引文!”。#### {{文档}} ####"""
# 假设这里有一个文档变量 doc,将其代入提示中进行处理
# 处理后得到引文列表,假设为 quotes_list
# 第二个提示根据引文和文档生成回答
prompt2 = """根据从文档中提取的相关引文(由<quotes></quotes>分隔)和原始文档(由####分隔),请构建对问题的回答。请确保答案准确、语气友好且有帮助。#### {{文档}} #### <quotes>{quotes_list}</quotes>"""
# 模型根据第二个提示生成最终回答
这种方式提高了任务处理的准确性与可靠性,使得模型能够逐步深入地处理复杂问题。
7、思维树(ToT)
思维树框架是为了帮助模型应对复杂的探索性任务而设计的。它通过维护一棵思维树,让模型在解决问题时能够生成和评估中间思维步骤,并结合搜索算法进行系统性探索。示例如下:
# 假设给定数字为 4、9、10、13
prompt = """输入: 4 9 10 13
4 + 9 = 13 (left 10 13 13)
10 - 4 = 6 (left 6 9 13)
13 - 6 = 7 13 - 9 = 4
4 + 6 = 10 (left 7 9 4 * 6 = 24 (left 4 6)
评估是否能得到 24: sure
"""
# 模型按照思维树的步骤进行推理和计算,并根据评估结果继续搜索或得出答案
8、检索增强生成(RAG)
检索增强生成(RAG)技术将信息检索与文本生成相结合,专门用于处理知识密集型任务。它通过检索相关文档来为模型提供额外的知识支持,从而缓解模型的“幻觉”问题。例如:
# 假设这里有一个检索函数 retrieve_documents 和一个生成答案的函数 generate_answer
question = "谁是首次登上月球的人?"
documents = retrieve_documents(question)
prompt = "根据以下文档回答问题:" + str(documents) + " 问题是:" + question
answer = generate_answer(prompt)
# 最终得到的 answer 即为模型结合检索结果生成的答案
这有效确保答案基于可靠知识源,在自然问题、事实验证等基准测试中表现卓越。
9、自动推理并使用工具(ART)
自动推理并使用工具(ART)技术使模型能够自动生成包含推理步骤的程序,并在需要时调用外部工具。例如:
prompt = """计算 16 个苹果平均分给 4 个人,每人几个,再加上 3 是多少?
请生成解决这个问题的程序步骤。"""
# 模型会生成类似下面的程序步骤
# result = (16 / 4) + 3
# 然后可以在代码中执行这个程序步骤得到最终答案
在 BigBench 和 MMLU 基准测试中,ART 在多种任务上表现突出,显著超越少样本提示和自动 CoT 等方法,提升了模型解决问题的能力和效率。
10、自动提示工程师(APE)
自动提示工程师(APE)技术能够自动生成和筛选任务指令。它通过利用大型语言模型生成指令候选项,再依据评估分数选择最佳指令,从而提升提示生成的效率与效果。比如:
# 假设这里有一个生成指令候选项的函数 generate_candidates 和一个选择最佳指令的函数 select_best_instruction
article = "这里是一篇新闻文章的内容"
candidates = generate_candidates(article)
prompt = select_best_instruction(candidates) + " " + article
# 模型根据最终的 prompt 生成文章总结
例如总结新闻文章时,它先利用大型语言模型生成如“提取文章关键人物、事件和时间”“概括文章主要内容并突出重点”等指令候选项,再依据评估分数选择最佳指令,指导模型生成高质量总结。
11、Active-Prompt
Active-Prompt 技术主要用于解决思维链示例有效性的问题。它通过先查询模型生成多个答案,计算不确定度后挑选最不确定的问题由人类注释示例,再用新示例推断其他问题,从而优化模型对不同任务的适应性。比如:
# 假设这里有一个查询模型生成答案的函数 query_model 和一个计算不确定度的函数 calculate_uncertainty
prompt = "对以下文本进行分类:这是一篇科技类文章。"
answers = query_model(prompt, num_answers=5) # 生成 5 个答案
uncertainty = calculate_uncertainty(answers)
if uncertainty > threshold: # 如果不确定度大于设定阈值
# 选择最不确定的问题由人类注释示例,然后更新提示并重新查询模型
new_prompt = update_prompt_with_annotated_example(prompt)
final_answer = query_model(new_prompt)
else:
final_answer = select_most_consistent_answer(answers)
# 最终得到的 final_answer 即为经过 Active-Prompt 处理后的答案
通过这种方式,能够提高模型在文本分类等任务中的准确性。
12、方向性刺激提示(Directional Stimulus Prompting)
方向性刺激提示通过训练策略 LM 生成引导提示,增强对模型生成结果的掌控力。例如文本摘要任务:
article = "这里是一篇文章的内容"
prompt = "请根据文章内容生成一个引导提示,重点关注文章的主要事件和结果。"
# 策略 LM 会根据这个提示生成如“重点提取文章中事件的主体、发生的时间和最终结果”的引导提示
# 然后可以将这个引导提示用于后续的文本摘要任务中
在文本摘要任务中,策略 LM 依据文章主题、关键信息等生成引导提示,指导模型生成符合需求的摘要,提升摘要质量。
13、PAL(程序辅助语言模型)
PAL(程序辅助语言模型)技术让模型生成程序来解决问题,借助编程运行时提升解决复杂问题的能力。以日期计算问题为例:
question = "今天是 2023 年 2 月 27 日,我出生于 25 年前,我的出生日期是多少?"
prompt = """
import datetime
from dateutil.relativedelta import relativedelta
# Q: 2015 年在 36 小时后到来。从今天起一周后的日期是多少(格式为 MM/DD/YYYY)?
# 如果 2015 年在 36 小时后到来,那么今天是 36 小时前。
today = datetime(2015, 1, 1) - relativedelta(hours=36)
# 从今天起一周后,
one_week_from_today = today + relativedelta(weeks=1)
# 格式化后的答案
one_week_from_today.strftime('%m/%d/%Y')
# Q: 今天是 2023 年 2 月 27 日,我出生于 25 年前,我的出生日期是多少?
"""
# 模型会生成类似下面的代码
# today = datetime(2023, 2 27)
# born = today - relativedelta(years=25)
# born.strftime('%m/%d/%Y')
# 然后可以在代码中执行模型生成的代码得到最终答案
14、ReAct 框架
ReAct 框架使模型交错生成推理轨迹和操作,提升答案的可靠性与可解释性。以回答问题为例:
question = "除苹果遥控器外,哪些设备可控制其设计交互的程序?"
prompt = """问题:除苹果遥控器外,哪些设备可控制其设计交互的程序?
思考 1:我需要搜索苹果遥控器相关程序及可替代控制设备。
操作 1:搜索 [苹果遥控器 可替代控制设备]
观察 1:搜索结果为……
思考 2:根据搜索结果,分析哪些设备符合要求。
操作 2:筛选 [符合要求的设备]
观察 2:筛选结果为……
思考 3:整理最终答案。
操作 3:整理 [最终答案]
"""
# 模型会按照提示中的推理轨迹和操作步骤进行处理,并最终得出答案
在知识密集型和决策任务中表现良好,通过与外部环境交互获取信息来辅助推理。
15、自我反思(Reflexion)
自我反思框架包含参与者、评估者和自我反思三个模型,旨在帮助模型从错误中学习并提升性能。模拟编程任务的示例如下:
# 假设这里有参与者模型 actor、评估者模型 evaluator 和自我反思模型 reflexion
code = "这里是一段初始代码"
# 参与者模型生成尝试解决问题的代码和动作
result = actor(code)
# 评估者模型评价输出
score = evaluator(result)
# 自我反思模型根据评价结果生成改进建议
reflection = reflexion(score, result)
# 将改进建议应用到下一次的代码生成中,实现自我学习和提升
如代码出现语法错误,自我反思模型会提示可能错误原因及修正方向,帮助模型快速学习。
16、大模型提示词技巧
大型语言模型交流不需要用礼貌用语,不必说“请”、“如果你不介意”、“谢谢”、“我想要”,直接陈述你的需求或问题更为高效。模型是基于输入的文字来理解和回答问题的,不需要通过语气或礼貌用语来判断意图。
例子:
如果你想要模型提供一个天气预报,你可以直接说“明天杭州的天气如何?”而不需要说“请告诉我,如果你不介意,明天杭州的天气如何?谢谢。”
2、使用积极的指令。
使用肯定词,比如“做”,避免使用否定词,比如“不要”。
在与大型语言模型交流时,明确告诉模型你希望它做什么,而不是告诉它不要做什么。简单、直接的肯定指令可以帮助模型更准确地理解和执行你的需求,减少误解的可能性。
例子:
如果你说“列出健康饮食的建议”,模型会直接提供相关的建议。
如果你说“不要给我垃圾食品的建议”,模型需要先理解什么是“垃圾食品”,然后避免提及它们,这使得任务变得更加复杂。
3、给模型一个简单清晰的list。
以关键词、规则、提示或指示的形式,清晰地说明必须遵循的要求。告诉模型写东西时需要遵守哪些规则和提示,列一个简单的清单。明确指示对于指导模型生成高质量和目标导向的输出至关重要
例子:如果指令是“写一篇关于可持续发展的博客文章”,那么添加具体要求如“使用关键词:循环经济、绿色能源、碳足迹”会帮助模型专注相关主题,避免偏离话题。

提示语的基本结构
4、用命令式语气。
尝试使用以下短语:“你的任务是”和“你必须”。当你给模型设置任务时,应该清晰地表达任务的目标。使用“你的任务是”来明确指出需要完成的工作。如果有某些步骤或规则是绝对必须遵循的,用“你必须”来强调这一点,让任务的指令更加直截了当。
例子:你的任务是根据以下信息,计算明天的天气可能性。你必须使用最新的气象数据,并考虑到不同地区的气候差异。
5、给大语言模型分配一个角色。
指定一个角色给大语言模型,比如让模型作为一个老师、顾问或者故事讲述者。
当模型有了一个明确的角色身份,就能根据被赋予的角色来调整它的回答,使输出内容更加符合预期的风格和信息层次。
例子:
如果我们想让模型像老师一样解释复杂的科学概念,我们可以说:“作为一个科学老师,解释什么是光合作用。”
当我们需要建议时,我们可以指定模型为顾问角色:“作为一个健康顾问,你推荐什么样的饮食习惯?”
如果我们想要一个故事,我们可以指定它为故事讲述者:“作为一个故事讲述者,讲一个关于远古森林的冒险故事。”
6、在指令中设定目标听众。
在你提出问题或指令时,应该明确指出它的回答是针对什么样的听众,比如专家、初学者或是小孩子。通过明确谁是预期听众,你可以帮助模型调整它的语言和解释深度,让它的回答更适合实际听众的需求和理解水平
例子,
如果你正在与模型讨论一个高级的科学问题,你告诉模型,听众是该领域的专家,模型就会使用专业术语和复杂概念来构建回答,因为预期的听众能够理解这些内容。相反,如果你指出听众是非专业人士或初学者,模型则会避免使用过于专业的语言,而是用更通俗易懂的方式来解释同样的概念。
7、使用“以自然、人性化的方式回答问题”这个指令。
这样的指令可以帮助模型避免使用过于复杂或难以理解的专业术语,而是用更加通俗易懂的方式来回答问题,让交流更加人性化和易于理解。
例子:
“以自然、人性化的语言回答我,为什么天空是蓝色的?
“向我解释量子物理,在跟一个没有科学背景的朋友聊天一样。”
”我是个初学者,用最简单朴实的语言告诉我什么是机器学习。”
8、加入“确保你的回答是公正的,不要依赖刻板印象”的指令。
这个原则是告诉大语言模型在给出回答时要保持客观,不要依赖于刻板印象或者偏见,不受任何先入为主的观念影响。
例子:
假如你想了解不同国家的文化,并希望大语言模型给出一个客观的描述,你可以这样说:“告诉我关于世界各国文化的信息,确保你的回答是无偏见的,不要带刻板印象。”
当你探讨某个职业时,例如程序员,而你不希望回答受到社会常见刻板印象的影响,你可以说:“描述一下程序员的典型工作日,确保你的回答无偏见,不要有刻板印象。”
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】


第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐


所有评论(0)