0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

大语言模型如何处理上下文窗口中的输入

Micron美光科技 来源:Micron美光科技 2025-12-03 13:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本博客介绍了五个基本概念,阐述了大语言模型如何处理上下文窗口中的输入。通过明确的例子和实践中获得的见解,本文介绍了多个与上下文窗口有关的基本概念,如词元化、序列长度和注意力等。本文的目标是帮助读者深入了解 AI 应用程序中的上下文如何影响模型行为。我们还通过用于评估系统行为的分析模型展示了相关结果,以演示当改变输入和输出序列长度时,对应的响应时间如何改变。演示结果表明,解码更长的输出需要花费更多时间。这意味着,在执行大规模高效推理时,HBM 等高速内存系统至关重要。对于正在使用或设计生成式 AI 系统提示词的人,这些概念都非常有帮助。

上下文窗口与上下文长度

使用大语言模型时,我们有必要了解上下文窗口、上下文长度和序列长度等概念之间的差别。这些术语经常被互换使用,可能会让一些人感到迷惑。在本博客中,我们将把它们定义为不同的概念。

上下文窗口是模型的最大容量,也就是模型可以同时处理的词元总数,包括您的输入和模型的输出。举个简单的例子:我们将下面的矩形大小定义为可容纳 10 万个词元的上下文窗口。

65daa2d0-cb3e-11f0-8c8f-92fbcf53809c.png

图 1:10 万词元上下文窗口的大小

上下文长度则是指您在该空间中放置了多少词元,即您与模型对话期间当前实际使用过的词元数量,包括输入词元(蓝色)和输出词元(绿色)。例如,如果模型具有可容纳 10 万个词元的上下文窗口,并且您的输入使用了 7.5 万个词元,那么,只有 2.5 万个词元可用于模型的响应,继续输出便会超出窗口的上限。

序列长度通常是指上下文窗口内单个输入或输出序列的长度。这是一种更精细的测量方法,可在模型训练和推理过程中跟踪每个文本段的长度。

6632c492-cb3e-11f0-8c8f-92fbcf53809c.png

图 2:7.5 万个输入词元和 2.5 万个输出词元

上下文窗口决定了模型可以处理的信息量上限,但它并不直接反映模型的智能水平。窗口越大,可容纳的输入信息就越多,但输出质量往往取决于输入信息的结构化程度与实际利用效率。一旦达到窗口的容量上限,模型在处理时可能会失去连贯性,进而导致不理想的结果(例如,AI 幻觉)。

668e1572-cb3e-11f0-8c8f-92fbcf53809c.png

图 3:输入和输出序列长度

词元不是单词

如果上下文窗口由一个上限(例如 10 万个)来定义,那么词元就是衡量其容量的计量单位。重要的是,我们需要理解:词元并非单词。您在提示词中输入的单词将首先进入一个“词元分词器”中,该分词器将把文本分解为词元。一个单词可能会分解成几个词元。例如,“strawberry”会分解成三个词元,“trifle”则会分解成两个词元。有时候,一个单词可能只包含一个词元,例如“cake”。

66e86fe0-cb3e-11f0-8c8f-92fbcf53809c.png

我们可以用简·奥斯汀的小说《爱玛》中的句子来测试单词与词元的关系。

“Seldom, very seldom, does complete truth belong to any human disclosure; seldom can it happen that something is not a little disguised or a little mistaken.”

这段文本包含 26 个单词,当我们使用 lunary.ai1提供的 Mistral 语言模型来处理这段文本时,模型自带的词元分词器将生成 36 个词元。这个例子中,每个词元大约对应 0.72 个单词,或者说大约对应四分之三个单词。

67412f86-cb3e-11f0-8c8f-92fbcf53809c.png

不同类型的文本中,词元与单词的比例各不相同。不过,就英语单词而言,每个词元平均对应大约 0.75 个单词。因此,拥有 10 万词元上下文窗口(每用户)的模型不一定能处理 10 万个单词。在实际应用中,该模型也许只能处理将近 7.5 万个英语单词,或者更少,具体取决于文本类型。

