第一层:基础认知(Why / What)【5 题】

Q1. 【在你理解中,AI 应用部署到底在”部署”什么?】

面试官为什么问这个问题:
很多候选人把”部署”等同于”起个 Docker 跑模型”,但真实生产环境部署的是一整套可运行、可维护、可回滚的系统。这个问题用来区分”只跑过 Demo”和”理解生产系统”的人。

参考口语化回答:
如果从生产角度说,我部署的不是模型本身,而是”围绕模型的一整套服务能力”。
包括:模型加载和推理进程、API 服务、配置和密钥管理、日志和监控、健康检查、异常兜底,以及启动、升级、回滚的流程。
模型只是其中一个依赖项,真正上线的是一个可以长期跑、不出事、出事能定位的 AI 服务。

Q2. 【你如何区分模型、推理服务、AI 应用和 AI 平台?】

面试官为什么问这个问题:
部署过程中,边界不清是灾难的根源。面试官想确认候选人是否清楚职责划分,否则上线后问题会互相甩锅。

参考口语化回答:
我一般这样分:

  • 模型:权重文件,本身不提供服务
  • 推理服务:负责加载模型、暴露推理接口,比如一个 FastAPI + vLLM
  • AI 应用:业务逻辑层,比如 RAG、Agent、权限、日志、限流
  • 平台 / 基础设施:算力、调度、监控、发布体系
    部署时我会刻意让这几层解耦,否则模型一升级,整个应用就得重来。

Q3. 【为什么 AI 应用的部署比普通 Web 服务复杂很多?】

面试官为什么问这个问题:
这是基础认知题。答不清楚,说明没真正上线过 AI 服务。

参考口语化回答:
核心原因是资源不可预测 + 行为不可控。
Web 服务主要吃 CPU 和内存,QPS 可控;AI 推理还涉及 GPU、显存碎片、上下文长度、并发退化。
另外模型输出有幻觉风险,业务上不能”随便返回 200”,必须有兜底和约束,这在普通 Web 服务里很少见。

Q4. 【训练、推理、部署、运维在 AI 项目中如何划分边界?】

面试官为什么问这个问题:
面试官想知道你是否理解”上线后谁负责什么”,避免”模型问题全部丢给部署”的情况。

参考口语化回答:
我比较明确:

  • 训练关注效果
  • 推理关注性能和稳定性
  • 部署关注可运行和可维护
  • 运维关注长期稳定
    上线后如果是显存爆了、进程挂了,那是部署和运维问题;
    如果模型答非所问,那才是模型和数据的问题,边界一定要清楚。

Q5. 【在你看来,什么情况下可以说一个 AI 应用”能上线”?】

面试官为什么问这个问题:
这是”上线标准”问题,能暴露候选人的工程成熟度。

参考口语化回答:
我的标准很现实:

  1. 能连续跑 7×24 小时
  2. 有监控,出问题能第一时间知道
  3. 能回滚,发布失败不影响业务
  4. 有最差情况兜底
    如果只是”我本地能跑”,那离上线还差得很远。

第二层:核心部署技术能力(How)【8 题】

Q6. 【你通常如何把 LLM / RAG / Agent 系统服务化?】

面试官为什么问这个问题:
考察是否真的把 AI 系统”当服务”而不是”当脚本”。

参考口语化回答:
我一定会包成独立 API 服务,而不是嵌在前端或脚本里。
通常是 FastAPI 做接口层,模型推理单独封装,RAG 和 Agent 作为业务逻辑模块。
这样做的原因是:模型、策略、业务一定会变,服务边界不清,后期维护成本会爆炸。

Q7. 【FastAPI / Flask / Gunicorn 在 AI 推理服务中你如何选?】

面试官为什么问这个问题:
不关心框架本身,而是关心你是否理解并发和进程模型。

参考口语化回答:
小规模验证我用 FastAPI + Uvicorn 就够了;
上生产我一定会用 Gunicorn 控 worker 数量,否则一个请求把模型卡死,整个服务就没了。
Flask 我基本不用在推理服务上,太容易被误用成单线程。

Q8. 【你在构建 AI Docker 镜像时最关注哪些点?】

面试官为什么问这个问题:
很多人镜像能跑,但上线后启动慢、体积大、不可维护。

参考口语化回答:
三点:

  1. 镜像体积,模型和依赖分层,避免每次重建
  2. 启动速度,模型加载是否阻塞健康检查
  3. 可配置性,模型路径、参数绝不写死
    如果镜像一启动就加载 40GB 模型,K8s 会把你反复拉起。

Q9. 【AI 服务中的配置、密钥你通常如何管理?】

面试官为什么问这个问题:
考察安全意识和运维成熟度。

