面试题:接口幂等:重复支付、消息重投、请求重试,怎么保证同一操作只生效一次?
这是「每日一题」专栏的第十四篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 RAG 检索增强生成,今天按轮换回到后端/分布式方向,聊上一篇预告的题:接口幂等。
这是「每日一题」专栏的第十四篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 RAG 检索增强生成,今天按轮换回到后端/分布式方向,聊上一篇预告的题:接口幂等。
这是「每日一题」专栏的第十三篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 Feed 流系统设计,今天按轮换回到 AI/LLM 方向,聊上一篇预告的题:RAG 检索增强生成。
微调和蒸馏是聊开源模型时绕不开的两个词,但经常被混为一谈。一句话区分:微调改变「模型会什么」,蒸馏改变「模型有多大」——微调是拿你的数据继续训练,让模型适配你的任务;蒸馏是让大模型当老师,把能力压缩进小模型。本文讲清两者的本质、方法和选型。
开源 LLM 怎么部署,取决于你手里有什么算力、要服务多少人。本文不讨论引擎内部机制(选型见推理引擎选型),只给端到端部署方案:按算力场景分四档,每档给可跑命令、显存预算和踩坑。
LobeChat 是当前最流行的开源 AI 聊天前端之一,界面漂亮、功能齐全,支持聚合多家大模型供应商。自己部署一台的好处很实在:对话数据不出自己的服务器,模型按需切换,还省了订阅费。本文给出一条命令的 Docker 部署方案,直接接 DeepSeek——国内直连、便宜、够用。
先给结论:大模型训练并行只有三件事——显存放不下、算力不够用、通信不能成为瓶颈。数据并行(DP)摊算力、张量并行(TP)摊单层显存、流水线并行(PP)摊层数,ZeRO/FSDP 是数据并行的显存优化形态,实际生产(GPT-3、Llama、Qwen 系列)都是把它们叠成 3D/4D 并行来用。选型的本质是一道通信开销的算术题:每步训练要搬多少字节,你的互联带宽扛不扛得住。
上一篇讲了参数高效微调 LoRA/QLoRA,那是"少训点参数"的路线;这篇是"多卡一起训"的路线,两者互补。集群怎么调度 GPU 见K8s GPU 调度。
这是「每日一题」专栏的第十二篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 Cache-Aside 缓存一致性,今天按轮换来到系统设计方向,聊上一篇预告的题:Feed 流系统设计。
自回归解码是 memory-bound 的:小 batch 下每生成一个 token 都要把全部权重从 HBM 读一遍,GPU 算力大部分时间在空转。投机解码(Speculative Decoding)的思路反直觉但极其优雅——让一个便宜的小模型先猜 γ 个 token,大模型一次前向并行验证,猜对的直接收下,猜错的用拒绝采样修正。论文级收益 2-2.5 倍,工程实现(Medusa/EAGLE/DeepSeek MTP)能到 3-4 倍,而且输出分布与原生解码严格一致,不是近似。
这是「每日一题」专栏的第十一篇。每天一道面试题,后端 + AI 混合路线,从原理到代码一次讲清。上一篇讲了 模型量化,今天按轮换回到后端/分布式方向,聊上一篇预告的题:Cache-Aside 缓存一致性。