阿里 ai agent 开发一面

阿里 ai agent 开发一面

元数据

正文

#大模型 #agent #面试题 #面经

#大模型 #agent #面试题 #面经 #作者

长图内容(视觉重读)

由 AI 视觉重读截图整理,替代原 tesseract OCR 乱码。图 p01–p07 为手机截图的问答长文(阿里 AI Agent 开发一面,时间 2026.3.29),p09–p11 为表情包贴纸。Q6 题面未被截图覆盖(仅存答案结尾"……调度策略"),Q10 答案在截图处截断。

1. Agent 的架构设计?

一个完整的 Agent 一般不是单独一个大模型就能跑起来,核心会拆成几层:最上面是任务入口,负责接收用户问题和上下文;中间是决策层,负责意图识别、任务拆解、规划和工具选择;下面是执行层,真正去调工具、查知识库、访问服务;最后是记忆和状态层,维护多轮上下文、历史执行结果和中间变量。做得再工程化一点,通常还会加一个校验层——模型规划出来的步骤不一定总是对的,工具参数也可能填错,所以执行前后都要做参数合法性校验、工具返回结构校验、结果一致性校验。Agent 真正难的地方不是"能不能想",而是"想完之后能不能稳定执行"。

2. RAG 的检索如何实现?

RAG 检索一般分离线和在线两部分。离线侧先做文档清洗、切块、去重、embedding 计算和向量入库;在线侧把用户 query 编码成向量去向量库召回,再结合 BM25 或关键词检索做混合召回,接着用 rerank 模型重排,最后把最相关的证据拼接给大模型生成答案。切块策略很重要:块太大召回不准,块太小上下文容易断裂,通常用滑窗切分保留部分 overlap;长文档还会给每个 chunk 带上标题、章节路径、来源等元信息。最终效果不只看向量检索本身,还取决于 chunk 设计、召回策略和重排质量。(原文附简化版 RAG 检索流程代码:embed(query) → vector_db.search + bm25.search → merge_and_dedup → reranker.rank → 拼接 context)

3. 预训练数据清洗方法?

要解决脏数据、重复数据和低质量数据:脏数据包括乱码、HTML 残留、脚本片段、异常符号、错误编码;重复包括完全重复和近重复;低质量包括广告、无意义灌水、模板文、机器翻译残片、拼接错乱文本。常见做法是先规则清洗(去标签、过滤控制字符、长度约束、语言检测),再质量过滤(困惑度过滤、分类器识别垃圾文本、关键词规则),然后去重(MinHash、SimHash、LSH 这类近重复方法)。真正影响模型上限的很多时候不是模型结构,而是预训练数据质量。

4. 给定一个时间序列,如何通过机器学习的方法建模筛选出重要特征,然后基于规则方法进行建模?

先把原始序列变成可学习的特征:统计特征、趋势特征、波动特征、周期特征和滞后特征,比如均值、方差、最大最小值、移动平均、环比同比、lag 值、rolling window 特征、傅里叶周期特征等。然后用 XGBoost、LightGBM、随机森林这类模型训练,输出特征重要性,把识别出的关键因子整理成多条规则做线上解释。这样既保留了机器学习筛特征的能力,也兼顾了规则系统的稳定和可解释。

5. Agent 工具调用你知道怎么训练吗?训练集应该包含哪些,怎么得到训练的数据集?

训练集至少要覆盖三类样本:该调用工具的、不该调用工具的、需要多工具串并联调用的。只教模型"会调用"不够,还得教它"什么时候不要调""参数怎么补齐""失败后怎么处理"。数据来源一般四种:人工标注轨迹(问题、思考过程、工具选择、参数填写、结果整合成监督样本);线上日志回放(抽高质量人工操作或已有系统调用链);规则合成数据(模板生成标准调用样本);模型自举(强模型生成轨迹,人工抽检修正)。真正关键的是负样本和边界样本——参数缺失、工具返回空、多个工具都可用但优先级不同,这些不补模型上线很容易乱调。

6.(题面未被截图覆盖) 答案仅存结尾"……调度策略"。

7. 你构造数据集遇到过什么难点,怎么解决?

最大的问题一般不是数据不够,而是数据不真实:人工造的数据太标准,用户表达完整、参数给全、工具永远成功,上线后用户一句话没说全模型就不会了。解决方式是把真实线上 query 引进来,按意图、复杂度、缺参情况、歧义情况分桶做针对性补齐。另一个难点是标注一致性——同一种问题不同人可能给出不同工具路径,需要先统一 schema 和决策标准。还有长尾样本太少,要靠模板改写、对抗生成和人工补充边界案例,把最容易出事故的地方优先补上。

8. LoRA 和全参数微调的区别?

LoRA 是在原始权重旁边插入低秩矩阵,只训练少量新增参数,原模型参数通常冻结;全参数微调直接更新模型所有参数。LoRA 优势是显存占用小、训练快、方便多任务切换,适合领域适配、指令跟随、工具调用格式对齐这类场景;全参数微调自由度更大,但代价也更高。

9. DPO、PPO、GRPO?

PPO 是强化学习式对齐方法,通常需要一个 reward model 对模型输出打分,再根据奖励做策略更新——灵活,但训练链路长、超参数敏感、稳定性相对差。DPO 把偏好学习直接写成监督式目标,用 chosen 和 rejected 成对数据直接优化策略,不显式采样长期轨迹也不显式训练 RL policy update,工程上更简单。GRPO 可以看成把偏好从 pair 扩展到 group,利用一组候选之间的相对优劣关系做优化,在排序、多样本比较和组内奖励场景更自然。三者最大区别不只是公式,而是依赖的数据形态、训练稳定性和适用任务范围不一样。

10. kernel 级别的优化,比如用 CUTE DSL 或者手写 CUDA 做 fusion,这类算子融合优化?

kernel 级别优化的核心目标是减少访存开销、减少 kernel launch 次数、提高并行利用率。很多模型推理慢不一定是算力不够,更多是 memory bound……(截图在此截断)

图片

p01.webp
p02.webp
p03.webp
p04.webp
p05.webp
p06.webp
p07.webp
p09.png
p10.png
p11.png

评论摘录

我的批注