AI Day 48: 架构面试模拟(2):AI系统架构题
AI Day 48: 架构面试模拟(2):AI系统架构题
日期: 2026-05-19 阶段: Phase 4 — 面试冲刺 (System Design + Product + Architecture) 主题: Architecture Interview Simulation — AI System Architecture Questions 进度: Day 1-47 ✅ | Day 48 ← current 标签: #架构面试 #AI反欺诈 #模型管理 #多模型路由 #白板画图 #Trade-off #遗留系统
学习路径 (50-Day Full Tree)
AI/LLM 深度技术学习 50天计划
├── 第一阶段:模型基础 (Day 1-15) ✅
│ ├── Day 1-7: Transformer/量化/训练/Prompt/RAG/向量DB/FineTune ✅
│ ├── Day 8-11: 推理优化/长上下文/多模态/Reasoning ✅
│ └── Day 12-15: Agent/MCP/评估/阶段总结 ✅
│
├── 第二阶段:工程实践 (Day 16-30) ✅
│ ├── Day 16-18: 应用架构/安全/可观测性 ✅
│ ├── Day 19-21: 生产级RAG三部曲 ✅
│ ├── Day 22-25: Agent工程化四部曲 ✅
│ └── Day 26-30: 成本/编排/测试/案例/总结 ✅
│
├── 第三阶段:金融零售AI应用 (Day 31-42) ✅
│ ├── Day 31: 金融AI(1):智能风控与反欺诈 ✅
│ ├── Day 32: 金融AI(2):智能投顾与量化策略 ✅
│ ├── Day 33: 金融AI(3):合规科技与监管AI ✅
│ ├── Day 34: 金融AI(4):信贷全链路AI ✅
│ ├── Day 35: 金融AI总结 — PM视角的AI重塑金融 ✅
│ ├── Day 36: 零售AI(1):推荐系统与个性化 ✅
│ ├── Day 37: 零售AI(2):智能客服与对话系统 ✅
│ ├── Day 38: 零售AI(3):供应链预测与优化 ✅
│ ├── Day 39: 零售AI(4):智能营销与用户增长 ✅
│ ├── Day 40: 零售AI总结 — PM视角零售智能化全景 ✅
│ ├── Day 41: CeFi × DeFi × AI 融合架构(上) ✅
│ └── Day 42: CeFi × DeFi × AI 融合(下) + 职业定位 ✅
│
└── 第四阶段:面试冲刺 (Day 43-50)
├── Day 43: 系统设计面试(1):企业LLM平台 ✅
├── Day 44: 系统设计面试(2):生产级RAG系统 ✅
├── Day 45: 系统设计面试(3):AI Agent系统 ✅
├── Day 46: 系统设计面试(4):推荐系统 ✅
├── Day 47: 产品面试模拟(1):AI产品设计题 ✅
├── Day 48: 架构面试模拟(2):AI系统架构题 ← 你在这里
├── Day 49: 行为面试 + AI领域特色问题
└── Day 50: 50天总结 — 知识地图与下一步
一、AI架构面试的特点
1.1 架构面试 vs 系统设计面试 vs 产品面试
三种面试的关系:
┌──────────────────────────────────────────────────────┐
│ │
│ 产品面试 架构面试 系统设计面试 │
│ ┌──────┐ ┌──────────┐ ┌──────────┐ │
│ │ Why │ ───► │ How+Why │ ◄── │ How │ │
│ │ What │ │ Trade-off│ │ Detail │ │
│ └──────┘ └──────────┘ └──────────┘ │
│ │
│ "做什么产品" "架构怎么选, "具体怎么实现" │
│ "为什么做" 为什么这样选" "如何保证可靠" │
│ │
└──────────────────────────────────────────────────────┘
架构面试的核心特质:
1. 不考"背方案" → 考"做决策"
2. 没有标准答案 → 关键是Trade-off推理过程
3. 约束条件是核心 → 同一个问题,约束不同,架构完全不同
4. 沟通比技术更重要 → 能画清楚 + 讲清楚 = 高分
1.2 AI架构面试的独特挑战
传统架构面试: "设计一个秒杀系统"
→ 确定性系统: 输入→输出是确定的
→ 核心挑战: 高并发/一致性/可用性
AI架构面试: "为支付系统添加AI反欺诈"
→ 概率性系统: 模型输出有不确定性
→ 核心挑战: 准确率vs延迟/模型演进/AB测试/降级
AI架构的特殊考量:
├── 模型不确定性: 同一输入可能不同输出
├── 模型演进: 模型需要持续更新,架构要支持热切换
├── 特征工程: 实时特征vs离线特征的延迟差异
├── 评估体系: 离线评估≠线上效果
├── 成本结构: GPU推理/API调用/存储的成本模型
└── 降级策略: 模型故障时如何兜底
1.3 面试官评分维度
维度1: 问题拆解 (20%)
├── 能否识别真正的技术挑战
├── 是否考虑了约束条件
└── 需求澄清的质量
维度2: 架构决策 (35%)
├── 方案选择的合理性
├── Trade-off的清晰度
├── 对替代方案的了解
└── 演进路径的思考
维度3: 技术深度 (25%)
├── 关键组件的设计细节
├── 故障场景的处理
├── 性能/成本/安全的考量
└── 对AI特有问题的理解
维度4: 沟通表达 (20%)
├── 图是否清晰易懂
├── 是否主动引导讨论
├── 是否能简洁解释复杂概念
└── 对追问的应对质量
二、题目1:为支付系统添加AI反欺诈
2.1 题目
"Your company has a 10-year-old payment system processing 5M transactions/day. Management wants to add AI-based fraud detection. The current system uses rule-based fraud checks. How would you architect the AI integration?"
2.2 需求澄清
关键澄清问题:
Q1: "现有系统的技术栈是什么?"
→ 假设: Java单体/Oracle DB/MQ消息队列
→ 关键: 这是遗留系统, 不能推倒重来
Q2: "当前规则引擎的效果如何?"
→ 假设: 检出率60%, 误报率5%
→ 目标: 检出率提升到85%+, 误报率降到2%以下
Q3: "延迟要求?"
→ 假设: 支付授权必须在200ms内完成(含反欺诈)
→ 关键约束: AI模型推理延迟必须 < 50ms
Q4: "可以拒绝交易还是只标记?"
→ 假设: 高风险直接拒绝, 中风险标记人工审核
→ 关键: 误拒正常交易 = 收入损失 + 客户流失
Q5: "团队情况?"
→ 假设: 有5人数据科学团队, 但没有MLOps经验
→ 挑战: 需要渐进式建设能力
2.3 架构设计:渐进式AI集成
核心原则: 不替换现有系统, 而是在旁路增强
阶段一架构 — Shadow Mode (旁路观察, 1-3月)
┌─────────────────────────────────────────────┐
│ Payment Gateway │
│ │ │
│ ┌───────────┼───────────┐ │
│ ▼ ▼ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ Rule │ │ AI Fraud │ │
│ │ Engine │ │ Service │ │
│ │ (现有) │ │ (新建,旁路) │ │
│ │ │ │ │ │
│ │ 决策权: │ │ 决策权: │ │
│ │ 有 │ │ 无(只记录) │ │
│ └────┬─────┘ └──────┬───────┘ │
│ │ │ │
│ │ 实际决策 │ 记录预测 │
│ ▼ ▼ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ 支付执行 │ │ 分析数据库 │ │
│ └──────────┘ └──────────────┘ │
└─────────────────────────────────────────────┘
Shadow Mode的价值:
├── AI模型对所有交易做预测, 但不影响实际决策
├── 对比AI预测 vs 规则引擎决策 vs 实际欺诈
├── 积累真实数据, 评估AI模型的真实效果
└── 零风险验证, 团队积累MLOps经验
2.4 阶段二:Champion-Challenger 并行决策
阶段二架构 — Parallel Decision (3-6月)
┌──────────────────────────────────────────────────┐
│ Payment Gateway │
│ │ │
│ ┌───────▼───────┐ │
│ │ Feature Store │ ← 实时特征计算 │
│ └───────┬───────┘ │
│ │ │
│ ┌───────────┼───────────┐ │
│ ▼ ▼ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ Rule │ │ AI Model │ │
│ │ Engine │ │ Service │ │
│ │ Champion │ │ Challenger │ │
│ └────┬─────┘ └──────┬───────┘ │
│ │ │ │
│ └───────────┬───────────┘ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Decision │ │
│ │ Orchestrator │ │
│ │ │ │
│ │ 规则: │ │
│ │ IF 两者都Pass → Pass │
│ │ IF 两者都Reject → Reject │
│ │ IF 不一致 → 用Champion(规则) │
│ │ 但记录差异供分析 │
│ └────────┬────────┘ │
│ ▼ │
│ 支付执行 / 拒绝 │
└──────────────────────────────────────────────────┘
这个阶段的目标:
├── AI开始参与决策(但规则引擎仍是最终仲裁者)
├── 量化AI的增量价值(AI多发现了多少欺诈?)
├── 验证AI的误报率(AI误拒了多少正常交易?)
└── 为阶段三积累信心
2.5 阶段三:AI主导 + 规则兜底
阶段三架构 — AI Primary (6-12月)
交易请求
│
┌────▼────────────────────────────────────┐
│ Feature Engineering │
│ ┌────────────┐ ┌────────────────────┐ │
│ │ 实时特征 │ │ 离线特征 │ │
│ │ (Redis) │ │ (Feature Store) │ │
│ │ │ │ │ │
│ │ ·交易金额 │ │ ·用户历史行为画像 │ │
│ │ ·时间 │ │ ·设备指纹 │ │
│ │ ·IP地理 │ │ ·社交网络特征 │ │
│ │ ·设备ID │ │ ·欺诈标签历史 │ │
│ └─────┬──────┘ └────────┬───────────┘ │
└────────┼──────────────────┼──────────────┘
└────────┬─────────┘
▼
┌──────────────────────────────────────────┐
│ AI Scoring Layer │
│ │
│ Model A Model B Model C │
│ (XGBoost) (Neural) (LLM) │
│ 实时<10ms 实时<30ms 异步分析 │
│ │
│ → Ensemble: 加权融合得出风险分数 │
│ → 分数: 0-1000 │
└──────────────┬───────────────────────────┘
│
┌──────────────▼───────────────────────────┐
│ Decision Layer │
│ │
│ Score 0-200: PASS (自动通过) │
│ Score 200-500: 规则引擎二次验证 │
│ Score 500-800: 人工审核队列 │
│ Score 800+: REJECT (自动拒绝) │
│ │
│ 特殊规则(硬性): │
│ ├── 黑名单 → 无条件拒绝 │
│ ├── 白名单 → 无条件通过 │
│ └── 合规规则 → 无条件执行 │
└──────────────────────────────────────────┘
关键Trade-off:
准确率 vs 误报率:
检出率从60%→85% (↑25%), 但误报率必须<2%
每1%误报 = ~50,000笔正常交易被拒 = 巨大收入损失
→ 宁可放过一些欺诈, 也不能误杀太多正常交易
延迟 vs 模型复杂度:
XGBoost: 5ms推理, 准确率80%
Deep Learning: 25ms推理, 准确率85%
LLM分析: 2s推理, 准确率90%(但太慢)
→ 方案: 简单模型做实时决策, 复杂模型做异步复核
新模型 vs 稳定性:
频繁更新模型 → 效果更好, 但风险更高
→ 方案: Canary发布(5%流量) → 验证1周 → 全量切换
2.6 遗留系统集成的核心挑战
挑战1: 数据访问
问题: Oracle数据库性能有限, 不能让AI服务直连
方案: CDC(Change Data Capture) → Kafka → Feature Store
关键: 特征延迟 < 1min, 不影响主库性能
挑战2: 延迟预算
问题: 总授权时间200ms, 分配给AI的只有50ms
方案:
├── 预计算: 用户画像特征离线预计算, 实时只查缓存
├── 模型优化: ONNX Runtime + 模型量化 + 批推理
└── 超时兜底: AI超时 → 直接用规则引擎结果
挑战3: 团队能力
问题: 数据科学团队没有MLOps经验
方案:
Phase 1: 用MLflow做基础模型管理
Phase 2: 引入Kubernetes做模型服务部署
Phase 3: 建立完整的特征/训练/部署流水线
挑战4: 合规要求
问题: 金融监管要求模型可解释, 且有审计追踪
方案:
├── SHAP值: 每笔决策记录Top 5影响因子
├── 审计日志: 每笔交易的完整决策链路
└── 模型卡片: 每个模型版本的性能/偏差/限制文档
三、题目2:设计AI模型管理平台
3.1 题目
"Your company has 15 ML teams running 50+ models in production. Each team manages models independently, leading to inconsistency, deployment failures, and no centralized monitoring. Design an AI Model Management Platform."
3.2 问题分析
当前痛点:
团队A (风控): Python + sklearn → Docker → 手动部署到EC2
团队B (推荐): PyTorch → 自建serving → K8s
团队C (NLP): HuggingFace → 调API → Lambda
...
问题:
├── 版本混乱: 不知道线上跑的是哪个版本的模型
├── 部署不一致: 每个团队自己的部署方式, 故障频发
├── 无统一监控: 模型漂移/性能下降发现不及时
├── AB测试困难: 没有统一的实验平台
├── 回滚缓慢: 出问题时不知道回滚到哪个版本
└── 合规风险: 无法回答"这个预测是哪个模型做的"
3.3 平台架构
AI Model Management Platform — 四层架构
┌─────────────────────────────────────────────────────────┐
│ Portal Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ Model │ │ Experiment│ │ Deploy │ │ Monitor │ │
│ │ Registry │ │ Tracker │ │ Console │ │ Dashboard │ │
│ └──────────┘ └──────────┘ └──────────┘ └───────────┘ │
├─────────────────────────────────────────────────────────┤
│ Orchestration Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ Version │ │ AB Test │ │ Canary │ │ Rollback │ │
│ │ Control │ │ Engine │ │ Deploy │ │ Manager │ │
│ └──────────┘ └──────────┘ └──────────┘ └───────────┘ │
├─────────────────────────────────────────────────────────┤
│ Serving Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ Model │ │ Feature │ │ Inference│ │ Cache │ │
│ │ Server │ │ Store │ │ Router │ │ Layer │ │
│ └──────────┘ └──────────┘ └──────────┘ └───────────┘ │
├─────────────────────────────────────────────────────────┤
│ Infrastructure Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ GPU │ │ Storage │ │ Logging │ │ Security │ │
│ │ Cluster │ │ (S3/GCS) │ │ (ELK) │ │ (RBAC) │ │
│ └──────────┘ └──────────┘ └──────────┘ └───────────┘ │
└─────────────────────────────────────────────────────────┘
3.4 核心组件设计
组件1: Model Registry (模型注册中心)
功能:
├── 模型版本管理: Git-like版本控制(模型文件+元数据)
├── 模型卡片: 自动生成训练数据/性能/偏差文档
├── 依赖管理: 记录模型依赖的库版本/特征/数据集
├── 审批流程: 模型上线需要通过审批(Owner+Reviewer)
└── 搜索发现: 按名称/团队/任务类型搜索已有模型
数据模型:
Model:
id, name, team, task_type, framework
created_at, owner, status
ModelVersion:
model_id, version, artifact_path
metrics (accuracy, latency, cost)
training_data_ref, feature_set_ref
approval_status, approver, approved_at
ModelDeployment:
model_version_id, environment
traffic_percentage, status
deployed_at, deployed_by
---
组件2: AB Test Engine (实验引擎)
流量分配策略:
┌─────────────────────────────────────────┐
│ Traffic Router │
│ │
│ Request → Hash(user_id) → Bucket │
│ │
│ Bucket 0-79: Model V2 (Champion) │
│ Bucket 80-89: Model V3 (Challenger) │
│ Bucket 90-99: Model V4 (Experiment) │
│ │
│ 规则: │
│ ├── 同一用户始终分到同一Bucket │
│ ├── 流量比例可动态调整 │
│ ├── 紧急情况可立即回滚到Champion │
│ └── 实验结果自动统计显著性 │
└─────────────────────────────────────────┘
显著性检测:
├── 自动计算p-value
├── 达到统计显著性后自动通知
├── 可配置置信度阈值(默认95%)
└── 支持多指标同时评估
---
组件3: Monitor Dashboard (监控面板)
监控维度:
实时指标:
├── QPS/延迟(P50/P95/P99)
├── 错误率/超时率
├── GPU利用率/内存
└── 每分钟推理成本
模型质量指标 (每小时更新):
├── 预测分布变化 (PSI/KL散度)
├── 特征漂移检测
├── 准确率/F1 (如有标注数据)
└── 业务指标 (CTR/CVR/欺诈检出率)
告警规则:
P0: 延迟P99 > 200ms 或 错误率 > 1% → 自动降级
P1: 预测分布偏移 PSI > 0.2 → 通知Owner
P2: 模型准确率下降 > 5% → 触发再训练
---
组件4: Rollback Manager (回滚管理)
回滚触发:
自动触发:
├── P0告警 → 自动回滚到上一版本
├── AB实验中Challenger指标显著差于Champion → 停止实验
└── 新版本部署后5分钟内错误率飙升 → 自动回滚
手动触发:
├── 一键回滚: 选择目标版本 → 确认 → 执行
├── 回滚确认: 回滚后自动验证健康检查
└── 回滚通知: 通知所有相关团队
回滚时间目标: < 2分钟 (从触发到完成)
3.5 多团队协作设计
团队协作模型:
RBAC权限:
├── Platform Admin: 全局配置/审批/安全
├── Team Lead: 本团队模型的部署/回滚审批
├── Data Scientist: 模型训练/注册/实验
├── ML Engineer: 部署/监控/故障处理
└── Viewer: 只读Dashboard
工作流:
1. 数据科学家训练模型 → 注册到Registry
2. 自动触发CI: 单元测试 + 性能基准测试
3. 创建AB实验 → Team Lead审批
4. Canary部署(5%流量) → 观察1天
5. 扩大到50% → 统计显著性检测
6. 全量切换 → 旧版本保留7天(可回滚)
团队隔离 vs 共享:
隔离的: 模型文件/实验数据/部署配置
共享的: Feature Store/基础设施/监控平台/最佳实践
四、题目3:从单模型到多模型的架构演进
4.1 题目
"Your product currently calls GPT-4 for everything. Now you need to support multiple models (GPT-4, Claude, Gemini, open-source) for different use cases. How would you evolve the architecture?"
4.2 演进路径
阶段1: 单模型 (现状)
App → OpenAI SDK → GPT-4
问题: 单点依赖/成本高/无法优化
阶段2: 抽象层 (第一步)
App → LLM Gateway → GPT-4
→ Claude (备选)
价值: 故障切换/统一接口/成本监控
阶段3: 智能路由 (目标)
App → LLM Gateway → Router → 最优模型
价值: 成本优化/质量提升/灵活性
每个阶段的详细架构:
4.3 阶段2:LLM Gateway 设计
LLM Gateway Architecture:
┌────────────────────────────────────────────┐
│ Application │
│ │ │
│ unified_llm.complete( │
│ prompt="...", │
│ task_type="summarize" │
│ ) │
└───────────────────┬────────────────────────┘
│
┌───────────────────▼────────────────────────┐
│ LLM Gateway │
│ │
│ ┌──────────────────────────────────────┐ │
│ │ Rate Limiter │ │
│ │ (per-user / per-team / global) │ │
│ └──────────────┬───────────────────────┘ │
│ │ │
│ ┌──────────────▼───────────────────────┐ │
│ │ Cost Tracker │ │
│ │ (token counting / budget alerts) │ │
│ └──────────────┬───────────────────────┘ │
│ │ │
│ ┌──────────────▼───────────────────────┐ │
│ │ Retry + Fallback │ │
│ │ GPT-4 fail → Claude → Gemini │ │
│ │ Timeout: 30s → retry → fallback │ │
│ └──────────────┬───────────────────────┘ │
│ │ │
│ ┌──────────────▼───────────────────────┐ │
│ │ Provider Adapters │ │
│ │ ┌─────┐ ┌──────┐ ┌──────┐ ┌─────┐ │ │
│ │ │GPT-4│ │Claude│ │Gemini│ │Llama│ │ │
│ │ └─────┘ └──────┘ └──────┘ └─────┘ │ │
│ └──────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────┐ │
│ │ Logging + Observability │ │
│ │ (latency / tokens / cost / quality) │ │
│ └──────────────────────────────────────┘ │
└────────────────────────────────────────────┘
Gateway的核心接口:
interface LLMGateway {
complete(request: {
prompt: string,
task_type: string, // 用于路由
model_preference?: string, // 可选指定模型
max_tokens: number,
temperature: number,
timeout_ms: number,
fallback_models?: string[],
}): CompletionResponse
stream(request): AsyncStream<Token>
}
Fallback策略:
Primary Model: GPT-4
├── 如果成功 → 返回结果
├── 如果超时(30s) → 重试1次
├── 如果重试失败 → Fallback to Claude
├── 如果Claude也失败 → Fallback to Gemini
└── 如果全部失败 → 返回错误 + 缓存最近成功的结果
4.4 阶段3:智能路由
Smart Router Design:
路由维度:
├── 任务类型: 摘要→Claude, 代码→GPT-4, 多模态→Gemini
├── 质量要求: 高→大模型, 低→小模型/开源
├── 延迟要求: 实时→小模型, 异步→大模型
├── 成本预算: 有预算→大模型, 省钱→开源
└── 隐私要求: 敏感数据→自部署模型, 非敏感→API
路由规则示例:
┌─────────────────┬──────────┬────────────┬──────────┐
│ Task Type │ Primary │ Fallback │ Cost/1K │
├─────────────────┼──────────┼────────────┼──────────┤
│ 简单问答 │ GPT-4o-m │ Claude Hai │ $0.15 │
│ 长文摘要 │ Claude │ GPT-4o │ $0.80 │
│ 代码生成 │ Claude │ GPT-4o │ $1.20 │
│ 数据分析 │ GPT-4o │ Gemini │ $1.50 │
│ 多模态理解 │ Gemini │ GPT-4o │ $0.70 │
│ 敏感数据处理 │ Llama-3 │ Mistral │ $0.05 │
│ 批量处理(离线) │ Llama-3 │ Mixtral │ $0.03 │
└─────────────────┴──────────┴────────────┴──────────┘
成本优化效果:
全部用GPT-4: $2.00/1K tokens (平均)
智能路由后: $0.60/1K tokens (平均)
节省: 70% 成本下降
4.5 一致性挑战
多模型一致性问题:
问题: 不同模型对同一输入可能给出不同答案
→ 用户昨天问得到答案A(GPT-4), 今天问得到答案B(Claude)
→ 特别是在有Factual Answer的场景(FAQ/知识库)
解决方案:
方案1: Prompt标准化
├── 统一System Prompt模板
├── 统一Output Format (JSON Schema)
└── 模型切换时保持Prompt不变
方案2: 答案校验层
├── 对关键信息做事实性检查(与知识库对比)
├── 对格式做校验(正则/Schema)
└── 不合格的重新生成
方案3: 缓存热门问答
├── 高频问题的答案缓存(无论哪个模型生成的)
├── 缓存命中率高的场景一致性最好
└── TTL根据内容时效性设置
方案4: 业务分区
├── 同一用户的同一Session用同一模型
├── 关键业务(金融/医疗)固定用最可靠模型
└── 只在非关键场景做模型切换
五、白板画图技巧
5.1 C4 for AI Systems
C4模型在AI系统中的应用:
Level 1 — Context (系统上下文):
画什么: 系统与外部交互方 (用户/第三方API/数据源)
AI特殊: 标注AI模型提供商 (OpenAI/Anthropic/自部署)
时间: 2分钟
Level 2 — Container (容器):
画什么: 主要服务/数据库/消息队列
AI特殊: 区分AI服务(推理/训练/特征计算) vs 业务服务
时间: 5分钟
Level 3 — Component (组件):
画什么: 服务内部的关键模块
AI特殊: 模型版本管理/AB测试/监控/降级
时间: 看面试官要求, 通常选1-2个深入
画图顺序:
1. 先画Level 1 (30秒) → 确认与面试官对齐
2. 画Level 2 → 这是面试核心(5分钟)
3. 面试官追问时深入Level 3
5.2 画图的 Do's and Don'ts
Do's (这样做):
✓ 先画骨架再填细节
✓ 用不同颜色区分: AI组件(蓝色) / 业务组件(绿色) / 数据(黄色)
✓ 标注数据流向(箭头+标签)
✓ 标注关键指标(延迟/QPS/成本)
✓ 标注Trade-off(在方案旁写简短备注)
✓ 留空间(面试官可能让你添加组件)
Don'ts (不要这样做):
✗ 不要画完再讲 → 边画边讲
✗ 不要画得太细 → 粒度适中
✗ 不要只画技术 → 标注业务含义
✗ 不要忘记数据流 → 数据怎么从A到B是关键
✗ 不要把图画满 → 留30%空间给追问
5.3 分层清晰的模板
AI系统通用分层模板:
┌──────────────────────────────────┐
│ Access Layer │ ← 用户/API/Webhook
├──────────────────────────────────┤
│ Business Logic │ ← 业务规则/编排/路由
├──────────────────────────────────┤
│ AI/ML Layer │ ← 模型推理/特征计算
├──────────────────────────────────┤
│ Data Layer │ ← 存储/缓存/消息队列
├──────────────────────────────────┤
│ Infrastructure │ ← GPU/K8s/监控/日志
└──────────────────────────────────┘
每一层回答一个问题:
Access: 谁在调用?
Business: 业务逻辑是什么?
AI/ML: AI在哪个环节, 做什么决策?
Data: 数据怎么存, 怎么流转?
Infrastructure: 怎么部署, 怎么监控?
六、沟通策略
6.1 架构面试沟通的黄金原则
原则1: 先说结论, 再说推导
✗ "我们可以用方案A, 也可以用方案B, A的优点是... B的优点是..."
✓ "我推荐方案A(混合架构). 原因有三: 1... 2... 3...
方案B(纯API)我没选, 因为..."
原则2: 主动提Trade-off
不要等面试官问 "有什么缺点"
✓ "这个方案的主要trade-off是: 牺牲了X换取了Y.
如果约束条件变了(比如预算翻倍), 我会考虑方案B."
原则3: 承认不确定性
✗ "这个方案肯定没问题"
✓ "这个设计基于我对现有负载的假设. 如果流量增长10倍,
这个组件可能成为瓶颈, 到时候需要重新考虑."
原则4: 用数字说话
✗ "这样性能会更好"
✓ "XGBoost推理延迟约5ms, 满足50ms的延迟预算.
Deep Learning模型25ms, 也在预算内, 但留给特征计算的时间就少了."
原则5: 引导面试官
✓ "我现在画了高层架构, 您希望我深入哪个部分?
模型管理? 特征工程? 还是监控告警?"
→ 让面试官选他感兴趣的, 而不是你乱猜
6.2 常见追问的应对
追问1: "如果模型准确率突然下降怎么办?"
回答框架:
检测: PSI/KL散度监控 → 预测分布变化告警
根因: 数据漂移? 特征异常? 模型bug?
应对: 自动回滚到上一版本 → 人工分析根因 → 修复后重新部署
预防: 定期再训练 + Shadow Mode验证 + Canary发布
追问2: "如果GPU不够用怎么办?"
回答框架:
短期: 模型量化(INT8) / 请求排队 / 非关键模型降级
中期: 自动扩缩容 / Spot Instance / 模型蒸馏
长期: 混合云(自有GPU+云GPU) / 模型架构优化
追问3: "如果OpenAI API挂了怎么办?"
回答框架:
L1: Retry(3次, exponential backoff)
L2: Fallback到备用Provider(Claude/Gemini)
L3: 降级到缓存结果 / 规则兜底
L4: 全部失败 → 友好错误提示 + 人工接管
预防: 多Provider SLA监控 + 自部署开源模型作为最后防线
七、今日总结
Day 48 核心收获:
1. AI架构面试的核心: 不是背方案, 是展示决策能力
2. 三道架构题完整解答:
├── 支付系统+AI反欺诈: Shadow→Champion-Challenger→AI主导
│ 关键: 渐进式集成, 不动遗留系统核心
├── 模型管理平台: 四层架构(Portal/Orchestration/Serving/Infra)
│ 关键: 版本控制+AB测试+监控+自动回滚
└── 单模型→多模型: Gateway→Smart Router→一致性保障
关键: 成本降70%的路由策略
3. 白板画图: C4分层 + 先骨架后细节 + 边画边讲
4. 沟通策略: 先结论→主动Trade-off→承认不确定→数字说话→引导面试官
核心心法:
"架构面试不是看你知道多少技术方案,
而是看你在约束条件下能否做出合理的决策, 并讲清楚为什么."
明日预告: Day 49 — 行为面试 + AI领域特色问题 STAR格式回答 + AI领域独特的行为面试题 + 薪资谈判 + 远程面试技巧