2025分享一次大模型算法社招的面试经验(非常详细)从零基础到精通,收藏这篇就够了!

本文笔主亲身经历,面试公司有腾讯、字节、拼多多、饿了么、顺丰科技、携程、金山、富途、TCL、虾皮等。

大体上面试流程基本一致:

  • 自我介绍

  • 项目拷打

  • 通识考察

  • 手撕代码

  • 反问

下面我会从上面 5 个维度出发,记录下自己的经验和看法。

01

自我介绍

自我介绍是对背景和工作经历的概述,所以尽可能突出你自己做的比较好且有把握的项目,这样面试官在提问的时候也会因为你自己提到的内容而往这方面走。

不过有一些面试官就是会找简历上和自己业务相关或者感兴趣的项目来进行提问,所以你在简历上提到的项目都需要非常熟悉。

02

项目拷打

这一部分决定了面试官对于你经验的评估,项目的理解要深一些,这个只能通过不断打磨完善项目经历。

微调项目:

  • 业务背景

  • 数据的构成,是否使用了合成数据

  • 训练的过程中用了什么方法(为什么用这样的方式,用别的方式会有什么问题,是否尝试过)

  • 如何评估整体的效果

  • 微调之后是否还会出现幻觉的问题,出现了的话应该怎么处理

  • 这个能力是否只能用在当前业务场景,是否可以作为一个通用的能力

  • 是否尝试过用其他的基座模型

应用层项目:

  • 业务背景

  • 逻辑框架

  • 优化前和优化后的能力差距

  • 遇到最大的困难是什么?怎么解决的

  • 是否还有别的优化方式

  • 某个流程是否可以进行再优化

  • 上线之后的效果反馈

03

通识考察

(1)Transformers 和之前的模型的区别,为什么 Transformers 好?

追溯到最开始的 seq2seq 模型,RNN 模型的一个比较大的问题就是序列长了之后,效果变长;

后期的 LSTM 通过三个门控机制比较好的解决了这个长短期记忆问题,但是这两种模型都是串行模型,在计算复杂度上比较大,推理时间比较长。

Transformers 通过 encoder + decoder 堆叠的形式,通过残差连接、多头注意力机制、位置编码的形式实现了比较好的 seq2seq 的效果。

(2)介绍下 Bert,框架,预训练和后续的微调任务?

embedding 层由 positional_embedding + token_embedding + segment_embedding 组成,然后进入 encoder 层。

这里主要是通过多头注意力的方式将输入转换为 Q,K,V,三个矩阵,然后通过 softmax(QK.T / sqrt(dk)) V 来计算,然后加残差和 layer norm,最后接入一层 FFN。

预训练任务主要是两个,一个是 MLM (masked language model 预测 masked 的 token)和 NSP(next sentence prediction),后续的微调任务有命名实体识别,分类等。

(3)为什么 Bert 适合做向量模型,底层原理是什么?

推理耗时比较短,底层原理是利用【CLS】这个无语义的 token 向量表征来表示整个输入的语义。

训练方式类似于 simcse 的对比学习通过判断 positive 和 negative 的【CLS】的 token 的语义的相对值来进行参数更新(原理即正样本和输入 query 的向量相似度要大于负样本和输入 query 的向量相似度)。

(4)RoBERTa 做了什么优化?

训练过程中去掉了 NSP 任务,动态掩码策略,更大的训练批次和数据量,嵌入层的初始化方式不同,加入 AdamW 优化器。

(5)想要大模型输出的内容都为 json 格式,怎么实现?

限制解码,训练的时候 response 都为 json 格式。

(6)OOM 问题怎么处理

模型量化、模型并行、低精度训练、混合精度训练、限制最大文本长度、减少训练 batch、deepspeed 的三个显存优化方案等。

(7)大模型的参数量是怎么计算出来的?

大模型的参数量计算通常涉及以下几个关键部分:

Embedding 层:包括词嵌入、位置嵌入等,参数量由词表大小乘以嵌入维度决定。例如,词表大小为 30522,嵌入维度为 1024,则词嵌入的参数量为两者的乘积。

Transformer 层:

Self-Attention:每个注意力头有三个权重矩阵(Q、K、V),每个矩阵的大小为嵌入维度乘以投影维度,投影维度通常是嵌入维度。

