面灵AI→

百度大模型算法岗一面二面面经(GSPO 与多智能体)

轮次
一面+二面
时间
2026-09
来源
牛客网

《面试题目》

一面

  1. 在强化学习对齐方案中,你为什么优先选用 GSPO 算法?相较于传统的 PPO、当下主流的 GRPO,GSPO 具备哪些独特优势?
  2. 简述视觉语言大模型的图文问答实现逻辑,图像信息如何与文本特征融合并支撑问答推理?
  3. 相较于单一智能体架构,多智能体(Multi-Agent)协作框架在复杂任务场景下的核心优势体现在哪些维度?
  4. 在多智能体系统中,是否会单独设置专属拆分智能体,专门负责整体任务的拆解与分发工作?
  5. 多智能体协作体系内,各个子智能体之间的信息交互、通信协作机制是如何设计实现的?
  6. 大模型智能体的长期记忆模块采用何种存储架构与方案,如何实现记忆的留存与调用?
  7. 详细梳理通义千问多模态模型的迭代脉络,从初代 VL 版本到后续迭代版本,在能力与结构上做了哪些关键优化升级?
  8. 解释 MRoPE 位置编码的核心原理,同时说明 Qwen 系列后续版本针对 MRoPE 存在的问题做出了哪些针对性改进?
  9. 在医疗、金融等高风险落地场景中,如何通过技术方案保障 Agent 输出内容的准确性、稳定性与可靠性?
  10. 讲解检索增强生成 RAG 的整体技术架构,完整梳理从检索到生成的全流程工作逻辑。
  11. 算法手撕:实现最长公共子序列(LCS)。

二面

  1. 阐述 ReAct 范式的核心思想,说明其如何通过「推理 + 行动」的方式优化智能体任务执行能力?
  2. 介绍大模型双层记忆机制的设计逻辑,在多智能体共享上下文、共用任务场景下,如何保障全局数据的一致性与唯一性?
  3. 大模型微调流程中,SFT 监督微调数据与 RLHF 强化学习对齐数据,在数据筛选标准、数据用途上有什么核心区别?
  4. RLHF 训练过程中的奖励值由什么模块计算生成?整套流程是否依赖人工标注参与,如何降低标注成本?
  5. 讲解项目中使用的检索体系,分别说明向量数据库、BM25 检索算法、Embedding 表征模型的具体作用与选型依据?
  6. 知识库检索支持的语料类型包含哪些,是否覆盖多模态数据?图像输入场景下,如何接入并适配整体检索流程?
  7. 线上业务中如何量化评估大模型生成回答的质量?介绍使用的相似度阈值标准与向量表征模型选型。
  8. 深度讲解自注意力机制的底层本质,同时说明模型训练过程中 Q、K、V 三个权重矩阵的初始化与获取方式。
  9. 算法手撕:实现最长回文子串。

《参考解析》

GSPO 相对 PPO、GRPO 的优势:先说清三代方法的演进逻辑。PPO 是经典 RLHF 方案:用 token 级的重要性比 π_θ/π_old 做 clip 约束策略更新幅度,同时训练一个独立的 critic(价值网络) 估计基线,代价是显存与训练复杂度高,且价值估计本身有偏。GRPO 去掉了 critic——对同一个 prompt 采样一组(group)回答,用组内奖励的均值/标准差做归一化当优势(baseline),大幅省显存,配合可验证奖励(数学/代码的规则打分)效果很好,是当前开源对齐的主流;但 GRPO 的重要性比仍然是 token 级的,每个 token 各自有一个比值并独立 clip。GSPO(Group Sequence Policy Optimization)的关键改动是把重要性比提升到序列级:用整条序列的似然比(长度归一化后的 log 概率差)作为优化信号,clip 也在序列级做。带来的好处:① 训练更稳定,尤其对 MoE 模型——MoE 的专家路由会让单个 token 的概率在训练/推理之间有抖动,token 级比值噪声大,序列级比值把这个噪声平均掉;② 长序列上更鲁棒,不会出现「少数 token 比值爆炸把整条序列的梯度带偏」;③ 对训练框架与推理框架之间的数值精度差异更宽容(无需依赖 routing replay 之类的技巧),工程实现更简单;④ 保留 GRPO 无 critic、组内归一化的低成本特性。回答时把「去掉 critic(GRPO 相对 PPO)+ 序列级比值(GSPO 相对 GRPO)」两级对比讲清楚,才是面试官想听的。

