每次出行前,你都要跟行李箱博弈:48 升的箱子,想装下七天衣物、电脑、相机和带给朋友的伴手礼。你心里很清楚,装不下的才是常态,于是你学会了排序——内衣证件永远在最底层,外套按天气取舍,特产实在放不下就算了。大模型的每一次对话,也是同样一场装箱博弈:上下文窗口就是行李箱,Token 就是重量单位,而 Token 预算管理,就是航空公司给你的行李限额——额度有限,却可以聪明地花。这篇文章从 Context Engineering(上下文工程,即系统性地设计和管理大模型上下文的工程方法)的视角出发,讲清楚四个问题:上下文该怎么排序、信息怎么按需组装、预算怎么分配、账单怎么控制。学完之后,你会像老练的旅行者一样,在有限的上下文里塞进最有价值的信息,让大模型每一次出手都恰到好处。

岗位关联

对 AI 从业者而言,Token 预算是连接模型能力与商业成本的关键旋钮。掌握它,你就能用更低的推理成本、更稳的响应质量交付 Agent 和 RAG 系统——这是从“能跑通 demo”走向“能上生产”的必修课。

目录
  1. 可视化演示
  2. 预算本质认识
  3. 上下文优先级
  4. 动态组装策略
  5. 预算分配方法
  6. 密度优化技巧
  7. 成本估算控制
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

\u5c55\u793a\u8bed\u8a00\u6a21\u578b\u6839\u636e\u4e0a\u4e0b\u6587\u9884\u6d4b\u4e0b\u4e00\u4e2a\u8bcd\u5143\u7684\u6982\u7387\u5206\u5e03\uff0c\u901a\u8fc7\u6982\u7387\u6761\u5f62\u56fe\u76f4\u89c2\u5448\u73b0\u6a21\u578b\u5bf9\u5404\u5019\u9009\u8bcd\u7684\u7f6e\u4fe1\u5ea6\u3002

本节配有交互动效(进入视口后自动加载,约 3KB)。

\u4e0b\u4e00\u8bcd\u6982\u7387\u5206\u5e03 \u7d2b\u8272\u6761\u4e3a\u5404\u5019\u9009\u8bcd\u7684\u6982\u7387 \u7c89\u8272\u4e3a\u5f53\u524d\u9009\u4e2d\u8bcd P(w|ctx) = softmax(logits) \u70b9\u51fb\u6761\u5f62\u9009\u62e9\u5019\u9009\u8bcd

预算本质认识

出门前要过秤。航空公司给的免费额度是 23 公斤,你站上行李秤,心里一沉——超了。于是你明白,旅行的第一课不是“能装多少”,而是“允许装多少”。调用大模型之前,第一课同样不是模型的上下文窗口有多大,而是你愿意为一次请求花多少个 Token。Token 是大模型世界里的计价单位,就像衡量行李重量的“克”;而 Token 预算,就是航空公司给你的重量限额,既是物理上限,也是心理上限。

先纠正一个直觉:大模型声称的上下文窗口(Context Window,模型单次能“看到”的所有文本总量),比如 128K Token,并不等于每次都能塞进 128K。模型要给回答预留输出空间,输入和输出共享同一个窗口。这就像行李箱里你总要留一层放当天换洗的衣物,不能全塞满纪念品。

上下文工程的第一步,是明确输入侧的可用预算。从窗口总量中扣除输出预留,剩下的才是所有提示内容能分到的蛋糕。输出预留通常按窗口的 15%~30% 估算,取决于任务要生成多长的回答。预算同时受两重约束:窗口大小是硬约束,超了直接报错;成本是软约束,超了账单吃不消。

Bin=Wwindow−Tout\displaystyle B_{\text{in}} = W_{\text{window}} - T_{\text{out}}

1. W_{window}(窗口总量):模型上下文窗口的总容量,例如 128K 或 32K Token,可理解为行李箱的核定容积。

WwindowW_{\text{window}}

2. T_{out}(输出预留):为模型生成回答预留的 Token 空间,通常占窗口的 15%~30%。

ToutT_{\text{out}}

3. B_{in}(输入预算):本次请求可用于系统提示、检索结果、历史对话等所有输入的总预算。

BinB_{\text{in}}

就像托运前先拿出尺子量一量,搞清楚“允许装多少”,后面的取舍才有依据。预算本质认识,就是给自己上一把行李秤。

上下文优先级

