大模型面试:RAG与Agent相关
问题会围绕 RAG 和 Agent 展开,涵盖概念、场景、技术和挑战。请尝试用简洁专业的语言回答,准备好了吗?
模拟面试开始
面试官:你好!请先简单介绍你对 RAG(检索增强生成)的理解,以及它解决了大模型的哪些核心问题?
(考察:基础概念+痛点分析能力)
参考答案:
RAG(检索增强生成)通过两步流程解决大模型的核心瓶颈:
- 检索:使用向量化技术(如text-embedding模型)从外部知识库(如企业文档)中召回与用户问题相关的片段;
- 增强生成:将检索结果注入Prompt,引导大模型生成基于事实的答案。
解决的三大问题:
- 幻觉抑制:用真实数据约束生成,避免编造(如医疗问答中精确引用论文);
- 知识实时性:动态接入新数据(如电商客服实时返回最新促销政策);
- 数据安全:敏感数据保留在本地,无需上传至云端模型。
面试官:很好。假设我们要为一家电商公司搭建一个“智能客服系统”,用户会询问商品参数、退换货政策等动态更新的问题。你会选择用 RAG 还是微调(Fine-tuning)?为什么?
(考察:技术选型+场景适配能力)
(提示:从数据实时性、成本、灵活性等角度对比)
参考答案:
选择RAG,原因有三:
- 动态数据适配:退换货政策频繁更新,RAG可直接检索最新文档,微调需反复训练模型(成本高);
- 长尾问题覆盖:用户可能询问冷门商品参数,RAG通过向量相似度匹配碎片知识,微调依赖训练数据分布;
- 零样本能力:新增商品类别时,RAG仅需补充知识库,微调需重新标注数据。
注:若政策逻辑极度复杂(如多维规则组合),可补充微调模型做决策,但RAG仍是主干方案。
面试官:接下来聊聊 Agent。请描述一个你熟悉的 Agent 框架(如 LangChain Agent、AutoGPT),并说明它在处理复杂任务时如何协调规划、工具调用和迭代?
(考察:框架原理+执行逻辑理解)
参考答案:
LangChain Agent的核心流程(ReAct模式):
- 规划:LLM解析任务并拆解(如“写财报分析” → 拆为“搜索数据→计算指标→生成报告”);
- 工具调用:根据子任务选择工具(如
GoogleSearchTool
查新闻,PythonREPLTool
计算负债率);- 迭代执行:
- 观察工具返回结果(如API返回的JSON数据);
- 若结果异常(如数据缺失),触发自我修正(如调整搜索关键词重试);
- 合成输出:整合各工具结果,生成最终答案。
关键优势:通过AgentExecutor
自动循环执行“思考-行动”直到任务完成。
面试官:现在有一个需求:“分析某上市公司近三年的财务风险”。如果让你设计一个 Agent 工作流,需要调用哪些工具?如何保证分析过程的可靠性?
(考察:任务拆解+工具链设计能力)
(提示:工具如 搜索引擎、财经API、Python计算、文档总结等)
参考答案:
工作流设计:
- 数据获取:
- 调用
SecAPITool
获取年报原始数据(资产负债表/现金流量表);- 使用
NewsAPITool
检索近三年重大事件(如诉讼、监管处罚);- 指标计算:
- 通过
PythonREPLTool
计算财务比率(流动比率、负债率等);- 风险建模:
- 用
RiskModelTool
(预置规则库)评估指标异常阈值;- 报告生成:LLM整合数据,输出风险评级与依据。
可靠性保障:
- 交叉验证:对比API数据与权威媒体报道;
- 过程可解释:保留工具调用日志(如“负债率=85%>阈值80%,标记高风险”);
- 人工审核层:关键结论触发人工复核。
面试官:RAG 在实际应用中常遇到 检索精度低 的问题。假设用户提问时,系统返回了不相关的文档片段,导致生成答案错误。你会从哪些方向优化?
(考察:工程问题解决能力)
(可选方向:Embedding模型优化、chunk 策略、查询重写、混合检索等)
参考答案:
分层优化策略:
- Query侧:
- 查询扩展:用LLM生成同义问题(如“退货流程” → “如何退换已拆封商品?”);
- HyDE技术:生成假设答案并检索其向量(提升语义泛化能力);
- 文档侧:
- 动态分块:按语义而非固定长度切分(如用
NLTK
句子分割+标题嵌入);- 多粒度索引:同时存储段落级与文档级向量,混合检索;
- 检索侧:
- 混合搜索:结合关键词搜索(BM25)与向量搜索,缓解术语错配;
- 重排序(Rerank):用交叉编码器(如
bge-reranker
)对Top-K结果精排。
面试官:最后一个问题:RAG 和 Agent 能否结合使用?请举一个具体场景说明它们如何协同工作。
(考察:技术融合思维+创新意识)
(示例场景:Agent 调用 RAG 作为“知识查询工具”完成报告撰写)
参考答案:
结合方案:Agent将RAG作为“知识工具”调用,例如行业分析报告生成任务:
- Agent规划阶段:拆解任务 → “1. 检索新能源政策;2. 提取竞争公司技术;3. 对比市场份额”;
- 调用RAG工具:
- Agent传入子任务描述:“检索中国2024年光伏补贴政策”;
- RAG从政策库返回精准片段(如《十四五可再生能源规划》第5章);
- 结果合成:Agent将多个RAG结果+API数据(如财报)输入LLM,生成结构化报告。
协同价值:
- RAG → 提供可靠知识支撑,避免Agent幻觉;
- Agent → 实现多步骤决策,超越RAG的单轮问答局限。
面试结束前反问环节
面试官:你有什么问题想问我吗?
(考察:主动性+业务理解深度)
(建议提问方向:团队当前技术栈、业务落地挑战、对候选人的期待等)
参考答案:
- 技术栈:团队当前构建Agent主要使用哪些框架?(如LangChain vs LlamaIndex vs 自研?)
- 落地挑战:在贵公司的业务场景中,RAG最大的工程瓶颈是什么?(如检索延迟/知识更新同步)
- 候选人期待:该岗位更关注系统设计能力、Prompt工程深度还是工具链开发经验?