跳转至

大模型面试必备:模型训练与微调 15 问全解析

来源:https://mp.weixin.qq.com/s/-NSKlPyMOkaFqIINP6n0Sw

一、技术选型篇:什么时候用什么方案?

Q1:提示工程、RAG 和微调,在实际项目中应该如何选择?

这是大模型应用开发中最经典的问题。记住一个核心判断逻辑:先诊断问题,再选择方案。 问题类型症状解决方案没问清楚模型理解不了你的意图提示工程缺乏背景知识模型不知道你的私有数据RAG能力不足模型学不会特定任务微调提示工程是最轻量级的方案。当你发现模型回答跑偏时,先别急着微调,试试优化 Prompt。比如加上"请分步骤思考"、"用 JSON 格式输出"等指令,往往能立竿见影。 RAG(检索增强生成) 适合需要实时知识或私有数据的场景。比如企业内部知识库问答,你不可能每次有新文档就微调一次模型,这时候 RAG 就是最佳选择。 微调是"重型武器",适用于: - 需要学习特定输出格式(如医疗报告、法律文书)

  • 垂直领域的深度推理策略

  • 将复杂能力注入到较小的开源模型中

实战建议:80% 的场景用提示工程 + RAG 就能解决,只有 20% 才需要微调。别一上来就微调,成本太高。

Q2:谈谈你对预训练和微调的理解

用一句话概括:预训练是"上大学",微调是"岗前培训"。 预训练让模型具备通用语言能力: - 数据规模:万亿级 token

  • 计算成本:极高(通常由基座模型公司主导)

  • 目标:学习语言本身的规律、世界知识

微调让模型掌握垂直领域能力: - 数据规模:1k - 1M 条高质量指令

  • 计算成本:较低(应用开发者可承担)

  • 目标:适应特定任务、学习私域知识

类比理解:预训练培养了一个通识教育毕业的本科生,微调则是针对具体岗位(客服、医生、律师)的专业培训。

二、微调技术篇:从全量到高效

Q3:什么是全参数微调?为什么需要 PEFT?

全参数微调就是更新模型中所有参数的权重。听起来很直接,但成本极高: - 7B 模型全量微调需要约 140GB 显存

  • 需要保存完整的优化器状态和梯度

PEFT(参数高效微调) 应运而生,核心思想是:只训练一小部分参数。 常见 PEFT 方法: - LoRA:低秩自适应,最流行

  • Prompt Tuning:只训练软提示

  • Adapter:插入小型适配层

PEFT 将可训练参数比例降到 1%-10%,使得在消费级显卡(如 RTX 4090)上微调大模型成为可能。

Q4:请解释 LoRA 微调的原理?为什么能大幅降低显存消耗?

LoRA(Low-Rank Adaptation)的核心洞察是:模型微调过程中的权重更新具有"内在的低秩特性"。 传统微调:直接修改原始权重 W

h = Wx
LoRA 微调:冻结 W,增加旁路 BA

h = Wx + BAx
其中: - W 是原始预训练权重(冻结不动)

  • A 是降维矩阵(如 512→8)

  • B 是升维矩阵(如 8→512)

  • BA 构成低秩更新量 ΔW

显存节省原理:

微调显存 ≈ 模型权重 + 优化器状态 + 梯度 + 激活值
LoRA 通过减少可训练参数量,把优化器状态和梯度的显存占用降到极低。配合 QLoRA(4-bit 量化),7B 模型单卡微调仅需 12-16GB 显存。 形象理解:LoRA 不是重新装修房子,而是在原有结构上挂一幅画,改动小但效果显著。

Q5:知识蒸馏中,什么是软标签和硬标签?温度系数有什么作用?

硬标签(Hard Labels):传统的 One-hot 编码

猫:[1, 0, 0, 0, 0]  # 只告诉你是猫
软标签(Soft Labels):教师模型输出的概率分布

