Files
zhuangang/topics/ai/llm-serving/interview.md
T

4.2 KiB
Raw Blame History

id, title, type, domain, stack, tags, level, related, week
id title type domain stack tags level related week
ai.llm-serving.interview 模型侧面试题(了解级) interview ai
llm-serving
模型路由
vLLM
LoRA
微调
面试
intermediate
ai.llm-serving.routing-vllm-lora
13
16

模型侧面试题(了解级)

基础

【基础】什么是 OpenAI 兼容接口?有什么好处?

参考答案:按 OpenAI Chat Completions 的请求和响应格式提供的接口。很多厂商和 vLLM 等推理框架都支持,业务代码用同一个 SDK,只改 base_url、密钥和模型名就能切换,降低厂商绑定。

追问:兼容就完全一样吗?→ 不是,工具调用、结构化输出、流式细节等可能有差异,切换前要用评测集验证。

【基础】token 是什么?成本怎么算?

参考答案:模型处理文本的基本单位,由模型的分词器决定,中文和英文的换算比例不同。成本一般 = 输入 token × 输入单价 + 输出 token × 输出单价,输出通常更贵;部分厂商对缓存命中的输入有折扣。

追问:怎么在调用前估算 token?→ 用对应模型的分词器计算,或者用经验系数粗估,并在响应中读取实际用量。

【基础】什么时候需要微调?

参考答案:需要稳定的输出风格 / 格式、特定领域表达、用小模型替代大模型降成本,并且有足够的高质量数据和评测集时。知识更新用 RAG,行为调整先尝试提示词。

追问:微调的数据要多少?→ 取决于任务,LoRA 做格式 / 风格调整几百到几千条高质量样本就可能有效;质量比数量重要,必须有评测集验证。

进阶

【进阶】LoRA 和 QLoRA 的原理?

参考答案:LoRA 冻结原模型权重,在部分层旁加两个低秩矩阵(A、B),只训练它们,权重变化表示为 BA,可训练参数很少,适配器文件小,可以一个底座挂多个适配器。QLoRA 把底座量化为 4 bit(NF4)后再做 LoRA,显存需求更低。

追问:LoRA 的 rank 怎么选?→ 常见 8~64,任务越复杂可以越大;用评测结果决定,不是越大越好。

【进阶】vLLM 为什么吞吐高?

参考答案:PagedAttention 用分页方式管理 KV 缓存,减少显存碎片和浪费,同时能服务更多并发请求;连续批处理让新请求随时加入正在运行的批次,GPU 利用率更高。

追问:显存不够怎么办?→ 量化(AWQ / GPTQ / FP8 等)、减小 --max-model-len、多卡张量并行、换更小的模型。

【进阶】多模型降级要注意什么?

参考答案:区分可重试错误(限流、超时)和不可重试错误(参数错误、内容拒绝);熔断避免持续打到故障的提供方;备用模型要经过评测;记录降级比例并告警;流式请求在开始输出后失败时不能简单切换(用户已经看到部分内容),要有提示或重新生成的机制。

追问:怎么避免降级时成本失控?→ 备用模型也走配额;降级期间对非关键业务限流。

场景题

【场景题】公司多个业务都要用大模型,怎么统一管理?

参考答案:统一网关:OpenAI 兼容接口、业务令牌、逻辑模型名映射到具体厂商、主备和熔断、Redis 配额、调用台账和成本报表、敏感数据走内网模型。详见模型网关场景。

追问:网关自己挂了怎么办?→ 多实例无状态部署,前面有负载均衡;关键业务可以配置直连备用方案(受控的应急开关)。

【场景题】业务要求数据不出内网,但开源模型效果不如商用模型,怎么办?

参考答案:按数据敏感程度分级:敏感数据走内网模型,非敏感部分可以用商用模型;对内网模型用 RAG 补充知识、优化提示词,必要时用 LoRA 针对具体任务微调;用评测集量化差距,和业务方确认可接受的效果;或者使用云厂商的私有化 / 专属部署方案。

追问:内网模型选多大的?→ 根据评测效果、并发需求和 GPU 预算权衡,先用小规模测试确定吞吐和延迟。