M8-008M8: ML Systems, Engineering & ResearchML System Design FrameworkHard
Mastery:

ML System Design Framework: 设计一个在线学习(online learning)系统。

📐 Mathematical Definition
θt+1=θt−η∇ℓ(xt,yt);risk: instability, feedback loop\theta_{t+1}=\theta_t-\eta\nabla\ell(x_t,y_t);\qquad \text{risk}:\ \text{instability},\ \text{feedback loop}
⚡ Executive Summary
Core Concept: 模型随数据流实时更新;关键是延迟、稳定性(防震荡)、以及'探索-利用'与'反馈循环'处理。

📌 Key Takeaways

  • •
    在线更新:流式数据 → 增量更新(SGD/FTRL/bandit)
  • •
    稳定性:学习率、正则、A/B 保护、回滚
  • •
    反馈循环与探索:位置偏置、EE、无偏数据

📐 Mathematical Derivations

数学机理:<strong>在线学习(online learning)系统</strong>——(1) <strong>设定</strong>——模型<strong>随数据流实时更新</strong>:每来一批数据(或每个样本)就更新参数:θ_{t+1}=θ_t−η∇ℓ(x_t,y_t);<strong>对比离线</strong>——离线是'定期全量重训'(天/周级);在线是'持续增量更新'(秒/分钟级)。(2) <strong>适用场景</strong>——(a) <strong>分布快速变化</strong>(新闻/热点/欺诈);(b) <strong>数据量大</strong>(无法频繁全量重训);(c) <strong>需要快速适应</strong>(用户兴趣变化);(d) <strong>反馈及时</strong>(标签立刻可得——如'是否点击')。(3) <strong>关键技术</strong>——(a) <strong>算法</strong>——(i) <strong>SGD/AdaGrad/FTRL</strong>(流式更新);(ii) <strong>FTRL-Proximal</strong>(Google 的广告系统——L1 正则 + 稀疏);(iii) <strong>在线 bandit</strong>(探索-利用);(b) <strong>特征</strong>——(i) 流式特征(窗口统计);(ii) 与离线特征的一致性(见训练-服务一致性);(c) <strong>架构</strong>——(i) 流式数据管道(Kafka);(ii) 参数服务器(分布式更新);(iii) 模型热更新(无缝切换)。(4) <strong>主要风险</strong>——(a) <strong>不稳定性(instability)</strong>——(i) 学习率过大 → 参数震荡;(ii) 数据分布突变 → 模型'跑偏';(iii) <strong>对策</strong>——小学习率、正则、'滑动窗口'(忘记旧数据)、<strong>A/B 保护</strong>(新模型只在部分流量生效)、<strong>回滚机制</strong>;(b) <strong>反馈循环(feedback loop)</strong>——(i) 模型推荐什么就得到什么数据 → '自我强化';(ii) 未展示的物品无数据(位置偏置);(iii) <strong>对策</strong>——探索配额、无偏数据(随机化)、去偏(IPS);(c) <strong>灾难性遗忘</strong>——(i) 只看新数据 → 忘记旧模式;(ii) <strong>对策</strong>——滑动窗口 + 长期数据的定期全量重训;(d) <strong>'标签延迟'</strong>——延迟反馈的标签会'滞后';(e) <strong>'数据质量'</strong>——流式数据的噪声/异常(需过滤)。(5) <strong>与'持续训练(CT)'的区别</strong>——(a) <strong>在线学习</strong>——参数持续微调(秒级);(b) <strong>持续训练</strong>——定期重训(天/周级,见 MLOps 的 CT 题);(c) <strong>实践</strong>——常<strong>组合</strong>(在线微调 + 定期全量重训以'纠偏')。<strong>评估</strong>——(a) <strong>在线指标</strong>(实时 CTR 等);(b) <strong>稳定性</strong>(参数的波动、指标的方差);(c) <strong>与离线基线的对比</strong>;(d) <strong>A/B</strong>(在线学习 vs 定期重训)。<strong>失败模式</strong>——(a) <strong>震荡/发散</strong>;(b) <strong>反馈循环恶化</strong>;(c) <strong>遗忘</strong>;(d) <strong>数据管道故障</strong>(流式断流);(e) <strong>特征不一致</strong>。<strong>实践建议</strong>——(a) <strong>小学习率 + 正则 + 滑动窗口</strong>(稳定);(b) <strong>A/B 保护 + 回滚</strong>(风险控制);(c) <strong>探索配额 + 无偏数据</strong>(防反馈循环);(d) <strong>定期全量重训</strong>(防遗忘);(e) <strong>流式管道的高可用</strong>;(f) <strong>监控参数与指标的稳定性</strong>。<strong>度量</strong>——(a) 在线指标;(b) 参数/指标的波动;(c) 反馈循环的监控(多样性/长尾曝光);(d) 与定期重训的对比。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'不稳定性'是主要风险</strong>——学习率、分布突变;故需 A/B 保护与回滚;面试中能指出是深度理解的标志。② <strong>'反馈循环'更严重</strong>——在线学习'学得更快'也'偏得更快';故需探索与去偏。③ <strong>'灾难性遗忘'</strong>——只看新数据会忘记旧模式;需滑动窗口 + 定期全量重训。④ <strong>'在线 + 定期全量'的组合</strong>是最实用的<strong>——在线微调适应变化、全量重训纠偏。⑤ </strong>'A/B 保护'是工程必需<strong>——新模型只在部分流量生效(可回滚)。⑥ </strong>面试要点<strong>——被问'设计在线学习系统',应给出'</strong>流式更新 + 稳定性(小 lr/正则/窗口/A-B/回滚)+ 反馈循环(探索/无偏)+ 遗忘(定期全量)+ 架构(Kafka/参数服务器/热更新)**';能指出'在线+全量的组合'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    大学习率在线更新(震荡)
  • ✕
    不做 A/B 保护(模型跑偏无法回滚)
🎯 Interviewer Follow-ups
  • ?
    在线学习的主要风险?
  • ?
    什么场景适合在线学习?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM8-007: ML System Design Framework: 设计一个 LLM Agent 服务系统。📋Back to BankNext →M8-009: ML System Design Framework: 设计一个内容审核(安全)系统。