估计值词元数≈单词数∗1.33

为进一步在更大规模上测试词元与单词的比率,我们使用了来自“古腾堡计划”(Project Gutenberg,一个包含超过 7.5 万本免费电子书的图书馆)的八部知名文学作品,对其中的文本进行了快速分析。首先,我们计算了每本书中的单词数,然后通过词元分词器运行全部文本,以获得词元数。在对这些数字进行比较后,我们发现,每词元平均对应大约 0.75 个单词。

679b5524-cb3e-11f0-8c8f-92fbcf53809c.png

a数据来自于上列美国和英国文学作品的纯文本版本(通过“古腾堡计划”获得)。词元数通过 Lunary 公开提供的 OpenAI 词元分词器进行计算1。词元数与单词数的平均比例(1 词元 ≈ 0.75 单词)通过八部文学作品得到了验证。

了解词元数与单词数的平均比例,可以让经常使用 AI 的用户更有效地与 AI 互动。大多数 AI 平台(如 ChatGPT 或 Claude)在提供服务时都有词元总数限制。也就是说,这些平台使用词元而非单词来处理文本。这就导致用户很容易误判实际上可以输入的提示词单词量,或者 AI 响应时输出的单词数量。由于平台通常以词元而非单词来衡量输入输出的内容量,因此了解词元与单词的比率,可以让您更好地理解平台的限制,从而更巧妙地规划您的输入。例如,如果一个模型的输入限制为 4,000 词元,则大约对应 3,000 单词。在为模型提供长文档或数据集时,最好了解这一点,以便更有效地完成诸如查找关键见解或回答问题等任务。

67f64ed4-cb3e-11f0-8c8f-92fbcf53809c.png

图 4:单词与词元的比率

注意力在上下文窗口内并非均匀分布

人们经常会误解 AI 幻觉,将其视为模型的异常行为,或者将其作为语言模型存在问题以及不可靠的证据。但 AI 幻觉并非随机产生的;它们往往源于模型如何处理信息以及优先处理哪些信息,而这又取决于模型的训练效果、注意力分配机制等因素。在 GPT 或 Claude 等基于转换器的模型中,注意力是一种机制,用来帮助模型决定上下文中的哪些部分与用户的意图最相关,然后据此生成响应。为了更好地理解注意力的概念,设想您现在正身处一个嘈杂的鸡尾酒会上。如果旁边有人叫您的名字,您会本能地集中注意力。

“Frodo! 来这里!”

但是,如果四个人从房间的不同角落同时叫您的名字,情况又如何呢?

“Frodo!我是 Sam!”

“Frodo!快过来!”

“Frodo!看这边。”

“Frodo……啊,亲爱的 Frodo……”

您听到了所有这些招呼,但您的注意力现在被分散了。您可能更关注熟悉的声音,或者距离您最近的声音。每个声音都让您分出了一部分注意力,但这些部分的大小并不相同。这个例子并不完全贴切,但可以帮助我们理解大语言模型中注意力的运作方式。模型会分配注意力给上下文窗口中的所有词元,但其中一些词元的权重高于其他词元。这就是为什么大语言模型中的注意力通常被描述为“加权式”,这意味着并非所有词元都获得了同样的注意力。这种不均匀分配是理解模型如何优先处理信息,以及它们有时似乎会“走神”的关键。

更多上下文不一定意味着更好的答案

模型会扫描上下文窗口内的所有词元,但它不会为每个词元分配相等的注意力。随着窗口中的内容越来越多(例如,多达 10 万个词元),模型的注意力会变得更加分散。模型试图跟踪所有词元,这可能导致模型失去清晰的目标。

当这种情况发生时,模型会逐渐偏离当前对话,用户可能会感觉到回应变慢、不太连贯,甚至出现混淆对话前后内容的情况。这个时候,AI 经常会出现“幻觉”(Hallucinations,源自拉丁词 hallucinat,原意为“思想进入歧途”)。重要的是,我们要明白,这并不是模型出现故障的迹象。这实际上标志着模型已接近其能力阈值,正在满负荷运行。在此节点上,模型可能难以在过长的输入中保持连贯性或相关性。

