随着大模型的迅速发展,笔者在刚经历的秋招面试中,深感会大模型已经从原来的加分项变成了如今的必须项。
大数据岗位包括数据开发、数据科学、数据分析、数据挖掘等岗位,由于大数据涉及到底层的数据平台、数据仓库,赋能到下游应用层的用增、风控等具体业务,也映射到数据科学、推荐策略等等,因此,这里统一归纳为大数据岗位。
在2024年,如果你会大模型,尝试用大模型做过一些小项目,那么面试官会眼前一亮。
在2026年,如果你不会大模型,没有实际的生产项目,那么面试官会认为你没有学习能力。

今天,笔者从大模型的微调技术概要出发,结合秋招面试过程中被问到的高频问题,进行总结,形成如下文字。
后续笔者会陆续补充 DPO、强化学习 等核心知识点,感兴趣的同学可以关注一下~
前一篇关于大模型核心技术概要如下所述:
微调
基本问题引出
面试官:有自己动手尝试做一下大模型微调方面的内容吗?例如 LoRA 微调之类的。
候选人:。。。
LoRA篇
这一部分的核心出发点就是考察 LoRA 原理。
Q1:讲一讲 LoRA 微调吧?
它的核心理论依据是‘内在秩假说’,即预训练大模型在适配下游任务时,权重的更新量存在一个极低的‘内在维度’。
基于此,LoRA 的做法是:冻结预训练模型的主干权重 ,在旁边增加一个旁路。
这个旁路由两个降维和升维的矩阵相乘构成:
假设输入维度和输出维度分别是 和 ,LoRA 会引入一个降维矩阵 和一个升维矩阵 ,其中秩 。在前向传播时,原来的输出是 ,加入 LoRA 后变成 。通过这种方式,我们只需要训练 和 这两个小矩阵,从而将可训练参数量降低了几个数量级,大幅减少了显存消耗并提高了训练速度。
有关原理可参考笔者之前发布的一篇公众号文章:
Q2:LoRA 的 A 矩阵和 B 矩阵在初始化时有什么区别?为什么要这样设计?
矩阵A采用随机数初始化(例如随机高斯分布、kaiming初始化),矩阵B采用全零初始化,或者使用极小的随机数初始化。
保证在训练刚开始(Step 0)时,旁路的增量权重 W=AB=0。这意味着加上 LoRA 模块后的模型初始输出,和原本未经微调的预训练模型输出完全一致。这样可以避免在训练初期引入随机噪声导致模型表现突然崩溃,保证了微调过程的稳定起步。
Q3:LoRA 微调完成后,如何将旁路权重合并到主干模型中?合并后对模型的推理延迟有影响吗?
权重的合并本质上是一个线性相加的数学过程。因为预训练权重 和 LoRA 增量权重 的形状完全相同(都是 ),所以在微调结束后,我们直接计算 ,将合并后的新矩阵作为模型最终的权重保存即可。
合并后,对推理延迟没有任何影响。因为合并后的模型结构和参数量与原始预训练模型完全一样。这正是 LoRA 优于早期串联式 Adapter(会增加网络深度,从而增加前向传播时间)的关键优势之一。
Q4:除了基础的 LoRA,你了解过 QLoRA 或 AdaLoRA 吗?它们分别解决了什么痛点?
QLoRA:基础 LoRA 虽然减少了优化器状态的显存,但主干模型依然是以 FP16 甚至 FP32 加载的,对单卡(如消费级显卡)还是太大。QLoRA 引入了4位正态浮点数(NF4)来加载主干模型,并结合双重量化和分页优化器(Paged Optimizers)。它的核心贡献是能在单张 48G 甚至 24G 显卡上微调 65B 级别的模型,同时基本不损失模型性能。
AdaLoRA:基础 LoRA 给所有层分配了相同的秩,但实际上模型不同层对下游任务的重要性是不同的。AdaLoRA 基于奇异值分解的思路,动态且自适应地分配 Rank 预算。对于对任务重要的权重矩阵,分配更高的秩;对不重要的层,分配更低的秩甚至剪枝,从而在相同的总参数量预算下,获得比基础 LoRA 更好的微调效果。
Prompt 篇
这一部分个人认为考察的是看你有没有真正动手微调过大模型,有没有思考过如何优化之类的。
Q5:讲一讲基于 Prompt 的微调吧?
传统的“硬提示”是人类编写的离散文本,大模型很难通过梯度下降直接去优化它。基于 Prompt 微调的核心原理,是引入了连续的“软提示”。
具体而言,它会将庞大的预训练基座模型的所有权重完全冻结,只在模型的输入层或内部结构中,拼接一小段可训练的连续向量。在反向传播训练时,梯度只更新这些新增的少量向量参数。
其本质是:利用基座模型强大的通用表征能力,通过优化这些微小的外部特征向量,在隐空间中将模型的注意力引导至特定的下游任务上,从而实现防遗忘且低算力成本的参数高效微调(PEFT)。
每种方法的大致原理如下:
Prompt Tuning:只在输入层的起始处插入可训练的向量。
Prefix Tuning:在所有层的起始处插入可训练的向量。
P-Tuning:旨在输入层的某些位置插入可训练的向量。
Q6:参数高效微调 PEFT 和 指令微调 SFT,两者各代表什么含义?有什么联系?
参数高效微调 PEFT:将庞大的预训练基座模型的所有权重完全冻结,只在模型的输入层或内部结构中,拼接一小段可训练的连续向量。
指令微调 SFT:通过精心设计的指令对,来训练大模型,让大模型能够学习到符合特定领域的回答方式。
联系:PEFT 的训练数据集不仅仅可以是指令对,也可以是翻译、情感分类等数据集,具体关注的是如何低成本地更新参数。SFT 关注的是数据,教模型如何回答。因此,SFT 可以使用 PEFT 中的 LoRA、Prompt Tuning等方法实现。
SFT——学什么?
PEFT——如何学?
Q7:你怎么做微调技术选型的呢?
资源与数据足够的话,上全参微调。
资源不足,数据足够,上 LoRA 。
资源不足,数据不足,上 Promtp 或者 QLoRA。
除此之外,如果是想保留模型的泛化能力,尽量不要使用全参微调。如果是想训练一个垂直领域的大模型,则可以考虑全参微调。
Q8:讲一讲微调的 Loss 是怎么计算的吧?
基于交叉熵进行计算。即真实标签与模型预测概率分布之间的交叉熵损失。
具体计算方式可总结成如下步骤:
拼接文本——构建 Labels——Mask Prompt——左移——交叉熵。
Q9:在 SFT 阶段,计算 Loss 时通常是对整个输入(Prompt + Response)计算,还是只对 Response 部分计算?在 PyTorch 中,具体是如何通过代码实现只对部分 Token 计算 Loss 的?
在 SFT 阶段,只针对 Response 阶段计算Loss。Prompt 只是用户给定的上下文或指令,属于条件,微调的目的是让模型学会在给定的 Prompt 条件下,如何生成高质量的 Response。
具体步骤如下:
-
拼接文本,将 Prompt 和 Response 拼接成完整的输入 input_ids。
-
构建 Labels,克隆一份 input_ids,作为 Labels。
-
Mask Prompt,找到 Prompt 的长度,将 Labels 中对应 Prompt 位置的值全部替换为 -100。
-
Shift 处理,在计算 Loss 之前,将模型的输出向左 Shift 一位,将 Labels 向右 Shift 一位对齐。
-
计算 Loss,传入损失函数,PyTorch 会自动忽略值为-100的位置,只对 Response 部分计算梯度。
Q10:怎么收集微调数据集呢?
微调数据集一般来源于四个部分:
-
人工标注,质量天花板。
-
使用更强的模型进行数据合成,但是需要人工进行校验,适合冷启动阶段。
-
真实对话产生,但是要注意用户隐私。
-
从社区论坛或百科等进行爬虫,同样需要人工进行校验。
Q11:在垂直领域微调时,模型经常会出现“灾难性遗忘”(即通用能力下降)。你在构建数据集或训练时,会采取哪些策略来缓解这个问题?
模型主要通过预训练获取知识,而SFT的作用是教会模型更有效地利用这些知识,即对齐格式和激发能力,如果强行注入新的知识,可能会增加模型的幻觉风险。即避免引入过多新知识,以防引入过多幻觉。
为了避免产生通用性下降的能力,可以在垂直领域数据集的基础之上,引入10%到20%的通用指令。对于动态的、深度的行业知识,可以采用 RAG 的方式,让模型拥有垂直领域的知识。再者全参微调很容易破坏预训练权重导致遗忘,可以使用 LoRA 等参数高效微调的方式,通过冻结原本的 Base Model 权重,只在旁路更新极少量的参数。
Q12:大模型训练中常提到 fp16 和 bf16,你能讲讲 bf16 相比于 fp16 的优势是什么吗?为什么大模型训练现在更倾向于使用 bf16?
bf16 解决了深度学习训练中极其致命的数值溢出问题,即表示的数值范围远远超过 fp16。这是因为神经网络的权重对动态范围极其敏感,而对绝对的数值精度具有很强的鲁棒性。
- FP32(单精度): 1 位符号位,8 位指数位,23 位尾数位(精度)。
- FP16(半精度): 1 位符号位,5 位指数位,10 位尾数位。最大只能到 65504。
- BF16(Brain Float 16): 1 位符号位,8 位指数位,7 位尾数位。最大能到 10的38次方。
Q13:模型微调好之后,你怎么判断好不好?
-
训练过程中的一些指标可以判断,例如损失值、准确值之类的。
-
挂载到 BaseModel 上的时候,可以通过 10-20 个最关心,或容易引发幻觉的 Prompt 进行测试。
-
使用开源客观 Benchmark 进行测试。
-
使用更强的模型做裁判。
开放性试题分享
最后,老规矩,分享一个典型的开放性面试题,这也是笔者面试被问到的一个问题,欢迎大家在评论区发表想法。
Q6:微调过程中,有没有遇到什么困难?你是怎么解决的?后续是怎么进行复盘的?有没有什么收获之类的?
这题个人认为来源于一个经典的面试题,即你实习过程中,遇到的最大的一个技术难点是什么?你是如何解决的?你有什么收获?
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
👇👇扫码免费领取全部内容👇👇

1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

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

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

4. 2026行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

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

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

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇

1065



被折叠的 条评论
为什么被折叠?



