您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[淘天集团]:Prompt工程:如何提升大语言模型的表现力 - 发现报告
当前位置:首页/其他报告/报告详情/

Prompt工程:如何提升大语言模型的表现力

2024-01-04-淘天集团J***
Prompt工程:如何提升大语言模型的表现力

Prompt工程:如何提升大语言模型的表现力——致问 封面标题最多不得超过十五个字符副标题字符可控制在10-20个字符内目录CONTENT PAGE TITLE1介绍2框架3研究和技巧4案例 介绍背景为什么有这次分享?1、出于兴趣和一些使用需要,怎么才能写Prompt才能让大模型返回想要的内容。2、学习和研究Prompt这块的内容,分享文章后, 不少同学对Prompt也是有兴趣的。3、希望能和大家交流和探讨下,有没有什么有趣的内容一起学习下。为什么要学?https://twitter.com/sama/status/1627796054040285184 介绍预期受众https://greylock.com/greymatter/sam-altman-ai-for-the-next-era/山姆的另外一个观点,未来Prompt将会集成在任何地方,用户不需要设计复杂的Prompt,但是作为技术人员需要把它集成到Everywhere1、偏向于开发人员的大语言模型入⻔2、对大语言的局限性和能力边界不太清楚。3、大语言模型提示上最近的一些研究发现 介绍什么是PromptPrompt是是给 AI 模型的指令,一个简短的文本输入,用于引导AI模型生成特定的回答或执行特定任务。Prompt是你与语言模型沟通的方式。一个好的Prompt可以让AI更准确地理解你的需求,从而给出更有用的回答。 介绍Prompt的原理GPT在处理Prompt时,GPT模型将输入的文本(也就是Prompt)转换为一系列的词向量。然后,模型通过自回归生成过程逐个生成回答中的词汇。在生成每个词时,模型会基于输入的Prompt以及前面生成的所有词来进行预测。这个过程不断重复,直到模型生成完整的回答或达到设定的最大长度。一个有效的Prompt可以:-提升AI模型给出的答案的质量-缩短与AI模型的交互时间,提高效率-减少误解,提高沟通的顺畅度 关于提示工程提示工程(Prompt Engineering)是新兴起的概念:关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域,通过问题、指令、示例文本或其他方式,用于引导模型生成适当的响应或输出。•掌握提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。提高模型的可用性和用户体验,并减少不符合预期的输出。•利用提示工程来提升大语言模型处理复杂任务场景的能力,如对话系统、文本生成、机器翻译、算术推理能力。•开发人员可通过提示工程设计、研发强大的工程技术,实现和大语言模型或其他生态工具的高效接轨。提示工程不仅仅是关于设计和研发提示词。它包含了与大语言模型交互和研发的各种技能和技术。 Prompt工程师需要深入理解语言模型的特性和行为,分析和理解数据集,并设计合适的提示来引导模型生成准确、有用和符合上下文的文本。 环境准备-OpenAI地址:https://platform.openai.com/playground用途:可以与直接与OpenAI的各种模型进行交互,用于实验、调试和理解这些模型的功能和限制。用户可以输入文本,并看到模型如何响应。•Mode: 补全、聊天•Model:切换模型,Ada:这是最便宜,但运算速度最快的模型。Davinci:这是 GPT-3 系列模型中能力最强的模型。可以输出更高的质量、更长的回答。•Temperature:控制模型生成结果的随机性。简而言之,温度越低,结果越确定•Maximum length:设置单次生成内容的最大长度。•Stop Sequence:该选项设置停止生成文本的特定字符串序列。如果生成文本中包含此序列,则模型将停止生成更多文本。 环境准备-通义千问地址:https://qianwen.aliyun.com/功能:这个其实是直接使用通义千问的功能,并不是让我们针对模型进行学习和调试的。内部员工可以使用AI Studio里面内置了一些模型可以用来调试。 二、Prompt框架 Prompt-编写的一些原则几个关键要素:•明确目标:清晰定义任务,以便模型理解。•具体指导:给予模型明确的指导和约束。•简洁明了:使用简练、清晰的语言表达Prompt。•适当引导:通过示例或问题边界引导模型。•迭代优化:根据输出结果,持续调整和优化Prompt。一些有效做法:•强调,可以适当的重复命令和操作•给模型一个出路,如果模型可能无法完成,告诉它说“不知道”,别让它乱“联想”•尽量具体,它还是孩子,少留解读空间 Prompt-结构化框架 重要性排序Prompt的组成拆解:1.任务(Task): 始终以动词开始任务句子(如“生成”,“给予”,“写作”等),明确表达你的最终目标。可以有多个。2.上下文(Context): 提供用户背景、成功标准和所处环境等信息。3.示例(Exemplars): 提供具体的例子或框架,以改善输出质量。使用示例或框架可以大大提高输出质量。当然有时候我们可能没有示例,这个时候可以考虑让GPT帮忙生成示例。当然也有很多时候我们不用给示例。4.角色(Persona): 指定你希望ChatGPT和Bard扮演的角色。可以是具体的人,也可以是虚构的角色。5.格式(Format): 可视化你希望输出看起来的样子,表格、列表、段落等。6.语气(Tone): 指定输出的语气,如正式、非正式、幽默等。任务 > 上下文 > 示例 > 角色 > 格式 > 语气。 如果模型回答不满意,依次Check自己的Prompt内容进行调整 Prompt-框架结构化方式JSON或者Markdown形式提示词:•https://structuredprompt.com/•https://github.com/yzfly/LangGPT 三、Prompt 技术研究 Prompt研究和技巧 – 简单案例一个简单案例,说明模型的输出是可以通过一些词来进行控制的,通过提示词能让模型输出更多内容,或者是你想要的内容。 Prompt研究和技巧 Prompt研究和技巧 – Zero-shot直接向模型提出问题,不需要任何案例,模型就能回答你的问题,基于模型训练的时候提供的大量数据,能做初步的判断。1. Zero-Shot Prompting 技术依赖于预训练的语言模型2. 为了获得最佳性能,它需要大量的样本数据进行微调。像 ChatGPT就是一个例子,它的样本数量是过千亿。3. 由于 Zero-Shot Prompting 技术的灵活性和通用性,它的输出有时可能不够准确,或不符合预期。这可能需要对模型进行进一步的微调或添加更多的提示文本来纠正。 Prompt研究和技巧 – Few-shot 少样本技术向模型提出问题,同时给出一个案例,模型就会学习到这个案例;缺点:依赖于案例的格式,案例如果给的有问题,也会学到有问题的描述。 Prompt研究和技巧 – Chain of Thought(COT)思维链大模型每次都会把之前生成的文本当成上下文重新作为输入,因此如果说在之前生成的文本中比较详细和有逻辑性的话,就会表现出推理能力。根据 Wei 等人在 2022 年的论文表明,它仅在大于等于 100B 参数的模型中使用才会有效。如果你使用的是小样本模型,这个方法不会生效。 Prompt研究和技巧 – Self-Consistency 自洽有时候一般叫COT-ST,让模型生成多个思维链,然后取最多数答案的作为最终结果。其实重复运算多次,取概率最高的那一个,需要借助脚本辅助完成这个功能。1、从语言模型中生成多个不同的“推理路径(reasoning paths)”,这些路径可能因模型的随机性或不同的参数设置(如温度、top_p等)而有所不同。有助于模型更全面地考虑问题,并可能导致更准确或更可靠的最终答案。2、对上一步生成的多个推理路径进行“边缘化(marginalize out)”以得到一个最终的、一致的答案。边缘化在这里意味着从多个可能的推理路径中找出最常⻅或最一致的答案。 Prompt研究和技巧 – Program-aided Language Models(PAL) 程序辅助编程LLM在将自然语言问题分解为步骤方面表现良好,但在解决阶段往往会出现逻辑和算术错误。利用LLM来阅读自然语言问题,并生成程序作为中间推理步骤。然后将实际的解决步骤交给Python解释器处理。这使得LLM能够专注于将问题分解为可运行的步骤上。 Prompt研究和技巧 –生成知识提示从语言模型中生成知识,并在回答问题时将这些知识作为额外的输入。这种方法不需要特定任务的监督或访问结构化知识库。该方法包括两个步骤:1、生成知识:语言模型根据问题生成知识陈述。2、知识整合:使用生成的知识陈述进行预测,回答问题。本质上是帮助大语言模型做了一步推理的过程。相当于人工的把问题拆解了,所以会表现好一点。 Prompt研究和技巧 – Tree of Thoughts(TOT) 思维树Tree of Thoughts(ToT)框架,用于改进语言模型(LMs)的推理能力。该框架是对流行的“Chain of Thought”方法的一种泛化,允许模型在解决问题的过程中进行更多的探索和策略性前瞻。ToT允许模型自我评估不同的选择,以决定下一步的行动,并在必要时进行前瞻或回溯,以做出全局性的选择。> 在24点游戏中,使用链式思考提示的GPT-4仅解决了4%的任务,而使用ToT方法的成功率达到了74%。Imagine three different experts are answering this question.All experts will write down 1 step of their thinking,then share it with the group.Then all experts will go on to the next step, etc.If any expert realisesthey're wrong at any point then they leave.The question is... Prompt研究和技巧 – ReActCOT是LLM最常⻅的推理方式,该方法揭示了LLMs在解决问题时能够形成自己的“思考过程”。WebGPT使用LLM与网⻚浏览器进行交互,浏览网⻚,并从中推断出复杂问题的答案,但是没有思考过程。ReAct(Reasoning and Acting)是一个新颖的计算范式,旨在模拟人类智能中“行动”与“推理”的紧密结合。通过使用大型语言模型(LLMs),ReAct能够生成与特定任务相关的推理轨迹和行动,从而实现动态推理和高级计划的创建、维护和调整。ReAct不仅执行孤立、固定的推理,**还将模型动作和相应的观察结果整合成一个连贯的输入流,以便模型更准确地进行推理和处理超出推理范围的任务(例如,交互式决策)。**ReAct还增强了模型的可解释性、可信度和可诊断性。这一创新范式有潜力进一步解锁大型语言模型的能力。ReACT实现核心逻辑:1、使用Prompt引导LLM的输出格式。只进行一次推理,Action和Action Input。2、使用正则解析LLM输出的Action和ActionInput。调用工具拿到结果。3、将工具结果作为Observation,以及前几步的Action和输出一同放在Prompt中。4、继续让LLM进行下一步推理,直到FinalAnswser。 Prompt研究和技巧 – ReAct 四、Prompt 场景案例 Prompt的操作类型文本缩减•总结•摘要•提取•分析•评估文本转换•格式化•python->java•修改•解释文本生成•起草•规划•脑暴•扩展GPT 主要操作类型:参考:https://medium.com/@dave-shap/become-a-gpt-prompt-maestro-943986a93b81常⻅用途:列清单、生成创意、翻译、学习辅助、写代码、问题检索、总结 Prompt官方案例内容提