从模型的角度来看,先前输入的词元仍然可见。但随着窗口内容的增加,注意力的分散,响应的精度可能会降低。模型可能会将先前提示词中提到的事实错误地放到当前问题中,或者将不相关的想法融合到输出中,使输出看起来很连贯但却毫无意义。在出现幻觉的情况下,模型不是在撒谎。它正在试图从无法清晰区分的大量片段中得出合理的响应,在注意力不足的情况下进行猜测。公允地说,模型其实是在基于现有信息努力运作,试图理解一段已超出其可靠处理能力的冗长对话。通过这种方式来理解注意力,有助于解释为什么更多上下文并不一定意味着更好的答案。2

话虽如此,较长的上下文窗口(超过 20 万词元,目前已经有模型支持 100 万或更多词元)也可能确实非常有用,特别是对于复杂的推理以及视频处理等新兴应用。一些新模型正在接受训练,旨在更有效地处理更长的上下文。通过优化架构和训练,模型可以更有效地管理对输入的注意力,减少幻觉,提高响应的质量。因此,尽管更多的上下文并不一定带来更好的答案,但新模型在保持注意力方面表现得越来越好,即使在处理特别长的对话时也是如此。

序列长度影响响应时间

在解析注意力机制之后,了解序列长度如何影响模型推理同样很有帮助。现在,我们可以问一个很实用的问题:当我们改变序列长度时,会发生什么?

输入序列长度会影响首词元时延 (TTFT)——即从输入请求到收到第一个输出词元的时间。TTFT 与 GPU 性能密切相关,因为它反映了 GPU 处理输入、执行计算,然后输出第一个词元的速度。而改变输出序列长度会影响词元间延迟 (ITL)——两个相继生成的词元之间的时间。b该延迟与内存的使用情况关系更大。

为进一步探究这一点,我们使用了一阶分析模型,来估计大语言模型推理期间的端到端延迟。我们在单个 GPU 上使用 Llama 3 70B 来运行该模型,该 GPU 带有高带宽内存(HBM3E 12H,8 层堆叠,36GB 容量),模型的上下文窗口为 128,000 个词元。c

b关键推理指标:首词元时延 (TTFT):模型在收到输入后到开始生成输出所需的时间(预填充性能)。词元间延迟 (ITL):两个相继生成的词元之间的时间(解码性能)。端到端延迟:从提交查询到收到完整响应所需的时间。3

c性能估算基于内部分析模型,旨在近似模拟推理行为。本研究中构建的系统基于估计的 GPU 配置,该配置反映了市售硬件平台的一般特性。所选配置不代表任何特定产品,仅用于支持本分析中的技术目标。这些估算值并不反映经过优化的软件或硬件配置,因此可能与实际结果不同。

下图显示了输入序列长度 (ISL) 和输出序列长度 (OSL) 逐渐增加时对整个端到端延迟的影响。每次测量的批量大小为 1(即单个请求)。所需能耗较少。

68501dc4-cb3e-11f0-8c8f-92fbcf53809c.png

图 5:不同输出和输入序列长度对应的每用户端到端延迟(秒)

关键要点

测量延迟时的一个重要结论是,模型生成长响应所需的时间,要远远超过处理长提示词时所需的时间。该模型能够一次性读取和理解输入,即使是特别长的提示词,处理速度也相对较快。但是,在模型生成响应时,是逐词元依次生成的,每个新词元的生成,都取决于之前已经生成的所有内容。这需要更多的时间,因为模型会执行自动回归流程,这意味着每个新词元都建立在之前生成的所有词元基础上。例如,将输入序列长度 (ISL) 从 2,000 个词元增加到 125,000 个词元,仅导致延迟增加大约两倍。相比之下,在同样范围内增加输出序列长度 (OSL),延迟将增加大约 68 倍。d之所以产生这种差异,是因为较长的输入序列引发了更多预填充计算,可并行处理多个词元。与之相反,解码在本质上是一个串行过程,只能依次生成每一个词元,这需要耗费更多时间,以及更多的内存带宽。

