ITPub博客

首页 > 云计算 > 公有云实践 > 亚马逊云科技:提示工程的应用

亚马逊云科技:提示工程的应用

公有云实践 作者:出海新观点 时间:2024-06-17 20:58:15 0 删除 编辑

关键字: [ 亚马逊云科技中国峰会2024, 语言模型应用, 提示词工程, 检索增强生成, 思维链提示, 结构化输出]

本文字数: 2800, 阅读完需: 14 分钟

导读

在这场演讲中, 秦森光先生介绍了提示工程的基础知识和应用场景。他解释了提示工程的概念、语言模型的工作原理, 以及如何通过提示词来指导语言模型完成特定任务。他还分享了一些提示工程的技巧和最佳实践, 如零样本提示、少样本提示、思维链、结构化输入输出等。最后, 他强调了提示工程在提高工作效率、创造内容等方面的应用前景。

演讲精华

以下是小编为您整理的本次演讲的精华,共2500 字,阅读时间大约是12 分钟。

在当今时代, 大模型和基础模型的兴起引发了机器学习范式的转变。过去, 我们针对每个任务构建独立的模型, 例如针对文本分类任务, 我们需要采集大量文本数据, 通过人工标注的方式打好标签, 然后训练特定的模型。这种模型的输入输出是固定的, 它只能完成特定的任务, 无法泛化到其他领域。然而, 有了大模型和基础模型,“ 一个模型就可以做后面所有的事情的” 。

那么, 如何让大模型专注于特定任务呢? 答案就是通过自然语言” 提示” 它。我们可以告诉模型,“ 你现在是一名什么什么什么样的模型, 你的工作是帮助人类要去做一个什么什么事情” 。比如说, 如果我们希望它进行文本分类, 就可以这样提示:“ 你是一个文本分类模型, 接下来我会输入一段文本, 你需要将这段文本分为我们希望的两个或多个分类” 。这种通过自然语言指令引导模型完成特定任务的方式, 就是提示工程的核心思想。

提示工程最初看似简单, 但实际上需要遵循一些模式和最佳实践, 才能发挥其最大潜力。如果不遵循工程化方法, 而是简单粗暴地编写提示词, 那么” 一旦你切换模型, 如果你的提示词不够结构化, 或者不够, 那么意味着你需要重写, 你可能需要大范围的重写你的提示词” 。这对于大多数企业来说是不可接受的。因此, 提示工程的内涵就是寻找一套独立于源模型的范式, 使得在该范式下, 我们只需微调语言, 而不用修改整个范式。

那么, 大模型和基础模型的本质是什么呢? 它们是通过预训练的方式获得先验知识的。预训练过程” 通常意味着比较高昂的成本, 因为我们需要大量的一个样本, 这种样本通常是就是无监督的或者没有标签的, 因为只有这样, 我们才能够让基础让我们的规模扩大成千上万倍, 然后使得基础模型获得某种先验, 获得某种知识” 。有了这些知识, 我们就可以对模型进行改造, 使其适配到特定场景。改造的方式有两种: 微调和提示词。

微调是指” 当我们选择了一个模型之后, 我们发现他在做某项任务的时候, 我的期望的目标跟实际这个模型完成的目标存在某种差异。比如说做某个分裂任务, 我们期望准确率是95%, 但是我们已经使用了各种各样的提职技术, 用了各种各样的方法, 只能达到85%, 那这10% 的差距就是我们微调的目标” 。而微调的要素就是我们的数据集,“ 正是在这个数据集上, 我的语言模型或者我某个模型达不到我的这个要求” 。微调通常需要更改模型参数, 成本较高。

相比之下, 提示词则是一种最低成本、最快捷的使用语言模型的手段。我们只需通过自然语言指令” 提示” 模型, 而不用改变模型参数。当然, 提示词工程也有其局限性, 我们后面会详细探讨。

那么, 大模型和基础模型是如何工作的呢? 它们的核心是Transformer 架构和注意力机制。Transformer 架构由编码器(Encoder) 和解码器(Decoder) 组成。编码器包含一大堆编码器单元, 它的作用是对输入序列进行编码, 将每个输入token 转化为一种表征。解码器则根据这些表征, 不断预测输出序列中的下一个token, 直到遇到结束符或被截断。

注意力机制能让模型自动筛选出对当前预测目标最重要的特征。比如在机器翻译任务中, 当模型预测” 原力” 一词时, 它会自动关注输入序列中的”the force”; 当预测” 愿” 时, 它会关注”may” 。正是这种注意力机制, 使得Transformer 能够高效地建模长距离依赖, 成为语言模型的主流架构。

除了语言模型的内在机制, 我们还需要了解” 柏拉图表征假说” 。这一假说认为, 不同模态的大模型( 如文本、图像、视频等), 在足够大的时候, 所学习到的高维度世界的投影将趋同。也就是说, 不管输入是什么模态的数据, 大模型最终学习到的是同一种底层表征。

