
前言SFT是现在很多面试存在的一个大面看到总结很好的面试大纲题目分享给大家。微调是一种有监督的技术手段是在已具备广泛知识基础的大型预训练语言模型上利用针对性的数据集实施额外的训练过程旨在使模型更精准地契合特定任务需求或深入某一专业领域。微调的核心目标在于实现知识的精细化灌输与指令系统的精确匹配所以 SFT 的重点是学习样式和指令而非知识注入。当前实践中微调主要分为全参数微调和部分参数微调下面详细说一下这两个方式的特点和技巧。1 全参数微调有什么技巧主要是利用小学习率的方式对大模型的全参数进行调整以使其完全适应特定领域或任务。这种方法适用于拥有大量与任务高度相关的高质量训练数据的情况通过更新所有参数来最大程度地优化模型对新任务的理解和表现。全参数微调技巧如下SFT 模式选择模式一基于 base 模型领域任务的 SFT模式二基于 base 模型领域数据 continue pre-train 领域任务 SFT模式三基于 base 模型领域数据 continue pre-train 通用任务 SFT领域任务 SFT模式四基于 base 模型领域数据 continue pre-train 通用任务与领域任务混合 SFT模式五基于 base 模型领域数据 continue pre-train混入 SFT 数据 通用任务与领域任务混合 SFT模式六基于 chat 模型领域任务 SFT模式七基于 chat 模型领域数据 continue pre-train 领域任务 SFT总结在资源充足的情况下如只考虑领域任务效果建议选择模式二在资源充足的情况下如考虑模型综合能力建议选择模式五在资源不允许的情况下我会考虑模式六。2 常用的轻量级微调有哪些常用的轻量级微调方法有什么异同点与传统的 fine-tuning 的区别部分参数微调策略仅选择性地更新模型中的某些权重尤其是在需要保留大部分预训练知识的情况下。这包括1prefix/prompt-tuning在模型的输入或隐层添加 kkk 个额外可训练的前缀 tokens这些前缀是连续的伪 tokens不对应真实的 tokens只训练这些前缀参数2P-tuningP-Tuning 利用少量连续的 embedding 参数作为 prompt使 GPT 更好的应用于 NLU 任务而 Prefix-Tuning 是针对 NLG 任务设计。同时P-Tuning 只在 embedding 层增加参数而 Prefix-Tuning 在每一层都添加可训练参数。3P-tuning v2V2 更接近于 prefix- tuning微调了每一层 transformer 的输入 embeddingv2 在大小模型都有效4Adapter-Tuning将较小的神经网络层或模块插入预训练模型的每一层这些新插入的神经模块称为 adapter适配器下游任务微调时也只训练这些适配器参数5LoRALow-Rank Adaptation通过向模型权重矩阵添加低秩矩阵来进行微调既允许模型学习新的任务特定模式又能够保留大部分预训练知识从而降低过拟合风险并提高训练效率。6AdaLoRA是对 LoRA 的一种改进它根据重要性评分动态分配参数预算给权重矩阵7QLoRA使用一种新颖的高精度技术将预训练模型量化为 4 bit然后添加一小组可学习的低秩适配器权重这些权重通过量化权重的反向传播梯度进行微调。与传统的 fine-tuning 的区别参数量fine-tuning 是全参数微调PEFT 是部分参数微调训练效率fine-tuning 训练效率慢PEFT 是快适用场景fine-tuning 需要更多的资源和数据相应的上限可能也会更高PEFT 适用于资源较少的场景。3 为什么 SFT 后模型变傻了为什么 SFT 后模型变傻了灾难性遗忘如何降低这种现象SFT 数据比较多或者 epoch 比较大时可能会导致 SFT 后大模型的通用能力下降导致灾难性遗忘这要根据实际场景判断如果你只关注特殊领域的性能通用能力下降你也不需要过度关注。如果想要不失去通用的生成能力可以考虑以下几点多任务微调如果希望模型保持多任务泛化能力可以一次性对多个任务执行微调。良好的多任务微调可能需要包含许多任务的 50-100,000 个示例。考虑 PEFT 的方法也就是保留了原始 LLM 的权重不采用全参数微调的方法。通过训练少量特定于任务的适配器层和参数。PEFT 对灾难性遗忘表现出更大的鲁棒性因为大多数预训练的权重保持不变。数据配比在 SFT 数据中增加一些通用生成的数据避免 SFT 过度学习单一训练集内容。4 SFT 指令微调数据如何构建SFT 的重点是学习样式而非知识注入所以 SFT 的样本在于其质量而非数量少量但精良的样本往往胜过大批中低品质的样本实现同样甚至更优的微调效果。通常情况下2-10k 数据就会有一个不错的效果。这一理念在 Meta 发布的《LIMA: Less Is More for Alignment》论文中得到了有力阐述该文献强调了在指令微调过程中高品质微调数据的决定性作用。据此我们应当将重心放在提升样本质量的打磨上而非单纯追求数量的增长。如何评估样本的效果在评估微调样本质量的过程中通常需要关注以下几个核心维度样本多样性Sample Diversity指令多样性考察样本中指令的覆盖范围是否广泛是否包含了各类任务类型、不同难度级别以及多样化的指令结构和表达方式确保模型在微调后能应对多种复杂情境。内容多样性检查样本中提供的文本内容是否涵盖了不同主题、文体、长度以及语境以避免模型在特定领域或文本类型上过拟合确保其具备良好的泛化能力。答案质量Answer Quality准确性Accuracy评估答案是否准确无误地响应了给定指令和内容是否忠实反映了任务要求且不包含事实性错误、逻辑矛盾或语义模糊。完备性Completeness考察答案是否全面覆盖了指令所要求的所有任务点尤其对于多步骤或复合任务答案应完整体现所有必要的操作结果。简洁性与清晰度Conciseness Clarity衡量答案是否言简意赅、表达清晰避免冗余信息或含糊表述确保模型在微调后生成的输出易于理解和使用。一致性Consistency内部一致性检查同一指令对不同内容的处理结果是否保持一致即模型在相似情境下应给出相似的答案。外部一致性对比样本答案与已知的知识库、专家判断或公认的基准结果确保答案符合领域共识和常识。难度适配Difficulty Calibration难易程度分布分析样本集中简单、中等、复杂任务的比例确保微调数据集包含不同难度级别的样本有助于模型逐步提升处理复杂指令的能力。噪声控制Noise Reduction标签错误检查识别并剔除标注错误或不一致的样本确保答案与指令、内容间的映射关系正确无误。数据清洗去除重复样本、无关内容或低质量文本提升数据集的整体纯净度。可以看出评估微调样本质量属于一项涉及多方面考量的综合性工作旨在确保用于指令微调的数据既能有效驱动模型学习指令理解与执行的核心技能又能促进模型在实际应用中展现卓越的性能和广泛的适应性。通过严谨的质量评估与持续优化可以最大限度地利用有限的高质量样本资源实现大模型指令微调的高效与精准。5 如何缓解SFT后模型通用能力的下降有如下两点多任务微调如果希望模型保持多任务泛化能力可以一次性对多个任务执行微调在训练数据中增加一些通用数据数据回放在 SFT 数据后再做一下通用能力的 SFT但是这样做的一个风险是之前微调的专业能力会受到影响死锁了 6 选用Chat还是Base进行 SFT 时基座模型选用 Chat 还是 Base 模型选 Base 还是 Chat 模型首先先熟悉 Base 和 Chat 是两种不同的大模型它们在训练数据、应用场景和模型特性上有所区别。在训练数据方面Base 模型是基于海量语料库进行的无监督学习。它从大量文本中学习语言模式和知识而不需要人工标注或监督。相比之下Chat 模型则是在指令微调的有监督学习下进行训练的。这意味着它使用人工标注的数据集进行训练以便更好地理解和响应特定指令。在应用场景上Base 模型主要用于无监督学习任务如文本分类、情感分析、摘要生成等。这些任务主要关注文本内容的理解和处理而不需要对特定指令做出响应。相反Chat 模型则主要用于指令学习任务如问答系统、对话生成、智能客服等。在这些任务中模型需要理解和响应人类的指令以提供准确和有用的信息。在模型特性上Base 模型预训练之后没有做任何调整。它提供了基本的语言理解和生成能力但可能需要针对特定任务进行微调或优化。而 Chat 模型则是在 Base 模型上进行微调的版本它通过指令微调和人工反馈强化学习等方法使模型更加符合人类的价值观和指令要求。总之Base 和 Chat 是两种不同的大模型它们在训练数据、应用场景和模型特性上有所区别。Base 主要用于无监督学习任务而 Chat 则专注于指令学习任务。在模型特性上Chat 通常在 Base 上进行微调以更好地适应特定任务的需求。根据以上区别在选择基座模型时也要考虑数据量和任务差别难度对于训练数据量少的任务和基座大模型比较优秀能力接近的选 chat 模型。对于训练数据量比较大或任务与 chat 版本的相似的能力比较差选择 base 版本。另一种说法是 base 模型可以更方便做知识注入而 chat 版本是做过对其的不好做知识注入。所以基于 base 的 SFT 可以做的上限更高更方便做知识的注入而基于 chat 模型的 SFT 是做的样式学习或者指令学习。但是 base 也存在没有对其的风险输出可能和希望有差距需要更多的调优和对齐。7 SFT需要多少条数据这个没有一个明确的答案但是根据大家的经验和一些开源的技术报告来看SFT 的数据一般在 2k-10k 之间epoch 可以根据 SFT 数据设定为 2-10 个 epoch。epoch 和数据量成反比SFT 的数据在准确不在量大所以在数据比较精确的情况下一般 5k 的数据 5 个 epoch就能得到一个不错的效果。另外对于一般的人类阅读和生成能力仅在 1000 个样本上就可以有不错的效果但是对于数学推理、代码生成等复杂任务需要较大的数据量。8 SFT 多优化问题SFT 对于需要优化多个能力项时比如数学、聊天、推理等需要多个 SFT 数据集这比优化单一能力的难度要大很多需要考虑数据配比、优化的策略等。策略解释多任务学习直接混合不同的 SFT 能力项数据进行 SFT。若将每个数据源视为不同任务则可视为多任务学习顺序训练按顺序依次在各能力项数据集上微调。由于通用能力是人类对齐的核心能力我们将通用能力数据放在最后阶段微调混合顺序训练首先在特定能力数据集代码、数学上进行多任务学习然后在通用能力数据集上进行 SFT两阶段混合微调DMT我们综合 RQ1-3 的结论与上述训练策略的优缺点提出 DMT 策略。在第一阶段我们首先在特定能力数据集代码、数学上进行多任务学习。在第二阶段我们使用混合数据源进行 SFT其中包括通用数据和一定比例k的特定能力数据k 1, 1/2, 1/4, 1/8, 1/16, 1/32这有助于缓解模型对特定能力的灾难性遗忘。主要结论随着数据量的增加数学推理、代码生成和通用能力的性能变化趋势如何?不同能力项有不同的 Data Scaling 曲线数学推理能力通用能力与数据量呈正相关模型的性能缩放曲线。值得注意的是通用能力只需要大约 1k 数据样本便会产生性能激增数据量从1/256 到 1/64并在达到一定阈值提高缓慢1/64这契合于LIMA[5]文中所提到的“Less is more”。然而代码能力在 7B13B 则呈现不规则的性能曲线33B 呈现 log-linear 的趋势数据充足的情况下更大参数量的模型往往有更强大的性能在 SFT 阶段中将三种能力项数据直接混合是否会产生性能冲突与单数据源相比混合数据源设置呈现低资源性能增益而高资源性能冲突: 三种能力的性能放缩曲线一致呈现高资源下1/1混合数据源设置弱于单数据源然而随着数据量下降二者产生性能转折最终低资源1/256下混合数据源产生明显性能增益随着模型参数量的提高数学推理与通用能力在低资源下的性能增益更加显著什么是产生性能冲突的关键因素当不同的 SFT 能力之间存在显著的任务格式和数据分布差异时数学和通用数据之间数据比例的影响较小。然而当存在一定程度的相似性时代码和通用数据之间数据比例可能会导致明显的性能波动即便在通用数据资源非常有限的情况下特定能力的数据比例的放缩也没有对通用能力造成明显影响不同的 SFT 训练策略对数据组成的影响是什么多任务学习在尽可能保留了特有能力但是通用能力性能下降显著两种顺序训练保留了通用能力能力但是由于多阶段的微调产生灾难性遗忘使得他失去了太多的特定能力尤其是数学在不同的模型参数量下7B13B33BDMT (k 1/256)策略在特定能力方面数学代码均有显著改善甚至对于通用能力也有一定程度的优化总结大模型混合多种能力项数据进行微调时会呈现高资源冲突低资源增益的现象。我们提出的 DMT 策略通过在第一阶段微调特定能力数据在第二阶段微调通用数据少量的特定能力数据可以在保留通用能力的同时极大程度地挽救大模型对特定能力的灾难性遗忘这为 SFT 的数据组成问题提供了一个简单易行的训练策略。值得注意的是第二阶段微调时混合的特定能力数据量需要根据需求而定。9 大模型在进行SFT的时候是在学习什么简单总结一下指令追随和样式学习并没有学习到世界知识领域适用性特定领域的语言、术语、上下文内容优化其在特定领域的表现激发大模型能力通过 SFT 激发大模型在特定领域的能力安全性在 SFT 中增加一些对抗数据提高模型的鲁棒性和安全意识。10 预训练和SFT的区别主要有以下几点目的预训练是通过大量无标注数据学习知识SFT 是在少量标注数据上学习指令数据类型预训练大量无标注数据SFT 少量标注数据模型类型上预训练是一般学习模式SFT 是在特定任务服务11 微调模型需要多大的显存这块要分两类分 SFT 和 PEFT他们两个的显存差距比较大SFT全参数微调包括参数的梯度、优化器都要激活。如果一个 1Bfp32的模型需要显存如下模型需要显存1B*4byte 4GB梯度显存每个参数都需要有一个梯度4GB优化器显存以 adamw 优化器为例他需要一阶动量二阶动量4GB4GB8GBPEFT需要的显存与模型没有大的区别主要看 PEFT 部分大概是几 M 到几 GB。12 多轮对话任务如何微调模型多轮对话的核心是指令追随。13 什么是冻结Freeze监督微调在这种微调方式中部分或全部预训练模型的权重被冻结即保持不变不再训练仅对模型的部分层如最后一层或某些中间层或新增的附加组件如任务特定的输出层或注意力机制进行训练。这样可以防止预训练知识被过度覆盖同时允许模型学习针对新任务的特定决策边界。14 选用全参数SFT还是部分参数的SFT这个说法不一所以要根据自己场景选用不同的方法如果资源充足的话建议 SFT 和 PEFT 都尝试一下选用效果最用的方式如果资源不足建议选 PEFT。从理论分析上来看SFT 会修改大模型全量参数可以在数据量充足的情况下学习更多的内容效果上限应该更高但也存在灾难性遗忘等不稳定情况。PEFT 不管是 prompt training 还是 LORA 都是只修改少量参数所以他的优点就是需要资源少稳定性高但是存在效果上限问题有些场景下效果不好特别是基座大模型在该领域任务上的效果本身就不好很难通过 PEFT 来提升。来源最后的最后感谢你们的阅读和喜欢我收藏了很多技术干货可以共享给喜欢我文章的朋友们如果你肯花时间沉下心去学习它们一定能帮到你。因为这个行业不同于其他行业知识体系实在是过于庞大知识更新也非常快。作为一个普通人无法全部学完所以我们在提升技术的时候首先需要明确一个目标然后制定好完整的计划同时找到好的学习方法这样才能更快的提升自己。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】