MRoPE 与 Qwen 多模态的迭代:MRoPE(Multimodal RoPE)要解决的是「怎么给图像/视频 token 一个有意义的位置」。文本是一维序列,用一维 RoPE 就够;但图像是二维、视频是三维(时间 × 高 × 宽),如果按光栅顺序拉平,同一列上下相邻的 patch 在序列里距离很远,位置关系被破坏。M-RoPE 的做法是把 RoPE 的旋转维度切成三段,分别承载 temporal / height / width 三个位置 id:图像 token 的 t 固定、h/w 按 patch 网格递增;视频里同一空间位置跨帧保持相同的 h/w、t 随帧递增。这样空间邻接与时间一致性都被编码进去,并且因为位置 id 是显式给的,模型能外推到训练时没见过的分辨率(配合动态分辨率切图)。它的问题:三段位置 id 是按固定比例均分的,长视频或极端长宽比下,时间维度的 id 增长过快、超出训练分布,外推能力差;而且文本 token 与视觉 token 的位置 id 分布不一致,混排时容易出现对齐问题。Qwen 后续版本(Qwen2.5-VL)的针对性改进主要有两条:① 时间维改用绝对时间对齐——按帧的真实时间戳(秒)分配时间 id,而不是按帧序号,这样不同帧率的视频位置语义一致、长视频外推更稳;② 重新分配三段维度的长度,把更多维度让给空间(h/w)、时间维度按真实时间动态伸缩,缓解固定均分带来的失衡。此外 2.5-VL 在视觉编码器侧改用原生动态分辨率 + 窗口注意力(大部分层用窗口注意力、少数层用全局注意力)来控制长视频的算力,并用绝对坐标表示框位置以适配不同分辨率。回答这道题时按「为什么需要 M-RoPE → 三段怎么切 → 为什么长视频会退化 → 后续用绝对时间与维度重分配来改」这条线讲,逻辑最顺。

多智能体协作与记忆一致性:多智能体的收益来自两点:上下文隔离(每个子 Agent 只装自己那部分信息,避免超长上下文导致注意力稀释)与并行(独立子任务同时推进)。常见的角色划分是:主管/规划器(拆解任务、分配、汇总)、执行者(工具调用型子 Agent,按领域专精)、评审者(校验输出,做事实与约束检查)。是否单独设置「拆分智能体」取决于任务复杂度——简单场景让主管兼做拆分即可;任务差异大、需要不同拆解视角时(例如既有代码检索又有数据分析)单独设一个规划 Agent 效果更好,但会多一次模型调用并引入拆解错误的风险,所以更稳的模式是「规划 Agent 产出结构化计划(子任务 + 依赖 + 验收标准)+ 主管按依赖调度」。通信机制设计的关键是不要用自然语言长文传状态:子任务输入输出用 schema 约束的结构化数据,共享状态放外部存储(工作台文件、KV、消息队列),Agent 之间只传引用与差异;需要协商时用显式的消息协议(如「结论 + 证据 + 置信度」三段式)。记忆方面,短期记忆就是当前会话的上下文(靠裁剪与摘要控制长度),长期记忆通常落成「向量库(语义检索)+ 结构化库(事实、偏好、任务状态)+ 文件工作区(原始产物)」,写入时做抽取与去重(同一事实以最新时间戳覆盖),读取时按相关性召回。多 Agent 共享记忆的最大风险是并发写冲突与版本不一致,解法是:单一写入者(只有主管能写全局记忆)、乐观锁/版本号(写时带 version,冲突则重读合并)、幂等键避免重复写入、以及把「事实」与「推断」分开存(推断必须带来源与时间,可被覆盖)。二面追问「如何保障全局数据一致性与唯一性」时,落到「唯一写入者 + 版本号 + 幂等键 + 冲突合并策略」这四点就是完整答案。

高风险场景(医疗、金融)如何保障输出可靠:思路是「不信任单次生成」。① 约束解码与结构化输出——用 schema/JSON mode 约束格式,关键字段(剂量、金额、日期、产品代码)用枚举或正则校验,不合法就重试或拒答;② RAG 强约束且必须可溯源——回答只能基于检索到的权威知识库(药品说明书、监管文件、产品合同),每条结论附出处,检索不到就明确说「无法确认」而不是凭记忆编;③ 多路验证——同一问题多次采样或让不同模型/不同提示独立生成后比对(self-consistency / 交叉验证),不一致就升级人工;④ 规则与工具兜底——涉及计算、合规判定的部分交给确定性代码/工具执行(如利率、赔付规则、剂量计算),模型只负责理解与解释,不负责算;⑤ 分级与人工介入(human-in-the-loop)——按风险分级,高风险动作必须人工确认后才执行,模型只出建议稿;⑥ 全链路可观测与灰度——记录输入、检索证据、模型输出、最终采纳结果,做定期抽检与回归评测集(含对抗样本与边界样本),线上先灰度小流量并设熔断(幻觉率/投诉率超阈值自动回滚);⑦ 合规侧——数据脱敏、权限隔离、审计日志、留痕可追责。答题时务必点明:幻觉无法靠提示词根治,工程上的答案是「缩小模型自由度 + 用确定性组件承担关键计算 + 人工兜底」。