为了帮助理解这一假说, 演讲者引入了柏拉图的” 洞穴理论” 作为比喻。在这个理论中, 一群囚犯被囚禁在洞穴里, 只能看到外部世界在洞壁上的影子投影。久而久之, 他们就误以为这些影子就是整个世界。而哲学家则是那个走出洞穴的人, 通过理性和科学, 逐步认识到影子背后更高维度的存在。

同样, 计算机科学家通过神经网络和Transformer, 使得大模型成为” 走出洞穴的囚犯”, 感知到高维度世界的存在。不同模态的数据, 只是这个高维度世界在我们视觉中的投影。大模型所学习的, 就是这个投影背后的本体表征。而” 语言模型的边界事实上也决定了提示词的边界, 就是我们遇到什么场景就不要提示了, 我们想想什么别的办法” 。

有了对大模型和基础模型的理解, 我们来看看提示工程的一些具体技术:

1. 零样本(Zero-shot) 和少样本(Few-shot) 提示。 零样本提示主要考验语言模型自身的能力, 看它在没有任何上下文的情况下, 是否能正确回答问题。而少样本提示则是提供一些示例, 帮助模型更好地完成任务。

例如, 现在有些企业使用语言模型将自然语言查询转化为SQL 语句, 查询数据库。但是用户的自然语言查询通常很复杂, 很难直接转化为SQL, 模型可能会出错。这时我们可以将那些转化错误的案例人工纠正, 并将正确的SQL 语句存入知识库, 作为模型的长期记忆。当模型面临新的查询时, 就可以检索知识库中相似的案例, 将正确的SQL 作为少样本提示, 从而提高正确率。“ 通过不断积累案例, 模型的表现也会持续进步, 直至达到可微调的程度” 。

2. 思维链(Chain of thought) 提示。 所谓思维链, 就是在提示中加入” 一步步思考” 、“step by step” 等指令, 引导模型逐步推理, 解决一些原本难以解决的复杂问题, 如数学计算和逻辑推理。

看似简单的一个指令, 却能极大提升模型的表现, 这是因为语言模型作为一种多项式级别的推理机器, 其计算复杂度是有限的。当问题的复杂度超过模型的计算复杂度时, 模型就无法一次性解决。而通过思维链, 我们将复杂问题分解为多个步骤, 使每个步骤的复杂度都在模型的计算能力范围内, 从而得到正确的最终解。

3. 标签化输入和结构化输出。 有时我们希望模型的输入和输出更加结构化, 而不是纯文本。标签化输入就是将一些关键信息用标签标注出来, 使模型能更好地理解上下文。而结构化输出则是明确告知模型, 我们需要JSON 、XML 或其他格式的结构化数据作为输出。

例如, 如果我们希望模型的输出能直接调用API, 那么就需要输出符合API 要求的结构化数据, 而不是纯文本。我们可以在提示中给出输出模板, 让模型按模板填充具体内容。“ 比如说我们明确告诉他输出的结果是一段JSON, 是一段什么什么格式的JSON, 然后你告诉他这个里面的key 是什么, 你要填充的value 是什么, 这个时候它能够更加按照我们期望的结果来输出” 。这在构建智能助手等应用时非常有用。

4. 推理多样性。 有时我们希望模型的输出不是固定的, 而是有一定的多样性。这可以通过调整温度(temperature) 、top-k 和top-p 等参数来控制。温度越高, 输出越多样; 温度越低, 输出越保守。我们可以根据具体场景, 调整这些参数获得理想的输出多样性。

“ 比如说我下面, 我这一次预测的一个结果是躺、吃、玩、窗、揉, 后面还有很多。下面的这个0.3,0.3 指的是每一个token, 每一个词, 它对应的概率是多大, 这些概率加起来等于一。那topk 指的是我可能这些词有10 万个, 对吧? 我可能有10 万个词, 但是我不可能每次sample, 我在10 万个词里面做sample 。我那我可能只取topk, 比如topk 是50 个, 我有, 我只把那概率最大的50 个拎出来做sample, 我的sample 量是不是小了, 对不对? 我的这个随机性就进程少了一步。那topp 通常是一个0-1 之间举, 比如说我取0.8, 我取0.8, 那么它会在topk 的基础之上, 那50 个基础之上从大到小累加概率, 比如说我以这个概率, 以这个例子为以这个向量为例子, 我0, 我从大到小累加0.3,0.3 0.3 加起来已经超过0.8 了, 已经0.9 了对吧? 这个时候后面的所有token 都会被我给踢掉, 我最终就会在这三个吃躺吃玩三个词里面做这个sample, 以30% 的概率, 以平均的概率做sample, 它会进一步地筛选我这个sample 那个就向量的那个空间的那个大小。”

“ 温度影响的下面的是0.3 0.3 0.05, 它影响的是下面的具体的概率值, 它如何影响的我们就要稍微要看一点点数学了… 大家只要知道我的这个temperature 越低我的这个概率值, 我的这个就马太效应越严重, 那些原本很大的值会更大, 那些原本不大的值会变急剧变小… 而我的t 越大, 它们是越大, 那我就更平均, 因为t 越大, 表示我的这个指数上面的这么一个值更小, 也就是说你原本很大的值也没有变得很大了, 导致大家更平均一点。”

