AI系统设计高频追问与深度题¶
用途:面试中系统设计题展开后,面试官常见的追问方向 覆盖:跨所有题型的通用追问 + 2028年新增追问类型
1. 模型选择类追问¶
Q: 自建模型 vs 调用API,怎么决策?¶
Text Only
决策矩阵:
┌──────────────┬──────────┬──────────┬──────────────┐
│ 维度 │ 自建模型 │ 调API │ 选择依据 │
├──────────────┼──────────┼──────────┼──────────────┤
│ 数据安全 │ ✅ 全控 │ ❌ 出域 │ 金融/医疗→自建│
│ 延迟 │ ✅ 可控 │ ❌ 不可控 │ <100ms→自建 │
│ 成本(低量) │ ❌ 固定高│ ✅ 按量付 │ <10K QPS→API │
│ 成本(高量) │ ✅ 边际低│ ❌ 线性增 │ >100K QPS→自建│
│ 迭代速度 │ ❌ 慢 │ ✅ 即用 │ 早期验证→API │
│ 定制化 │ ✅ 全定制│ ❌ 有限 │ 领域模型→自建 │
│ 可用性 │ ❌ 自担 │ ✅ SLA保障│ 看团队能力 │
└──────────────┴──────────┴──────────┴──────────────┘
实际策略(多数公司):
阶段1(验证期): 全部调API → 快速验证产品价值
阶段2(增长期): 核心能力自建, 非核心继续API
阶段3(成熟期): 大部分自建, API做降级备份
Q: 7B vs 70B vs 更大模型,怎么选?¶
Text Only
关键指标: 任务复杂度 × 延迟要求 × 成本预算
经验法则:
- 分类/NER/提取 → 7B足够(甚至3B),微调后接近大模型
- RAG问答/摘要 → 14B-32B是性价比甜点
- 复杂推理/数学/代码 → 70B+有明显优势
- 多模态理解 → VLM通常7B-72B
成本对比(自建, A100 80GB):
7B INT4: 1张A10G, 0.5元/千次
70B FP8: 2张A100, 5元/千次
API GPT-4o: 约10元/千次(输入+输出)
→ 10x成本差距! 必须根据任务需求选择
2. 数据与特征类追问¶
Q: 训练/推理数据不一致(Training-Serving Skew)怎么办?¶
Text Only
典型场景:
训练时: 特征用Spark从Hive计算(T+1, 完整历史)
推理时: 特征用在线服务从Redis读取(实时, 可能缺失/延迟)
→ 同一个用户的"购买次数"特征,训练时是100,推理时可能是98
→ 微小差异导致模型效果下降
解决方案:
1. 统一特征计算逻辑(Feature Store): 训练和推理用同一套DSL定义
2. 离线特征直接灌入在线存储: 训练用啥,推理用啥
3. 定期一致性检查: 对比训练数据特征分布 vs 在线特征分布
4. 模型鲁棒性训练: 训练时加入特征噪声/缺失的augmentation
Q: 如何处理数据标注质量问题?¶
Text Only
多层质量保障:
L1 自动化:
- 一致性检查(同样数据多人标注, Fleiss' Kappa > 0.7)
- 明显错误自动过滤(规则+小模型)
- 标注时长异常检测(太快→没认真看)
L2 抽样复审:
- 每批次10%随机抽样由高级标注员审核
- 错误率>5%则整批返工
L3 模型辅助:
- 用当前模型预标注 → 人工纠正(比从零标注快3-5x)
- 模型置信度低的样本优先标注(主动学习)
- 反差样本重点审核(模型预测与标注不一致)
3. 在线评估与实验类追问¶
Q: A/B测试怎么设计?¶
Text Only
A/B测试三要素:
1. 分流:
- 用户级分流(hash(user_id) % 100): 保证同一用户持续在同一组
- 不能用请求级分流(同一用户在A/B之间跳来跳去→无法归因)
- 分层实验: 多个实验同时进行时,流量按层正交划分
2. 指标:
- 核心指标(North Star): 日活/留存/GMV等业务指标
- 护栏指标: 不能恶化的指标(如用户投诉率、延迟)
- 调试指标: 辅助分析(如CTR、完播率、分享率)
3. 显著性:
- 样本量: 最少7天(覆盖周期性), VIP用户过滤
- 统计检验: t检验/Mann-Whitney, p < 0.05
- 提防: 辛普森悖论(分组看效果好, 合并看效果差)
- Peeking问题: 不要反复查看中间结果做决定
Q: 离线指标好但线上效果差,为什么?¶
Text Only
常见原因:
1. 离线数据分布偏移:
- 训练数据是历史数据, 线上用户行为已变化
- 解决: 使用最近的数据做离线评估, 定期重训
2. 特征穿越(Data Leakage):
- 离线评估时不小心用了"未来信息"
- 例: 用用户的全部历史行为预测过去某个时刻的行为
- 解决: Point-in-time Join, 严格时间切割
3. 位置偏差(Position Bias):
- 离线数据中排第一的内容点击率天然高(用户倾向点第一个)
- 新模型排序不同, 但离线评估用的是老排序下的点击数据
- 解决: 反事实评估(IPS/DR), 或先在线小流量验证
4. 系统因素:
- 延迟增加导致用户流失(模型大了→慢了→用户体验差)
- 缓存命中率变化
- 解决: 系统指标和业务指标一起看
4. 成本与扩展类追问¶
Q: GPU成本太高,怎么优化?¶
Text Only
优化策略(按效果排序):
1. 模型蒸馏(节省80%+):
大模型(70B) → 蒸馏 → 小模型(7B)
特定任务上, 7B微调后可达70B 90%+效果
2. 量化(节省50-75%):
FP16 → INT8(2x) → INT4(4x)
GPTQ/AWQ对LLM友好, 质量损失可控
3. 模型路由(节省50-70%):
简单请求 → 小模型(7B, 每千次0.5元)
复杂请求 → 大模型(70B, 每千次5元)
路由分类器: 基于查询复杂度/用户等级/任务类型
4. Caching(节省20-50%):
语义缓存: 相似Query的回答复用
Prefix Caching: System Prompt的KV Cache复用
结果缓存: 幂等请求直接返回缓存结果
5. 弹性伸缩(节省20-30%):
白天峰值: 扩容到N个GPU
夜间低谷: 缩容到N/3
+ Spot实例(折扣50-70%, 可能被中断)
Q: 系统QPS需要从100扩展到10000,架构怎么变?¶
Text Only
QPS 100(起步期):
- 2张A100, 单vLLM实例
- 前面一个Nginx负载均衡
- Redis做缓存
- 够用, 简单
QPS 1000(增长期):
- 20张A100, 多vLLM实例
- K8s管理, HPA自动扩缩
- 请求队列(Redis Stream)做削峰
- 分模型池(7B/70B)
- 加监控(Prometheus+Grafana)
QPS 10000(成熟期):
- 200张A100 → 需要多区域部署
- 全局负载均衡(DNS/Anycast)
- 完善的模型路由(减少大模型调用)
- 多级缓存(CDN→Redis→本地)
- 语义缓存命中率优化(目标>30%)
- 完善的降级策略(GPU不足时降级到小模型)
- SLA分级(VIP通道保障)
5. 2028新增考点¶
Q: 如何设计一个AI Agent编排平台?¶
Text Only
需求: 企业内部不同部门需要构建各种Agent, 需要统一的平台支撑
平台架构:
┌─────────── 开发层 ─────────────────────────┐
│ Agent Studio(低代码/代码): │
│ - 可视化流程编排(拖拽式) │
│ - Prompt模板管理 │
│ - 工具市场(MCP协议标准化) │
│ - 知识库接入(RAG配置) │
│ - 版本管理(Git-like) │
└──────────────┬────────────────────────────┘
↓
┌─────────── 运行时层 ───────────────────────┐
│ Agent Runtime: │
│ - 工作流引擎(Temporal/Airflow) │
│ - LLM调用层(多模型路由+负载均衡) │
│ - 工具执行沙箱(Docker/gVisor) │
│ - 记忆管理(短期Redis + 长期向量库) │
│ - Human-in-the-loop(需人工确认的步骤) │
└──────────────┬────────────────────────────┘
↓
┌─────────── 治理层 ─────────────────────────┐
│ - 安全护栏(输入/输出过滤) │
│ - 成本管控(Token预算/部门配额) │
│ - 审计日志(所有Agent行为可追溯) │
│ - 质量评估(自动化测试+人工抽检) │
│ - 权限管理(谁能用哪些工具/数据) │
└──────────────────────────────────────────┘
Q: 如何评估AI系统的ROI?¶
Text Only
AI系统ROI框架:
收益:
- 直接收益: 自动化替代人工(节省工时 × 时薪)
- 效率收益: 响应速度提升 → 用户体验 → 留存/转化
- 增量收益: AI推荐/搜索优化 → GMV/广告收入提升
- 质量收益: 错误率降低 → 售后成本降低
成本:
- GPU/算力(通常占50-70%)
- 数据标注
- 工程团队人力
- 第三方API/工具
- 运维成本
ROI = (年化收益 - 年化成本) / 年化成本 × 100%
实际估算示例(客服AI):
替代50个客服 × 年薪15万 = 750万/年
系统成本: GPU 200万 + 人力(3工程师)150万 + 其他50万 = 400万/年
ROI = (750-400)/400 = 87.5%
回收期 < 1年 ✓
6. 面试答题模板总结¶
无论什么AI系统设计题,面试官最终关注这5个维度:
Text Only
维度1: 你能不能"算清楚"?
→ 容量估算(QPS/存储/GPU)做得对不对
维度2: 你能不能"画出来"?
→ 端到端架构图,数据流清晰
维度3: 你能不能"权衡取舍"?
→ 为什么选A不选B,成本/性能/复杂度的tradeoff
维度4: 你能不能"想到边界case"?
→ 冷启动/故障恢复/数据偏差/安全问题
维度5: 你有没有"落地过"?
→ 真实项目中遇到的问题和解决方案
→ 这是2028年面试中,区分度最大的因素
最后更新:2026年2月