参考口语化回答:
我从不把 key 和路径写进代码。
本地用 .env,线上用环境变量或 Secret,模型参数也走配置。
这样做不是为了优雅,而是为了可交付和可审计。

Q10. 【你如何设计 AI 推理服务的健康检查?】

面试官为什么问这个问题:
这是非常典型的上线坑。

参考口语化回答:
我不会简单返回 200。
至少区分:

  • 进程是否存活
  • 模型是否已加载
  • GPU 是否可用
    否则容器”看起来活着”,但实际上已经不可用。

Q11. 【单机、多实例、多 GPU 部署时有哪些差异?】

面试官为什么问这个问题:
考察是否理解资源调度和扩展性。

参考口语化回答:
单机最怕显存打满;
多实例要考虑 GPU 绑定和抢占;
多 GPU 则要明确模型是否支持并行,否则反而更慢。
不是 GPU 越多越好,前提是你控制得住。

Q12. 【推理服务如何优雅退出,避免请求丢失?】

面试官为什么问这个问题:
这是”上线后必踩”的问题。

参考口语化回答:
我一定会处理 SIGTERM,先停止接新请求,再等当前推理完成。
否则发布或扩容时,用户请求直接被杀掉,这在业务上是不可接受的。

Q13. 【你如何看待模型文件、代码、配置的交付边界?】

面试官为什么问这个问题:
考察交付意识。

参考口语化回答:
我倾向于:

  • 代码进镜像
  • 模型走挂载或独立存储
  • 配置外置
    这样模型更新不需要重新打包整个服务,减少风险。

第三层:工程化与系统能力【8 题】

Q14. 【AI 推理服务的性能瓶颈通常出在哪里?】

面试官为什么问这个问题:
考察是否做过线上性能优化。

参考口语化回答:
大多数不是算力,而是并发策略和上下文长度。
长 prompt 会直接拖垮吞吐,不限流必炸。

Q15. 【你如何控制 LLM 服务的并发与吞吐?】

面试官为什么问这个问题:
这是生产核心问题。

参考口语化回答:
我会明确限制并发数,必要时排队。
宁可慢一点,也不能把 GPU 拖死,否则所有请求一起失败。

Q16. 【显存管理在部署中有哪些真实坑?】

面试官为什么问这个问题:
没踩过显存坑的人答不好。

参考口语化回答:
显存碎片、OOM 不释放、模型热加载失败都很常见。
我一般会预留 10–20% 显存,不追求极限利用率。

Q17. 【你如何看待 AI 推理成本控制?】

面试官为什么问这个问题:
公司不关心你模型多大,只关心账单。

参考口语化回答:
我会从三个层面控:

  • 限制请求频率
  • 控制上下文长度
  • 区分高价值和低价值调用
    不然模型效果再好,也跑不起。

Q18. 【AI 应用如何设计超时、重试、降级?】

面试官为什么问这个问题:
考察稳定性设计能力。

参考口语化回答:
我从不无限重试。
超时直接返回兜底结果,降级到规则或缓存,保证业务不中断。

Q19. 【你如何做 AI 服务的日志与监控?】

面试官为什么问这个问题:
面试官关心”出事你怎么查”。

参考口语化回答:
我至少记录:请求 ID、耗时、token 数、错误类型。
否则线上一出问题,全靠猜。

Q20. 【Docker Compose 和 K8s 在 AI 项目中如何取舍?】

面试官为什么问这个问题:
防止”无脑 K8s”。

参考口语化回答:
小规模、私有化我用 Compose,简单可控;
多环境、多实例、自动扩缩容才上 K8s。
不是规模到了,K8s 只会增加复杂度。

Q21. 【AI 服务上线后最常见的三类故障是什么?】

面试官为什么问这个问题:
这是”有没有线上经验”的分水岭。

参考口语化回答:
最常见的:

  1. 显存耗尽
  2. 并发打满
  3. 下游服务超时
    基本每个都踩过。

第四层:真实项目与业务场景能力【6 题】

Q22. 【你如何在医疗或金融内网环境部署 AI 应用?】

面试官为什么问这个问题:
考察对行业约束的理解。

参考口语化回答:
核心是不出网、可审计、可控。
模型、日志、调用全部本地化,权限严格分级。

Q23. 【你如何应对 AI 输出幻觉在生产环境的风险?】

面试官为什么问这个问题:
这是业务负责人最担心的点。

参考口语化回答:
我不会让模型”自由发挥”。
RAG 强约束、规则兜底、关键结果必须可解释。

Q24. 【你如何做 AI 应用的灰度上线?】

面试官为什么问这个问题:
考察上线成熟度。

参考口语化回答:
先内部、再小流量、再全量。
任何一步出问题立刻停,不赌。

Q25. 【AI 服务上线后如何回滚?】