行李放不下时,老旅行者心里有一张清单:证件和内衣放最底层,永远在场;当季衣物按行程放第二层;相机、电脑这些“电子玩具”看剩余空间;到了当地才买的特产,从来不在计划内。大模型的上下文也有同样一张清单,只是排序依据换成了“对回答的贡献”。

上下文工程里,信息源一般分四层:系统提示词是核心层,相当于内衣证件,定义角色的行为基线,必须常驻;用户当前问题是必要层,决定这趟“旅程”的目的地,权重最高;RAG(检索增强生成,即先从外部知识库检索相关段落再让模型回答)结果和工具定义是可选层,按需裁剪;历史对话是易弃层,最该被压缩。

如何自动排序?给每条信息源算一个优先级评分:必要性打分越高越靠前;与用户问题的相关性越强越值得装;但冗余度是负项——和已装信息重复得越多越要扣分,因为重复的句子既浪费 Token,又稀释模型注意力。

Si=w1×Ni+w2×Ci−w3×Ri\displaystyle S_i = w_1 \times N_i + w_2 \times C_i - w_3 \times R_i

1. N_i(必要性):第 i 条信息源的必要性得分,想象成“不带它,这趟旅程根本走不了”的物品。

NiN_i

2. C_i(相关性):与当前用户问题的相关程度,对应“跟行程单的匹配度”,越高越优先。

CiC_i

3. R_i(冗余度):与其他已装信息的重复程度,重复越多扣分越狠,因为它在抢别人的份额。

RiR_i

4. w_1、w_2、w_3(权重):三个可调权重,表示你对不同维度的信任程度,通过实验调参确定。

w1, w2, w3w_1,\ w_2,\ w_3

打包时给每件物品贴“必带、按需、可弃”的标签,上下文优先级就是给每条信息贴同样的标签。装不下的时候,最先被撕掉的永远是“可弃”的那一张。

动态组装策略

旅行达人从不把整个衣柜塞进行李箱,而是出发前一晚查好天气预报,再决定带不带冲锋衣;第二天早晨要是下雨,雨伞就出现在包里了。上下文工程也讲“看天装箱”:不是把知识库全塞进每次请求,而是为当前请求现做一盒便当。

动态上下文组装(Dynamic Context Assembly)的意思是:每次调用时,从候选信息池里按需加载最相关片段,而不是全量注入。工程上通常配合三条管线:路由分流——先用意图识别决定这趟请求走 RAG 还是走工具调用;增量注入——多轮对话中只追加新增内容,不重复推送旧内容;过期淘汰——超过 N 轮或与当前话题无关的历史,自动移出窗口。

组装是有成本的。单次请求的 Token 开销可以拆成三部分:基础层是系统提示加用户问题,固定且必须;检索层是 RAG 拉取片段产生的开销,按需产生;装配层是序列化、拼接、格式化带来的额外开销,虽小但积累起来可观。

Creq=Cbase+Cret+Casm\displaystyle C_{\text{req}} = C_{\text{base}} + C_{\text{ret}} + C_{\text{asm}}

1. C_{base}(基础开销):系统提示词与用户问题的固定 Token 数,相当于行李箱的常驻层,每次必花。

CbaseC_{\text{base}}

2. C_{ret}(检索开销):RAG 或工具调用把外部信息拉进上下文带来的 Token 数,只在需要时产生。

CretC_{\text{ret}}

3. C_{asm}(装配开销):拼接、换行、JSON 格式化等结构性 Token,属于“打包用的胶带”。

CasmC_{\text{asm}}

动态组装像“当天现炒的便当”,而不是把整个冰箱背在身上。你只带今天要吃的,路再远也不怕超重。

预算分配方法

23 公斤怎么分?常穿的衣服多给几公斤,只拍照用的相机给两公斤,书能不带的就电子化。分完,每个隔层都有自己的配额,超了就互相借。上下文预算的分配,本质是把输入预算这块蛋糕按优先级切成几份,分给不同信息源。

每个信息源在预算里的“理想份额”,应该与它的优先级权重成正比。系统提示词权重高,分得多;历史摘要权重低,只分到很小一块。这样保证最重要信息永远是最大块,可弃信息永远是最小块。

实际工程里两种做法配合:一是硬分配,给每个信息源设上限(例如 RAG 片段最多 2000 Token);二是自适应缩减,当检索结果超长时,从低优先级信息源(通常是历史)扣预算,而不是削系统提示。再用滑动窗口管理多轮历史:最近 K 轮保留原文保证连贯,更早的压成一句话摘要放进窗口一角。

