腾讯 CSIG 业务后训练日常实习一二面:大模型与 RL 高频深挖
- 轮次
- 一面+二面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
一面
- 大模型位置编码的演进路径是怎样的?从绝对位置编码到 RoPE 之后还有哪些优化方向?
- 视频 VLM 如何处理视频数据?帧采样策略、时序建模、去除画面冗余分别怎么做?
- Qwen2-VL 与 Qwen3.5-VL 相比,视频输入与图片输入的编码有哪些差异?
- 超大分辨率图片、长文档输入的适配难点有哪些?图像压缩与文档结构化方案怎么做?
- 模型推理超参 Top-k、Top-p、Temperature、Beam Search、Thinking Mode 分别起什么作用?
- SFT 与 RL 的核心特性分别是什么?各自对应哪些业务落地场景?
- 大模型完整的数据 Pipeline 是怎样的?数据增强、Label Model、数据飞轮分别怎么搭?
- 稀疏 Attention 的原理是什么?训练与推理阶段的算力和开销会发生什么变化?
- 模型量化的主流方法有哪些?量化对精度、速度和显存各有什么影响?
二面
- RL 训练的核心监控指标有哪些?熵值、KL Loss、各类 Reward 分别有什么作用与训练意义?
- KV Cache 的核心原理、复用机制和推理显存优化逻辑是什么?
- vLLM 与 SGLang 的加速机制有什么区别?Batch 推理、前缀缓存的实现差异在哪?
- PPO 与 GRPO 的完整算法细节、核心差别、训练开销与适用场景分别是什么?
- PPO 中 Actor、Critic、Reward Model 的分工逻辑与协作关系是怎样的?
- RL 的三个核心——重要性采样、优势裁剪、KL 约束——底层各起什么作用?
- 如何解释模型置信度?为什么优先用 Verbalized 置信度而不是 Logits 概率判定?
- VLM 全流程训练分哪几个阶段?CLIP 预训练、模态融合、后续接续训练怎么衔接?
- 模型业务指标上涨时怎么归因?基座、SFT、RL、Bad Case、样本分布分别怎么分析?
《参考解析》
位置编码与 RoPE 的演进:最早是绝对位置编码,正弦编码或可学习的位置 embedding 直接加到词向量上,缺点是外推能力差、超出训练长度就崩。RoPE 换了个思路,对 Q、K 施加与位置相关的旋转矩阵,使二者的内积天然只依赖相对距离,因此相对位置被编码进注意力本身,也兼顾了远程衰减。后续优化基本都围绕「长度外推」:位置插值(PI)把超长位置线性压缩回训练区间;NTK-aware 动态缩放和 YaRN 改造 RoPE 的 base 与不同频段的缩放比例,让高频维保持分辨率、低频维负责外推;再往后是滑窗注意力加少量全局 token(LongRoPE 一类)以及直接换掉注意力形式(稀疏、线性注意力)来降低长上下文开销。回答时要落到一句话:方向是「在不重训或少量微调的前提下把有效上下文拉长」。
视频 VLM:采样、时序建模与去冗余:视频本质上是一串帧,难点在 token 预算。帧采样有均匀采样、按 FPS 采样、按场景切换(镜头边界)采样、以及按信息量动态采样;帧率越高时序信息越全,但视觉 token 数线性上升。时序建模常见三种:把相邻帧在时间维拼接后做时空注意力或 3D 卷积;用 Q-Former / Perceiver 这类重采样器把长序列压成固定数量的时空 token;或者不做显式时序模块,只靠位置编码表达时间——Qwen2-VL 的 M-RoPE 就是把位置拆成时间、高、宽三维,视频多出来的那一维专门表示帧序。去冗余的手段包括相邻帧相似度去重、token merging / 时空池化、只保留变化区域,以及动态帧率:静止片段少给帧、运动片段多给帧。
Qwen2-VL 与 Qwen3.5-VL 的编码差异:回答要落在几个可量化的点上——位置编码的维度(图片是二维高宽,视频多一维时间)、视觉 token 的分配策略(原生动态分辨率把图片切成不同数量的 patch,按原图长宽比分配 token,而不是统一 resize 到固定分辨率)、以及帧数上限与时间维压缩比例。视频相比图片多的是时间维位置 id 与帧间压缩,代价是 token 数成倍增长,因此新版一般会在「支持更长视频 / 更高帧率」与「时间维下采样压缩率」之间做取舍,并补齐音视频与交错多模态输入的编码路径。如果没读过具体版本的技术报告,就老实按「位置编码维度、token 压缩率、时序预算」三个维度说明判断方法,而不是硬报数字。
超大分辨率与长文档适配:根本矛盾是视觉 token 数随分辨率近似平方增长。主流做法是切片加全局缩略图:把大图切成若干子图分别编码,再补一张整图缩略图保留版面结构;配合 token 压缩(pixel shuffle、resampler、视觉 token 池化)把总量压到上下文可承受的范围。文档场景更依赖结构化:先做版面分析,分出文本块、表格、公式、图片区域,再分别识别,最后按阅读顺序还原成 Markdown 或 HTML——表格用 HTML 表示能保住行列结构,纯文本转写会丢。多栏排版和跨页表格是常见的坑,需要在还原阶段做顺序合并。
推理超参:Temperature 缩放 logits 改变分布陡峭度,值越大越发散;Top-k 只在概率最高的 k 个 token 里采样;Top-p(核采样)取累计概率达到 p 的最小集合,比 Top-k 更自适应,实际调参一般只调 Temperature 与 Top-p 其中之一。Beam Search 保留多条候选路径,适合翻译、结构化生成这类有唯一正确答案的任务,但多样性差、开销是 beam 数倍,开放式对话里容易生成保守重复的内容。Thinking Mode 是让模型先输出思维链再给答案,在数学、代码、复杂推理上提升明显,代价是输出 token 和延迟大增,简单任务上反而可能被长思考带偏。
SFT 与 RL 的核心特性:SFT 是最大似然拟合人工标注的示范数据,学的是「格式、指令跟随、领域表达、标准解法」,数据量千级到万级就能见效,缺点是天花板受标注分布限制、只学到「像标注者」而不直接优化目标;RL 用奖励信号直接优化行为,能对齐难以示范的目标(有用、无害、诚实)并提升可验证任务的正确率(数学、代码用规则或单元测试做奖励,即 RLVR),代价是训练不稳定、需要奖励模型或验证器、调参敏感。业务上典型分工是:SFT 做冷启动和格式统一,RL 做效果拔高与偏好对齐;线上指标要涨通常两步都要,只做 SFT 会在复杂推理上停住,只做 RL 容易语言能力退化。
数据 Pipeline 与数据飞轮:完整链路是数据收集 → 清洗去重(规则过滤、MinHash / SimHash 近重复、语义去重)→ 质量打分(规则加小模型分类器,也就是 Label Model)→ 合成与增强(self-instruct、拒绝采样、改写扩增)→ 配比与课程排序 → 训练 → 评测回流。数据飞轮的关键不是「多」,而是把线上信号变成可训练标签:线上 bad case 采样 → 归因聚类 → 补数据或补规则 → 小步训练验证 → 上线再收集。飞轮转得动的判据是每一圈都能定位出上一圈没覆盖的分布,而不是重复灌同类样本。
稀疏 Attention:全注意力对序列长度是 O(n²),稀疏注意力只让每个 token 关注部分位置——固定模式(滑动窗口、块稀疏、膨胀窗口)实现简单、推理友好;可学习稀疏(如块路由、NSA / MoBA 一类)按内容动态选块,效果更接近全注意力但训练实现复杂。训练阶段因为要做反向,稀疏模式必须对梯度友好,通常选块状或直通估计,算力下降的比例取决于稀疏率,但工程复杂度上升;推理阶段收益主要在 KV Cache 与 attention 计算量,配合 PagedAttention、KV 量化和前缀复用,长上下文的吞吐提升才明显。要注意的是稀疏只是「省算力」,检索能力会损失,长依赖任务上要用全局 token 或分层注意力补回来。
量化:主流分训练后量化(PTQ)与量化感知训练(QAT),PTQ 里 GPTQ、AWQ 是权重量化的代表,SmoothQuant 处理激活的离群值,FP8 则是训练与推理都能用的低精度格式。对显存的影响最直接:权重显存近似按位宽线性下降,INT4 相比 FP16 约省 4 倍,长上下文场景再叠 KV Cache 量化收益更大。对速度的影响取决于硬件是否支持对应的低精度算子,INT8/FP8 在支持的卡上才有吞吐收益,INT4 更多是省显存、解码速度提升有限。对精度的影响与「量化哪里」有关:权重可以激进(4bit),激活通常保守(8bit),离群通道要单独处理;低于 4bit 或对精度敏感的任务建议 QAT 或混合精度。
RL 训练的监控指标:熵值反映策略分布的锐利程度,掉得太快说明探索不足、容易早熟并 reward hacking,掉得太慢则训练没进展。KL Loss 衡量当前策略相对参考模型的偏移,数值过大意味着语言能力与既有知识开始退化,通常用它作为约束项或早停信号。Reward 要拆开看:任务奖励(正确性)、格式奖励、长度惩罚、偏好模型分数,分别观察分布、均值和相关性——某一项主导总分时,模型会学会钻那一项的空子。除此之外还要盯 response 长度、重复率、以及固定评测集上的分层指标,避免只看训练 reward 一路上涨。
KV Cache 与推理显存:自回归生成时每步都要对历史 token 做注意力,缓存每层的 Key、Value 可以避免重算,把单步计算从随长度平方降为线性,代价是显存。占用近似正比于「层数 × 2 × KV 头数 × head_dim × 序列长度 × batch × 精度字节」,对序列长度和 batch 都是线性,所以长上下文加高并发时 KV Cache 会超过模型权重成为主要占用。优化手段按收益排序:MQA / GQA 减少 KV 头数、KV Cache 量化到 INT8/FP8、PagedAttention 分页管理减少碎片、前缀缓存复用公共系统提示、滑动窗口或 StreamingLLM 只保留近期窗口加少量注意力锚点,最后从系统层限制单请求最大长度与并发数。
vLLM 与 SGLang 的加速机制:vLLM 的核心是 PagedAttention——把 KV Cache 按固定大小的 block 管理,消除显存碎片,从而支持更大的并发 batch;配合 continuous batching(迭代级调度,请求完成即退出、新请求立即插入)把 GPU 利用率拉满,前缀缓存基于 block 的内容哈希复用相同前缀。SGLang 的核心是 RadixAttention,用基数树(radix tree)管理前缀,公共前缀的匹配与复用粒度更细、淘汰策略更自然,在多轮对话、少样本示例、共享系统提示这类前缀高度重合的场景命中率更高;它还提供结构化输出与前端 DSL 做调度优化。Batch 推理的差别本质在调度粒度:静态 batch 要等整批做完,continuous batching 按迭代调度,因此实际吞吐差距主要体现在请求长度方差大的时候。
PPO、GRPO 与 RL 三核心:PPO 需要四个模型——Actor 出策略、Critic 估状态价值算优势、Reward Model 给分数、Reference 模型算 KL,流程是采样 → 算优势(GAE)→ 按 ratio 加 clip 更新策略 → 同步价值网络,显存和工程开销都大,训练也不够稳。GRPO 去掉 Critic:对同一个 prompt 采样一组回答,用组内奖励的均值与标准差做标准化得到优势,其余部分与 PPO 同构,省掉一个和策略同规模的模型,特别适合奖励可验证的任务(数学、代码),但组内奖励全相同(全对或全错)时优势为零、样本被浪费。三核心的作用分别是:重要性采样用 ratio = π_new / π_old 把 on-policy 数据复用成 off-policy 更新;优势裁剪通过 clip 限制单步更新幅度,避免策略跳变;KL 约束把新策略拉在参考模型附近,防止语言能力和格式崩坏——三者合起来就是「敢更新,但不许跑偏」。
置信度:Verbalized 还是 Logits:Logits 概率看似客观,实际受 temperature、tokenization 和答案表述不唯一的影响——「是的」和「对的」是两个 token,概率会被摊薄;RLHF 之后的模型分布被系统性压平,概率与正确率的相关性变差。让模型直接输出一个置信度(Verbalized)的好处是可以要求它给区间或理由、能和解释一起产出,实测校准度往往更好,代价是模型会系统性过度自信。更稳的工程做法是绕开单点概率:多次采样看一致性(self-consistency)、用外部验证器或规则校验、或者把置信度做成一个由证据数量与来源可靠性决定的组合分数。
VLM 全流程训练:典型是三段式。第一段 CLIP 式图文对比预训练,用海量弱标注图文对把视觉编码器与语言侧对齐到同一语义空间;第二段连接器训练,冻结视觉编码器与大模型,只训 projector / resampler,把视觉特征映射到语言模型的输入空间,这一步决定模型能不能看懂图;第三段多任务指令微调,解冻部分或全部参数,用 VQA、OCR、grounding、文档理解等混合数据训练,再往后是偏好对齐(DPO / RLHF)与领域继续训练。关键设计点有分辨率与位置编码策略(动态分辨率、M-RoPE)、视觉 token 压缩率、冻结/解冻的时机,以及各阶段的数据配比——第一阶段数据量最大但质量最粗,第三阶段数据量小但决定实际可用性。
业务指标上涨怎么归因:先排除口径问题——指标定义有没有改、数据 pipeline 有没有变、流量结构(新老用户、渠道、机型、query 类型)是否发生迁移,再看是否只是统计波动。确认是真涨之后再分层拆解:按场景、语言、长度、难度分桶,找到涨幅集中的那一桶。然后沿训练链路定位:基座是否换过 → SFT 数据是否加量或改配比、训练步数是否变化 → RL 的奖励配置与策略漂移(KL、熵、长度)→ 抽样 bad case 做聚类看残留问题 → 对比训练样本分布与线上分布是否更接近。手段上以消融为准,逐个回滚单个改动看指标回落多少,辅以固定评测集的分层指标和人工抽检,避免把多个改动叠在一起后做一个无法证伪的归因。