AI提示词构建科普文章:让AI真正理解你的意思
AI提示词构建科普文章:让AI真正理解你的意思
引言:为什么AI会”听不懂”你的话?
你是否遇到过这样的情况:明明向AI提出了一个简单的问题,却得到了一个风马牛不相及的回答?或者,你希望AI帮你完成一项任务,但结果却差强人意?
这不是AI不够聪明,而是我们没有用”AI的语言”与它沟通。就像与外国人交流需要使用共同语言一样,与AI有效沟通也需要掌握特定的技巧——这就是提示词构建的艺术。
你是否遇到过这样的情况:明明向AI提出了一个简单的问题,却得到了一个风马牛不相及的回答?或者,你希望AI帮你完成一项任务,但结果却差强人意?
这不是AI不够聪明,而是我们没有用”AI的语言”与它沟通。就像与外国人交流需要使用共同语言一样,与AI有效沟通也需要掌握特定的技巧——这就是提示词构建的艺术。
提示词(Prompt)是用户向LLM输入的一段文本,用于指导LLM生成符合用户要求的输出。
提示词的本质是用户与LLM之间沟通的桥梁,它决定了LLM准确“预测”用户意图的能力。我们写作提示词,就是要提升LLM准确生成用户期望结果的能力,让LLM更懂用户。
指令是提示词的核心,它直接决定了LLM的行为。
✅好的指令 | ❌不好的指令 |
---|---|
使用清晰、简洁、明确的语言 | 使用模糊、冗长、复杂的语言 |
写一篇探讨大语言模型如何赋能基层政府的学术论文,面向公共管理专业的研究生,既要有理论分析,也要有实证分析。同时要有数据支撑,而且必须紧扣公共管理主题,不要偏离到大语言模型主题。 | 写一篇学术论文 |
写一个数独小游戏,要求使用Python语言,代码要简洁、易懂、易运行。 | 写一个数独小游戏 |
我有一款AI产品,大致功能是通过大语言模型介入,帮助社区工作者调解社区矛盾,要求朗朗上口意思明确,从创意、易记、主题突出等方面各取 3个名字。 | 给我的新产品取个名字 |
上下文是提示词的背景信息,它可以帮助LLM更好地理解用户的意图。
注意事项:
上下文是可选的,但不要滥用上下文
上下文不要过长,否则会影响LLM的性能
这里引入一个概念:上下文窗口。
上下文窗口是LLM能够处理的最大输入长度。AI 一次输入有限,输入内容越多,AI 越难处理,质量会下降。
然而窗口是可以滑动的,因此我们可以把历史消息摘要作为上下文,这样就可以让LLM处理更长的输入。
每个模型的上下文窗口大小不同,例如:
AI生成的与用户输入的都可以被当作上下文
可以让AI生成上下文,例如:
1 | 请先从网络搜索有关“人工智能在数字政府领域的最新进展”的五个答案,然后整理成一篇报告 |
也可以使用用户输入的上下文,例如:
1 | 以下是一段由服务提供商提供的api文档,请基于这段api文档,使用python编程语言,编写一个调用该api的代码示例。 |
有一些情况下,上下文是必须的用户信息,例如:
没有上下文的提示词 | 使用上下文的提示词 |
---|---|
帮我写一份简历 | 我的姓名是张三,我是一名软件工程师,我曾在阿里巴巴和腾讯工作过,我擅长Python和Java编程,我熟悉微服务架构和容器化技术,我曾在多个项目中使用过这些技术。基于以上关于我的个人信息,帮我写一份针对自动化测试岗位的简历。 |
格式化输出是提示词的输出格式,它决定了LLM输出的格式。可以使用这样几种输出格式:
例如:
1 | 根据“人工智能在数字政府领域的最新进展”这个研究主题,生成一份500字以上的摘要,要求有研究缘起,研究主题,研究过程,结果以及结论。 |
其中,大多数LLM的默认输出格式为Markdown,JSON/XML/YAML/CSV等方便程序解析的结构化文本对于LLM最为友好
例如以下案例:
1 | 请根据我提供的信息,以csv的格式将结果进行量化。 |
例如这个文风转换的提示词:
1 | 将给定文本转换为符合小红书用户群体和调性的文案格式: |
角色是提示词的输出角色,它决定了LLM以何种身份生成用户需要的内容。
注意事项:
设置角色可以让LLM更容易找到与角色相关的训练语料,明确自己的任务
例如:
1 | 你是一个资深的心理医生,擅长使用认知行为疗法解决心理问题: |
写好提示词的基础:
上一章中我们提到过,我们写作提示词,就是要提升LLM准确生成用户期望结果的能力,让LLM更懂用户。
语义压缩类提示词,实际上是带有很强指向性的关键词或短语,这类关键词或短语通常是与特定领域、任务或知识相关的专有名词、知名概念、平台或现象等有关。它们可以帮助模型迅速识别任务的类型或给出相关的答案。以下是一些常见类型的“提示词”和如何构造这些提示词的思路。用户使用这些词时,模型能够理解背后的上下文或需求。
语义压缩类提示词,主要分为以下几类:
使用著名人物、思想家、学者等的名字或经典概念、定律作为提示词,可以迅速让模型知道你需要与这些人物相关的信息或观点。
例如
苏格拉底:如果输入“苏格拉底”,模型会自动理解用户可能需要的是关于苏格拉底哲学思想、苏格拉底悖论或他的教学法等相关信息。
蒙特卡洛方法:如果输入“蒙特卡洛方法”,模型会自动理解用户可能需要应用概率论、随机过程等方法的场景。
使用著名品牌、平台或软件作为提示词,可以迅速让模型知道你需要与这些品牌、平台或软件相关的信息或功能,一般这类提示词用于文案创作领域居多。
例如
小红书:如果输入“小红书”,模型会自动理解用户可能需要的是关于小红书平台用户画像与调性的文案。
微信公众号:如果输入“微信公众号”,模型会自动理解用户可能需要的是关于微信公众号平台用户画像与调性的文案。
使用特定领域或行业的黑话作为提示词,可以迅速让模型知道你需要与这些领域或行业相关的信息或知识。
例如
KOL:如果输入“KOL”,模型会自动理解用户可能需要使用KOL(Key Opinion Leader,关键意见领袖)这种角色身份完成相关任务。
这样的一些“语义压缩提示词”可以大大提高与大语言模型交互的效率,使得对话更加精确。
可能有的朋友会问,如果我对于我要完成的任务,并不知道有哪些现成的“语义压缩提示词”,这种情况我该如何构建“听话的”提示词呢?
别急,接下来两章的内容,我们会详细介绍如何构建“思维链”类提示词和“小样本”类提示词,这两类提示词可以帮助你快速构建出“听话的”提示词。
我们在上一章中,介绍了如何构建“语义压缩提示词”,这一章我们将介绍如何构建“思维链”类提示词。
思维链提示词(Chain of Thought Prompting)是一种提示词技术,它通过引导模型进行逐步推理,从而提高模型的理解和解决问题的能力。虽然目前以ChatGPT-o1-preview为代表的推理模型已经出现,但是这种提示词技术在LLM的推理和解决复杂问题时非常有用。
构建有效的“思维链提示词”是一种能够帮助思维系统化、逻辑化的技能,通常通过分步引导来激发深入思考。具体而言,思维链提示词的本质是将复杂的问题进行分解,提供清晰的推理路径,逐步得出解决方案。这里提供一些构建思维链提示词的常见策略:
首先,清晰地定义你要解决的问题或达到的目标。这是整个思维链的起点,帮助确保后续的思考始终围绕着核心问题展开。
示例提示词:
将问题分解为多个小问题或步骤。思维链可以通过“逐步推进”来展开,每一环节都朝着目标迈进。每个提示词都应鼓励下一步的行动,或是对前一步结果进行反思。
示例提示词:
通过提出假设并进行推理,帮助构建思维链条。提示词应鼓励对每个环节的前提条件进行检验,避免跳跃性思考。
示例提示词:
思维链提示词可以引导分析不同角度,考虑更多的影响因素。例如,结合多重假设或不同的解决方案。
示例提示词:
在思维链的每个阶段,进行小结或汇总。这不仅有助于保持思维的连贯性,也帮助形成对整个问题的综合理解。
示例提示词:
构建思维链时要有灵活性,可以通过各种逻辑关系来连接思维链条。例如,因果关系、条件关系、对比关系等。
示例提示词:
在解决问题的过程中,加入对前述推理过程的验证,评估结论的合理性或是否存在盲点。这有助于加强逻辑性,避免出现不严谨的推理。这种提示词常见于反射式的提示词框架。
示例提示词:
有时需要思维不仅停留在逻辑推理上,还要鼓励创新思维,探索其他可能的解决方案。这种提示词常见于反射式的提示词框架。
示例提示词:
假设你正在帮助团队解决一个产品市场定位的问题,以下是构建的思维链提示词:
通过逐步推进这些提示词,可以帮助团队从不同角度深入思考产品市场定位的复杂问题,最终得出合理的解决方案。
构建思维链提示词的关键在于结构化地引导思维过程,确保每一步都紧密联系并能够推进到下一步。你可以通过分解问题、推理假设、分析因素、总结归纳等方式,逐步帮助自己或他人理清复杂问题的思路。
小样本类提示词(Few-shot Prompting)是一种通过在提示词中提供少量示例来引导大语言模型完成特定任务的方法。这种方法介于零样本提示词(Zero-shot Prompting)和全量训练之间,既不需要重新训练模型,又能通过示例让模型更好地理解任务要求。
小样本提示词具有以下核心特征:
小样本提示词没有明确的分类,总之,它是一种灵活基于示例的提示词,适用于各种任务,包括文本生成、分类、回答问题等。
小样本提示词的基本结构通常包含以下几个部分:
小样本提示词在以下场景特别有效:
文本分类:
文本生成:
信息提取:
以下是几个具体的应用示例:
1 | 任务:判断以下评论的情感倾向(积极/消极) |
1 | 任务:将非正式表达转换为正式商务用语 |
1 | 示例: |
在使用小样本提示词时,需要注意以下几点:
示例质量:
示例数量:
格式一致性:
总之,小样本提示词是一种灵活的提示词,只要提供2-3个示例,就可以有效地引导大语言模型完成特定任务。
在实际应用中,可以结合其他提示词技术,如“语义压缩”和“思维链”来进一步提高模型的理解能力,最终达到更好的效果。
可能有的朋友会说,如果前面所学的提示词技巧我都记不住,我还能不能写出“听话的“提示词呢?别急,最后一节”元提示词“配合开源项目直接帮你写。
元提示词(meta prompt)是指在给定的上下文中,用来引导或调整行为、思维或输出方向的高层次提示或指令。它的核心思想是通过提供更高层次或更抽象的指令,来影响或引导下层任务的执行或认知过程的调整。
元提示词的原理基于以下几个核心概念:
简单理解,元提示词可以说是“用来引导或调整行为、思维或输出方向的提示词”,这类提示词一般都非常长,并且涉及到大量的上下文信息。我们目前暂时不掌握如何构建元提示词,我们只需要学习如何用“元提示词”撰写我们需要的提示词。
在这里感谢openai与claude均提供了平台使用的元提示词以及相关程序。对于编程能力不强的朋友们,可以使用这个在线版本来生成自己的元提示词。项目代码也已开源到了GitHub,感兴趣的朋友们可以研究。
在线版的生成器默认内置调用零一万物的模型,元提示词模版可以支持使用claude和openai两种。用户只需要输入最简单的提示词,输入想要在最终生成结果中出现的变量,然后就可以得到最终的元提示词。
如果想要体验不同大语言模型的生成效果,可以在下方“模型名称”、“API密钥”、“API基础URL”中设置相应的参数。
以第3章构建思维链提示词来解决问题为例,最终生成的结果如下所示:
我们使用这个结果放入大模型进行测试:
1 | 您将扮演一个智能助手,帮助团队解决产品市场定位的问题。以下是您需要遵循的步骤和指导原则: |
以下是零一万物测试的结果。
在这一章中,我们学习了如何用元提示词撰写我们需要的提示词,帮助用户能够以最高效的方式与大语言模型进行交互,从而获得更加准确的结果。