Skip to content

方案取舍题 ​

这类题考的是工程判断。不要回答“看情况”就停,要说清楚看哪些条件,以及你会先做哪个最小方案。

Q1:RAG 用向量检索还是混合检索? ​

当面试官问“RAG、长上下文还是摘要压缩”时,可以假设一份 200 页且每天更新的制度:长上下文成本高,纯摘要可能丢条款,RAG 需要处理版本和引用。先说约束,再说推荐和切换条件。

参考答案

如果问题主要是语义表达差异,向量检索够用。如果有编号、错误码、合同条款、API 名称、人名、专有术语,就优先混合检索。

我的建议是先做向量检索最小版,再用评估集看漏召回样本。如果漏的是精确词,就加关键词;如果候选多但排序差,就加 rerank。

Q2:top_k 设大还是设小? ​

参考答案

top_k 大召回更宽,但噪声、成本和上下文压力更大。top_k 小成本低,但容易漏证据。

不要拍脑袋。用 eval 看 recall@k 和生成质量。通常召回阶段可以稍宽,生成前用 rerank 和证据裁剪收紧。

Q3:chunk size 大还是小? ​

参考答案

chunk 小检索精细,但容易丢上下文。chunk 大上下文完整,但噪声多、成本高。

选择依据是答案跨度和文档结构。FAQ 可以小,政策条款按条,技术文档按标题段落。

Q4:先做 RAG 还是先做长上下文? ​

参考答案

如果资料量小、单次任务需要整体阅读,可以先长上下文。如果资料量大、持续更新、权限复杂、需要引用,先做 RAG。

长上下文是容量方案,RAG 是筛选和证据方案。

Q5:是否需要 rerank? ​

参考答案

如果初召回前几条已经稳定相关,可以先不上。若候选相关性不稳、top-k 噪声多、生成经常引用错片段,就上 rerank。

rerank 提升质量,但增加延迟和成本。

Q6:用一个 Agent 还是多个 Agent? ​

参考答案

优先单 Agent。只有任务能清晰拆分、子任务能验收、上下文隔离能带来收益时,再拆多 Agent。

拆多 Agent 前先做单 Agent 基线,否则没法证明多 Agent 值得。

Q7:主管-工人还是流水线? ​

参考答案

阶段固定时用流水线,比如调研 -> 写作 -> 审校。任务动态、需要按情况分派时用主管-工人。

入门和面试设计题里,流水线更容易讲清、评估和排障。

Q8:让模型自由决策还是用状态机? ​

参考答案

高风险、阶段明确、流程固定的任务用状态机。开放式、路径不确定的任务让模型决策。

真实系统常混合:状态机管阶段,模型在阶段内做判断。

Q9:工具 schema 做宽还是做窄? ​

参考答案

做窄。一个工具只做一件事,参数明确,输出结构化。宽工具看似灵活,但模型更容易乱传参数,权限也难控制。

Q10:工具全量暴露还是动态裁剪? ​

参考答案

工具少时可以全量暴露。工具多时要动态裁剪或路由,否则 token 成本高、模型选择噪声大。

Q11:工具错误让模型重试还是直接失败? ​

参考答案

看错误类型。网络超时可以有限重试,参数错误要让模型修参数,权限错误不能重试,危险动作失败要转人工或提示用户。

Q12:Prompt 优化还是模型升级? ​

参考答案

先看问题来源。如果是任务边界、格式和工具描述问题,先改 prompt 和 schema。如果是模型能力不足,比如复杂推理和长上下文理解差,再升级模型。

模型升级贵且可能引入新行为,必须做回归。

Q13:用小模型路由还是全部大模型? ​

参考答案

请求量大、任务类型差异明显时,用小模型路由能省成本。所有请求都走大模型简单但贵。

风险是路由错会影响下游,所以关键任务要允许升级到大模型或人工。

Q14:缓存系统该积极还是保守? ​

参考答案

稳定前缀、工具定义、公共知识可以积极缓存。含权限、个人敏感信息、强动态状态的内容要保守缓存。

缓存优化不能牺牲正确性和权限隔离。

Q15:LLM-as-Judge 还是人工评估? ​

参考答案

大规模开放任务先用 LLM-as-Judge 初筛,再做人类抽检。高风险、模糊、涉及合规的任务不能完全交给 judge。

Q16:自动发布还是人工确认? ​

参考答案

默认人工确认。对外发布、发邮件、修改权限、退款付款、删除文件都要确认。自动发布只适合低风险、可回滚、规则明确的内容。

Q17:代码审查自动评论还是先汇总报告? ​

参考答案

高置信严重问题可以自动评论。低置信、风格建议、批量小问题更适合汇总报告,避免刷屏。

Q18:文档更新用增量还是全量重建? ​

参考答案

普通内容更新用增量。embedding 模型升级、切分策略变化、文档结构大改时需要全量重建。

Q19:权限过滤在检索前还是生成后? ​

参考答案

检索前或检索时。生成后过滤已经太晚,因为敏感内容可能已经进 prompt。

Q20:异常时降级到小模型还是人工? ​

参考答案

如果只是大模型不可用、任务低风险,可以降级小模型或模板回答。如果涉及高风险、权限、写操作或证据不足,应该转人工。

Q21:Agent 失败后重试还是换策略? ​

参考答案

