首页 > 其他分享 >大模型_2:Prompt Engineering

大模型_2:Prompt Engineering

时间:2024-05-04 09:04:21浏览次数:19  
标签:Prompt 工程 AI 模型 提示 Engineering prompt

目录:

  • 1、提示工程简介
  • 2、如何写好提示词
    • 2.1 描述清晰
    • 2.2 角色扮演
    • 2.3 提供示例
    • 2.4 复杂任务分解
    • 2.5 使用格式符区分语义
    • 2.6 情感和物质激励
    • 2.7 使用英语
    • 2.8 结构化提示词

1、提示工程简介


1.1 什么是Prompt 提示词?

  • 不论是文生图应用,还是 GPT文生文的应用,都是 prompt 输入模型,模型给出结果。所以我们今天谈的所谓 prompt,就是指模型的输入
  • Prompt:为模型提供输入,用以引导AI模型其生成特定的输出。

1.2 什么是Prompt Engineering提示工程?

  • Prompt Engineering:是一种人工智能(AI)技术,它通过设计和改进 AI 的 prompt 来提高 AI 的表现。
  • Prompt Engineering 的目标是创建高度有效和可控的 AI 系统,使其能够准确、可靠地执行特定任务。
  • 因为人类的语言从根本上说是不精确的,目前机器还没法很好地理解人类说的话,所以才会出现 PE 这个技术。

  • 另外,受制于目前大语言模型 AI 的实现原理,部分逻辑运算问题,需要额外对 AI 进行提示。

  • 另外,目前的 AI 产品还比较早期,因为各种原因,产品设置了很多限制,如果你想要绕过一些限制,或者更好地发挥 AI 的能力,也需要用到 Prompt Engineering 技术。

  • 如下:左图右图 prompt 基本是一样的,差别只在提示工程这个词是否用中英文表达。我们看到,一词之差,回答质量天壤之别。为了获得理想的模型结果,我们需要调整设计提示词,这也就是所谓的提示工程

    所以,总的来说,Prompt Engineering 是一种重要的 AI 技术:

  • 如果你是 AI 产品用户,可以通过这个技术,充分发挥 AI 产品的能力,获得更好的体验,从而提高工作效率。
  • 如果你是产品设计师,或者研发人员,你可以通过它来设计和改进 AI 系统的提示,从而提高 AI 系统的性能和准确性,为用户带来更好的 AI 体验。

1.3 Prompt 再理解 

  • 一个广泛的理解误区就是将 prompt 简单理解为自己精心设计的那一小段提示词,而忽略了prompt 的其他来源 。
  • 我们用输入法做个类比,第一张图片中的 “春眠” 是我们的输入,“不觉晓” 是模型输出,所以 “春眠” 是 Prompt。
  • 到了第二张图片, “春眠不觉晓” 是模型输入(“不觉晓”是模型前一轮的输出),“处处闻啼鸟” 是模型输出,所以 “春眠不觉晓” 是 Prompt。
  • prompt 的来源可以是我们的预设 prompt,也可以是用户的输入,甚至模型自己之前的输出也是 prompt。
  • 所以,要用好大模型能力,我们应意识到:“所有会被模型用于预测输出结果的内容,都是 Prompt”。

1.4 为什么提示工程很重要?提示词是调用大模型能力的接口

  • 从模型原理出发去理解 prompt, 它无处不在,Prompt 是调用大模型能力的接口,是用好大模型能力的核心,所以非常重要。
  •  在 LLM 应用的开发和性能优化过程中,我们可以看到提示工程贯穿始终。 

  • 一切 LLM 应用推荐先从 prompt 工程着手建立原型,作为我们性能优化的基石。
  • 若 prompt 工程无法满足实际需求,再分析性能瓶颈原因,采取进一步策略。比如通过 RAG 构造更好的模型输入,所以 RAG 本质上也是一种 prompt 工程。
  • 如果要使用微调,通过 prompt 工程构造高质量的微调数据更是微调成功的关键。
  • 很多朋友希望做垂直领域大模型,也需要通过 prompt 工程(或结合 RAG )先获取第一批高质量输入输出数据,然后微调模型。
  • 模型性能提升后,数据质量进一步提升,将更优质的数据用于模型训练,然后更好的模型产出更好的数据,如此构建正向迭代循环(也称数据飞轮),其中每个环节都离不开好的提示工程。

