标签

搞定AI系统设计面试:这7个核心模式你必须懂

发布时间:2026-05-12 20:04来源:微信阅读:6

你精通 Transformer,也熟悉 RAG。但若问你个实际问题:你的大模型接口突然遭遇 1 万并发冲击,系统会变成啥样?你能解释明白吗?正是这个问题,往往决定了你是能拿到 Offer 还是铩羽而归。这问题跟模型架构毫无瓜葛。它通常是这样的:“你的系统在生产环境中打算如何部署和扩容?” 许多做机器学习的人听到这就卡住了。让他聊注意力机制,他能滔滔不绝;但问他“向量库查到一半挂了咋整”,他就傻眼了。你会微调模型,却讲不清如何防御推理接口被流量洪峰冲垮。面试官考的正是这个短板:不看你的模型造得如何,只看你能否让它在生产环境稳定运行。好消息是,针对 AI 工程师职位,以下 7 种系统设计模式,基本囊括了绝大多数面试考点。接下来逐一剖析,每种模式聊三点:· 它是做什么的 · 为何 AI 系统离不开它 · 面试官提问时,期望听到什么回答 1. API 网关

它的作用: 所有请求的首个必经之地。它负责处理身份鉴权、路由分发、流量限制、协议转换等,处理完毕后再转交给你的模型。 为何 AI 系统离不开它: 一个典型的大模型应用,通常会被拆解为多个微服务:负责生成 embedding 的、执行检索的、进行推理的、做后置处理的。 倘若没有网关,每个客户端都必须知晓每个服务的具体地址,这太繁琐了。 API 网关帮你把这些错综复杂的细节统统屏蔽。它统一搞定登录验证,将请求导向正确的后端,并且在消耗你一分钱 GPU 算力之前,就把限流、校验等前置工作做完。 面试官问啥,期待啥: 如果面试官说“你描述一下,一个请求在你的系统里是如何流转的”, 他期望你开口第一句就提到网关,而不是直接跳到大模型。 你嘴上说着“先过网关”,他心里就已经给你加分了。 2. 限流

它的作用: 限制特定用户在单位时间内的请求发送频率。 为何 AI 系统离不开它: 大模型推理成本高昂。单次调用可能就要消耗几分钱,一个恶意捣乱者或者代码写错的客户端,几分钟就能让你损失数千美元。 限流是你防止预算超支的第一道防线。 此外它也保障服务的可用性。万一某个租户突然狂发一大批巨大的 prompt,如果不限流,他会把所有人的 GPU 时间都占满。 面试官问啥,期待啥: 他问:“你如何防止别人对你的推理接口实施‘掏空钱包’的攻击?” 如果你 30 秒内没说出“限流”这两个字,那就要扣分了。 你应该回答:“先按每分钟请求数限流,再按每分钟 token 数限流。” 3. 缓存

它的作用: 将先前计算的结果保存起来,待下次相同请求到来时,直接复用现成结果,无需重新计算。 为何 AI 系统离不开它: 在 RAG 流程中,最适宜缓存的是 embedding 生成环节。 假设 200 个用户都搜索“如何重置密码”,你完全没必要把那个 embedding 重复计算 200 次。 在前端加一层 Redis 或 Memcached,能将响应时间从几百毫秒压缩至几毫秒,还能节省巨额计算费用。 更进一步,还有“语义缓存”:不仅完全一致的问题能命中,相似的问题也能被命中。 面试官问啥,期待啥: 他问:“你的 embedding 接口频繁收到相同查询,你如何优化?” 你直接回答“加缓存”。如果能补充一句“可以利用语义相似度阈值来实现近似重复匹配”,那就完美了。 4. 消息队列

它的作用: 在生产者与消费者之间增加一个“异步缓冲区”。生产者只管将任务投入队列,消费者按自身节奏取出处理。 为何 AI 系统离不开它: 并非所有大模型调用都需要同步等待结果。例如批量生成摘要、批量处理文档、离线评估等任务,更适合投入队列(如 RabbitMQ、SQS、Kafka),交由后台 worker 慢慢消化。 这样做能抵御流量高峰,避免推理服务器被打爆。而且倘若某次调用失败,队列天然支持重试机制。 面试官问啥,期待啥: 他问:“你要用你的摘要流水线处理 5 万份文档,如何设计?” 如果你说“写个循环,调用 5 万次大模型接口”,那面试基本就悬了。 正确的回答是:采用消息队列配合多个 worker 并行处理。这正是面试官期待的答案。 5. 断路器