面试官为什么问这个问题:
回滚能力决定事故影响范围。

参考口语化回答:
我一定保留上一版本镜像和配置,
回滚是分钟级操作,而不是重新构建。

Q26. 【业务方频繁改需求,你如何保证部署稳定?】

面试官为什么问这个问题:
考察工程抗压能力。

参考口语化回答:
模型、策略、业务解耦。
需求变只动策略层,不碰底层服务。

Q27. 【AI 应用出问题时,通常谁来”背锅”?】

面试官为什么问这个问题:
这是现实问题。

参考口语化回答:
如果我负责上线,那我就要兜底。
所以我宁愿前期慢,也不留隐患。

第五层:进阶与加分项(架构 / 视野)【3 题】

Q28. 【多 Agent / Workflow 系统在部署上最大的复杂性是什么?】

面试官为什么问这个问题:
区分普通工程师和架构型选手。

参考口语化回答:
不是模型,而是状态、链路和失败恢复。
一个 Agent 出问题,不能把整个流程拖死。

Q29. 【LangChain / LangGraph 在生产部署中有哪些真实问题?】

面试官为什么问这个问题:
考察是否真用过。

参考口语化回答:
调试难、链路长、日志不直观。
不上监控,问题几乎没法排。

Q30. 【你如何看待 AI 应用从单体到平台化的演进?】

面试官为什么问这个问题:
这是潜力判断题。

参考口语化回答:
先跑稳一个服务,再抽公共能力。
平台不是一开始设计出来的,是被业务逼出来的。


第一层:基础认知(Why / What)【5 题】

Q31. 【你如何判断一个 AI 应用”不适合上线”?】

面试官为什么问这个问题:
上线不仅是”能不能”,更重要是”该不该”。这个问题用来判断候选人是否具备风险意识,而不是一味推进上线。

参考口语化回答:
如果一个 AI 应用满足下面任意一点,我都会明确反对上线:
第一,输出不可控,没有兜底;
第二,资源消耗不可预期,随时可能把机器打死;
第三,出了问题无法回溯。
能跑不等于能上,业务背不起这个风险。

Q32. 【为什么很多 AI Demo 在生产环境完全跑不动?】

面试官为什么问这个问题:
这是对”Demo 思维”的反向拷问。

参考口语化回答:
Demo 通常假设:低并发、短输入、理想算力。
但生产环境恰恰相反:用户乱输、并发集中、资源有限。
Demo 没有考虑最坏情况,一上线自然就崩。

Q33. 【你如何理解”AI 应用的不可控性”?】

面试官为什么问这个问题:
部署视角下,是否真正理解模型的不确定性。

参考口语化回答:
不可控不只是”答错”,而是你不知道它什么时候会答错。
所以部署层必须假设模型会犯错,并提前设计保护机制。

Q34. 【在你看来,AI 应用和传统规则系统最大的上线差异是什么?】

面试官为什么问这个问题:
考察是否真正做过从规则到模型的迁移。

参考口语化回答:
规则系统是”确定性失败”,AI 是”随机性失败”。
前者好排障,后者必须靠监控、限制和回退。

Q35. 【为什么说”部署阶段才是真正开始用 AI”?】

面试官为什么问这个问题:
考察候选人是否理解部署的重要性。

参考口语化回答:
训练阶段看效果,部署阶段才暴露真实问题。
90% 的坑,都是上线之后才出现的。

第二层:核心部署技术能力(How)【8 题】

Q36. 【你如何设计 AI 推理服务的接口粒度?】

面试官为什么问这个问题:
接口设计直接影响可维护性和扩展性。

参考口语化回答:
我会避免一个接口干所有事。
推理、检索、决策分开,否则后期任何调整都是灾难。

Q37. 【AI 服务是否应该同步返回结果?你如何取舍?】

面试官为什么问这个问题:
考察对时延和用户体验的理解。

参考口语化回答:
短任务同步,长任务异步。
强行同步只会把线程和 GPU 一起堵死。

Q38. 【你如何限制 Prompt 的长度和复杂度?】

面试官为什么问这个问题:
这是典型的线上稳定性问题。

参考口语化回答:
我会在服务层做硬限制。
不限制就是把稳定性交给用户,这是不可接受的。

Q39. 【模型加载失败时,你的服务应该如何表现?】

面试官为什么问这个问题:
考察异常设计。

参考口语化回答:
宁可服务不可用,也不能半残状态上线。
加载失败直接标记 unhealthy,让调度层处理。

Q40. 【你如何处理模型冷启动问题?】

面试官为什么问这个问题:
这是用户体验和稳定性的交叉点。

参考口语化回答:
提前预热、延迟暴露接口。
让用户承担冷启动成本,是非常不专业的。