Ti=Bin×ri∑j=1nrj\displaystyle T_i = B_{\text{in}} \times \frac{r_i}{\sum_{j=1}^{n} r_j}

1. T_i(份额):第 i 个信息源分到的输入 Token 数,即它在行李箱里的隔层大小。

TiT_i

2. r_i(权重):第 i 个信息源的优先级权重,由上一节的评分归一化得到。

rir_i

3. Σ r_j(权重总和):所有信息源权重之和,把 100% 的预算按比例切分。

∑j=1nrj\sum_{j=1}^{n} r_j

就像给行李箱的每个隔层贴一张“配额”小纸条,预算分配方法保证任何信息源都不会偷偷霸占整个箱子,也保证最低优先级的信息源永远第一个被牺牲。

密度优化技巧

同样的行李箱,有人塞进五套衣服,有人塞进十套——差别在打包方式:卷,不叠。Token 世界的“卷衣服”叫信息密度优化:让每个 Token 装载更多对回答有用的信息。

一篇 5000 字的文档和一段 200 字的摘要,对回答同一个问题的贡献可能相差无几,成本却差 25 倍。信息密度高的上下文,等于把羽绒服塞进真空压缩袋,体积缩小一半,保暖效果不变。

三个常用手段:压缩改写——让模型或规则把检索片段压成要点式摘要,而不是原样粘贴;去重合并——多个片段互相重叠时先合并再裁剪,去掉重复句;结构化——用 JSON、表格、要点符号代替散文,同样的 Token 能装更多结构化信息。每一条都指向同一个数学直觉:密度等于有效信息量除以消耗 Token 数。

D=IeffTin\displaystyle D = \frac{I_{\text{eff}}}{T_{\text{in}}}

1. I_{eff}(有效信息量):对生成正确回答有直接帮助的信息单位,是行李里真正保暖的部分。

IeffI_{\text{eff}}

2. T_{in}(输入令牌数):这条信息占用的输入 Token 数,等于它的“行李重量”。

TinT_{\text{in}}

3. D(信息密度):单位 Token 装载的有效信息量,密度越高,预算利用得越充分。

DD

卷起来的 T 恤、压扁的羽绒服、结构清晰的清单——密度优化让你在同一个箱子里带走更多真正有用的东西。它不改变窗口大小,却改变了窗口里装的是什么。

成本估算控制

超重一公斤,柜台收费二百。旅行者最心疼的往往是返程过秤那一刻。大模型应用也分“去程”和“返程”:输入 Token 和输出 Token 的单价可能不同,而输出往往更贵——它们都被记在账单上,只是单价不一样。

Token 预算不只是技术指标,更是财务指标。一个 100K 上下文的请求,哪怕只在输入侧,也会让单次调用成本肉眼可见地上升。上生产前必须回答一个问题:一次典型请求到底花多少钱?答案来自一个简单的乘法。

计费公式拆开看:输入 Token 数乘以输入单价,输出 Token 数乘以输出单价,两者相加再乘以调用次数。控制账单的三板斧:缓存复用——高频固定片段(系统提示、常用知识)命中 KV 缓存后省去重复计费,相当于同一件外套多穿几次不另收费;监控预警——记录每次调用的 Token 消耗,超阈值报警;多级降级——预算紧张时先用摘要回答,再降级为短答案,保住最核心体验。

Cost=(Tin1000×pin+Tout1000×pout)×Ncalls\displaystyle \text{Cost} = \left( \frac{T_{\text{in}}}{1000} \times p_{\text{in}} + \frac{T_{\text{out}}}{1000} \times p_{\text{out}} \right) \times N_{\text{calls}}

1. T_in / T_out(输入与输出令牌数):一次请求实际消耗的上下文输入量和模型生成的输出量。

Tin, ToutT_{\text{in}},\ T_{\text{out}}

2. p_in / p_out(单价):每 1000 Token 的输入与输出价格,通常 p_out 高于 p_in。

pin, poutp_{\text{in}},\ p_{\text{out}}

3. N_calls(调用次数):请求总次数。次数一多成本线性放大,Agent 多轮场景尤其明显。

NcallsN_{\text{calls}}

像记账本一样给每趟“航班”记下行李费,成本估算让 Token 预算从工程师的直觉,变成产品经理和财务都能看懂的预算表。记好这笔账,你的 Agent 才不会在月底被账单吓一跳。

AI 应用场景

场景一:RAG 智能客服的预算分配

阶段:检索增强生成管道中的上下文组装