2、如何写好提示词


2.0 六大原则(OpenAI官方)

  • 最为推荐的是阅读 OpenAI 官方的提示工程文档,这里我也总结成了思维导图,一共六大原则,下面还有不少的小点,就不展开细讲了。
  • 只讲一点,给模型“思考” 时间,是大家很容易误解的原则。它不是真的指让模型慢慢思考,给出答案,实际上侧重点在于让模型一步步思考,给出过程,最终得到答案,就像我们做数学题一样,给出计算过程后再给结果,能够提高结果的正确度。
  • OpenAI 文档:https://platform.openai.com/docs 

2.1  描述清晰

那么怎么写好提示词,我们的答案是实践。

  •   第一点,清晰地描述是最重要的,能做到这一点,能够解决 80% 的问题。

  • 上图展示了一个我们与华硕校园的合作案例,当你第一次接触 GPT 的时候,不妨让 GPT 给你写一首诗吧,试着调整格式,调整诗歌体裁,再到提高内容质量,在这个过程中体会到对大模型的掌控感。

2.2 角色扮演

  • 对当前的基于角色的模型而言十分有效,能够明显提高内容质量。在网上铺天盖地的基于角色的提示词被编写出来用于大模型训练以后,又加强了这一技巧的有效性。

2.3 提供示例

  •  提供示例,尤其是在需要复刻文案结构和风格的场景下,多提供几个高质量示例

2.4 复杂任务分解

  • 复杂任务分解。分为人去分解和使用模型分解两个方面。如果有成熟的 sop 或者你有自己的思路,就复用 sop 你自己分解 。如果没有,让模型自动分解,给出过程。 CoT 思维链也是一种模型自动分解的方法。

2.5 使用格式符区分语义

  • 使用良好的格式,能大大避免由于语义歧义、冲突的导致的性能问题,markdown格式为我们的推荐格式。
  • 测试:文心一言效果最好

2.6 情感和物质激励

  • 情感和物质激励。情感激励有点类似情感 PUA那一套,物质激励则指给AI 小费这类技巧。一句话,对人的高情商那一套,对 AI 也很有效。示例可以参考前面的提供示例部分的内容。

2.7 使用英语

  •  仅仅是将一个词使用了英文代替,前后的回答就天差地别。

2.8 结构化提示词

  •  相比一般提示词,将提示词这一作文题变为填空题,编写门槛降低的同时,更加清晰和强大

 

2.9 小结 

  结合我们的探索和思考,我们认为提示词具有无限可能。

  这里借用 Transformer 论文的一个句式, Prompt is All You Need!原因主要为以下三点:

  • 1. 提示工程本质是人机沟通的艺术,只要我们人类自己仍在学习怎么高情商表达交流,人机如何更好的交互就会继续存在。
  • 2. 从调用大模型能力的接口,提示工程转变为调用**大模型生态能力**的接口。我们现在已经从调用单个大模型能力转为调用多个大模型能力(如 GPT+ DALLE), 从调用 AI 模型能力转为调用 AI+工具的能力(如 GPT+代码环境),随着未来 Agents 的生态进一步完善,我们可以使用提示词调用以 LLM 为大脑的 Agents 生态。
  • 3、提示工程的局限性,它的天花板,会随着大模型能力的进化,各种工具的接入,如 GPTs 等被 OpenAI 这些大模型公司不断拉高,具备更多更大的可能性。也许始于提示工程、终于提示工程是对大模型应用最好的答案,唯一的局限性在于我们对提示词的理解和实践是否足够深刻。

需要学习 PE 吗?

  • 现在 AI 的发展还比较早期,了解和学习 PE 价值相对比较大,但长远来看可能会被淘汰。这个「长远」可能是 3 年,亦或者 1 年。
  • 从用户的角度看,我认为学习 prompt 可以让你更好地使用 ChatGPT 等产品。
  • 从产品的角度看,对于用户来说,我认为 prompt 会是个短期过度形态,未来肯定会有更友好的交互形式,或者理解能力更强的 AI 产品。

 

思考 


Markdown格式的长文本Prompt提示词并不适用于生产环境,因为消耗了过多的Tokens,这对于成本计算来说无异于是一个很现实的问题。目前我也在研究通过关键词提炼,去大篇幅优化不必要的词汇,达到预期效果,共同去探索Prompt的进阶优化。 

 