猫:[0.7, 0.2, 0.1, 0, 0]  # 还告诉你它有点像狗,但不像汽车
软标签包含"暗知识"(Dark Knowledge)——类别之间的相似性关系。 温度系数(T) 的作用: - T 越大,概率分布越平滑,学生模型学到更多类别间关系

  • T=1 时为正常概率

  • T→0 时接近硬标签

训练策略:蒸馏时用较高的 T(如 T=4)让学生学习软标签,推理时恢复 T=1。 为什么软标签更好? 硬标签丢失了负样本信息。软标签保留了结构信息,帮助学生模型更好地泛化,尤其在数据量少时效果显著。

Q6:SFT、RLHF 和 GRPO 的区别?为什么 GRPO 适合做推理训练?

这是大模型对齐技术的"三驾马车": 技术全称核心思想成本SFT监督微调模仿人类标注的优质数据低RLHF人类反馈强化学习用奖励模型打分 + PPO 优化高GRPO组相对策略优化基于一组输出的相对优势中SFT:最基础,让模型学会遵循指令和对话格式。 RLHF:需要训练独立的奖励模型(Reward Model),然后用 PPO 等算法优化。成本高,训练不稳定。 GRPO(DeepSeek 提出):去掉了独立的奖励模型,直接基于一组输出的相对优势计算奖励。 为什么 GRPO 适合推理训练? 推理任务(数学、代码)有可验证的答案。GRPO 可以直接根据答案正确性给予奖励,无需训练复杂的奖励模型,显存占用更低,收敛更快。 类比:RLHF 像请评委打分,GRPO 像直接对答案——后者显然更高效。

Q7:微调时,数据数量和数据质量哪个重要?如何准备微调数据?

结论:数据质量 > 数据数量 1000 条精心构造的指令,往往比 10 万条网页抓取数据效果更好。低质量数据会导致: - 灾难性遗忘(忘了原有能力)

  • 学到错误模式

如何准备高质量微调数据? - 数据清洗:去重、去除乱码、过滤低质内容

  • 格式统一:确保符合模型接受的 Prompt 格式

  • 多样性:覆盖不同任务类型、长度和难度

  • 领域对齐:数据分布接近实际应用场景

  • CoT 注入:对于推理任务,准备带思维链的数据

实战建议:先构建小的"黄金数据集"验证流程,再逐步扩展。垂直领域中,专家标注的数据价值远高于通用数据。

Q8:微调后如何评估大模型的效果?只看 BLEU 分数够吗?

不够!BLEU 是过时的指标。 BLEU/ROUGE 基于 n-gram 重叠,适合机器翻译,但不适合评估大模型的逻辑、事实准确性和安全性。 综合评估体系: 评估类型指标适用场景客观指标准确率、F1、Pass@k分类、代码任务模型评估LLM-as-a-Judge通用生成质量基准测试C-Eval、MMLU、GSM8K通用能力业务指标转化率、用户满意度实际业务避坑指南: - 保留独立验证集(Hold-out Set),防止过拟合

  • 微调后测试通用能力是否下降

  • 业务场景优先看业务指标,而非学术指标

三、工业落地篇:从理论到实践

Q9:在工业质检中,YOLO 和 VLM 你会怎么选?

这是经典的目标检测 vs 多模态大模型的选择问题。 选择 YOLO 的情况: - ✅ 缺陷类型固定且已知

  • ✅ 需要实时检测(FPS > 30)

  • ✅ 部署在边缘设备或低成本 GPU

  • ✅ 有大量标注好的缺陷图片

选择 VLM 的情况: - ✅ 缺陷类型未知或频繁变化(零样本能力)

  • ✅ 需要描述缺陷成因、评估严重程度

  • ✅ 只有少量缺陷样本

  • ✅ 需要自然语言查询

行业趋势:混合架构——YOLO 初筛 + VLM 复检。YOLO 快速定位可疑区域,VLM 进行精细分析和描述,兼顾速度与智能。

Q10:YOLO 的数据集是怎么标注和准备的?

标注工具:LabelImg、CVAT、Roboflow YOLO 格式(.txt 文件):