RAG 的整体架构与线上质量评估:索引侧:文档解析(PDF 表格/扫描件要 OCR)→ 清洗去噪 → 切分(结构优先 + 递归 + 10%~20% 重叠,表格与代码整块保留)→ 元数据打标(来源、页码、权限、时间)→ embedding → 入向量库(HNSW/IVF 索引)+ 关键词索引(BM25)。查询侧:问题改写(多轮补全、同义扩展、拆子问题)→ 多路召回(向量 + 关键词 + 结构化过滤)→ 融合(RRF)→ rerank(交叉编码器精排)→ 按 token 预算裁剪去重 → 拼提示(带引用编号,明确「仅依据材料回答」)→ 生成 → 后处理(引用校验、安全过滤、格式校验)。评估上要分两层:检索层用 Recall@k、MRR、命中位置是否包含答案(先修检索,再修生成,否则无从判断问题出在哪);生成层用忠实度/有据性(答案的每个断言能否被检索片段支持)、答案相关性、以及人工或模型打分(LLM-as-judge 要配人工标注校准,并用固定评测集回归)。线上指标则看采纳率、追问率、点踩率、平均引证数、以及无答案时是否正确说「不知道」的比例。

自注意力机制与 Q/K/V:自注意力的本质是「每个 token 按相关性对其他 token 做加权求和」,一次矩阵运算完成全局信息交换。输入 X ∈ R^{n×d},通过三个可学习的权重矩阵得到 Q = XW_Q、K = XW_K、V = XW_V(W ∈ R^{d×d_k},多头时 d_k = d/h),注意力为 softmax(QK^T/√d_k)V(除以 √d_k 是防止点积随维度增大而方差变大导致 softmax 饱和、梯度消失)。QK^T 是相似度(谁该关注谁),V 是被取走的信息,多头让不同子空间分别学习不同关系(语法、共指、位置等),最后拼接再过一个输出投影 W_O。Q/K/V 矩阵不是初始化后固定的:它们用 Xavier/Glorot 或 Kaiming(GPT 系常用 N(0, 0.02))随机初始化,训练过程中通过反向传播与优化器更新;也就是说「Q、K、V 的获取方式」是「随机初始化 + 端到端学习」,任何「Q 取某段特征」的说法都是误读。可补充的深度:因果掩码(decoder 里上三角置 -inf 保证不看未来)、KV Cache(推理时缓存历史的 K/V 避免重复计算,代价是显存)、复杂度 O(n²·d) 以及 FlashAttention / 稀疏与线性注意力等优化。这套概念同时也是多模态模型的基础——图像 patch 编码后与文本 token 拼成一条序列共同做注意力,靠的就是位置编码(如 M-RoPE)告诉模型谁是二维的。

两道手撕:① 最长公共子序列(LCS):dp[i][j] 表示 a 前 i 个字符与 b 前 j 个字符的 LCS 长度,转移 a[i-1] == b[j-1] ? dp[i-1][j-1] + 1 : max(dp[i-1][j], dp[i][j-1]),答案是 dp[n][m];时间 O(nm)、空间 O(nm)(可滚动成一维 O(min(n,m)),但取一维时要注意 dp[j] 依赖的是更新前的 dp[j-1],所以需要临时变量保存左上角的值)。若要输出具体序列,就再反向回溯;注意子序列不要求连续,子串才要求连续(子串用 dp[i][j] = a[i-1]==b[j-1] ? dp[i-1][j-1]+1 : 0)。② 最长回文子串:最实用的写法是中心扩展——枚举 2n-1 个中心(每个字符,以及每两个字符之间的间隙),向两侧扩展直到不等,O(n²) 时间、O(1) 空间,代码短且不易错;DP 写法 dp[i][j] = s[i]==s[j] && (j-i<2 || dp[i+1][j-1]),注意按长度递增枚举。要拿满分再提 Manacher:利用回文半径数组与最右回文边界把复杂度降到 O(n),但实现繁琐,面试手写通常中心扩展即可。写完主动说清边界:空串、单字符、全相同字符(如 "aaaa" 中心扩展会退化为 O(n²))。

面试复盘:这场面试的两个特点值得注意。一是一面偏「方向与全局」、二面偏「机制与细节」:一面问算法选型、架构优势、迭代脉络这类需要判断力的问题,二面追问一致性保障、奖励模型、QKV 的获取方式这类底层机制,准备时要对每一条都有「再问一层」的答案(例如说 GSPO 稳,就要能解释为什么 token 级比值不稳)。二是所有回答都要有项目锚点——面试官明确问「讲解项目中使用的检索体系」「你使用的相似度阈值标准」,泛泛背诵论文结论会被立刻追问出真伪,务必把自己项目里的具体选型、参数与评测数据准备好。