如果有 L 层,每层有 H 个头,每个头的参数量为 3 * 嵌入维度 * 投影维度。

FeedForward Network(FFN):通常包含两个线性层,第一个从嵌入维度映射到较大的中间层,第二个再映射回嵌入维度。参数量为两层的输入输出维度的乘积之和。

Layer Normalization:每个 Transformer 层后通常有 LayerNorm,它有少量参数(通常为每个隐藏层的两个参数)。

模型结构参数:包括层数(L)、头数(H)、嵌入维度(D)、中间层大小(F)等。

一个基本的 Transformer 层的参数量可以近似为 4 * H * D^2 + 2 * D * F。

通过将所有这些部分的参数量相加,就可以得到整个模型的总参数量。

例如,对于特定的模型配置(如层数、头数、嵌入尺寸等),可以使用公式结合具体数值进行计算。

例如,TinyLLaMA 模型的参数量就是基于其特定的架构参数计算得出的。

(8)DeepSeek R1 的训练方式,GRPO 的原理是什么?

尽可能少的使用 SFT,通过冷启动少部分 QA 数据来进行 SFT,然后再使用大量的强化学习和多阶段 SFT 来进行调优。

GRPO(Group Relative Policy Optimization)的核心原理是让模型通过对模型同一批次生成的答案来进行 reward 打分,然后进行组内比较,来更新模型。

(9)基于过程的强化学习和基于结果的强化学习的差异是什么?

基于过程:更关注智能体采取行动的过程,即智能体如何根据环境状态做出决策以及决策的序列。

它强调学习一个策略,使得智能体在每个状态下都能选择合适的行动,以最大化长期累积奖励。

例如,在机器人路径规划中,基于过程的强化学习会关注机器人如何一步一步地选择移动方向,以找到到达目标的最优路径。

基于结果:主要关注最终的结果或目标是否达成,以及达成结果的效率等指标。

它通常不关心智能体具体是通过怎样的过程或行动序列来达到目标的,只看重最终是否成功以及相关的结果指标。

比如在游戏中,基于结果的强化学习只关注是否赢得游戏,而不关心游戏过程中具体的操作步骤。

这个题属于开放话题,读者可以根据自己的理解去分析,这两种强化学习的优势和弱势。

(10)Agent 的概念是什么?整体流程是怎么样的

Agent 在强化学习的概念就是一个能够感知环境并在环境中采取行动以实现特定目标的实体。

主要由三部分能力:感知能力,决策能力,执行能力。

Pipeline:了解用户需求,进行需求拆分。决定是否需要调用其他子 Agent,如何调用,正确的顺序。

调用之后的结果进行评估,是否能够解决问题,如果不能应该如何进行修正,如果则执行回复等。

(11)DeepSeek R1 对于 Agent 的能力是否有提升,如何进行运用?

首先明确下 DeepSeek R1 的最大提升主要是在逻辑计算能力上的重大提升,这在 Agent 场景下的复杂任务处理,路径规划上是能够起到很大帮助,通过 Reasoning 的方式进行任务分析,拆分,子 Agent 编排,这都是很大的一个提升。

(12)RAG 的整体流程和评估方式?

整体流程

知识(数据)收集,数据预处理(通过分段+滑动窗口等方式进行 chunking),构建索引(es + milvus向量库)。

检索时通过多路召回+精排的方式来提升召回率,LLM 知识融合生成,后处理,判断问句和生成的答案的一致性。

评估方式

基于生成结果的评估:

  • BLEU:计算生成文本与参考文本之间的 n-gram 重叠程度,评估生成文本与标准文本的相似性,得分越高表示生成结果越接近参考文本。

  • ROUGE:主要基于召回率,衡量生成文本与参考文本之间的词汇重叠情况,如 ROUGE-1、ROUGE-2 分别计算一元组和二元组的召回率,用于评估生成文本的内容完整性和准确性。

  • METEOR:综合考虑了词汇重叠、同义词匹配、词干提取等因素,更全面地评估生成文本与参考文本的语义相似性,取值范围为 0 到 1,越接近 1 表示生成效果越好。

基于检索效果的评估:

  • 准确率(Precision):检索出的相关文档数量与检索出的文档总数的比值,反映了检索结果的精确性,越高表示检索出的不相关文档越少。

  • 召回率(Recall):检索出的相关文档数量与数据库中实际相关文档总数的比值,衡量了检索系统找到所有相关文档的能力,越高表示漏检的相关文档越少。

  • F1 值:综合考虑准确率和召回率的指标,是它们的调和平均数,F1 值越高,说明检索效果越好。

