训练、微调与数据面试题图文讲义9088 字

大模型微调相关面试题

·全库 147 / 611

《大模型微调相关面试题》共 16 页、0.9 万字,通篇围绕 微调、预训练、SFT、数据集 展开,归在「训练、微调与数据」这一层。

覆盖微调预训练SFT数据集embedding评估

适合要自己训模型、或者判断这一版该不该训的人

目录骨架(8 节)
  1. 3. SFT 指令微调数据如何构建?
  2. 10.领域模型词表扩增是不是有必要的?
  3. 14.预训练和微调哪个阶段注入知识的?
  4. 17.微调后的模型出现能力劣化,灾难性遗忘是怎么回事?
  5. 21. 样本量规模增大,训练出现 OOM 错
  6. 26. 微调大模型时,如果 batch size 设置太大会出现什么问题?
  7. 1-Momentum
  8. 28.微调大模型时,优化器如何?

原 PDF 已逐页还原成图,共 16 页,这里先放前 3 页,其中 2 页识别出了标题。右侧文字由 OCR 按版面重排,可能有个别错字,以图为准;点图可全屏放大。

本讲义目录 · 3 页
  1. 011.如果想要在某个模型基础上做全参数…
  2. 023. SFT 指令微调数据如何构建?
  3. 0310.领域模型词表扩增是不是有必要的?
011 / 3
第 1 页
第 1 页

1.如果想要在某个模型基础上做全参数…

  • 1.如果想要在某个模型基础上做全参数微调,究竟需要多少显存?
  • 2.为什么 SFT 之后感觉 LLM 傻了?
  • 3. SFT 指令微调数据如何构建?
  • 4. 领域模型 Continue PreTrain 数据选取?
  • 5. 领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力?
  • 6.领域模型 Continue PreTrain,如何让模型在预训练过程中就学习到更多的知识?
  • 7.进行 SFT 操作的时候,基座模型选用 Chat 是 Base?
  • 8.领域模型微调指令&数据输入格式要求?
  • 9.领域模型微调领域评测集构建?
  • 10.领域模型词表扩增是不是有必要的?
  • 11. 如何训练自己的大模型?
  • 12.训练中文大模型有啥经验?
  • 13.指令微调的好处?
  • 14.预训练和微调哪个阶段注入知识的?
  • 15.想让模型学习某个领域或行业的知识,是应该预训练还是应该微调?
  • 16. 多轮对话任务如何微调模型?
  • 17.微调后的模型出现能力劣化,灾难性遗忘是怎么回事?
  • 18.微调模型需要多大显存?
  • 19.大模型 LLM 进行 SFT 操作的时候在学习什么?
  • 20.预训练和 SFT 操作有什么不同
  • 21.样本量规模增大,训练出现 OOM 错
  • 22. 大模型 LLM 进行 SFT 如何对样本进行优化?
  • 23. 模型参数迭代实验
  • 24.微调大模型的一些建议
  • 25.微调大模型时,如果 batch size 设置太小会出现什么问题?
  • 26.微调大模型时,如果 batch size 设置太大会出现什么问题?
  • 27.微调大模型时,batch size 如何设置问题?
  • 28.微调大模型时,优化器如何?
  • 29.哪些因素会影响内存使用?
  • 30.进行领域大模型预训练应用哪些数据集比较好?
  • 31. 用于大模型微调的数据集如何构建?
  • 32. 大模型训练 loss 突刺原因和解决办法
  • 32.1 大模型训练 loss 突刺是什么?
  • 32.2 为什么大模型训练会出现 loss 突刺?
  • 32.3 大模型训练 loss 突刺如何解决?

台如果想要在某个模型基础上做全參数微调,究真满要多少显

022 / 3
第 2 页:3. SFT 指令微调数据如何构建?
第 2 页

3. SFT 指令微调数据如何构建?

一般 n B 的模型,最低需要 16-20 n G 的显存。(cpu offload 基本不开的情況下) vicuna-7B 为例,官方样例配置为 4*A100 40G,测试了一下确实能占满显存。(global batch size 128, max length 2048)当然训练时用了 FSDP、梯度累积、梯度检查点等方式降显存。 2.为什么 SFT 之后感觉 LLM 傻了?

  • 原版答案: SFT 的重点在于激发大模型的能力,SFT 的数据量一般也就是万恶之源 alpaca 数据集的 52k 量级, 相比于预训练的数据还是太少了。 如果抱着灌注领域知识而不是激发能力的想法,去做 SFT 的话,可能确实容易把 LLM 弄傻。
  • 新版答案: 指令微调是为了增强(或解锁)大语言模型的能力。 其真正作用: 指令微调后,大语言模型展现出泛化到未见过任务的卓越能力,即使在多语言场景下也能有不错表 现。

