CHAPTER 4 · EP 21

成本优化与选型 · 实用技巧 · 课程收官

第 4 章 · 第 21 讲 · 15:31

时长 15:31音色 云健 · 男声章节 4

同步字幕

章节导航(点击跳转)

0:00开场 · 这一集解决什么问题1:33
1:33第一层 · 多轮对话为什么越来越贵1:19
2:53第二层 · 键值缓存与显式缓存1:59
4:52第三层 · 动态时间戳,最贵的系统提示词1:37
6:29第四层 · 图片词元,像素也在烧钱1:38
8:07第五层 · 语法层与语义层2:21
10:29第六层 · 输出层与模型选型1:39
12:08收官 · 第一性原理与四象限2:02
14:11可带走的判断清单1:19
解读全文

ep21 · 成本优化与选型 · 实用技巧 · 课程收官

本内容改编自小山学堂《学 AI 产品,从入门到精通》,为二次演绎配音版。
来源 xueai.miyang.cn(小山学堂 · 洛小山)

本集定位

这是 Harness 核心篇的收官集,解决一个非常具体也非常花钱的问题,人工智能产品的成本到底花在哪几层,每一层能用什么办法砍下来,砍到什么程度就该收手。

核心判断:成本不是事后优化项,而是架构决策的结果。系统设计定下来的那一刻,成本结构就基本定死了。课程里那句话说得很直白,在系统设计的初期就考虑这几层优化,比上线之后再优化容易十倍。这一篇把口播里点到为止的每一层,展开成可以直接拿去做评审的材料。


一、能力地图

层级解决什么关键手段量级参考
计费模型钱从哪来按输入词元计费,每轮重发全部历史第 N 轮输入 = 系统提示词 + 前 N 减一轮问答 + 本轮问题
键值缓存重复历史不重复算缓存已算过的键值矩阵五千词元系统提示词、一千轮对话后可省约八成总成本
显式缓存保证命中请求里加一行缓存控制标记隐式折扣标准价百分之二十但不保证命中,显式折扣百分之十、命中率接近百分之百
固定前缀让缓存不失效系统提示词保持不变动态时间戳可让命中率归零
图片词元像素也在烧钱按缩放对齐后尺寸计费按任务匹配分辨率,词元数可差十到一百倍
语法层不买格式去掉加粗、缩进、冗余结构格式性词元占百分之十三到二十
语义层提高信息密度动态示例、语义压缩、关键信息放首尾提示词翻倍,计算量翻四倍
输出层控制输出负向约束、差异润色、停止序列输出词元比输入贵三到五倍
模型选型选对档位任务难度 × 调用量 × 容错空间叠加五层可降本七成到九成

能力地图的用法是先看行再看列。先看行,确认你现在的成本问题落在哪一层,不要一上来就改提示词措辞,那是最靠后的一层。再看列,确认这一层的手段是否真的落地了,尤其是显式缓存那一行,很多团队以为自己开了缓存,实际上一直挂着隐式缓存在跑。


二、六层成本结构拆解

第一层 多轮对话为什么越来越贵

模型按输入词元的数量计费,每一轮对话都要把之前所有的历史记录重新发给模型。历史越长,词元越多,费用越高。注意是每一轮都重发全部历史,不是只发新增的那一句。

具体到第十轮,输入是系统提示词加前九轮的所有问答再加本轮问题。也就是说到了第十轮,模型要把整段对话从头到尾重新读一遍,才能回答你这一句。用户感觉只是多问了一句,后台其实多付了九轮的钱。课程里专门做了一个费用模拟器,拖动轮次可以看到费用曲线,前面几轮几乎平着走,越往后抬得越快。

这也解释了很多对话产品的通病,聊到后面开始变慢、变贵,甚至答非所问。不是模型不行,是上下文在滚雪球。所以成本优化的第一步永远是看清楚,支出里有多少是真正必要的计算,有多少只是在为重复的历史付费。

第二层 键值缓存与显式缓存

原理:每轮对话模型都要对所有历史词元做注意力计算,键值缓存把已经算过的中间结果缓存下来,下一轮只计算新增的那几个词元。