这意味着更长的输出序列会导致更长的解码时间,同时 GPU 和内存子系统保持活跃状态的时间也会变长。这种情况下,硬件级别的功效将会变得特别重要。类似美光 HBM3Ee 这样的内存设备,其运行功耗比同类高带宽内存设备低得多,能够以较少的能量完成相同的推理任务。

d此处给出的估计值来自未优化的分析模型,因此它们仅用于说明一般趋势,而非峰值性能。

e美光 HBM3E 的功耗比市场上同类高带宽内存设备低 30%。

对用户而言,上述结论彰显出优化提示词以及管理输入长度(例如,精简任何不必要的内容)的重要性。如果您正在构建实时应用程序,您通常可以放心处理更长的输入,不会有太多问题。而保持简洁的输出,可能有助于您的系统运行更快,响应更迅速。

内存在处理更长上下文时的重要作用

推理延迟不仅取决于序列长度,还取决于系统在处理输入和生成输出时如何管理模型对计算和内存的需求。许多近期发布的语言模型正在宣传其超过百万词元的上下文窗口。这些较大的上下文窗口(当完全利用时)将对内存子系统产生更大的压力,其后果在用户看来可能包括执行速度较慢、运行时间增加等。新一代内存技术将提供更高的带宽和更大的容量,可支持这些更大的上下文窗口,帮助缩短响应时间,提高整体吞吐量(每秒生成的词元数)。但是,伴随着这些性能提升,也出现了系统能耗过大的问题。随着推理工作负载扩大到支持数百万个词元,设计出能够高效使用能源的系统,变得越来越重要。长时间保持活动状态的系统需要消耗更多能源,为解决这一挑战,需要同时具备高带宽和低功耗特性的内存设备。例如,美光 HBM3E 的功耗远低于市场上的同类高带宽内存设备。此类低功耗产品有助于减少 AI 在运行推理工作负载(涉及数百万词元上下文窗口)期间所消耗的能量。展望未来,HBM4 和 HBM4E 等下一代内存技术旨在提供更高的内存带宽和容量,同时提高能效。这些改进源于工艺技术的进步(美光使用 1-gamma DRAM),预计将以更低的能源成本实现更快的数据移动。此外,随着这些技术的成熟,可能会进一步减少延迟,提高大规模 AI 部署的吞吐量并节约能源。

技术贡献者

Felippe Vieira Zacarias

系统性能工程师

Shanya Chaubey

生态系统开发经理

本文作者

Evelyn Grevelink

内容战略营销负责人

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    9

    文章

    3263

    浏览量

    76618
  • AI
    AI
    +关注

    关注

    91

    文章

    42239

    浏览量

    303283
  • 模型
    +关注

    关注

    1

    文章

    3882

    浏览量

    52380

原文标题:大语言模型中与上下文窗口有关的五个基本概念