除了上述技术, 提示工程还可以与其他方法相结合, 发挥更大潜力。比如与RAG(Retrieval Augmented Generation) 技术相结合,“ 我们后面会详细介绍, 所以我们总的来说, 对于我们语言模型, 它的适 式有两种, 一种是微调, 一种是提示词, 而微调成本通常是要高于提示词的” 。RAG 从本质上来说也是一种提示词工程,“ 所以我们千万不要把RAG 等同于问答知识库, 其实RAG 的概念可以非常的广泛。”

提示工程在亚马逊云科技产品和服务中有哪些应用场景呢?

1.           改善用户体验

 “ 我们可以使用语言模型优化企业内部问答系统或搜索系统, 通过对话方式找到最精准内容, 比搜索引擎更进一步。”

2.           提高工作效率

“ 对于复杂问题, 可以有24 小时在线的机器人回答, 避免寻找专家的沟通成本。写长文章或报告时, 通过语音输入加快工作效率。”

3.           创造内容

“ 情感陪伴服务, 使用  提示词技术让语言模型化身无所不谈的虚拟人物。”

总的来说, 提示工程为我们提供了一种低成本、高效的方式, 充分利用大模型的能力。它的应用前景十分广阔。通过不断探索和优化, 我们能够最大限度发挥大模型的潜能, 服务于各个领域。当然, 提示工程也并非 , 我们需要清楚认识到它的边界, 在无法通过提示词解决的场景下, 寻求其他方案。

正如演讲者所说,“ 语言模型的边界事实上也决定了提示词的边界, 就是我们遇到什么场景就不要提示了, 我们想想什么别的办法” 。语言模型作为一种多项式级别的推理机器, 其计算复杂度是有限的, 因此对于某些NP 完全问题, 它是无能为力的。我们需要合理利用提示工程, 而不是将其当成万灵药。

下面是一些演讲现场的精彩瞬间:

演讲者介绍了接下来将探讨” 提示词工程” 这一话题, 旨在展示如何利用提示词来发挥语言模型的潜能。

提示词工程旨在寻找底层规律, 拟合不同模型, 实现模型集成和提示词复用, 避免大范围重写提示词。

亚马逊云科技中国峰会2024 上, 演讲者阐述了大模型的核心在于对文字的理解, 这决定了模型的使用程度、易用性和能力发挥。

亚马逊云科技中国峰会2024 上, 演讲者阐述了如何利用历史经验和成功案例来不断优化语言模型生成复杂SQL 查询的能力, 从而更好地满足用户需求。

语言模型的计算复杂度与问题复杂度之间的匹配关系, 决定了它能否一次性正确回答问题, 通过提供更长的输入和提示, 可以提高语言模型的计算复杂度, 从而解决更复杂的问题。

亚马逊云科技中国峰会2024 上, 演讲者详细阐述了微调大型语言模型的超参数设置, 包括学习率、批量大小、训练轮数等技术层面的超参数, 以及根据具体业务场景设置的业务层面超参数。

亚马逊云科技中国峰会2024 上, 演讲者阐述了提示词如何影响大语言模型的微调数据准备和输出结果, 强调了提示词构造与模型输出之间的匹配关系。

总结

语言模型的兴起带来了机器学习范式的改变。通过提示词工程, 我们可以让大型语言模型专注于特定任务, 并充分发挥其潜能。提示词工程的核心是找到独立于源模型的模式, 以便在切换模型时无需大幅修改提示词。

提示词工程的主要概念包括:

1.           明确传达意图, 提供充分上下文。

2.           检索增强生成(RAG), 构建知识库并通过提示增强生成。

3.           示例学习(In-Context Learning), 给予更多示例有助于模型正确回答。

提示词工程的技巧有: 标签化输入、结构化输出、推理多样性等。通过调整温度、top-k 和top-p 等参数, 可以控制模型输出的多样性。

语言模型的边界在于其计算复杂度与问题复杂度的匹配程度。通过思维链等技术, 可以提高模型的计算复杂度, 从而解决更复杂的问题。柏拉图表征假说认为, 不同模态的大型模型在足够大时, 所描述的世界底层表征会趋同。

提示词工程的目标是找到独立于模型的范式, 以便在切换模型时只需修改底层语言, 而非整个范式。这有助于提高工作效率, 并为语言模型在各种场景下的应用奠定基础。

2024 年 5 月 29 日,亚马逊云科技中国峰会在上海召开。峰会期间,亚马逊全球副总裁、亚马逊云科技大中华区总裁储瑞松全面阐述了亚马逊云科技如何利用在算力、模型、以及应用层面丰富的产品和服务,成为企业构建和应用生成式 AI 的首选。此外,活动还详细介绍了亚马逊云科技秉承客户至尚的原则,通过与本地合作伙伴一起支持行业客户数字化转型和创新,提供安全、稳定、可信赖的服务,以及持续深耕本地、链接全球,助力客户在中国和全球化发展的道路上取得成功。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70038688/viewspace-3019103/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-05-21

  • 博文量
    679
  • 访问量
    566426