题库来源:GitHub - km1994/LLMs_interview_notes: 该仓库主要记录 大模型(LLMs) 算法工程师相关的面试题

目录

大模型(LLMs)微调显存需求

SFT后LLM表现下降的原因

领域模型Continue PreTrain 数据选取

缓解模型遗忘通用能力的方法

提高模型在预训练过程中学习知识的方法

SFT操作的基座模型选择

大模型LLM进行SFT操作学习内容

预训练和SFT操作的区别

样本量规模增大导致的OOM错误

大模型LLM进行SFT时的样本优化方法


大模型(LLMs)微调面

大模型(LLMs)微调显存需求

全参数微调的显存需求取决于多个因素,包括模型的大小(参数数量),批次大小,序列长度,以及是否使用了混合精度训练等。对于GPT-3这样的大模型,如果想要在单个GPU上进行全参数微调,可能需要数十GB甚至上百GB的显存。这通常超过了常规GPU的显存容量,因此可能需要使用特殊的硬件,或者使用模型并行技术将模型分布在多个GPU上进行训练。

SFT后LLM表现下降的原因

SFT(Supervised Fine-Tuning)是一种常见的微调技术,它通过在特定任务的标注数据上进行训练来改进模型的性能。然而,SFT可能会导致模型的泛化能力下降,这是因为模型可能过度适应于微调数据,而忽视了预训练阶段学到的知识。这种现象被称为灾难性遗忘(catastrophic forgetting)。

为了解决这个问题,可以使用一些策略,如:

  1. 使用更小的学习率进行微调,以减少模型对预训练知识的遗忘。
  2. 使用正则化技术,如权重衰减或者早停,以防止模型过度适应微调数据。
  3. 使用Elastic Weight Consolidation(EWC)等技术,这些技术试图在微调过程中保留模型在预训练阶段学到的重要知识。

以上内容,主要基于对大模型微调的理论知识和实践经验进行总结,具体的显存需求和微调效果可能会因模型、数据和训练设置的不同而有所差异。

领域模型Continue PreTrain 数据选取

对于领域模型的Continue PreTrain(CPT),数据的选取是非常重要的。一般来说,我们需要选择与目标任务相关的领域数据进行预训练。这些数据可以是公开的领域数据集,也可以是自己收集和标注的数据。选择的数据应该尽可能地覆盖目标任务的各种情况,以便模型能够学习到足够的领域知识。

缓解模型遗忘通用能力的方法

在进行领域模型的预训练时,通用能力往往会有所下降,这是因为模型在学习领域知识的同时,可能会忘记在原始预训练阶段学到的通用知识。为了缓解这个问题,可以采取以下策略:

  1. 使用更小的学习率进行预训练,以减少模型对通用知识的遗忘。
  2. 在预训练数据中混入一些通用数据,以帮助模型保持通用能力。
  3. 使用正则化技术,如权重衰减或者早停,以防止模型过度适应领域数据。

提高模型在预训练过程中学习知识的方法

如果想要让模型在预训练过程中学习到更多的知识,可以尝试以下方法:

  1. 增加预训练数据的多样性和数量,让模型接触到更多的知识和情况。
  2. 使用更复杂的模型,如增加模型的深度或宽度,以提高模型的学习能力。
  3. 使用更好的预训练策略,如使用不同的预训练任务,或者使用更先进的预训练方法。

SFT操作的基座模型选择

进行SFT(Supervised Fine-Tuning)操作的时候,基座模型的选择取决于具体的任务需求。如果任务需要处理对话类型的数据,那么选择Chat模型可能会更好,因为Chat模型在预训练阶段就已经学习了处理对话数据的能力。如果任务更加关注通用的语言理解和生成能力,那么选择Base模型可能会更合适。总的来说,应该根据任务的具体需求和模型的特性来选择最合适的基座模型。

大模型LLM进行SFT操作学习内容

当大模型LLM(Large Language Model)进行SFT(Supervised Fine-Tuning)操作时,它主要在学习如何更好地完成特定的任务。这个过程中,模型会根据标注的任务数据进行训练,调整模型的参数以优化任务的性能。例如,如果是文本分类任务,模型会学习如何根据输入的文本来预测正确的类别。

预训练和SFT操作的区别

预训练和SFT操作是模型训练过程中的两个重要阶段,它们的主要区别在于训练数据和目标:

  1. 预训练阶段,模型通常使用大量无标签的文本数据进行训练,目标是学习语言的一般规律和知识,例如词义、语法结构等。
  2. SFT阶段,模型使用标注的任务数据进行训练,目标是学习如何完成特定的任务,例如文本分类、情感分析等。

样本量规模增大导致的OOM错误

当样本量规模增大时,可能会出现OOM(Out of Memory)错误,这是因为模型需要更多的内存来存储和处理数据。为了解决这个问题,可以尝试以下方法:

  1. 减小批量大小:这可以减少每次训练需要处理的数据量,从而减少内存使用。
  2. 使用梯度累积:这种方法可以在不减小批量大小的情况下,减少内存使用。
  3. 使用模型并行:这种方法可以将模型的不同部分放在不同的设备上进行训练,从而减少每个设备需要的内存。

大模型LLM进行SFT时的样本优化方法

对于大模型LLM进行SFT时,可以通过以下方法对样本进行优化:

  1. 数据增强:通过对原始数据进行变换,生成新的训练样本,可以增加数据的多样性,提高模型的泛化能力。
  2. 硬负采样:对于分类任务,可以选择那些模型预测错误的样本进行重复训练,以提高模型的性能。
  3. 样本权重调整:根据样本的难易程度或者重要性,调整它们在训练中的权重,可以帮助模型更好地学习。

Logo

更多推荐