1.代表性。应该选择多个有代表性的任务; 2. 数据量。每个任务实例数量不应太多(比如:数百个)否则可能会潜在地导致过拟合问题并影 响模型性能; 3. 不同任务数据量占比。应该平衡不同任务的比例,并且限制整个数据集的容量(通常几干或几 万),防止较大的数据集压倒整个分布。

4.领域模型 Continue PreTrain 数据选取?

技术标准文档或领域相关数据是领域模型 Continue PreTrain 的关键。因为领域相关的网站和资讯重 要性或者知识密度不如书籍和技术标准。

5.领域数据训练后,通用能力往往会有所下降,如何缓解模型遗 忘通用能力?

  • 动机:仅仅使用领域数据集进行模型训练,模型很容易出现灾难性遗忘现象.
  • 解决方法:通常在领域训练的过程中加入通用数据集 那么这个比例多少比较合适呢? 目前还没有一个准确的答案。主要与领域数据量有关系,当数据量没有那么多时,一般领域数据与 通用数据的比例在 1:5 到 1:10 之间是比较合适的。

6.领域模型 Continue PreTrain,如何让模型在预训练过程中就 学习到更多的知识? 领域模型 Continue PreTrain 时可以同步加入 SFT 数据,即 MIP,Multi- Task Instruction PreTraining. 预训练过程中,可以加下游 SFT 的数据,可以让模型在预训练过程中就学习到更多的知识。

7.进行 SFT 操作的时候,基座模型选用 Chat 还是 Base?

033 / 3
第 3 页:10.领域模型词表扩增是不是有必要的?
第 3 页

10.领域模型词表扩增是不是有必要的?

仅用 SFT 做领域模型时,资源有限就用在 Chat 模型基础上训练,资源充足就在 Base 模型上训练。 (资源=数据+卡) 资源充足时可以更好地拟合自己的数据,如果你只拥有小于 10k 数据,建议你选用 Chat 模型作为基 座进行微调;如果你拥有 100k 的数据,建议你在 Base 模型上进行微调。

8.领域模型微调指令&数据输入格式要求?

在 Chat 模型上进行 SFT 时,请一定遵循 Chat 模型原有的系统指令&数据输入格式。 建议不采用全量参数训练,否则模型原始能力会遗忘较多。

9.领域模型微调领域评测集构建?

领域评测集时必要内容,建议有两份,一份选择题形式自动评测、一份开放形式人工评测。 选择题形式可以自动评测,方便模型进行初筛;开放形式人工评测比较浪费时间,可以用作精筛, 并且任务形式更贴近真实场景。

领域词表扩增真实解决的问题是解码效率的问题,给模型效果带来的提升可能不会有很大。

  • 11. 如何训练自己的大模型? 如果我现在做一个 sota 的中文 GPT 大模型,会分 2 步走:1.基于中文文本数据在 LLaMA-65B 上二次 预训练;2.加 CoT 和 instruction 数据,用 FT +LORA SFT。 提炼下方法,一般分为两个阶段训练:
  • 第一阶段:扩充领域词表,比如金融领域词表,在海量领域文档数据上二次预训练 LLaMA 模 型;
  • 第二阶段:构造指令微调数据集,在第一阶段的预训练模型基础上做指令精调。还可以把指令 微调数据集拼起来成文档格式放第一阶段里面增量预训练,让模型先理解下游任务信息。 当然,有低成本方案,因为我们有 LoRA 利器,第一阶段和第二阶段都可以用 LoRA 训练,如果不用 LoRA,就全参微调,大概 7B 模型需要 8 卡 A100,用了 LoRA 后,只需要单卡 3090 就可以了。

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

链家技术报告《 Towards Better Instruction Following Language Models for Chinese: Investigating

the Impact of Training Data and Evaluation 》中,介绍了开源模型的训练和评估方法:

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求