如何在技术面试中自信应对“大模型微调”话题?

举报
ceshiren001 发表于 2025/12/17 16:58:08 2025/12/17
【摘要】 本文整理了测试开发在面试中常见的大模型微调相关问题。涵盖了从显存需求、数据构建到训练策略等35个关键点,重点分析了SFT与预训练的区别、领域适应与灾难性遗忘等核心挑战。文章强调测试开发人员需掌握模型评估、数据质量控制和训练监控等技能,以适应AI时代对质量保障提出的新要求。

从事测试开发同学这两年跳槽,会越来越频繁遇到“大模型微调”类问题。很多人第一反应是:我平时写 UI 自动化、搞接口压测,怎么突然和模型训练扯上关系了?

现实就是,AI 已经渗透进测试领域:质量评估、数据生成、智能测试、甚至大模型测试本身,都需要对微调机制、预训练逻辑、指令数据构造有基本理解。

下面整理了一份涵盖 35 个经典微调面试问题的技术解读帮助你在面试里不被问懵。


1. 全参数微调到底要多少显存?

取决于模型大小和训练配置。简单记一条经验:显存 ≈ 参数量 × 2~3 倍(训练时会有梯度、优化器状态等额外开销)。 比如 70B 模型,基本不考虑本地,只能上集群。

测试开发常问:为什么显存这么夸张? 因为训练时不是“推理那么轻松”,而是要反向传播、保存梯度、优化器状态,天然三倍体积。


2. 为什么很多人做完 SFT 感觉模型“变傻”?

SFT(有监督微调)容易让模型“过度跟随数据”,如果数据质量不均、指令风格太窄,模型会失去原有的探索能力,生成模式单一。 类似你做接口自动化时,只给脚本喂固定场景,脚本当然学不会异常情况。


3. SFT 的指令数据怎么构建?

关键不在量,而在指令覆盖度风格一致性。 一个常见模式是:

指令:给出任务  
输入:补充信息(可空)  
输出:模型应该生成的内容

对测试开发来说,可以构建一些更贴近业务的:缺陷分析、性能瓶颈定位解释、日志推理等任务。


4. Continue Pretrain(继续预训练)的领域数据如何选?

越“接近真实业务越好”。 比如电商行业模型,就喂商品描述、客服对话、订单结构化数据。 测试行业模型,就喂用例、日志、缺陷描述、排查步骤、指标规范等。


5. 领域训练后通用能力下降怎么解决?

这叫“遗忘”。常用方法:

  • 混入部分通用数据
  • 使用低学习率
  • 训练后做一次轻量 SFT 拉回能力

就像你把接口压测工具完全调成只适应某一服务,换个微服务就废了,模型也是同理。


6. Continue Pretrain 如何让模型学到更多知识?

不仅仅靠“喂更多数据”。 重点在于:

  • 数据要干净
  • 覆盖要均匀
  • 格式要稳定
  • 通过分阶段训练逐步学习

7. SFT 时选 Base 还是 Chat 模型?

SFT 本质是再训练模型的行为模式。 如果你是做指令对齐,通常选 Base; 如果是轻量领域增强,直接在 Chat 上继续训更高效。


8. 领域微调的数据格式要求?

保持结构清晰、风格稳定、一致性强。 模型比你想得“更敏感”,格式乱一点,训练效果立刻下降。


9. 领域模型的评测集怎么构建?

评测集是给模型的“期末考试卷子”。 必须来自真实任务,例如:

  • 性能指标分析
  • 测试设计推理
  • 日志异常定位
  • API 失败原因判断
  • 测试方案对比

覆盖“模型未来要承担的能力”。


10. 是否需要扩词表?

中文场景有必要,比如:

  • 行业专有名词
  • 编程语言 token
  • 测试领域术语

扩词表能减少“拆字”,提升模型理解能力。


11. 如何训练自己的大模型?