它的作用: 监控对下游服务的调用状况,一旦失败次数过多,就“跳闸”——暂时切断通往该服务的所有流量,让其喘息恢复。 为何 AI 系统离不开它: AI 的调用链极易发生“一崩全崩”。 你的 RAG 系统依次调用 embedding 服务、向量库、大模型。 如果向量库开始超时,若无断路器,每个请求都会卡死在那里等待一个永远无法返回的响应。 这些堆积的请求会占满你的连接池,进而连 embedding 服务也被拖垮,最终导致整体瘫痪。 断路器能及早发现向量库异常,提前跳闸,迅速返回一个“降级”回复,避免将小故障演变成大灾难。 面试官问啥,期待啥: 他问:“你的向量库查到一半挂了,会发生什么?” 此时你就该谈论断路器。你要把三种状态阐述清楚: · 闭合:正常流通量 · 断开:拦截所有请求,返回降级响应 · 半开:尝试放行少量请求探测服务是否恢复 面试官非常乐意听你探讨故障模式,而不仅仅是一帆风顺的场景。 6. 负载均衡

它的作用: 将请求分散到多台服务器上,避免单台机器因过载而崩溃。 为何 AI 系统离不开它: GPU 推理服务器是任何 AI 系统中最紧缺的瓶颈。 一块 A100 能承受的并发请求有限,一旦超限延迟就会飙升。 当规模扩大,跨多个 GPU 节点进行负载均衡就不再是“可选项”,而是“必选项”。 而且对于 AI 而言,不能简单地采用轮询(round‑robin),因为每个请求的负载差异巨大:一个 50 token 的回复和一个 4000 token 的长文生成,完全不在一个量级。 通常需要采用加权或最少连接数的均衡策略。 面试官问啥,期待啥: 他问:“你的大模型接口要抗住 1 万并发请求,咋办?” 你要回答:负载均衡是关键一环(此外还需配合限流和自动扩容)。 接着补充:我会利用健康检查剔除故障节点,并解释为何简单轮询行不通。 7. 自动扩缩容

它的作用: 依据实时指标(如 CPU 利用率、队列堆积量、GPU 显存占用等)自动增加或减少机器数量。 为何 AI 系统离不开它: GPU 机器价格昂贵。如果你的流量每天仅有 6 小时需要 4 台 A100,但你却 7×24 小时全功率开启,那简直是在烧钱。 自动扩缩容让你的成本随实际需求波动:延迟升高就扩容,没有流量就缩容。 对于 AI 负载而言,关键在于选对指标。光看 CPU 往往具有欺骗性——可能 CPU 仅 10%,但 GPU 已达 95%。 你应当关注 GPU 使用率、推理队列长度,或自定义的延迟分位数。 面试官问啥,期待啥: 他问:“你的大模型接口早上 9 点流量是平时的 10 倍,凌晨 3 点几乎没流量,你如何控制成本?” 你的回答中必须包含“基于 GPU 指标的自动扩缩容”。 最好再补充一句:鉴于加载模型存在“冷启动”延迟,因此不能仅依赖反应式扩容,还需进行一些预判式扩容(例如根据时间规律提前启动实例)。 下次面试你可以这样应对 当你拿到一个 AI 系统设计题,请按以下顺序逐步阐述: 1. 流量先经 API 网关:提及认证、路由、多厂商切换、按 token 限流。 2. 限流保障预算与可用性:提及“钱包耗尽攻击”,区分 RPM 和 TPM。 3. 缓存置于最昂贵操作之前:重点提及 embedding 生成和重复查询,顺便说语义缓存。 4. 消息队列解耦同步与异步:文档处理、批量任务、离线评估。 5. 断路器防止连锁崩溃:阐述三种状态,给出一个降级方案。 6. 负载均衡将请求分散至 GPU 节点:提及推理感知的健康检查,以及轮询不适用原因。 7. 自动扩缩容让成本跟随需求:提及 GPU 类指标和冷启动延迟。 在白板上按此流程走一遍,AI 面试中 90% 的系统设计题你都能搞定。 面试官并不指望你是分布式系统博士,他们只想确认:你不仅懂模型,还懂得如何让模型在线上稳定运行。