2024-1-28 16:55
AI 知识-提示词写作基础
嗨~我是前美团字节产品萧川,转行 AI 产品中,分享下我的学习笔记。基于吴恩达和智谱内部的提示词培训课程,梳理了一份提示词的学习笔记。主要是提示词写作的基本逻辑和技巧,吴恩达的课程如果不使用 python 调用 openai 的库,会更偏理论,智谱的课程更偏实践,入门比较友好。另外这两个课程更注重提示词本身,但是作为产品经理,个人觉得还是应该了解为什么这么写,对应的大模型的原理是什么。本篇做了一些结合,和技术理解的补充,分享出来,一起学习~enjoy~题外话:随着大模型能力的提升,未来我们与大模型的交互可能变得更为简单,甚至可能不再需要复杂的提示词,而仅通过自然语言对话即可实现高效交互。但在当前阶段,尤其对于产品经理而言,有效利用提示词是一项关键技能。通过将提示词能力融入产品设计,我们可以在大模型的能力完全实现“用户自然语言对话”功能之前,提前优化用户体验。开篇提示词工程其实是一种自然语言编程:只有方法、没有语法,经验非常重要。为什么要学?提示词工程是当前大模型落地为生产力最高效的解决方案。一、大模型的基础知识一)大模型是什么?本质是一个概率生成模型,通过概率预测下一个产出的字具备千亿参数,只有这个量级产出的内容和人写的差不多二)大模型为什么这么厉害GPT厉害的点主要是具备涌现、Few-shot和思维链的能力,具体表现在文字理解和输出、快速反馈及学习、以及保持较高正确性方面具备出色能力。'涌现'是指模型参数增加到一定程度时,会出现新的、未明确编程或预期的能力和行为。比如大模型的上下文理解、复杂语境理解、生成流畅长文本等小模型时没有见过的能力。但大型模型的一些涌现行为可能仍难以完全解释。'Few-shot学习'能力则使得GPT能够在只有少量样本的情况下迅速适应新任务,这与依赖大量标记数据的传统机器学习方法相比,展现了明显的优势。'思维链'可以理解为大模型在回答问题或解决问题时,会进行逐步推理,从而大大提升了输出内容的准确性和相关性。三)大模型能做什么信息从少变多:无中生有,文本生成信息从多变少:文本提炼信息转化:翻译、代码等四)大模型不能做什么1、不是搜索引擎,但是可以辅助搜索引擎进行内容整合2、不是数据库,不能一成不变的输出内容,类似人脑做了知识的理解(杜撰/整合)二、认识提示词一)提示词是什么?给AI的指令,引导产出想要的内容二)提示词有什么问题1.缺乏系统性,依赖个人经验a.只有方法,没有语法2.灵活性,他人分享的不好修改a.通过引入变量元素,提升复用性3.偏好分布a.与生产环境的的数据密切相关,需要增加评测工具(真实语料用于评测)4.不同模型间存在差异(结果不同)a.模型之间方法相同,但是内容不能复用三)提示词工程/Prompt Engineer是什么?提示词不断迭代的过程:想法-基础实现-真实数据测试验证-分析失败case,重复以上步骤迭代优化一、提示词写作原则与策略一)原则一:清晰而具体的指令明确、具体的指令能够提高大模型处理请求的准确性和相关性。这意味着输入应该尽可能地明确和详细,避免含糊或过于广泛的指示。上一篇我们讲解了大模型的基本原理,所以建议合理调整提示词以适应这些原理能显著提高与大模型的沟通效率。1、策略一:使用分隔符来清楚地表示输入的不同部分例如:""",---,< >,分隔符(如引号、破折号、标签)可以帮助模型更好地理解输入中的不同部分。这类似于在程序设计中使用注释或标签来增强代码的可读性。2、策略二:要求结构化的输出结构化输出(例如 HTML 、JSON 或Markdown格式),可以容易解析模型的输出。3、策略三:要求模型检查是否满足条件这里我理解是引入条件判断逻辑,可以帮助减少错误或不相关的输出。给模型提供清晰的指令,如“如果存在A,则输出A;否则输出'未查询到'”,可以提高输出的准确性。4、策略四:少样本提示(few-shot prompt)因为大模型非常重要的能力之一是“少样本学习”,即从有限的信息中迅速学习和适应新任务。所以建议在提示词中给予大模型1-2个学习案例,可以帮助模型更准确地理解任务要求并生成更合适的响应。二)原则二:给模型思考的时间1、策略一:指定完成任务所需的步骤大模型具备“思维链”能力,所以面对较为复杂的任务,你也可以帮助他明确步骤,从而提高产出效率。2、策略二:教导模型得出结论之前,先自己想办法解决问题在要求模型做出判断或解决问题之前,可以先让模型尝试自己解决问题,然后与正确答案进行比对。这种方法有助于引导模型进行更深入的思考,提高其输出的质量。3、策略三:要求模型提供引用鉴于模型可能产生“幻觉”,即生成不准确或虚构的信息,要求模型提供引用或来源可以帮助校验信息的准确性。这不仅降低了错误信息的产生概率,也增加了输出内容的可信度。三)参数设置温度参数(Temperature)和Top-p参数可以用来控制生成文本的随机性和多样性。但注意,参数只能在API中进行设置。temperature:采样温度,取值范围0.0—2.0。控制GPT输出的随机性。数值越大随机性越高。top-p:置信度,取值范围0.0—1.0。取值越小置信度越高,置信度越高GPT输出的内容越严谨,可以结合具体场景同时使用 temperature以及top-p来共同调节模型输出细节。四、提示词写作结构这一部分是智谱AI解决方案技术总监柴老师提到的,主要是上下文、指令以及输入输出。context上下文(可选)a. 角色和任务:定义模型应扮演的角色(如顾问、教师)和要完成的具体任务。b. 背景知识:提供与任务相关的背景信息或知识,帮助模型更好地理解和执行任务。Instruction指令(必选)a. 执行步骤:详细描述模型应执行的步骤或操作。b. 思维链:指导模型如何逐步处理信息或问题。c. 样例数据:提供一些具体的例子或案例,帮助模型理解任务的要求。input data输入数据(必选)a. 对话:提供对话内容,供模型参考或回应。b. 文章:提供文章或文本内容,作为模型处理的基础。c. 问题:提出具体问题,供模型解答。output indicator输出指示(可选)a. 输出的前缀:设定输出文本的起始部分或格式,引导模型以特定方式生成响应。分享一个提到的案例,其实也没有那么复杂,描述清楚就好了。五、提示词写作技巧👍这一部分也是智谱AI的柴老师分享,非常赞👍管理用户输入,通过模版来收集管理用户输出,用JSON,与系统交互细化场景,拆分指令,专注解决一类问题,提升输出效果控制系统与大模型结合比如在做问诊系统时,大模型不直接和用户做多轮交互,需要这个外部系统和用户交互、提问,收集信息并汇总给大模型多个大模型协同完成任务英语陪练场景,一个负责陪练对话,一个负责约束检查切片,解决长文本输入的问题六、学习资料吴恩达和智谱内部的提示词培训课程:https://zhuanlan.zhihu.com/p/626966526https://www.bilibili.com/video/BV1Z14y1Z7LJ/?share_source=copy_web&vd_source=60e3cd23b1374f317891a33e76bcd3a5https://www.bilibili.com/video/BV1ic411c7gE/?spm_id_from=333.999.0.0&vd_source=e9205587a8001e2e8fc76c351a2e87d0https://www.bilibili.com/video/BV1rC4y1f7L7/?spm_id_from=333.337.search-card.all.click&share_source=weixin如果本文对你有所启发,请点一点下方的“💡有启发”,告诉我呀😉点击《目录合集》,查看更多手册