人工评估:

  • 内容相关性:评估生成的文本是否与用户输入的问题或任务要求紧密相关,是否回答了关键问题,提供了有价值的信息。

  • 语言质量:检查生成文本的语法正确性、词汇丰富度、语句流畅性等,判断语言表达是否自然、准确,有无明显的语病和逻辑错误。

  • 实用性:根据具体应用场景,评估生成文本对用户的实际帮助程度,是否能够满足用户的需求,是否具有可操作性和实际价值。

(13)如何解决 RAG 中信息覆盖率低、幻觉、逻辑计算的问题?

单一的 RAG(Navie RAG)的能力肯定不足以应该复杂场景,需要结合知识图谱的方式来对文档进行实体和关系抽取。

同时增加互信息索引在召回阶段召回信息更相关的片段,逻辑计算问题需要引入专用的计算模块,例如数据计算库,逻辑推理引擎(具体可以参考KAG)。

(14)大模型的数据合成应该怎么做?有哪些方式

self instruct 的方法去基于种子数据生成、wizardlm 在这个基础上对数据进行复杂化、也有 ultrachat 这种 llm 相互对话的方法、前段时间比较火的是 magpie,相当于用温度让模型自由发挥。

(15)大模型预训练和 SFT 的 loss 的差别是什么?

首先 loss 函数都是 cross entropy,只是大模型预训练和 SFT 的输入不同, 大模型预训练的 loss 计算的整个输入的 loss,而 SFT 中 prompt 的那部分需要被 mask 掉,只计算 completion的loss。

(16)DeepSpeed 的三个 stage 分别是什么?有什么作用

DeepSpeed 是微软开发的一个用于大规模分布式训练的深度学习优化库,它的 ZeRO(Zero Redundancy Optimizer)技术包含三个主要阶段(Stage),旨在减少内存使用并提高训练效率。

以下为你详细介绍这三个阶段及其作用:

Stage 1:优化器状态分片(Optimizer State Partitioning)

原理:在传统的分布式训练中,每个 GPU 都会复制一份完整的优化器状态(如 Adam 优化器中的梯度累积和动量项),这会导致大量的内存冗余。

而在 ZeRO Stage 1 中,优化器状态会被均匀地分片到各个 GPU 上,每个 GPU 只保存一部分优化器状态。

例如,假设有 4 个 GPU 参与训练,每个 GPU 只保存 1/4 的优化器状态。

作用:显著减少了每个 GPU 上的内存占用,使得可以使用更大的模型和批量大小进行训练。

同时,由于每个 GPU 只需要更新自己所负责的优化器状态,减少了通信开销,提高了训练效率。

Stage 2:梯度分片(Gradient Partitioning)

原理:在反向传播过程中,每个 GPU 会计算一部分模型参数的梯度。在传统方法中,这些梯度会被汇总到每个 GPU 上,以便进行优化器更新。

而在 ZeRO Stage 2 中,梯度也会像优化器状态一样被分片到各个 GPU 上,每个 GPU 只保存一部分梯度。

这样,在进行优化器更新时,每个 GPU 只需要根据自己所保存的梯度和优化器状态进行参数更新,而不需要等待所有梯度的汇总。

作用:进一步减少了每个 GPU 上的内存占用,因为不需要保存完整的梯度信息。同时,减少了梯度通信的量,降低了通信开销,提高了训练的并行性和效率。

Stage 3:参数分片(Parameter Partitioning)

原理:在 ZeRO Stage 3 中,不仅优化器状态和梯度会被分片,模型参数本身也会被分片到各个 GPU 上。

每个 GPU 只保存一部分模型参数,在进行前向传播和反向传播时,通过通信机制动态地获取所需的参数。

例如,当一个 GPU 需要计算某个参数的梯度时,它会从保存该参数的 GPU 上获取该参数。

作用:极大地减少了每个 GPU 上的内存占用,使得可以训练非常大的模型,甚至超过单个 GPU 内存容量的模型。

同时,通过动态参数获取和通信机制,保证了模型训练的正常进行,提高了内存利用率和训练效率。

