为什么选择这个技术方案?有没有考虑其他方案
1️⃣ 考察意图
面试官想看的不是“你选了什么”,而是“你如何做决策”。这道题属于工程取舍 + 系统设计类,核心考察三点:① 你是否有多维度权衡的框架(性能/成本/延迟/可维护性),而非凭直觉或流行度选方案;② 你是否做过实验验证,能用离线指标(Recall@K、BLEU)和在线指标(用户留存、首响延迟)量化差异;③ 你是否具备备选方案意识,能预判当需求变化(如数据量翻倍、延迟要求从2s降到500ms)时如何平滑迁移。刁钻点在于:面试官会追问“你当时为什么没选另一个方案”,如果你只答“因为那个方案不好”就暴露了缺乏系统性对比。答好了能展示架构师级别的技术判断力和工程落地经验。
2️⃣ 标准答
我会从需求约束→候选方案→关键取舍→实验验证→最终决策五个步骤展开,以我做过的一个智能客服FAQ系统为例。
第一步:明确需求与约束
- 业务目标:回答准确率≥90%,首响延迟<2s,月调用量100万次,预算有限(API成本<5000元/月)。
- 技术约束:团队无GPU资源,现有数据为10万条FAQ(问答对),无标注数据做微调。
第二步:候选方案调研
- 方案A:纯LLM生成(GPT-4 API + 零样本提示)。优点:零开发成本;缺点:幻觉率高(实测准确率仅72%),单次调用成本0.03元,延迟1.5s。
- 方案B:RAG(检索增强生成)。使用BGE-base-zh embedding + Milvus向量库(HNSW索引,M=16, efConstruction=200)检索Top-5,再用ChatGLM-6B本地部署生成。优点:准确率可达88%,成本可控(本地部署无API费);缺点:需维护向量库,延迟2.5s(检索0.3s + 生成2.2s)。
- 方案C:微调专用模型。用10万条FAQ微调Llama2-7B。优点:准确率可达92%;缺点:需要A100 GPU(成本约1万元/月),且数据更新需重新微调,迭代周期长。
第三步:关键取舍点
- RAG vs 微调:选择RAG,因为团队无GPU资源,且FAQ数据频繁更新(每周新增500条),RAG只需更新向量库,微调则需每周重训,维护成本过高。
- 检索精度 vs 延迟:HNSW索引(召回率95%,延迟0.3s) vs IVF索引(召回率88%,延迟0.1s)。选择HNSW,因为延迟0.3s在2s预算内,且召回率提升7%对准确率影响显著。实际坑:HNSW的efSearch参数调大(从100调到200)时,召回率从93%升到95%,但延迟从0.2s升到0.3s,需根据业务容忍度做折中。
- 生成模型选择:GPT-4 API(准确率88%,成本0.03元/次) vs 本地部署ChatGLM-6B(准确率85%,成本0.01元/次)。选择GPT-4,因为准确率差3%但成本在预算内(100万次×0.03元=3万元/月,超预算?实际通过缓存高频问题降成本至1.5万元/月)。坑:缓存策略需设计TTL(如24小时),避免过时答案被重复返回。
第四步:实验验证
- 离线评估集:从10万条FAQ中抽取2000条(含常见问题、长尾问题、歧义问题),标注标准答案。
- 指标:Recall@5(检索阶段)、准确率(生成阶段)、首响延迟、单次成本。
- 结果:方案B(RAG + GPT-4)准确率89%,延迟1.8s(检索0.3s + 生成1.5s),成本0.03元/次;方案C(微调Llama2)准确率92%,延迟0.5s,但GPU成本1万元/月。综合成本与准确率,选择方案B。
第五步:最终决策与备选
- 选择RAG(BGE + Milvus + GPT-4),理由:在预算内满足准确率≥90%的目标(实际89%,通过优化prompt提升至91%),且数据更新灵活。
- 备选方案:若未来数据量增长到100万条,Milvus可扩展至分布式集群;若预算增加,可切换至微调方案(如用GPT-4蒸馏数据微调Llama2)。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从需求约束、候选方案对比、关键取舍、实验验证四个层面回答。首先明确业务目标(准确率≥90%、延迟<2s、预算5000元/月)和技术约束(无GPU)。然后对比纯LLM、RAG、微调三种方案,从性能、成本、可维护性评估。关键取舍是RAG vs 微调,选择RAG因为数据更新频繁且无GPU资源。最后通过离线实验验证,RAG+GPT-4准确率89%,延迟1.8s,成本可控。总结一句:技术选型不是选最好的,而是选最匹配当前约束的,并预留迁移路径。”
4️⃣ 高频追问 & 应对
追问 1:你刚才说RAG准确率89%,微调92%,为什么没选微调?如果预算增加,你会立刻切换吗?
不会立刻切换,因为微调有隐性成本:① 数据更新需重新训练,每次训练耗时2天,而RAG只需增量更新向量库(5分钟);② 微调模型可能过拟合,在长尾问题上准确率反而下降(实测从92%降到85%)。如果预算增加,我会优先用GPT-4蒸馏数据微调小模型(如Qwen-1.5B),兼顾准确率和迭代速度,而不是直接上Llama2-7B。
追问 2:你用了HNSW索引,为什么不用IVF?在什么场景下你会换回IVF?
HNSW召回率更高(95% vs 88%),但内存占用大(10万条向量约500MB)。如果数据量增长到1000万条,HNSW内存会到50GB,成本飙升。此时我会换回IVF(如IVF256, nprobe=10),召回率降到90%但内存仅5GB,且延迟从0.3s降到0.1s。关键取舍是:数据量<100万时用HNSW,>100万时用IVF,并配合量化(PQ)进一步压缩。
追问 3:你的离线实验准确率89%,上线后用户满意度如何?有没有遇到bad case?
上线后用户满意度85%,低于预期。主要bad case是:用户问“怎么退款”,FAQ中只有“退货流程”,检索到Top-5但生成模型没理解意图。解法:① 在检索阶段加入query改写(如用LLM将“退款”改写为“退货退款流程”),召回率从95%升到97%;② 在生成阶段加入意图分类器(如用BERT判断是否需转人工),准确率从89%升到92%。
5️⃣ 避坑 · 常见错误答法
- ❌ “我选了RAG,因为它是当前最流行的方案。” → ✅ “我选了RAG,因为业务数据更新频繁且无GPU资源,RAG的增量更新能力比微调更适合,同时通过实验验证了准确率满足要求。”
- ❌ “我对比了方案A和B,发现A更好,所以选了A。” → ✅ “我对比了方案A、B、C,从性能、成本、可维护性、扩展性四个维度评估,并设计了离线实验量化差异。最终选择B,因为它在预算内准确率最高,且预留了切换到C的路径。”
- ❌ “HNSW比IVF好,所以用了HNSW。” → ✅ “HNSW召回率更高,但内存占用大。在数据量<100万时选择HNSW,若未来数据量增长到1000万,会切换回IVF+PQ以控制成本。”
6️⃣ 简历呼应
- 如果你有RAG项目:从“数据更新频率”和“GPU资源约束”切入,强调你如何通过实验对比RAG和微调,并设计缓存策略降成本。例如:“在智能客服项目中,我对比了RAG(BGE+Milvus)和微调(Llama2),发现RAG在每周更新500条数据的场景下维护成本更低,最终选择RAG并优化了检索延迟。”
- 如果你只做过传统NLP:用“规则系统 vs 机器学习”类比。例如:“在实体抽取任务中,我对比了正则表达式和BERT模型,发现正则表达式在1000条规则内准确率95%,但扩展到5000条时维护成本飙升,最终选择BERT并设计增量训练流程。这个权衡逻辑与RAG vs 微调一致。”
- 如果你是校招无项目:聚焦论文复现demo。例如:“在复现RAG论文时,我对比了DPR和ColBERT两种检索器,发现ColBERT在延迟上比DPR慢30%但召回率高5%,最终选择DPR并优化了索引参数。这个实验过程展示了我对技术选型方法论的理解。”
- 《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》(Lewis et al., 2020)
- 《Dense Passage Retrieval for Open-Domain Question Answering》(Karpukhin et al., 2020)
- 《ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT》(Khattab et al., 2020)
- 《HNSW: Efficient and Robust Approximate Nearest Neighbor Search》(Malkov et al., 2016)
- 《The Cost of Fine-Tuning: A Practical Guide to LLM Deployment》(Anthropic Blog, 2023)