Skip to main content

百度面试

一面

  1. 算法题 写一个类,模型每秒给你一个输入,判断包括当下最近5s内以及包括当前秒是否有3次输出为1
  2. 介绍项目
  3. VLM的组成
  4. 对于哪个VLM比较熟系,qwen3-vl与qwen2.5-vl区别
    • qwen2-vl: 采用原生动态分辨率:单一分辨率 -> 任意分辨率, Qwen-VL模型输入只接受单一分辨率的图片,Qwen2-VL可输入不同分辨率的图像,避免了Vision数据适配单一分辨率而导致的失真问题。 Vision Encoder位置编码:绝对位置编码 -> 相对位置编码,从二维三角位置编码升级到二维RoPE位置编码,RoPE对长序列有更好的泛化能力,有利于提升对长序列Vision特征的建模能力 LLM主体模型位置编码:1D->3D RoPE,引入多模态旋转位置编码技术(M-RoPE),刻画多模态(时序、高、宽)三维数据。进一步提升对时空数据的建模能力。 统一多模态数据: 单图片 -> 统一图片和视频,统一框架处理图片和视频数据,进一步提升对真实世界认知和理解能力
    • qwen2.5-vl: 预训练:第一阶段训练ViT+Merger对齐文本和图像两个模态。也就是说在这个阶段,仅训练视觉Transformer(ViT)。第二阶段使用更多样化的数据和任务上训练所有参数,使模型能处理更复杂的任务。所有模型参数均解冻,模型在多样化的多模态图像数据上进行训练,以增强其处理复杂视觉信息的能力。该阶段引入了更多复杂且推理密集的数据集,如交错数据、多任务学习数据集、视觉问答(VQA)、多模态数学、基于Agent的任务、视频理解和纯文本数据集。第三阶段在更长序列的输入上训练模型,为了进一步提升模型在更长序列、视频以及基于代理的数据上的推理能力,同时增加了序列长度。 Qwen2.5-VL的训练后对齐框架采用了一个双阶段优化范式,包括监督微调(SFT)和直接偏好优化(DPO)。在这两个阶段中,Vision Transformer(ViT)参数都是冻结的。
    • qwen3-vl: 从架构上来看,Qwen3-VL 依然沿用 ViT + Merger + LLM 的整体范式,但在模块交互和位置编码上引入了显著改进:它通过 DeepStack 能在深层网络中更有效的保留视觉信息,通过 交错-MRoPE 和基于文本的时间对齐机制 解决了多模态长序列的时空建模瓶颈,从而实现了更强的时空感知能力。 从预训练流程来看,Qwen2.5-VL 采用经典的三阶段式训练,侧重于 ViT 的从头培养;而 Qwen3-VL 升级为四阶段,新增了专门的对齐阶段(Stage 0),并且在长窗口(Long Context)的训练上更加激进,将其拆分为两个阶段以冲击 256K 的超长上下文 。 从后训练流程来看,这是变化最大的地方。Qwen2.5-VL 依靠传统的 SFT + DPO 组合 ;而 Qwen3-VL 引入了强弱知识蒸馏和强化学习 (SAPO算法)两个环节 ,标志着多模态模型从单纯的指令遵循向具备推理能力的 Agent演进。 参考链接1
  5. qwen3VL相比于其他VLM的优势 qwen3引入了DeepStack Architecture,将不同尺度的视觉层输出注入到LLM的多个层中,保留了从低级到高级表示的丰富视觉信息。在传统的“输入层融合”架构中,视觉 Token 经过 80 层 Transformer 的计算后,其原始的像素级细节(如微小的纹理、边缘)会被高度抽象的语义信息淹没(Over-smoothing)。DeepStack 通过在中间层(比如第 40 层)再次注入原始视觉特征,相当于给了模型一次“刷新记忆”的机会。这让模型在进行深层逻辑推理时,依然能访问到底层的视觉细节。 Internvl3.5初始化的第一步开始,就让 Vision Encoder 和 LLM 的权重全部解冻,在海量的交错图文(Interleaved Data)上进行端到端训练。相比 LLaVA 的 "Projector Pre-training" 有什么劣势?优势是上限高,劣势是极其昂贵且不稳定。LLaVA 只训练一个 Projector,Vision Encoder 和 LLM 都是冻结的,几小时就能训完。InternVL3.5 需要让 Vision Encoder (6B) 和 LLM (70B) 同时更新权重。这不仅需要庞大的算力集群,还容易出现模态竞争(Modality Collapse)——模型可能发现走捷径(只看文本)更容易,从而忽略视觉信号。因此需要极高超的 Loss 调优技巧。
  6. 微调VLM的时候你会遇到哪些问题
  7. 对于一个image,如何统计其经过embeddings后token的数量 如果视觉 backbone 是 Vision Transformer(ViT),通常就是把图像切成 patch:例子:输入 224×224,patch 16×16,所以有14 * 14个token
  8. 大模型中temperature的作用: 大模型中的 Temperature(温度)参数用于控制生成文本的随机性和创造性:低温度(接近0)使模型更“确定”,倾向于选择概率最高的词,输出更稳定、可预测(适用于事实问答、摘要);而高温度(>1)使模型更“冒险”,拉平概率分布,增加选择低概率词的几率,输出更多样、有创意(适用于故事创作、头脑风暴)。它通过调整模型预测下一个词的概率分布来实现这一效果

二面

给定一个hours数组表示每天工作的小时和一个k表示最大连续工作的天数,返回最大工时

def work_until(hours, day, sum, k, last_days): #last_days 表示已经连续工作的天数
if day == len(hours):
return sum
if last_days < k:
return max(work_until(hours, day + 1, sum + hours[day], k, last_days + 1),
work_until(hours, day + 1, sum, k, 0))
else:
return work_until(hours, day + 1, sum, k, 0)

def main(hours, k):
return work_until(hours, 0, 0, k, 0)

hours1 = [1, 2, 3, 1]
print(main(hours1, k=1))

项目细节:有没有用在其他领域,多模态大模型怎么去做

  • qwen-vl对于image处理,生成多少token? 它首先检查图像输入,调用图像处理器将其转换为特征张量(pixel_values)并提取网格几何信息(image_grid_thw,如 [1, 86, 128]);接着,它利用该几何信息计算出实际需要的 Image Token 数量,将文本 Prompt 中原本单个的图像占位符动态扩展为对应的 Token 序列,最后调用分词器将扩展后的文本序列转换为 input_ids 和 attention_mask,并将所有文本和视觉特征封装成一个统一的 BatchFeature 对象。