解决的问题:传统客服机器人把整篇知识库文档塞进 prompt,输入 Token 爆炸、回答被无关段落干扰。用 Token 预算管理后,系统先按意图路由选知识库,只拉取 Top-K 个最相关片段,并按优先级分配预算:系统提示约 15%、用户问题约 20%、RAG 结果约 55%、历史摘要约 10%;超限时优先裁剪历史。

具体案例:某电商售后机器人遇到“订单三天不更新”时,系统检索物流 FAQ 并压缩成三条要点,历史只用一句话摘要替代完整对话。单次调用 Token 从 8K 降到 1.8K,成本下降约 70%,回答准确率反而提升 12%。

场景二:Agent 多工具调用链的预算兜底

阶段:Agent 推理循环(ReAct,即“推理-行动-观察”交替进行的循环模式)中的上下文管理

解决的问题:Agent 每轮思考都要把工具定义、观察结果、历史推理全部带进上下文,轮次一多窗口耗尽只能报错。用动态组装加滑动窗口后,早期轮次压成摘要,工具定义只保留当前步骤用到的几个,观察结果去重截断,超预算时触发降级回答。

具体案例:一个数据分析 Agent 连续调用 12 轮工具做报表,从第 6 轮开始将前 5 轮压缩为 200 Token 摘要,最终总消耗控制在窗口预算的 85% 以内,任务完成率从 61% 提升到 89%。

场景三:长文档问答的成本监控

阶段:推理成本治理与监控

解决的问题:企业知识库问答每月调用上万次,账单失控。引入成本估算公式加缓存复用后,高频文档片段命中 KV 缓存,重复计费减免,并按月输出 Token 消耗报表,超阈值自动告警。

具体案例:某法律科技公司把 2000 份合同问答接口接入监控,缓存命中率 45%,月度推理成本降低 38%,同时客户承诺的 P95 响应时间下降 0.4 秒。

Python 演示

python80 行
# -*- coding: utf-8 -*-"""Token预算管理器:按优先级分配,超限裁剪,估算成本"""  def estimate_tokens(text):    """粗略估算:中文约一字一令牌,英文约四字符一令牌"""    if not text:        return 0    cn = sum(1 for ch in text if '\u4e00' <= ch <= '\u9fff')    en = len(text) - cn    return int(cn + en / 4.0)  class BudgetManager:    def __init__(self, window=4096, reserve=0.25, prices=(0.03, 0.06)):        self.window = window        self.reserve = reserve        self.prices = prices        self.sources = {}     def add_source(self, name, text, priority, tokens=None):        if tokens is None:            tokens = estimate_tokens(text)        self.sources[name] = {'tokens': tokens, 'priority': priority}     def input_budget(self):        return int(self.window * (1 - self.reserve))     def ideal_split(self):        """按优先级权重将输入预算划分为各信息源份额"""        budget = self.input_budget()        total_pri = sum(s['priority'] for s in self.sources.values())        shares = {name: int(budget * s['priority'] / total_pri)                  for name, s in self.sources.items()}        return shares     def requested(self):        """每个信息源实际想要的令牌数(未裁剪)"""        return {name: s['tokens'] for name, s in self.sources.items()}     def trim_to_budget(self, plan):        """超预算时从优先级最低的信息源开始裁剪"""        budget = self.input_budget()        used = sum(plan.values())        if used <= budget:            return plan, used        order = sorted(self.sources, key=lambda n: self.sources[n]['priority'])        for name in order:            if used <= budget:                break            cut = min(plan[name], used - budget)            plan[name] -= cut            used -= cut        return plan, used     def estimate_cost(self, input_tokens, output_tokens, calls=1):        pin, pout = self.prices        return (input_tokens / 1000 * pin + output_tokens / 1000 * pout) * calls  def main():    mgr = BudgetManager(window=4096, reserve=0.25, prices=(0.03, 0.06))    mgr.add_source('system', '你是一个专业的客服助手,负责回答售后问题.', priority=5)    mgr.add_source('user', '我的订单一直显示运输中,已经三天了,怎么办?', priority=4)    mgr.add_source('rag', '物流常见问题:超48小时未更新请提交工单,可申请退款.', priority=3, tokens=1500)    mgr.add_source('history', '(最近十轮对话摘要:用户上周询问优惠券使用条件.)', priority=1, tokens=2400)     print('理想划分(按优先级):', mgr.ideal_split())     plan = mgr.requested()    trimmed, used = mgr.trim_to_budget(plan)    print('裁剪后分配:', trimmed)    print('实际使用:', used, '预算上限:', mgr.input_budget())     cost = mgr.estimate_cost(used, 300)    print('单次调用成本: $%.3f' % cost)  if __name__ == '__main__':    main()
目的:模拟 4K 窗口下系统提示、用户问题、RAG、历史四个信息源的预算分配、超限裁剪与成本估算,对应正文里“按权重分、低优先级先裁、账单公式”三条策略。
  1. cn = sum(1 for ch in text if '\u4e00' <= ch <= '\u9fff')用 Unicode 范围数出中文字符个数,英文按四字符一令牌折算。
  2. tokens = estimate_tokens(text)字符估算只是兜底,上线前要换成真实 tokenizer 的输出。
  3. self.sources[name] = {'tokens': tokens, 'priority': priority}把每个信息源注册进预算表,记录它“想要多少”和“该排多前”。
  4. budget = self.input_budget()先算输入预算:窗口总量乘以 1 减输出预留比例,对应文章第一个公式。
  5. shares = {name: int(budget * s['priority'] / total_pri) for name, s in self.sources.items()}按优先级权重把预算切成份额,权重越高隔层越大。
  6. order = sorted(self.sources, key=lambda n: self.sources[n]['priority'])超预算时按优先级从低到高排序,最先牺牲的永远是历史层。
  7. cut = min(plan[name], used - budget)每个源最多被裁到 0,不会出现负额度。
  8. return (input_tokens / 1000 * pin + output_tokens / 1000 * pout) * calls账单公式:输入与输出分别计价,再乘以调用次数。