类比:没有缓存,等于每次上课都从头默写一遍所有课本。有缓存,等于课本已经拍好存档,今天只看今天的新笔记。

量级:五千词元的系统提示词,在一千轮对话之后,键值缓存能省掉大约八成的总成本。由此得出一条可直接写进规范的结论,系统提示词越长,键值缓存越值钱;而让缓存命中的前提只有一条,系统提示词保持不变。

隐藏大坑:云端模型通常跑在多台推理服务器上,请求每次被随机路由到不同节点,那台节点上没有你的前文缓存,隐式缓存就永远未命中。课程给出的实际命中率低于百分之三十,意味着三分之一不到的请求真正享受到了折扣。

显式缓存:在请求里加一行缓存控制标记,平台会主动把请求路由到有缓存的节点,不再依赖随机分配,命中率接近百分之百。这里有个反直觉的地方,隐式缓存的折扣数字看起来更大,是标准价的百分之二十,显式缓存只有百分之十,但因为显式缓存几乎不会落空,实际省下来的输入成本接近九成。工程结论非常硬,生产环境必须用显式缓存,把省钱寄托在随机路由上,相当于靠运气省钱,既不可靠,也不专业。

第三层 动态时间戳,最贵的系统提示词

一个小小的设计错误可以让键值缓存完全失效,每轮成本翻倍,这个错误就是在系统提示词里写动态时间。

很多人为了让模型知道现在几点,会在系统提示词里加一句当前时间是某年某月某日某时某分某秒。看起来很合理,结果是缓存命中率归零,因为系统提示词每一秒都在变,保持不变的前提被自己破坏了。课程里做了一个实时对比,左边是带动态时间戳的系统提示词,右边是静态的,两边每秒各发一次请求,跑一会儿就能看到左边的命中率一直是零,右边稳定在百分之百。

正确做法是把时间挪到用户消息里。系统提示词只写角色,时间作为方括号前缀跟在用户问题前面。这样系统提示词是固定的,缓存能一直命中,模型也依然拿到了时间。

常见的缓存杀手还包括随机会话标识、用户标识前缀、灰度测试变量、随机表情前缀、动态广告文案。判断标准就一句话,任何让系统提示词每次都不一样的内容,都会导致缓存完全失效。原则可以背下来,系统提示词等于固定前缀,所有动态的内容,时间、用户信息、带随机性的内容,统统放到用户消息里。

第四层 图片词元,像素也在烧钱

多模态模型不是按一张图计费,而是把图片切成像素块再换算成词元。计费公式是词元数等于缩放后的高乘缩放后的宽,除以每个词元对应的像素数,再加二。

容易被忽略的是缩放对齐机制。模型不按原图计费,而是按缩放对齐之后的尺寸算,超过上限就缩小,低于下限还会放大,最后还要对齐到三十二的整数倍。

这意味着两件事。第一,一张分辨率很低的图可能先被放大再计费,你以为省了,其实没省。第二,一张超高清大图会被压缩下去,多花的带宽和等待时间换不来任何效果提升。很多团队在这里犯的错误是前端直接把手机拍的原图传上去,一张图几兆,实际计费尺寸却早就被压缩到一个固定的格子,中间的传输成本和等待时间全白花了。

所以按任务匹配分辨率很重要。不同任务对细节的要求差很远,识别一张票据上的金额,和判断一张照片里有没有人,需要的分辨率完全不是一个量级。课程把任务分成高、中、低三档,每一档有推荐的分辨率区间,只要先想清楚这个任务到底要看见什么,就能落到对应的那一档。核心原则是,分辨率不是越高越好,用最低能满足任务需求的分辨率,词元数的差距可以达到十倍到一百倍。

第五层 语法层与语义层

语法层解决的是你在为格式付费。格式性词元最高能占到提示词的百分之十三到二十。你为了让提示词看起来专业而加的加粗符号、结构化数据的大括号、缩进和换行,模型并不需要,但每一个符号都要计费。课程给出了一组实测量级,某个提示词里加粗符号就吃掉了百分之八点五的词元,算上列表、标题和格式化缩进,整体格式性词元达到百分之十三。换算成钱就是,在千万级调用量下面,每个月有百分之二十的预算花在了让产品经理看着舒服这件事上。