参考资料


标签:Prompt,工程,AI,模型,提示,Engineering,prompt
From: https://www.cnblogs.com/tgzhu/p/18126236

相关文章

  • 大模型_2.2:Prompt示例
    1、行业洞察分析  行业洞察分析的方法论:使用麦肯锡工作法可以快速了解一个行业。Step1:通过搜索分析几十个与该行业相关的关键词,覆盖该行业的上下游,以获取全面的信息。Step2:阅读一些行业最新的研究分析报告,这些报告通常包含了行业趋势、市场规模、竞争格局等重要信息。Step......
  • 大模型_2.1:Prompt进阶
    目录:1、PromptframeWork2、Prompt结构化格式3、如何写好结构化Prompt?4、Zero-ShotPrompts5、Few-ShotPrompting6、自洽性Self-Consistency7、Program-AidedLanguageModels 1、PromptframeWork 结构化、模板化编写大模型Prompt范式的思想目前已经广为传......
  • 大模型_3:RAG
     目录:1. 背景介绍2. 什么是RAG?3. RAG技术范式发展4、RAG的生态5. QAnything介绍6. QAnything架构解析7.二阶段检索器(Two-stageRetriever)8. LLM模型微调9.RAG和微调应该如何选择?10. 本地部署11. 应用示例12.基本能力13.文本向量算法与工具1.背......
  • 大模型_4:Agent
    目录: 1、全球AIAgent产品盘点 2、概览:基于LLM的自主智能代理,朝AGI更进一步 3、技术篇:以LLM为基座,拓展感知和行动等功能模块 4、Agent智能体的工作过程 5、市面上Agent主要呈现1、 全球AIAgent产品盘点:详细点击 开源产品: AwesomeAIAgents:开源ai-agents列......
  • EPAI手绘建模APP新建模型1
    (6) 新建模型图 175 新建模型工具栏-1图 176 新建模型工具栏-2① 新建模型工具栏包括一些建模过程中常用的工具,一般是基于现有模型创建一个或多个新的模型,同样是分步骤完成建模过程。② 挖空模型,选择实体上的面;设置挖空后连接类型,连接类型包括圆弧、相切、相交;挖空后......
  • EPAI手绘建模APP新建模型2
    ⑪ 中轴线,依次选择两条边,在两条边中轴处生成一条新的边。图 187 中轴线⑫ 投影点,选择一个点;选择一条边或者一个面。将点投影到边或者面上,生成新的点。图 188 投影点-1图 189 投影点-2图 190 投影点-3⑬ 投影曲线,选择一条边;选择一个面。将边投影到面上,打开设......
  • 09_模型设定与数据问题
    第9章模型设定与数据问题如果模型设定不当,会带来设定误差(specificationerror)[[#9.1遗漏变量|9.1遗漏变量]][[#9.2无关变量|9.2无关变量]][[#9.3建模策略:“由小到大”还是“由大到小”?|9.3建模策略:“由小到大”还是“由大到小”?]][[#9.4解释变量个数的选择|9.4解释......
  • RNN处理语言时,训练集的特征到底什么样?语言模型改为处理时间序列时,输入特征要怎么改?
    模型输入到底是什么样?1、整个小说作为一个序列,分段,窗口滑动一位一个很长的序列,加个随机初始点,舍弃初始点之前的,然后把剩下的长序列,根据步长平均切成多个子序列,把多个子序列起始下标乱序放在list里。一个子序列可能是很多句话,然后再循环所有子序列,每次取batchsize个子序列X矩阵:......
  • 11_二值选择模型
    第11章二值选择模型11.1二值选择模型的例子解释变量是离散的,不影响回归。比如虚拟变量被解释变量是离散的,不适合进行OLS回归。离散选择模型、定性反应模型最常见的:二值选择行为定义线性概率模型(LinearProbilityModel)$$\left{\begin{array}P(y=1|x)=F(x,......
  • 时间序列预测模型对比——视频笔记
    Autoformer他的特点是加入了自动相关,代替原来的自注意力机制,因为作者认为数据不能简单由数值来判断,而应该根据趋势来判断。他与Dlinear一样,都是用到了decomposition,这个拆分(快速傅里叶变换FFT)基于STL(季节性,趋势性),数据=趋势性数据+季节性数据(周期)+余项auto-correlation代替注意力......