常见误区

误区模型写的是 128K 上下文,那我只要不超过 128K 就都能塞进去,顶多慢一点。

正解输入和输出共享同一个窗口。你塞满 128K,模型只剩 0 Token 生成回答,直接报错。正确做法是先留 15%~30% 给输出,再算输入预算。行李箱塞到盖子合不上,你以为还能走,其实是连箱带人一起卡在安检口。

为何常见:厂商宣传的窗口容量是“最大容积”而不是“建议使用量”,示例又常常成功,让人误以为极限即常态。

误区一个汉字大概一个 Token,一段英文 500 个字符就按 500 Token 算预算。

正解大模型用 BPE 子词分词(把文本按空格、词根拆成小块再编码),英文 1000 个单词可能约 1300 Token,常见词又常被合并;中文虽接近一字一 Token,但代码、空格、特殊符号都计入。精确预算必须用 tokenizer 实测,不能手算字符数。

为何常见:字符是用户可见的单位,Token 是模型内部的计价单位,两者天然错位,估算公式只是兜底近似。

误区预算不够就平均压缩,系统提示词、用户问题、历史对话各砍一点,谁也不吃亏。

正解上下文是有优先级的。系统提示词决定行为基线,用户问题决定任务目标,它们几乎不能砍;最该牺牲的是低优先级的历史和冗余检索。平均压缩等于把必带物品和纪念品同等对待,最后箱子里塞满购物袋,证件却不见了。

为何常见:直觉上“公平”最安全,但上下文工程的目标不是公平,而是信息价值最大化和回答质量最优。

误区只要开启 prompt 缓存,所有 Token 都按折扣价计费,成本必然下降。

正解KV 缓存只在精确前缀命中时生效,动态变化的内容(追加的对话、新检索结果)命中率会下降,且不同模型对缓存的价格策略不同。固定系统提示适合缓存,频繁拼接的私有检索内容可能命中率很低。

为何常见:厂商宣传缓存折扣力度大,容易让人忽略“命中”这个前提条件,把概率事件当成了必然事件。

面试题

Q1. 公式 B_in = W_window - T_out 中,T_out 代表什么?

单选题 · easy

  • A.模型训练时使用的样本量
  • B.为生成回答预留的令牌空间← 正确答案
  • C.输入提示词的总令牌数量
  • D.每千令牌的计费单价

答案:B。T_out 是从窗口总量里扣出去、专门留给模型生成回答的空间。A 是训练概念,C 是输入侧总量,D 是价格概念,都与“输出预留”无关。就像行李箱要给当天换洗衣服留一层,不能全塞纪念品。

Q2. 上下文超预算时,以下哪个信息源最应该被优先裁剪?

单选题 · easy

  • A.系统提示词的基础层设定
  • B.用户当前提出的问题文本
  • C.较早轮次的历史对话记录← 正确答案
  • D.本次调用的工具定义清单