如果不是机构级别,建议从 LoRA / QLoRA + SFT 入手,而不是从零训练。 从零训练 = 数据贵、算力贵、效果不稳定。


12. 中文大模型训练经验有哪些?

中文要注意:

  • 切词方式
  • 标点风格
  • 多样体裁(口语/书面)
  • 行业术语覆盖

否则训出来的模型像“语文课代表”。


13. 指令微调有什么好处?

让模型学会“怎么回答人”,而不是“知道什么”。 类似测试开发里给脚本写公共框架,行为更一致、更稳定。


14. 知识是在预训练还是微调阶段注入的?

预训练注入“知识”; 微调注入“行为”。 一个是大脑,一个是习惯。


15. 想让模型学某行业知识,用预训练还是微调?

依赖知识密度。大量领域知识 → continue pretrain。 任务形态(怎么回答) → SFT。


16. 多轮对话任务怎么微调?

适配「上下文关联」,数据一般是:

用户:...
助手:...
用户:...
助手:...

训练时保持对话链条连续。


17. 灾难性遗忘是什么?

模型为了学新知识,把旧知识“挤掉”。 类似你把接口压测脚本改成只跑压测,功能验证相关逻辑会自动退化。


18. 微调模型需要多大显存?

LoRA(8~24GB)、QLoRA(12GB 也能练)、全参数(64GB 起步甚至更高)。


19. SFT 时模型到底在学什么?

学“任务模式”。 比如回答风格、格式、逻辑结构,而不是百科知识。


20. 预训练与 SFT 有什么不同?

预训练:摄入全世界的文本 SFT:学会怎么当一个有用的助手


21. 样本量增大导致 OOM?

通常是因为:

  • batch size 设置过大
  • 序列长度拉满
  • 优化器状态占用爆炸

22. SFT 如何优化样本?

主要是:

  • 去掉重复
  • 去掉风格冲突
  • 去掉噪声
  • 删除无意义的回答冗余

数据越干净,模型越聪明。


23. 模型参数的迭代实验怎么做?

常见方式:

  • 切不同学习率
  • 调 LoRA rank
  • 不同指令模板
  • 混域 vs 纯域训练

记录每次实验的评测指标非常关键。


24. 微调的一些经验建议

简单说,别“一把梭”。 模型训练就像性能调优:反复试、慢慢调、逐步验证。


25. batch size 太小的影响?

梯度不稳定,收敛慢,模型易随机发散。


26. batch size 太大的影响?

显存容易爆,模型容易“平均化”,变得呆板。


27. batch size 如何设置?

通常根据显存、序列长度反推。不够就使用梯度累积。


28. 优化器怎么选择?

常见的是 AdamW、Lion。 小模型 AdamW 大多够用。


29. 哪些因素影响显存使用?

模型大小、batch size、序列长度、LoRA 或全参、优化器状态。


30. 领域预训练用哪些数据集?

根据行业选择:技术文档、API 文档、日志样例、缺陷描述、测试用例等。


31. 微调数据集如何构建?

围绕真实任务构建,覆盖高频业务场景,让模型“能用”。


32. 大模型训练 loss 出现突刺怎么办?

32.1 什么是 loss 突刺?

训练 loss 突然跳高但又下降。

32.2 为什么出现?

数据脏、极端样本、学习率太大、batch 太小。

32.3 如何解决?

降学习率、清洗数据、调 batch、缩序列长度。


大模型微调特别注意点

作为测试开发,你需要更关注以下方向:

  • 怎么评估大模型的功能正确性(可控性、稳定性)
  • 怎么构建大模型的质量评测集
  • 领域数据采样、清洗、分类
  • 模型的日志分析、训练监控
  • 性能指标:吞吐、显存、迭代速度
  • 如何发现训练中的“模式坍缩”和“模式漂移”

这些能力正在成为“AI时代的测试开发核心竞争力”。

大模型不是玄学,它越来越像微服务一样,可以拆解、监控、测试、优化。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。