--- id: ai.llm-serving.interview title: 模型侧面试题(了解级) type: interview domain: ai stack: [llm-serving] tags: [模型路由, vLLM, LoRA, 微调, 面试] level: intermediate related: [ai.llm-serving.routing-vllm-lora] week: [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 配额、调用台账和成本报表、敏感数据走内网模型。详见[模型网关场景](scenarios/multi-provider-gateway.md)。 **追问**:网关自己挂了怎么办?→ 多实例无状态部署,前面有负载均衡;关键业务可以配置直连备用方案(受控的应急开关)。 ### 【场景题】业务要求数据不出内网,但开源模型效果不如商用模型,怎么办? **参考答案**:按数据敏感程度分级:敏感数据走内网模型,非敏感部分可以用商用模型;对内网模型用 RAG 补充知识、优化提示词,必要时用 LoRA 针对具体任务微调;用评测集量化差距,和业务方确认可接受的效果;或者使用云厂商的私有化 / 专属部署方案。 **追问**:内网模型选多大的?→ 根据评测效果、并发需求和 GPU 预算权衡,先用小规模测试确定吞吐和延迟。