所以有一句很扎心的话,提示词是写给机器的指令,不是给人看的文档。换成更紧凑的结构化格式,就能省下百分之十五到三十。当然也不用一刀切,要按用途选。给用户流式展示的,用可以增量解析的格式;后端程序消费的,用紧凑格式;文档和富文本展示的,用渲染友好的标记语言。

语义层解决的是信息密度,让每一个词元都有价值。这里还得配套回答上下文满了怎么办,课程给了三条溢出策略。截断简单直接,但早期信息永久丢失,适合短对话工具。摘要压缩是平衡之选,需要额外调用一次模型生成摘要,适合长期对话。语义检索最精准,需要向量系统支撑,词元消耗也最优。这三条不是三选一,而是按对话长度和信息重要性来配。

为什么不能无限往里塞内容,有两条理由。第一条是贵而且慢,注意力复杂度随长度呈平方级增长,提示词翻倍,计算量翻四倍。第二条更关键,效果会变差,模型对中间内容的注意力最弱,把关键信息塞在大段材料中间,它就容易被淹没。三个应对策略是动态选取示例、对长材料做语义压缩、把关键信息放在首尾。这一条和省钱其实是同一件事,密度上去了,词元少了,效果反而更好。

第六层 输出层与模型选型

先记住一个比例,输出词元比输入词元贵三到五倍。同样的内容,让模型多说一百个字,比让它多读一百个字贵得多。所以控制输出就是控制成本,具体三个技巧,用负向约束明确告诉它不要什么,只让它润色差异而不是重写全文,以及设置停止序列让它该停就停。

然后是模型选型。公式是三个变量相乘,任务难度、调用量、容错空间。任务难但调用量小,用旗舰模型不心疼;任务简单但调用量巨大,就必须往下走;容错空间小的场景,省钱的余地本来就小,该花的钱不能省。课程里做了一张能力和成本的散点图,你会发现很多任务根本用不上最贵的那一档,真正拉开差距的是有没有把任务按难度分开,而不是一刀切给所有请求配同一个模型。这一刀切下去,就是那百分之二十的旗舰模型开销。


三、综合视角的五层叠加

单一优化的效果有限,把五层叠起来才有意义。课程给出了优化前的成本构成,重复历史占百分之三十五,不必要的检索占百分之二十五,旗舰模型占百分之二十,真正必要的计算只占百分之二十。

对应的五层优化与收益分别是,键值缓存省百分之三十五,模型路由省百分之十二,检索过滤省百分之十八,历史压缩省百分之八,语义缓存省百分之七。叠在一起可以把整体人工智能成本压下来七成到九成。

这里最容易被忽略的是第二项和第三项。不必要的检索意味着你往上下文里塞了大量模型其实用不上的资料,它同时抬高了词元消耗和幻觉风险。模型路由则要求你在系统设计阶段就把请求分流做好,这件事上线后补非常痛苦。还是那句话,成本优化是架构设计,不是事后补救。


四、审查清单

  1. 系统提示词是不是固定前缀?有没有时间戳、随机会话标识、灰度变量混在里面?
  2. 生产环境有没有启用显式缓存?命中率有没有埋点可观测?
  3. 多模态链路传的是原图还是按任务匹配过的分辨率?
  4. 提示词里的格式性词元占比是多少?有没有为人眼排版付费?
  5. 输出有没有停止序列和长度约束?输出词元是不是已经失控?
  6. 有没有把任务按难度分流到不同的模型档位?
  7. 上下文溢出用的是截断、摘要还是语义检索?和你的对话长度匹配吗?
  8. 每一次迭代都带来质量上升吗?有没有到第四轮还在画蛇添足?
  9. 这一轮做的优化,模型版本升级之后还需要吗?
  10. 这个答案,你自己能验证吗?

五、常见误区