可重试错误先重试,比如网络超时。重复失败、同参数重复调用、检索不到证据时应换策略或停止,而不是无限重试。

Q22:模型输出引用时,是先生成答案再找引用,还是基于证据生成? ​

参考答案

应该基于证据生成答案,而不是先编答案再补引用。后者容易出现引用不支持结论。

Q23:RAG 无答案时直接拒答还是给相近内容? ​

参考答案

要明确说明没有找到足够证据,可以提供相近文档但不能把相近内容当答案。高风险场景宁可拒答。

Q24:多 Agent 冲突时由模型裁决还是人工裁决? ​

参考答案

低风险、证据明确的冲突可以由主管 Agent 按规则裁决。高风险、证据冲突严重或涉及发布/写操作时人工裁决。

Q25:先做评估还是先做功能? ​

参考答案

先做最小功能闭环,再立刻补最小 eval。完全没功能无法评估,但功能继续扩张前必须有 eval,否则后面改动会失控。

Q26:长上下文、RAG 和摘要压缩应该怎么选? ​

参考答案

我会按资料规模、问题是否局部、是否需要定位证据和上下文成本来选。资料短、需要整体理解、一次性任务可以直接用长上下文;资料多且问题通常只涉及局部内容,优先 RAG;对话或 Agent 历史很长但又需要保留任务状态,则用结构化摘要压缩,再配合必要的记忆检索。运行内压缩的触发、消息配对和回滚见记忆压缩,跨会话记忆的存储和权限见记忆机制。

三者可以组合:先用 RAG 找候选,再用较长上下文阅读同一主题的完整章节;对历史消息做摘要,但保留原始记录的可回放引用。不能把全文硬塞给模型后只看最终答案,因为成本、注意力分散、权限过滤和引用定位都会变差。

Q27:同步执行和异步队列应该怎么选? ​

参考答案

面向交互、几秒内可完成、用户需要即时反馈的任务适合同步或流式执行,例如查订单和生成简短总结。调研、批量文档解析、长时间代码分析、批量评估等任务应该进入异步队列,返回任务 ID,通过事件或轮询查看进度。

异步不只是把函数丢到后台,还要设计任务状态、重试策略、幂等键、超时、取消、死信队列和结果过期。用户刷新页面后仍要能恢复任务进度。同步接口也可以在超过软超时时转异步,避免连接一直占用。

Q28:自建模型和调用第三方 API 怎么取舍? ​

参考答案

第三方 API 上手快、模型能力强、运维负担小,适合验证产品和非敏感业务;自建模型能控制数据、版本、延迟和长期单位成本,适合流量稳定、合规要求高或有专门推理硬件的场景。但自建要承担 GPU、扩缩容、模型升级、监控和故障处理。

我会先用统一网关抽象模型接口,保留替换空间,用真实流量测质量、成本、P95 和可用性。当月度调用量、数据合规或供应商锁定风险达到阈值,再评估自建或混合部署,而不是仅凭“自建单价更低”决策。

Q29:最终答案缓存和中间结果缓存应该怎么选? ​

参考答案

最终答案缓存命中收益高、链路简单,但对时效、权限和个性化要求敏感;中间结果缓存粒度更细,例如 query embedding、检索候选、schema 结果、工具只读结果,通常更容易复用,也更容易按版本失效。

我一般优先缓存确定性、权限边界清晰的中间结果,再针对高频且稳定的问题缓存最终答案。缓存 key 要包含租户、权限范围、输入规范化结果、数据/模型版本和关键参数;强实时业务不应因为缓存返回旧订单状态。

Q30:自动扩缩容和预留容量应该怎么取舍? ​

参考答案

流量波动大、非核心任务多时,自动扩缩容更省闲置成本,但冷启动和扩容延迟可能影响 P95;流量稳定、交互要求高时,预留基础容量能保证首 token 和吞吐,再用弹性容量承接峰值。模型服务通常采用“基础保留 + 峰值弹性 + 低优先级任务排队”的组合。

决策要看负载曲线、GPU 利用率、队列长度、扩容时间、SLO 和成本,而不是只看平均 QPS。批处理任务可以让出资源给在线请求,避免离线评估拖慢用户流量。

Q31:模型输出后处理和二次模型校验应该怎么取舍? ​

参考答案

格式、字段、数值范围、敏感词和引用存在性等确定性问题优先代码后处理,便宜、稳定、可解释;开放式事实一致性、风格、完整性可以用二次模型或规则加模型判断。高风险输出可以采用“代码规则 + 证据核对 + 人工”多层校验。

二次模型不是事实裁判,可能和主模型犯同样的错,因此要使用独立证据、结构化 rubric 和人工抽检。若每个请求都二次调用,成本和延迟可能翻倍,应该只对高风险、低置信度或抽样请求使用。

Q32:单租户独立部署和共享多租户平台应该怎么选? ​

参考答案

单租户部署隔离强、定制容易,适合强合规或大客户,但资源利用率低、升级维护成本高;共享平台利用率高、版本统一,适合大量中小业务,但必须认真处理租户隔离、权限、限流、预算、日志和缓存 key。

早期可以共享运行时,但在数据存储、密钥、工具权限和审计上做到逻辑隔离;对高敏数据或高流量租户提供独立资源池。隔离策略应由数据敏感度和故障爆炸半径决定,而不是一律追求最低成本。

持续学习,持续实践。