Q41. 【一个 AI 服务是否应该支持热更新模型?】

面试官为什么问这个问题:
考察对风险的判断。

参考口语化回答:
我一般不支持。
热更新出问题,影响面太大,不如走版本切换。

Q42. 【你如何控制 AI 服务的启动顺序?】

面试官为什么问这个问题:
考察系统依赖管理。

参考口语化回答:
模型、向量库、缓存必须先 ready,
API 才能对外,否则就是假启动。

Q43. 【AI 应用中是否应该引入缓存?为什么?】

面试官为什么问这个问题:
考察性能优化意识。

参考口语化回答:
高频、低变化结果我一定缓存。
缓存不是为了快,而是为了稳。

第三层:工程化与系统能力【8 题】

Q44. 【你如何防止某个用户拖垮整个 AI 服务?】

面试官为什么问这个问题:
这是多租户场景的核心问题。

参考口语化回答:
限流、配额、隔离。
否则一个异常请求就能把所有人一起带走。

Q45. 【你如何在部署中区分”业务错误”和”系统错误”?】

面试官为什么问这个问题:
考察排障能力。

参考口语化回答:
业务错误可预期,系统错误必须报警。
不区分,运维会被淹没。

Q46. 【你如何评估一次 AI 服务发布是否成功?】

面试官为什么问这个问题:
考察上线指标意识。

参考口语化回答:
不看感觉,看指标:
错误率、时延、资源占用。
只要一个异常,我就认为发布失败。

Q47. 【AI 推理服务是否适合自动扩缩容?】

面试官为什么问这个问题:
防止盲目套用 Web 思维。

参考口语化回答:
并不总是。
模型加载成本高,扩缩容太激进反而不稳定。

Q48. 【你如何在 GPU 资源紧张时做取舍?】

面试官为什么问这个问题:
考察业务优先级意识。

参考口语化回答:
核心业务优先,其它降级。
算力不足时,必须有人被牺牲。

Q49. 【你是否会在生产环境打开详细日志?为什么?】

面试官为什么问这个问题:
考察稳定性与排障权衡。

参考口语化回答:
默认不开,但能动态打开。
否则性能和成本都会失控。

Q50. 【AI 服务如何进行容量评估?】

面试官为什么问这个问题:
考察是否做过真实规划。

参考口语化回答:
基于最坏情况估算,而不是平均值。
平均值在生产环境毫无意义。

Q51. 【你如何应对第三方模型或 API 不稳定?】

面试官为什么问这个问题:
这是现实中的常见问题。

参考口语化回答:
必须做隔离和降级。
第三方出问题,不能把锅甩给用户。

第四层:真实项目与业务场景能力【6 题】

Q52. 【在私有化交付中,客户最常提出哪些部署要求?】

面试官为什么问这个问题:
考察是否做过 ToB 项目。

参考口语化回答:
不出网、可控权限、可审计。
如果做不到,基本没法交付。

Q53. 【你如何向业务方解释”模型回答不确定”?】

面试官为什么问这个问题:
考察沟通能力。

参考口语化回答:
我不会讲算法,只讲风险。
让业务理解:这是概率系统,不是规则引擎。

Q54. 【你如何限制 AI 应用的”使用场景”?】

面试官为什么问这个问题:
考察风险控制意识。

参考口语化回答:
通过 Prompt、规则和权限三层限制。
不限制场景,上线就是埋雷。

Q55. 【上线后模型效果下降,你如何处理?】

面试官为什么问这个问题:
考察责任意识。

参考口语化回答:
先止血,再分析。
效果问题不能影响业务连续性。

Q56. 【你是否会允许业务方直接修改 Prompt?】

面试官为什么问这个问题:
考察权限和风险管理。

参考口语化回答:
可以,但必须有版本和回滚。
否则线上不可控。

Q57. 【AI 应用在企业内部推广最大的阻力是什么?】

面试官为什么问这个问题:
考察业务理解。

参考口语化回答:
不是技术,而是信任。
部署越稳定,业务接受度越高。

第五层:进阶与加分项(架构 / 视野)【3 题】

Q58. 【你如何设计可复用的 AI 推理基础服务?】

面试官为什么问这个问题:
考察平台化思维。

参考口语化回答:
统一接口、统一监控、统一限流。
否则每个项目都是孤岛。

Q59. 【当 AI 应用规模扩大时,最先暴露的问题是什么?】

面试官为什么问这个问题:
考察前瞻性。

参考口语化回答:
不是模型,而是运维。
没人能扛住没有体系的规模扩张。

Q60. 【你认为什么样的工程师可以独立负责 AI 应用上线?】

面试官为什么问这个问题:
这是终极判断题。

参考口语化回答:
不是最懂模型的人,
而是最清楚”出事怎么办”的人。