<class_id> <x_center> <y_center> <width> <height>
坐标均为归一化值(0-1 之间)。 准备流程: - 采集:覆盖不同光照、角度、背景

  • 标注:确保框紧贴物体,不漏标

  • 划分:训练集 70%、验证集 20%、测试集 10%

  • 配置:生成 .yaml 文件,指定路径和类别名称

质量控制:多人标注时需交叉验证,避免对"划痕"等缺陷的定义标准不一。

Q11:在缺陷检测任务中,数据量少你会采用哪些数据增强?

传统增强:旋转、翻转、裁剪、亮度/对比度调整、噪声注入 高级增强: - Mosaic/Mixup:多图拼接或混合

  • Copy-Paste:将缺陷抠图粘贴到正常背景(强烈推荐)

  • GAN/Diffusion 生成:合成逼真缺陷图像

  • Cutout/Random Erasing:模拟遮挡

无监督/半监督:利用大量无标签数据,通过伪标签训练。 特别注意:工业缺陷通常很小,增强时不要破坏缺陷特征(如过度模糊可能抹掉细微划痕)。

Q12:在工业 AI 质检中,Precision 和 Recall 哪个更重要?

通常 Recall(召回率)更重要。 原因:漏检(False Negative)意味着缺陷产品流向客户,导致投诉、召回或安全事故,成本极高。 策略:宁可误报(False Positive),不可漏报。误报产品可人工复检,漏报产品无法追回。 例外:如果误报成本极高(如误报导致整批昂贵材料报废),则需平衡 Precision。 核心思想:技术指标必须服务于业务成本。构建"成本矩阵",计算漏检一个缺陷 vs 误报一个良品的成本,以此设定阈值。

四、工程实践篇:显存、框架与部署

Q13:微调大模型时,如何估算所需的显存(VRAM)?

全参数微调估算公式:

模型权重:参数量 × 2 bytes (FP16)
优化器状态:参数量 × 8 bytes (AdamW)
梯度:参数量 × 2 bytes
激活值:取决于 Batch Size 和序列长度
总计:约 16-20 bytes / 参数
示例:7B 模型全量微调 ≈ 7 × 20 ≈ 140GB 显存 LoRA 微调: - 冻结主模型,仅训练旁路矩阵

  • 7B 模型约需 12-16GB 显存(配合量化可更低)

经验法则: - 1B 参数全量训练 ≈ 20GB 显存

  • 1B 参数 LoRA 训练 ≈ 2-4GB 显存

显存优化技巧: - Gradient Checkpointing(牺牲计算换显存)

  • Mixed Precision(混合精度)

  • Offload(将部分状态卸载到 CPU)

Q14:Unsloth 框架是什么?CPU 和 GPU 上微调有什么区别?

Unsloth 框架: - 针对 LLM 微调优化的开源库

  • 手动优化反向传播内核(Triton)

  • 训练速度提升 2 倍,显存占用减少 60%

  • 单卡 4090 可微调更大模型

CPU vs GPU 微调: 维度GPUCPU并行能力强弱速度快慢 10-100 倍适用场景主流微调仅调试/推理成本高低为什么 Unsloth 快? 它重写了 Attention 和 MLP 层的反向传播代码,减少内存碎片和不必要计算开销,是工程优化的典范。

Q15:如何将大模型的推理能力迁移到小模型上?

知识蒸馏是核心方法: - Logits 蒸馏:小模型学习大模型的输出概率分布

  • 特征蒸馏:小模型中间层特征逼近大模型

  • 思维链蒸馏:大模型生成 CoT 数据,微调小模型学习推理过程

其他方法: - 架构搜索(NAS):设计高效小模型架构(如 MobileLLM)

  • 量化:INT4/INT8 降低部署门槛

  • 提示压缩:学习大模型的 Prompt 压缩表示

价值:端侧部署(手机、IoT)需要小模型。通过蒸馏,小模型可继承大模型 80%-90% 的能力,推理成本降低 10 倍。

            预览时标签不可点




































<div class="