答案:C。历史对话优先级最低,是行李箱里的“纪念品”,最先被牺牲。系统提示是贴身证件,用户问题是行程单,工具定义是刚需工具,都不应先动。

Q3. 以下哪种做法能提高上下文的信息密度?

单选题 · easy

  • A.把检索片段改写为要点摘要← 正确答案
  • B.增加更多重复的历史记录
  • C.使用篇幅更长的完整原文
  • D.无限制拉长系统提示词

答案:A。要点摘要用更少 Token 传达同样信息,密度上升;重复记录、冗长原文、拉长系统提示都在稀释密度。就像卷起来的 T 恤比平铺的更省行李箱空间。

Q4. 动态上下文组装的核心思想是什么?

单选题 · mid

  • A.每次请求注入全部知识库资料
  • B.按请求场景按需组装相关片段← 正确答案
  • C.只保留系统提示词丢弃其余
  • D.随机抽取几轮历史对话记录

答案:B。动态组装像当天现炒的便当,按当前请求拉取最相关片段,而不是背整座冰箱。A 是全量注入,C 是极端裁剪,D 是随机,都不符合“按需”二字。

Q5. 通常输出单价高于输入单价,这对预算管理意味着什么?

单选题 · mid

  • A.输出部分更贵,需要控制生成长度← 正确答案
  • B.输入部分更贵,需要压缩提示词
  • C.两者价格完全一致无需区分
  • D.价格与请求次数没有任何关系

答案:A。p_out 大于 p_in,意味着同样的令牌数,生成比读取更烧钱。所以输出预留要克制,Agent 场景尤其要限制每轮生成长度。B 把高价方搞反了,C、D 与事实不符。

Q6. 以下哪些手段能够提高上下文的信息密度?(多选)

多选题 · mid

  • A.对检索片段做压缩改写← 正确答案
  • B.去重合并重叠的文本片段← 正确答案
  • C.用结构化清单替代长散文← 正确答案
  • D.无限拉长提示词长度

答案:ABC。压缩改写减少冗余字数,去重合并消除重叠,结构化让同样令牌装更多信息,三者都提升密度。拉长提示词只会稀释密度,相当于在行李箱里塞泡沫填充物。

Q7. 预算超限时,工程上常用的兜底策略有哪些?(多选)

多选题 · mid

  • A.按优先级从低到高裁剪信息← 正确答案
  • B.对高频固定片段启用缓存复用← 正确答案
  • C.触发降级为摘要式回答模式← 正确答案
  • D.无视预算强制调用大模型

答案:ABC。裁剪低优先级、缓存复用、降级回答都是预算紧张时的标准动作;无视预算会导致报错或账单失控,不在选项之列。

Q8. 滑动窗口策略在预算管理中的作用是什么?

单选题 · hard

  • A.保留全部历史并压缩系统提示
  • B.保留最近轮次并压缩更早历史← 正确答案
  • C.完全丢弃所有历史对话信息
  • D.只放大系统提示词的固定权重

答案:B。滑动窗口把最近的对话保留原文以维持连贯性,更早的压成一句话摘要,实现“最新的全保留、最早的只要梗概”。A 把压缩对象搞反了,C、D 都偏离窗口思想。

Q9. 优先级评分公式中冗余度 R_i 作为负权重,主要原因是什么?

单选题 · hard

  • A.冗余信息浪费令牌并稀释注意力← 正确答案
  • B.冗余信息能够显著提升回答准确度
  • C.冗余信息会降低令牌消耗成本
  • D.冗余信息总是来自系统提示词

答案:A。重复内容既占用预算又让模型注意力被稀释,就像行李箱里塞了三件同款 T 恤。B、C 是错误的正面化描述,D 断言来源,均不正确。

Q10. 某模型窗口 32K,输入单价 $0.06/K,输出单价 $0.18/K,预留 25% 输出。一次调用实际输入 18K、输出 3K。以下判断正确的有哪些?(多选)

多选题 · extreme

  • A.输入令牌没有超出预算上限← 正确答案
  • B.此次调用总成本约为一点六二美元← 正确答案
  • C.输入预算上限为两万四千令牌← 正确答案
  • D.总成本约为零点五四美元

答案:ABC。输入预算 = 32K × 75% = 24K,18K 没超,A、C 正确;成本 = 18 × 0.06 + 3 × 0.18 = 1.08 + 0.54 = 1.62 美元,B 正确;D 只算了输出部分的 0.54 美元,漏掉了输入费用。