误区一,先改提示词再改架构。 提示词措辞是最后一层,量级通常在十几个百分点,而重复历史和模型档位是几十个百分点的量级。顺序搞反,就只能拿到零头。

误区二,以为开了缓存就等于在省钱。 隐式缓存在分布式架构下命中率可能低于三成,没有命中率埋点,你根本不知道自己省没省。

误区三,把动态内容塞进系统提示词。 一个时间戳就能让整条链路的缓存失效,而且这类问题在本地测试时几乎发现不了,因为单机环境天然命中。

误区四,图片越大越好。 分辨率不是越高越好,超过上限的部分既不计效果也不计价值,只会增加传输和等待。

误区五,优化越多越好。 迭代到第四轮开始画蛇添足,成本优化也一样。每一层都有工程复杂度,边际收益归零之后继续叠加,就是在给自己增加维护负担。


六、落地节奏建议

如果要在一到两周内把这条线理顺,可以按三步走。第一步是观测,先把命中率、输入词元、输出词元、每用户月成本四项埋点补齐,没有观测就没有优化。第二步是止血,把动态时间戳这一类缓存杀手清出系统提示词,把显式缓存开起来,把图片分辨率按任务降下来,这三项改动小、见效快。第三步才是架构,做模型路由和检索过滤,这需要排期,但收益量级也最大。


七、约束说明

  • 本集只讨论成本与选型的判断框架,不提供任何平台的具体接口字段名与价格表。
  • 所有百分比与倍数均为课程给出的量级参考,真实数值随模型、平台、调用结构变化,实施前必须用自家数据复测。
  • 缓存、压缩、路由等手段都会带来工程复杂度,是否值得做要看边际收益,不可无条件叠加。
  • 降本不能以牺牲容错空间小的场景为代价,医疗、法务、财务类场景的省钱余地本就有限。
  • 命中率、词元消耗、每用户月成本这三项必须可观测,否则所有优化都无法验证。

提示1 · 先测量,再动手

拿到账单先别急着改提示词。先把成本构成拆成四块,重复历史、不必要的检索、旗舰模型开销、必要计算,看清楚谁占大头再动手。绝大多数团队的第一刀应该砍在重复历史上,而不是在提示词措辞上抠字。

提示2 · 用升级拷问每一件优化

判断一个优化值不值得做,用这一句来拷问,这件事模型版本升级之后还需要吗。如果模型一升级就会被直接替代,或者用户完全感知不到提升,那它就是沉没成本,越早放弃越好。课程给的两条清单可以直接抄,值得做的是能拼成本效率效果、能被升级放大、能形成护城河、收益明确成本可控的;可以放弃的是消耗极大资源、会被升级替代、用户无感、边际收益趋近于零的。

提示3 · 每次用之前先问能不能验证

每次用人工智能之前先问一句,这个答案我能验证吗。按这条线把任务分成四类,你懂模型也懂的放心用,你不懂模型可能懂的必须核查,你懂模型不懂的由你来投喂它,谁都不懂的别指望。这一条比任何技巧都重要,因为它决定你把判断权交出去多少。

提示4 · 大道至简,上下文为王

收官这一句值得抄在墙上。一切方法归根到底都是为了构造更优质的上下文,让模型更准确地理解你的意图。上下文管理三个维度,质量、结构、成本,分别对应注入精准高密度的信息、把关键信息放对位置、用最少的词元传递最多的有效信息。终极问题只有一句,我现在给模型的上下文,是它做好这件事所需要的全部吗。


八、可带走的判断清单

  1. 先测量再优化,没有成本构成图的优化都是拍脑袋。
  2. 系统提示词必须是固定前缀,这是键值缓存能不能生效的分界线。
  3. 生产环境用显式缓存,不要靠随机路由省钱。
  4. 按任务匹配分辨率与模型档位,分辨率不是越高越好。
  5. 回到终极问题,我现在给模型的上下文,是它做好这件事所需要的全部吗。

来源 xueai.miyang.cn(小山学堂 · 洛小山《学 AI 产品,从入门到精通》)