文章出处:【微信号:gh_195c6bf0b140,微信公众号:Micron美光科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    关于进程上下文、中断上下文及原子上下文的一些概念理解

    的地址空间。 其中处理器总处于以下状态中的一种: 内核态,运行于进程上下文,内核代表进程运行于内核空间; 内核态,运行于中断上下文,内核代表硬件运行于内核空间; 用户态,运行于用户空间。 系统的两种
    发表于 09-06 09:58

    进程上下文与中断上下文的理解

    )进程下文:其是指切换到内核态后执行的程序,即进程运行在内核空间的部分。2.中断上下文:(1)中断上文:硬件通过中断触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要
    发表于 12-11 19:45

    进程上下文/中断上下文及原子上下文的概念

    为什么会有上下文这种概念进程上下文/中断上下文及原子上下文的概念
    发表于 01-13 07:17

    中断中的上下文切换详解

    状态(比如进行信号量post),一定是走的SVC_Handler入口,RTX的任务上下文中的上下文切换,实际上是在SVC_Handler入口中统一实现的;而systick中断的上下文
    发表于 03-23 17:18

    基于多Agent的用户上下文自适应站点构架

    自适应站点很少考虑对用户环境的自适应。为此,提出用户上下文自适应站点的概念,给出基于多Agent技术的用户上下文自适应站点构架模型。阐述用户上下文获取、挖掘过程以及站
    发表于 04-11 08:49 13次下载

    基于交互上下文的预测方法

    传统的上下文预测是在单用户的上下文基础上进行的,忽视了实际普适计算环境中由于用户交互活动导致的上下文变化因素。为了合理、有效地解决上述局限性问题,该文提出基
    发表于 10-04 14:08 7次下载

    终端业务上下文的定义方法及业务模型

    该文针对业务上下文仅关注业务质量较少考虑用户终端环境的现状,提出终端业务上下文的概念,为普适业务的开展提供必要的信息支撑。给出一种终端业务上下文的通用定义方法
    发表于 03-06 11:06 11次下载

    基于Pocket PC的上下文菜单实现

    介绍了基于 Pocket PC 中的点按操作概念, 论述了在Pocket PC 中上下文菜单的实现原理及方法, 并给出了基于MFC 下的Windows CE 应用程序实现上下文菜单的步骤和代码实例。
    发表于 07-25 18:26 17次下载

    基于Pocket PC的上下文菜单实现

    本文介绍了基于 Pocket PC 中的“点按”操作概念 论述了在 Pocket PC 中上下文菜单的实现原理及方法 并给出了基于 MFC 下的 Windows CE 应用程序实现上下文菜单的步骤和代码实例 。
    发表于 04-18 10:46 0次下载

    基于上下文相似度的分解推荐算法

    模型,再对目标用户的K个邻居用户建立移动用户一上下文一移动服务三维张量分解模型,获得目标用户的移动服务预测值,生成移动推荐。实验结果显示,与余弦相似性方法、Pearson相关系数方法和Cosinel改进相似度
    发表于 11-27 17:42 0次下载

    Web服务的上下文的访问控制策略模型

    的访问控制策略模型模型的核心思想是将各种与访问控制有关的信息统一抽象表示为一个上下文概念,以上下文为中心来制定和执行访问控制策略,上下文
    发表于 01-05 16:32 0次下载

    初学OpenGL:什么是绘制上下文

    ,每一个绘制上下文对应于申请的一个客户端,一个客户端维护着一套状态机,如果两个窗口分别对应两个不同的绘制上下文,则两个窗口彼此状态独立。申请绘制上下
    发表于 04-28 11:47 2873次阅读

    如何分析Linux CPU上下文切换问题

    在我的上一篇文章:《探讨 Linux CPU 的上下文切换》中,我谈到了 CPU 上下文切换的工作原理。快速回顾一下,CPU 上下文切换是保证 Linux 系统正常运行的核心功能。可分为进程
    的头像 发表于 05-05 20:11 3020次阅读

    我们能否扩展现有的预训练 LLM 的上下文窗口

    50 页的文字,意味着在对话或生成文本时,GPT-4 最多可以记住 50 页左右内容。    一般来讲,大语言模型处理上下文窗口大小的能力是预定好的。例
    的头像 发表于 06-30 11:09 1606次阅读
    我们能否扩展现有的预训练 LLM 的<b class='flag-5'>上下文</b><b class='flag-5'>窗口</b>

    NVIDIA BlueField-4为推理上下文记忆存储平台提供强大支持

    随着代理式 AI 工作流将上下文窗口扩展到数百万个 token,并将模型规模扩展到数百万亿个参数,AI 原生企业正面临着越来越多的扩展挑战。这些系统目前依赖于智能体长期记忆来存储跨多轮、工具和会话持续保存的
    的头像 发表于 02-02 10:29 1433次阅读
    NVIDIA BlueField-4为推<b class='flag-5'>理上下文</b>记忆存储平台提供强大支持