模型选型与降本篇
对应课件:agent核心/05(本地模型)、06(会话管理与缓存命中)、15(评测)。国内 AI 应用面试的特色必考区:面试官几乎一定会问"怎么选模型"和"怎么省钱"——因为这是团队每天真实的决策。本篇 5 题从选型框架…
对应课件:agent核心/05(本地模型)、06(会话管理与缓存命中)、15(评测)。国内 AI 应用面试的特色必考区:面试官几乎一定会问"怎么选模型"和"怎么省钱"——因为这是团队每天真实的决策。本篇 5 题从选型框架一路打到成本治理:选型、开源与本地化、降本组合拳、语义缓存、模型升级管理。
Q01 · 给你一个新项目,模型怎么选?
难度:★★★ | 频率:极高 | 对应课件:agent核心/05、15
面试官:新起一个 LLM 应用项目(比如企业问答机器人),模型选型你走什么流程?直接挑最强的吗?
第 1 层追问:选型维度
先给你的评估框架。
参考回答:五个维度按序评估。一,任务能力:结构化输出、Tool Calling、长上下文——先列任务刚需再对模型(要 Agent 的项目选不支持 function calling 的模型是起步就错)。二,中文能力:中文场景要用中文语料占比高的模型实测(英文榜单排名不迁移——中文分词、成语、公文风格是另一套功底)。三,延迟:交互场景盯首 token 延迟(TTFT),批处理场景盯吞吐。四,成本:按预估调用量算月账单(单价 × token 量 × 轮数——Agent 场景要乘上多轮放大系数,这一步常被漏算)。五,合规与部署:数据出不了域 → 本地部署硬约束(Q02 展开)。框架的用法是"约束先筛、指标再比":合规一票筛掉一批,剩下的按任务实测比。
第 2 层追问:评测定夺
说了维度,最后怎么拍板?
参考回答:跑评测而不是看榜单——评测题在排行榜上刷得再高,不代表在你的任务分布上强。选型评测三步:一,构造 20-50 条自家任务题(真实用户问题抽样,含负例和边界);二,候选模型同条件跑(同提示词、同温度设定、每题 5 次看分布——Agent 场景还要看轨迹质量:工具选对没、轮次合理没,不只是最终答案);三,按业务指标裁定:正确率、格式全对率、拒答准确率、单任务平均成本(轮次 × 单价——模型 A 正确率高 3% 但单任务贵 5 倍,多数业务选便宜的)。榜单的正确用法是初筛(Top 30 里挑 3 个候选),不是终审。
第 3 层追问:组合策略
一定要全项目用一个模型吗?
参考回答:分层混用是常态(降本篇 Q03 的伏笔)。典型分法:主力模型(复杂生成、Agent 主循环——中高档);轻量模型(分类、路由、简单抽取——小模型,便宜一个数量级);本地模型(敏感数据处理、开发调试——Q02)。配套要求:路由层决定谁接哪个活(简单分类别烧大模型)、提示词按模型档位分别调(小模型需要更结构化更少隐式推理的提示——同一个提示词在不同档位的表现差异巨大,提示词篇 Q06 的变体矩阵)。单一模型的反例:全用旗舰模型,成本失控;全用小模型,复杂任务质量塌——"按任务难度分配算力"是成本治理的第一原则。
第 4 层追问:动态视角
选完就完了?
参考回答:选型是持续决策不是一次性决定。三个动因:新模型发布(半年一代的节奏,要定期重评——Q05 展开);价格变动(API 降价、新供应商入局,成本维度权重变了);任务演化(业务从问答长成 Agent,能力需求升级)。但换模型有真实成本:回归测试、提示词适配、边缘 case 重新踩坑——所以纪律是"触发式重评,不追新式换血":成本降 X%、能力需求变化、季度例行——三选一触发才评估。把"选型"答成"一次性选个最好的"是初级信号,答成"建立持续评估机制"是资深信号。
考察意图与踩坑点
- 考察意图:这是国内 AI 应用岗的开场必考题;考察有没有"约束→评测→分层→持续"的完整决策链,而不是"我听说 GPT 最强"。
- 踩坑点:报榜单排名当依据;不算 Agent 的多轮放大成本;全项目单模型;选完就不看了。
- 一句话总结:约束先筛(合规/能力)→ 自家任务实测拍板(榜单只配初筛)→ 分层混用按难度分配算力 → 触发式重评不追新。
Q02 · 什么时候用开源模型本地部署?Ollama 做了什么?
难度:★★★ | 频率:高 | 对应课件:agent核心/05-本地模型与消息结构
面试官:什么场景你会选本地部署而不是调 API?Ollama 跑的模型和原版一样吗?"量化"是什么?
第 1 层追问:场景判断
本地化的真实动因。
参考回答:四个动因,重要性递减。一,数据合规(最硬):医疗、金融、政务的数据出不了域——这不是成本问题是合规红线,本地部署是唯一选项。二,成本结构:超大量调用(每天千万级 token)时 API 费用超过自持算力成本——但要把运维人力算进去(自建 = 买卡 + 电费 + 运维 + 容量规划,隐性成本常被低估)。三,低延迟:内网推理省去公网往返,对实时交互场景有价值。四,可控性:离线可用、不受供应商限流/停服影响。反向清单(什么时候别本地化):团队没 ML 运维能力、调用量小(API 便宜得多)、要最新最强的模型能力——本地化的合理默认是"合规驱动",性能和成本驱动的要算总账。
第 2 层追问:量化
本地模型"和原版一样吗"——量化说清楚。
参考回答:不一样,量化是有损压缩。原理:原始权重是 16 位浮点(FP16),量化把权重压到更低精度(8 位、4 位)——显存近乎成比例下降(7B 模型 FP16 要 14GB+,4-bit 只要 4-5GB,消费级显卡就能跑)。代价:数值精度损失带来能力轻微下降——通用能力(对话流畅度)几乎无损,精细能力(复杂推理、长上下文注意力)在低量化档位可测地退化。档位直觉:Q8 接近无损、Q5/Q4 是甜点(体积能力比最优)、Q3 以下明显变笨。工程结论要诚实:本地小模型 + 量化 ≈ 中等能力 + 完全可控,对"分类、抽取、简单对话"绰绰有余,对"复杂推理 Agent"不够——任务难度决定本地化可行性,量化只是让硬件门槛降下来。
第 3 层追问:Ollama 的角色
Ollama 到底做了什么?
参考回答:Ollama 把"本地跑模型"从研究级操作变成一条命令——ollama run qwen3:4b 背后它干了四件事:一,模型管理:拉取预打包的量化模型(GGUF 格式——llama.cpp 生态的标准:单文件包含权重+分词器+配置,可移植);二,推理引擎:内嵌 llama.cpp(CPU/GPU 自动调度);三,服务化:起本地 HTTP 服务,暴露 OpenAI 兼容的 chat 接口——你写的 OpenAI 客户端代码改个 base_url 就能跑本地模型(这正是课程 agent核心/05 的用法:开发期用本地模型省 API 费,代码零改动切线上);四,简化运维:模型版本管理、内存/显存自动卸载策略。定位:个人开发和小团队的本地推理入口;生产级(并发、弹性、多机)要 vLLM/TGI 这类专业推理服务——Ollama 是开发态工具,不是生产态方案,这个区分要主动讲。
第 4 层追问:混合架构
实际系统里本地和 API 怎么共存?
参考回答:成熟形态是三层混合。一,敏感层(本地):涉及用户隐私/内部数据的预处理(脱敏分类、敏感实体抽取)——数据不出域的前提下完成粗加工。二,公开层(API):通用生成、复杂推理——传出去的内容已脱敏。三,开发态(本地):团队的日常开发调试全走本地小模型(省钱 + 快 + 无限流),CI 的回归评测也跑本地(评测用固定小模型成本低且稳定);上线前的质量评测再跑目标模型。配套纪律:接口层统一抽象(OpenAI 兼容协议),切换靠配置不靠改代码——这同时是防供应商锁定的架构(Q05 呼应)。"本地不是 API 的替代,是分层架构的一层"——这个架构观是答案的加分收尾。
考察意图与踩坑点
- 考察意图:本地化是国内特色高频题(合规驱动),量化考基本概念;"Ollama 是开发态不是生产态"的定位区分能筛出真用过的人。
- 踩坑点:把量化说成"压缩文件"(是精度压缩不是 zip);认为本地永远更便宜(不算运维账);拿 Ollama 直接扛生产并发。
- 一句话总结:合规是本地化最硬的理由;量化 = 有损压精度(Q4/Q5 是甜点),能力上限仍由模型大小定;Ollama = GGUF + llama.cpp + OpenAI 兼容服务的开发态封装;生产走本地+API 混合分层。
Q03 · LLM 应用的成本怎么降?给一套降本组合拳
难度:★★★★ | 频率:极高(国内特色必考)| 对应课件:agent核心/06、13
面试官:账单每月 5 万美金,老板让你把成本砍到 2 万。别只说"换便宜模型",给一套有优先级的组合拳。
第 1 层追问:先算账
动手前先做什么?
参考回答:先拆账单,不看账单的降本全是瞎打。按两个维度分解:按环节(哪类任务烧的——通常 80% 成本来自 20% 的调用类型);按结构(输入 token vs 输出 token 的比例——输入占大头的系统降输入(砍上下文、压缩历史),输出占大头的降输出(限制生成长度))。两个常被漏算的放大器:Agent 的多轮系数(一次任务 10 轮 = 上下文重发 10 次,历史越滚越贵——上下文每轮重发是 Agent 成本的隐形大头);缓存命中情况(有没有吃前缀缓存)。拆完账的降本才是外科手术:找到大头、算每招的预期收益、按 ROI 排序。
第 2 层追问:组合拳
出招,按优先级。
参考回答:六招按 ROI 降序:一,前缀缓存(最便宜的一招):稳定内容(system prompt、工具定义、历史)放前缀命中 KV 缓存——架构调整小、部分服务商缓存价格差一个数量级(LLM 原理篇 Q07 的落地)。二,上下文裁剪与压缩:裁历史(摘要+保近期)、砍工具返回的原始大文本(网页清洗截断——Agent 里最大的隐形输入)、工具只挂必要的(tools schema 每轮都计费)。三,语义缓存:高频相似问题直接回缓存答案(Q04 专讲)。四,小模型路由:分类/抽取/改写这类简单活切小模型——一个数量级的单价差。五,模型降档重评:现在用的旗舰,跑评测看中档模型是不是 95 分和 99 分的区别(多数任务配得上中档)。六,输出约束:max_tokens 限制、要求简洁的提示词调整——输出 token 通常比输入贵,生成长度减半成本近乎减半。
第 3 层追问:防降本降质
砍成本把质量砍塌了怎么办?
参考回答:每招都要有质量护栏,这是降本的工程纪律。降本前:固定评测集(含负例)+ 记录基线分——没有基线就没有"没降质"的证据。降本中:逐招灰度——每招单独上、单独测(组合上线无法归因哪招伤质量)。降本后:线上指标盯回退——正确率、拒答率、用户负反馈率(08 篇的分维监控)。典型 tradeoff 心里有数:上下文砍太狠 → 长会话失忆(用户抱怨"忘记我说过什么");小模型路由切太多 → 复杂任务质量塌(路由阈值要保守);输出限制太死 → 答案截断(格式任务碎掉)。降本的本质是"用可量化的质量损耗换成本"——把损耗控制在用户感知不到的水位,是砍到 2 万而不是砍塌的秘诀。
第 4 层追问:从架构级想
更高一层怎么根治?
参考回答:三个架构级答案(组合拳之上的终局)。一,改产品形态:最贵的调用是"开放生成"——把部分生成改成模板+填空(报告类输出用模板骨架,模型只填分析段落)、缓存复用(FAQ 类问题预生成)——需求侧省的钱比供给侧调参大一个数量级。二,异步化削峰:实时调用量中很多可转异步(批处理窗口、夜间批量跑非紧急任务——批处理接口通常有折扣)。三,成本可见性进组织:成本按 feature/团队打标签归集(每个功能烧多少钱看得见),让产品决策带着价格标签做——"这个炫酷功能月费 8000,砍不砍"变成数据决策。最高级的降本不是抠参数,是让"每一次模型调用都物有所值"变成组织的默认判断。
考察意图与踩坑点
- 考察意图:国内面试的特色压轴题——考察有没有真实算过账、知不知道 ROI 排序;只答"换便宜模型"是零分答案,答出六招+质量护栏+架构层是满分结构。
- 踩坑点:不拆账直接开药;不知道 Agent 上下文重发是大头;降本不看质量基线;想不出参数层之外的任何手段。
- 一句话总结:先拆账找大头;前缀缓存→裁剪→语义缓存→小模型路由→降档→限输出按 ROI 出招;每招配质量护栏灰度归因;终局是需求侧改造+成本归集进组织。
Q04 · 语义缓存怎么设计?误命中怎么办?
难度:★★★★ | 频率:高 | 对应课件:agent核心/06(缓存命中)、LangChain指南/07(嵌入)
面试官:降本方案里你提到语义缓存。展开讲:怎么判断"两个问题算同一个"?误命中把错误答案给了用户,这个风险怎么控制?
第 1 层追问:原理与结构
先讲机制。
参考回答:语义缓存 = 用"意思相近"代替"字面相同"做缓存键。精确缓存(字典 key)对 LLM 无用——"退款政策"和"怎么退货"字面不同但意图同,命中率趋近零。语义缓存的结构:问题 → embedding → 在缓存库里做相似度检索(就是一个迷你 RAG:缓存的"知识"是历史问答对)——相似度超过阈值就返回缓存答案。一个真实数据要先给:高频业务问题呈头部集中分布(Top 20% 的问题占 80% 的流量——FAQ 型产品尤其极端)——这就是语义缓存收益的统计学根基:命中一次省一次完整生成(延迟和成本双省,首字延迟从秒级降到毫秒级)。
第 2 层追问:核心权衡
"意思相近"的阈值怎么定?误命中呢?
参考回答:这是语义缓存的核心 tradeoff,必须摊开讲:阈值高 → 命中率低(省不了钱)但安全;阈值低 → 命中率高但误命中——把"怎么退货"的答案给了"退货要多久",用户收到答非所问,比慢更伤体验。治理三件:一,阈值分场景调:闲聊/FAQ 类可以激进(0.9),事实/个性化类保守(0.95+)或干脆不缓存(带用户 ID、带上下文的问答必须键入个性化维度——"我的订单"对每个人答案不同,个性化请求禁用语义缓存是铁律)。二,命中也给退路:返回缓存答案时标注"为您找到相似问题的回答"+ 提供重问入口——把误命中的伤害从"错误答案"降级为"不太对口但可纠正"。三,向量+关键词双重校验:相似度高 + 关键实体一致(订单/退款/政策词重叠)才命中——双条件降误命中。
第 3 层追问:失效问题
答案变了缓存还旧着呢?
参考回答:失效是运维级难题,四个失效源各有对策。一,知识更新(RAG 知识库改版)→ 缓存条目关联知识版本号,库更新批量失效相关条目(按来源打标);二,提示词/模型变更(提示词一改,历史答案的生成条件全变)→ 提示词 hash 进缓存键,版本变更全量失效(02 篇故障里"静默退化"的教训对称适用:缓存不清 = 改了等于没改);三,时间敏感答案("今天有什么活动")→ TTL 短设或不缓存;四,业务规则变更(价格改了)→ 规则版本号进键。架构上的诚实结论:失效做不干净的语义缓存是负资产(用户拿旧答案,比慢更糟)——宁可命中率低也别旧数据久留。
第 4 层追问:监控与演进
怎么知道缓存干得好不好?
参考回答:三个指标一组告警。命中率(总收益的直接指标——低于预期说明头部集中假设不成立,产品形态不适合);误命中反馈率(用户对缓存答案点"不对/重新回答"的比例——这是误命中的直接探测器,超过 1-2% 就该收紧阈值);平均相似度分布(观察实际请求的相似度直方图,阈值应该卡在"双峰之间"——同义问题和不同问题在分布上分离,阈值卡在谷底)。演进方向:缓存条目带 TTL+LRU 淘汰(容量控制);只缓存"高价值答案"(生成成本高、时效长、通用性强的问题——不是什么都值得缓存);缓存命中也写日志(可回溯"用户什么时候拿到了缓存的什么答案"——出问题能审计)。语义缓存是降本里技术含量最高的一招——答好这题 = 嵌入检索 + 缓存工程 + 风险治理的复合能力证明。
考察意图与踩坑点
- 考察意图:语义缓存是 RAG 技术在成本域的复用题,面试官爱用它一箭双雕(考嵌入应用 + 考风险意识);"个性化请求禁缓存"和"失效管理"两个深水区答得出就是做过的人。
- 踩坑点:不知道误命中风险(只吹收益);个性化问题也缓存(数据事故);失效不管(旧答案满天飞);没有"重问"退路设计。
- 一句话总结:语义缓存 = 问题级迷你 RAG;阈值是命中率与误命中的权衡,个性化禁用;版本号进键管失效;命中率+误命中反馈率+相似度分布三指标监控。
Q05 · 生产环境怎么升级模型版本?换模型的隐藏成本?
难度:★★★ | 频率:中(答好极加分)| 对应课件:agent核心/15(评测)、06
面试官:新模型发布了,你们直接把 API 的 model 参数改了上线吗?说一次你经历/设想的模型升级流程。另外,"供应商锁定"你们怎么防?
第 1 层追问:为什么不能直接换
直接改参数会出什么事?
参考回答:换模型不是改一个字符串,是换一个概率系统。四个风险:一,行为漂移:同一提示词在不同模型上的行为分布不同——格式全对率、拒答率、工具选择习惯全变(提示词对旧模型的精细调优对新模型可能失效甚至反效果——提示词篇 Q06 的变体矩阵:每档模型配自己的提示词版本)。二,Agent 行为放大:单轮差 2% 的工具选择错误率,多轮 Agent 端到端成功率掉 10%+(概率连乘,03 篇 Q08 的教训)——对话机器人换模型可能只测单轮,Agent 换模型必须测全轨迹。三,隐性接口差异:tool calling 的细节行为、JSON mode 的严格度、思考 token 的处理——协议兼容但行为细节不保证。四,成本结构变化:新模型单价、缓存策略不同,月账单悄悄变。结论:升级 = 一次完整的回归工程。
第 2 层追问:升级流程
给一个安全的升级流程。
参考回答:五步。一,评测先行:新模型跑全量评测集(质量基线对比)+ Agent 任务跑轨迹评测(成功率、轮次、成本——三件套,不能只看答案对错)。二,提示词适配:新模型配新变体提示词,分别调优(不是拿旧提示词硬跑)。三,灰度双跑:按流量切 5% → 25% → 100%,新旧模型并跑对照——线上指标(正确率代理指标、负反馈率、成本、延迟)逐级确认无回退再放量(LangGraph 的 fork 思想在生产路由层的应用:同输入分叉两模型对比)。四,回滚预案:配置化切换(模型是配置不是代码),分钟级能退回旧版——出问题不回滚的原因通常是"没设计回滚"。五,成本与监控复核:新模型的账单结构、限流行为、错误率全要重看(不同供应商的 429 行为都不同)。全程的核心资产还是那套评测集——没有它,升级就是赌博。
第 3 层追问:供应商锁定
怎么防被一家锁死?
参考回答:三层解耦。一,接口抽象层:业务代码只依赖自家的 LLM 网关/客户端接口(或 OpenAI 兼容协议这层事实标准),具体供应商在配置层——换供应商 = 改配置不改代码(系统设计篇 Q05 的网关、本篇 Q02 的混合架构是同一主题)。二,防"功能锁定":各家的私有特性(特有的 tool calling 行为、缓存 API)是锁定的隐形钩子——用到私有特性要有意识地封装隔离,别让业务代码直接长在某个供应商的方言上。三,评测集是迁移资本:换供应商的成本主要在重调提示词和验证行为——评测集+提示词变体的存在让"换"从大工程变成中等工程。诚实边界:解耦不等于可无痛切换——各家行为差异仍要适配,防锁定的目标是"换得起",不是"换无痛"。
第 4 层追问:组织视角
多久升一次合适?
参考回答:按触发不按日历。触发器:成本触发(新供应商价格差 30%+)、能力触发(业务需要的能力现有模型达不到)、质量触发(竞品体验明显超出)、风险触发(供应商停服/限流/政策变化)。节奏纪律:每次升级都是一次回归工程(有真实人力成本)——"新模型必升"是错误策略,要算"升级成本 vs 收益差"(评测集分数涨 1 分但回归工程花两周,多数业务不划算)。反面教材:追新式升级——每个新模型都上,团队疲于回归,线上质量反而抖动(频繁换模型 = 频繁引入未验证行为)。高级答案的收尾:模型升级管理的本质是把"概率系统的行为变更"纳入变更管理——和代码发布同级的纪律(评测门禁、灰度、回滚),很多团队吃过"只改了个模型名,线上崩了"的亏才知道这一点。
考察意图与踩坑点
- 考察意图:模型升级是"做过生产 LLM 应用"的活体证明题——没守过线上的人答不出灰度/回滚/轨迹评测这套;供应商锁定考架构前瞻性。
- 踩坑点:直接改 model 参数上线(真实事故来源);Agent 升级只测单轮;没有回滚预案;"新模型必升"的追新心态。
- 一句话总结:换模型 = 换概率系统:全量评测+轨迹测试+提示词适配+灰度双跑+配置化回滚;抽象层防锁定(换得起≠换无痛);按触发升级不按日历。
本篇速记卡
| 题 | 一句话核心 |
|---|---|
| Q01 选型 | 约束先筛、自家任务实测、榜单只配初筛;分层混用;触发式重评 |
| Q02 本地化 | 合规是最硬理由;量化 = 有损压精度(Q4/Q5 甜点);Ollama 开发态、生产混合分层 |
| Q03 降本 | 先拆账;缓存→裁剪→语义缓存→路由→降档→限输出按 ROI;每招配质量护栏 |
| Q04 语义缓存 | 问题级迷你 RAG;阈值权衡误命中、个性化禁用、版本号进键管失效 |
| Q05 升级 | 换模型 = 换概率系统:评测+灰度+回滚;抽象层防锁定;按触发升级不追新 |