(17)模型并行和数据并行的区别是什么?这两种方式的数据流和梯度是怎么更新的

模型并行:将一个深度学习模型按照不同的层次或组件划分到不同的计算设备(如 GPU)上,每个设备负责处理模型的一部分。

例如,在一个深度神经网络中,将前几层放在一个 GPU 上,后几层放在另一个 GPU 上。

数据并行:将训练数据分成多个小批次,同时在多个计算设备上进行模型训练,每个设备都拥有完整的模型副本。

比如,有 1000 张图像的训练数据集,可将其分成 10 份,每份 100 张,分别在 10 个 GPU 上进行训练。

模型并行数据流和梯度更新

数据流:输入数据首先被送到负责模型起始部分的设备上进行计算,得到中间结果后,将中间结果传递给下一个负责后续模型部分的设备,依次类推,直到得到最终的输出结果。

例如,在一个由两个 GPU 组成的模型并行系统中,GPU1 处理输入数据的前半部分计算,将结果传给 GPU2,GPU2 再进行后半部分的计算得到最终输出。

梯度更新:在反向传播过程中,从输出层开始,每个设备根据接收到的梯度信息计算自己所负责模型部分的梯度,并将梯度传递给前一个设备,同时根据计算得到的梯度更新自己所负责的模型参数。

各设备之间需要进行频繁的梯度通信和同步,以确保模型参数的正确更新。

数据并行数据流和梯度更新

数据流:不同的计算设备同时处理不同批次的数据,每个设备都使用自己的模型副本对输入数据进行前向传播计算,得到各自的输出结果。

例如,在有 4 个 GPU 的数据并行训练中,每个 GPU 都对自己分到的那部分数据进行独立的前向传播计算。

梯度更新:每个设备在完成前向传播后,独立计算自己所处理数据批次的梯度。

然后,将这些梯度进行汇总平均,通常通过 AllReduce 等通信操作将所有设备上的梯度汇总并求平均,得到全局平均梯度。

最后,每个设备根据这个全局平均梯度来更新自己的模型参数,以保证所有设备上的模型参数保持一致。

(18)DP/PP/TP/DDP 的概念分别介绍一下?

DP (data parallelism)数据并行:数据并行是指将训练数据分成多个小批次,同时在多个计算设备(如 GPU)上进行模型训练,每个设备都拥有完整的模型副本。

PP(pipeline parallelism)流水线并行:管道并行是将深度学习模型按照不同的层次或阶段划分成多个部分,每个部分分配到不同的计算设备上,数据像在管道中流动一样,依次经过各个设备进行处理。

TP (tensor parallelism)张量并行:是将模型中的张量(如权重矩阵、激活值等)在不同的维度上进行划分,分布到多个计算设备上进行并行计算。

DDP(distributed data parallelism) 分布式数据并行:是数据并行的一种分布式实现方式,用于在多个节点(如多台服务器)的集群环境中进行深度学习模型训练,每个节点可以包含多个计算设备。

(19)常用的分词方式 BPE 的原理是什么?

山野闲人:[LLM] 从实践到理论,Byte Pair Encoding(BPE) 深度调研

https://zhuanlan.zhihu.com/p/657938053

04

手撕代码

算法代码:

  • 手写位置编码

  • 手写多头注意力机制

Leetcode:

  • 零钱兑换

  • 最长递增子序列

  • 打家劫舍

  • 最长公共子序列

  • 跳跃游戏

真题

题 1:不调用库函数或**算子,实现 p 的 a 分之b 次幂

题目描述:

  • a、b 是整数,p 是有理数

  • 不考虑非法情况(分母为 0,负数开方等)

  • 结果精确到小数点后 2 位

题 2:c 是非负整数,是否存在 a*a + b*b = c?

05

反问

问题如下:

  • 明确新公司的业务方向,现在大模型的方向很多,技术方向:RAG,Agent,微调,数据合成等,应用方向有:智能客服,流程优化等。

  • 工作强度

  • 公司是否有明确的晋升机制

  • 调薪幅度及周期(算法目前在市场上还是属于香饽饽,不调薪的话人是留不太住的)

面试两个月下来,大模型算法工程师在市场上还是比较紧缺的,特别是 deepseek 之后,不管是互联网公司还是传统行业都开始投入 AI,机会和风险并存。

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值