看一个网站是用什么语言做的wordpress themepath

张小明 2026/1/8 18:18:00
看一个网站是用什么语言做的,wordpress themepath,三只羊网络科技有限公司,头条网站怎么做的本文全面介绍了大模型微调技术#xff0c;包括微调基本概念、监督微调(SFT)方法、领域模型适配策略以及参数高效微调(PEFT)技术。详细对比了全参数微调与LoRA、Adapter等高效微调方法的优缺点#xff0c;探讨了数据准备、模型选择、显存优化等关键问题#xff0c;帮助读者掌…本文全面介绍了大模型微调技术包括微调基本概念、监督微调(SFT)方法、领域模型适配策略以及参数高效微调(PEFT)技术。详细对比了全参数微调与LoRA、Adapter等高效微调方法的优缺点探讨了数据准备、模型选择、显存优化等关键问题帮助读者掌握大模型微调的核心知识与实用技巧。前排提示文末有大模型AGI-CSDN独家资料包哦1 微调通用概念1.1 微调方法是什么如何微调微调fine-tuning是一种迁移学习的方法用于在一个预训练模型的基础上通过在特定任务的数据上进行有监督的训练来适应该任务的要求并提高模型性能。微调利用了预训练模型在大规模通用数据上学习到的语言知识和表示能力将其迁移到特定任务上。下面是一般的微调步骤预训练模型选择选择一个在大规模数据集上进行预训练的基础模型例如可以选择一种预训练的语言模型如bertgpt等数据准备准备用于微调的特定任务数据集这些数据集应该包含任务相关的样本和相应的标签和目标确保数据集和任务的特定领域或者问题相关。构建任务特定的模型头根据任务的要求构建一个特定的模型头task-specific head。模型头是添加到预训练模型之上的额外层或者结构用于根据任务要求进行输出预测或者分类例如对于文本分类任务可以添加一个全连接层和softmax激活函数。参数初始化将预训练模型的参数作为初始参数加载到微调模型中这些参数可以被视为模型已经学习到的通用语言表示。微调训练使用特定任务的数据集对模型进行有监督训练。这包括将任务数据输入到模型中计算损失函数并通过反向传播和优化算法例如梯度下降更新模型参数。在微调过程中只有模型头部分的参数会被更新而预训练模型的参数保持不变。调整超参数微调过程中可以根据调整学习率批量大小训练迭代次数邓超参数以达到更好的性能。评估和验证在微调完成后使用验证集或者测试集对微调模型进行评估以评估其在特定任务任务上的性能。可以使用各种指标如准确率精确率召回率等。可选的后续微调根据实际情况可以选择在特定任务的数据上进行进一步的微调迭代以进一步提高模型性能。微调的关键是在预训练模型的基础上进行训练从而将模型的知识迁移到特定任务上通过这种方式可以在较少的数据和计算资源下快速的构建和训练高性能模型。1.2 多种不同的高效微调方法对比选择性层调整selective layer tuning可以只微调层的一个子集而不是微调模型的所有层这减少了需要更新的参数数量。适配器Adapters适配器层是插入预训练模型层之间的小型神经网络。在微调过程中只训练这些适配器层保持预先训练的参数冻结。通过这种方式适配器学习将预先训练的模型提取的特征适应新任务。稀疏微调Sparse Fine-tuning传统的微调会略微调整所有参数但是稀疏微调只涉及更改模型参数的一个子集。这通常是基于一些标准来完成的这些标准标识了与新任务最相关的参数低秩近似Low-Rank Approximations另一种策略是用一个参数较少但是在任务中表现相似的模型来近似微调后的模型。正则化技术Regularization Techniques可以将正则化项添加到损失函数中以阻止参数发生较大的变化从而以更“参数高效”的方式有效的微调模型。任务特定的头Task-specific heads有时在训先训练的模型架构中添加一个任务特定的层或者是头只对这个头进行微调从而减少需要学习的参数数量。1.3 当前高效微调技术存在的一些问题当前的高效微调技术很难在类似方法之间进行直接的比较并评估它们的真实性能主要的原因如下所示参数计算口径不一致参数计算可以分为三类可训练参数的数量微调模型与原始模型相比改变的参数的数量微调模型和原始模型之间差异的等级例如DiffPruning更新0.5%的参数但是实际参与训练的参数量是200%这为比较带来了困难。尽管可训练的参数量是最可靠的存储高效指标但是也不完美。Ladder-side Tuning使用一个单独的小网格参数量高于Lora或者BitFit但是因为反向传播不经过主网络其消耗的内存反而更小。缺乏模型大小的考虑已有工作表明大模型在微调中需要更新的参数量更小无论是以百分比相对而论还是以绝对数量而论因此基模型大小在比较不同PEFT方法时也要考虑到。缺乏测量基准和评价基准不同方法所使用的模型或者数据集组合都不一样评价指标也不一样难以得到有意义的结论。代码实现可读性差很多开源代码都是简单拷贝transformer代码库然后进行小修小补这些拷贝也不使用git fork难以找出改了哪里即便是能找到可复用行也比较差通常指定某个transformer版本没有说明如何脱离又有代码库服用这些方法。2 监督微调SFT2.1 监督微调SFT是什么SFT是监督微调Supervised Fine-Tuning是大型语言模型LLM训练流程的关键环节它通过使用标注数据对预训练模型进行进一步训练使模型能够适应特定任务或者领域。核心概念SFT是一种使用标注数据对预训练语言模型进行微调的技术术语迁移学习的范畴。它的核心目的是将通用的大型语言模型适配到特定领域或者任务上提升模型在目标场景下的表现。基本特点数据需求依赖于高质量的标注数据集这些数据通常是人工标注或者经过筛选的模型输出训练目标使用标准的语言建模目标如交叉熵损失进行训练但是数据质量要求远高于预训练阶段计算成本相比预训练成本大幅降低从数十万美元降至数百美元级别但比无监督预训练更昂贵。效果优势能显著提升模型在特定任务上的性能同时保留预训练获得的一般知识。2.2 监督微调SFT在大模型微调中的阶段大型语言模型的典型训练分为三个阶段预训练在海量无标注数据上进行自监督学习建立基础语言能力对齐包括SFT和RLHF基于人类反馈的强化学习使得模型输出符合人类期望领域适配可选的进一步specialization包括领域特定微调或者上下文学习阶段数据要求计算成本主要目标预训练海量无标注文本极高(数十万美金)建立基础语言理解能力SFT高质量标注数据中等(数百美金)使模型适应特定任务风格RLHF人类偏好数据中等对齐人类价值观和偏好2.3 常见的SFT的开发流程是如何的可以分为以下几个关键步骤基础模型选择选择合适的预训练模型作为微调基础常见的选择包括Qwen系列LLaMa系列如LLaMa2GPT系列其他开源模型如MPT/Falcon领域特定基础模型如医疗法律等预训练模型选择时需要考虑模型规模参数量许可证硬件资源等因素例如Qwen1.5-7B70亿参数适合在消费级GPU上进行微调。数据准备与标注这是SFT最关键也最具挑战性的环节包括数据收集特定领域文本高质量问答对任务特定示例如分类样本/摘要对人工生成或模型蒸馏的指令-输出对数据格式指令微调格式Instruction: [任务描述]Input: [输入文本]Output: [期望输出]对话格式多轮对话场景传统文本对格式如问答对文本-摘要对数据质量控制确保标注数据的一致性覆盖任务的各种边缘情况适当的数据清洗和预处理模型配置与训练技术选择全参数微调Full Fine-tuning更新所有模型参数效果最好但资源消耗大参数高效微调如LoRA低秩适配Adapter-tuning等只训练少量参数。混合方法如前文提到的Cot-NumHG策略结合思维链与SFT关键参数设置学习率通常比预训练小1-2个数量级批量大小根据GPU内存调整可使用梯度累积训练轮次防止过拟合早期停止策略正则化Dropout权重衰减等。代码实现常用工具包括HuggingFace Transformers TRL(Transformer Reinforcement Learning)库LLaMA-Factory专业框架如MindSpore的SFT模块评估与迭代评估指标任务特定指标如分类准确率BLEU分数等人工评估输出质量领域知识测试集通用能力保留测试避免灾难性遗忘迭代优化根据评估结果调整数据分布增加困难样本调整训练策略如课程学习半监督方法利用未标注数据部署与应用完成SFT后模型可以直接用于生产环境作为RLHF的基础进一步压缩量化以适应边缘设备集成到更大的系统中如客服机器人2.4 训练数据要注重什么SFT的训练数据质量直接影响模型性能以下是构建和筛选SFT数据时需要注意的关键要点结合最新研究和实践总结首先数据质量要优于数量答案需要准确无误避免事实错误逻辑矛盾或者模糊表达尤其是专业领域数据需要专家审核。其次做好数据清洗剔除重复样本无关内容或者标注错误的样本例如通过自动化工具清洗GPT生成的数据。另外要注意任务多样性覆盖多类指令类型如分类生成推理和表达方式问句祈使句避免模型过拟合单一模式。最后要注重内容多样性包含不同主题难度和语境的数据例如医疗法律等垂直领域需要覆盖专业术语和常见场景。2.5 大size和小size模型怎么选择1 从模型本身考虑大模型如320亿参数优势在复杂任务如专业领域文本生成多轮对话等任务中表现更优能捕捉细微语义和长程依赖。适用场景对输出质量要求极高如医疗报告生成法律文书分析等资源充足的场景风险容易过拟合低质量数据且训练成本很高70B的模型全参数微调需要168GB显存小模型如1.5亿参数优势推理速度快实时响应资源消耗低单卡可运行适合简单任务如基础文本分类短文本摘要适用场景资源受限边缘设备高吞吐需求如批量处理或者任务标准化程度高如情感分析风险可能无法处理复杂逻辑或者长文本连贯性要求。2 从硬件资源和成本权衡显存需求大模型70B参数模型16位精度需要168GB显存需多卡并行或者量化技术如4位量化降至42GB小模型1.5B参数模型仅需要数GB显存可在消费级GPU如RTX 3090运行训练成本大模型微调耗时和电费成本可能高出10-100倍。3 数据质量与多样性影响大模型依赖高质量多样化的数据否则易过拟合或者性能下降建议数据量1M条且需要领域平衡如混合10%的通用数据防遗忘小模型对数据噪声更敏感但可通过数据增强或者蒸馏技术如大模型生成伪标签提升效果4 效率和效果平衡参数高效微调PEFT大模型优先采用LoRAAdapter等PEFT方法仅微调0.1%-1%参数如Qwen2-72B微调0.5%参数占比小模型可全参数微调因计算开销较小推理延迟小模型响应更快如1.5B模型推理速度比32B快10倍5 实际选择建议1 适用同源小模型如Qwen2-1.5B快速验证数据质量和训练策略再扩展到大模型2 资源有限时选择8B左右中等模型如deepseek-R1-8B平衡性能和成本3 领域适配垂直领域优先选择领域预训练过的小模型而非通用大模型。2.6 SFT真的能学到有效知识么SFT能否有效学习新知识取决于数据质量训练方法和任务类型。1 SFT的知识学习能力有限的知识注入SFT主要通过调整预训练模型的参数来适应特定任务其学习新知识的能力受限于以下因素知识依赖性SFT依赖标注数据中的模式匹配而非真正的知识理解。记忆倾向SFT倾向于记忆训练数据中的表面模式而非泛化到新知识实现显示SFT在回答训练集问题时表现良好但对语义改写或者时间更新的问题如年份变更则失败。特定场景的有效性结构化知识若数据包含明确的领域知识如医学指南SFT可部分学习并复现这些信息。任务适配在指令跟随或格式规范类任务如客服话术中表现更优因其以来输出风格调整而非深层知识。2.7 SFT微调方案如何选择在SFT监督微调方案中需综合考虑任务需求数据规模资源限制以及模型特性等因素以下是基于最新研究和实践经验的系统化选择指南一基础方案选择1 全参数微调Full fine-tuning使用场景领域数据与预训练数据差异大如企业内部专有数据资源充足多块高端GPU且追求最优性能优势彻底适配新任务效果最佳风险显存需求高如70B模型需要168GB显存容易过拟合小数据集2 高效参数微调PEFTLoRA低秩适配仅微调0.1%-1%的参数显存需求降低80%适合对话风格调整知识灌注等轻量级任务QLoRA量化LoRA适合5/8位量化适合边缘设备或者显存极端受限场景适用场景资源有限单卡消费级GPU需保留预训练通用能力3 混合方案continue Pre-train SFT领域数据量大于1B token时候现急需预训练再微调避免知识断层。示例农业领域模型需先注入专业术语再微调问答任务。二 数据驱动的方案优化1 小数据验证1K样本先用50-100条数据测试微调收益再扩展若效果不佳需要检查数据质量或者调整学习率建议设为预训练的10%2 数据筛选策略多样性优先随机选择可能优于复杂筛选方法如LESSIFD尤其大规模数据时3 动态数据混合通用任务与领域任务数据比例混合例如8:2防止灾难性遗忘三 训练策略调优1 学习率和Epoch学习率初始设为预训练的0.1倍如3e-5for 7B模型batch size增大时按平方根缩放epoch小数据1万条设置为3-15轮大数据10w2轮即可2 抗遗忘技术弹性权重共享EWC保护重要参数不被覆盖经验回放保留5%-10%预训练数据混合训练2.8 大模型SFT过程中为什么会出现第二个epoch的时候loss会突然下降的问题一 核心原因解析数据顺序和学习效率突变初始的epoch的欠学习第一个epoch通常仅完成对数据的初步拟合模型可能尚未充分捕捉到数据的关键模式当第二个epoch重新遍历数据集时模型突然学习到更有效的特征表示如低频但是重要的语义关联导致loss骤降数据分布不均衡若第一个epoch末尾批次包含了高难度样本而第二个epoch起始批次为简单样本会因批次差异造成loss跳变优化器状态重置效应Adam类优化器的动量累积第一个epoch的梯度动量可能会包含噪声方向而第二个epoch初期动量重置后优化方向更准确加速收敛。学习率调整影响若采用warmup策略第二个epoch可能进入更高学习率阶段提升优化效率。例如SFT中学习率通常设为预训练的0.1倍过高的初始学习率会导致第一个epoch不稳定正则化机制的动态调整dropout/batchnorm的稳定性提升第一个epoch中随机掩码或者归一化统计量尚未稳定第二个epoch时正则化效果趋于一致模型泛化能力增强。梯度裁剪作用在深层网络中梯度裁剪可能在第一个epoch限制参数更新幅度而第二个epoch梯度方向优化后突破限制导致loss下降模型参数跳出局部最优损失曲面的过渡区特定大模型的损失曲面存在平坦-陡峭过渡区域。第一个epoch可能使得参数停留在平坦区域第二个epoch通过累积梯度跳出进入更优的收敛碰盆地。二 领域研究和实证支持LLaMa-factory的观察全参数微调模型时epoch间的跳变被证实为普遍现象尤其是数据量较小或者学习率较高的情况下更显著开源社区发现这种现象与数据shuffle策略和优化器状态紧密相关但通常不影响最终模型性能。指令微调的特殊性中文LLM研究中第二个epoch的loss下降可能反应模型从“知识回忆”到“指令遵循”的切换尤其是混合通用和领域数据时候更加明显例如Bloomz模型在SFT后因生长长度缩短导致loss突变说明输出分布发生了质变。对比预训练的差异预训练loss曲线通常平滑的因其数据量极大且优化稳定而sft数据量小分布集中更容易出现阶段性突变。三 解决方案和调优建议训练策略调整延长warmup将warmup步数从预训练的2000增长至5000以上使得学习率增长更加平缓。动态batch调整第一个epoch适用较小的batch size第二个epoch逐步增大平衡稳定性和效率数据优化均衡数据难度通过k-means聚类或者IFD指标确保每个批次包含相似难度的样本增强低频特征对于专业领域数据可以插入知识图谱增强的样本加速关键模式学习。监控与早停验证集监控若loss下降后验证集性能同步提升属于良性现象若后续震荡回升需检查过拟合。梯度分析工具适用Pytorch的register_full_backward_hook跟踪梯度传播路径定位突变层。四 前沿理论解释transformer的跳跃链接如残差块在第二个epoch可能更高效的传递梯度缓解深层网络的退化问题。该现象是sft训练动态的正常表现通常无须干预若需平滑曲线可以优先调整学习率策略和数据分布。实践中这种现象往往预示着模型开始有效的学习任务特征而非训练鼓掌。2.9 微调和参数高效微调之间的区别是什么微调和参数高效微调是机器学习中用于提高预训练模型在特定任务上的性能的两种方法。微调就是把一个预先训练好的模型用新的数据在一个新的任务上进一步训练它。整个预训练模型通常在微调中进行训练包括它的所有层和参数。这个过程在计算上非常昂贵且耗时特别是对于大型语言模型。另一方面参数高效微调是一种专注于只训练预训练模型参数的子集的微调方法这种方法包括为新任务识别最重要的参数并且只在训练期间更新这些参数这样PEFT可以显著减少微调所需要的计算量。全量微调和参数高效微调是两种常见的微调方法它们有不同的特点和适用场景。下面是对这两者的详细对比定义全微调在全微调过程中整个预训练模型的所有参数都会被更新这意味着在微调过程中模型会根据新的任务和数据集对所有参数进行训练参数高效微调PEFT只微调模型中的一部分的参数通常是某些特定层的参数或者使用较小的适配块如AdapterLoRa等亿减少微调所需要的计算资源和存储空间劣势和优势全微调-优势性能最佳全微调可以充分利用预训练模型的所有知识通常能在特定任务上·取得最佳的性能灵活性适用于各种类型的任务尤其是当目标任务与预训练任务差异较大时。劣势计算资源消耗大需要较大的计算资源和内存因为所有参数都需要进行更新。过拟合风险在数据量较少的情况下模型可能会过拟合训练数据。训练时间长更新所有参数训练时间相对较长。可能会导致灾难性遗忘即在适应新任务时丢失旧任务的记忆。高效参数微调-优势资源节约只是更新部分参数显著减少了计算和存储需求尤其适合资源受限的环境快速微调由于只微调部分参数训练时间通常较短减少过拟合风险通过只更新一部分参数降低了过拟合的风险劣势性能可能不如全量微调在某些情况下PEFT的性能可能不如全微调尤其是在需要大量参数调整的任务中。适用性有限不是所有任务都适合使用PEFT某些情况下可能需要全微调达到最佳效果。应用场景全微调当你有足够的计算资源和大量标注数据时尤其是任务与预训练任务相差较大时使用全微调可以获得最佳的模型性能。适用于复杂任务如大型文本分类、机器翻译、图像识别等。参数高效微调当计算资源有限或数据量较小使用 PEFT 方法可以更快速、有效地微调模型。适用于快速迭代的研究环境、小规模项目、或在边缘设备上部署模型等情况。总结特性全微调Full Fine-Tuning参数高效微调PEFT参数更新所有参数都被更新仅更新部分参数或特定模块计算资源高需大量内存和计算能力低节省资源训练时间较长较短过拟合风险较高较低适用场景大规模数据和复杂任务资源受限、小规模数据或快速迭代的任务最终性能通常最佳可能较低但仍能保持良好性能通过以上对比可以根据具体的任务需求和资源限制选择合适的微调方法。希望这能帮助你更好地理解全微调和参数高效微调之间的区别和适用场景目前流行的大模型微调方式主要分为全参数微调和**参数高效微调PEFT**两大类后者又衍生出多种技术路线。以下是主流方法及其关系的系统梳理2.10 全参数微调Full Fine-Tuning, FFT核心思想更新预训练模型的所有参数以适应下游任务。特点优点性能最优适合数据充足、计算资源丰富的场景。缺点显存占用高如7B模型需112GB显存易导致灾难性遗忘典型应用专业领域深度适配如医疗报告生成。2.11 参数高效微调PEFT通过冻结大部分预训练参数仅调整少量新增或特定参数显著降低资源需求。可分为以下子类1.添加型方法AdditiveAdapter Tuning原理在Transformer层中插入小型全连接模块Adapter仅训练这些模块。特点参数量占比约3%-5%适合多任务学习但可能增加推理延迟 。变体AdapterDrop动态剪枝、AdapterFusion多任务组合 。2.重参数化方法ReparameterizationLoRA低秩适配原理将权重更新量分解为低秩矩阵ΔWBA仅训练A/B矩阵参数量≈0.1%-1%优势可合并回原模型推理零开销适合单任务高效适配。变体QLoRA4位量化LoRA显存需求降低80%。DoRA分解权重为方向和幅度提升表达力。3.选择性方法SelectiveBitFit原理仅微调模型中的偏置项bias参数量占比极低0.1% 。适用场景资源极度受限的简单任务。2.12 其他衍生技术混合方法MAM Adapter结合Adapter和LoRA前者处理共性特征后者捕捉低秩模式 。UniPELT动态路由选择不同PEFT方法如Adapter/LoRA/Prefix。检索增强微调RAG原理结合外部知识库检索动态增强模型输入避免硬编码知识。与微调关系可单独使用或与PEFT结合如LoRARAG。2.13 方法间关系与选型建议选型指南需求推荐方法理由多任务快速切换Adapter/Prefix Tuning任务间隔离性好 27 20资源受限的单任务LoRA/QLoRA参数量极小支持量化 52超大规模模型适配Prompt Tuning仅需调整输入提示避免灾难性遗忘任何PEFT方法冻结原参数保留通用能力 132.14 如果想要在某个模型基础上做全参数微调需要多少显存要确定进行全参数微调所需要的显存量显存占用主要来自以下几个部分所以需要考虑一下几个因素模型参数模型所有参数需要加载到显存中梯度反向传播计算出的梯度需要存储优化器状态优化器需要存储的额外状态信息激活值前向传播过程中产生的中间输出框架和库的开销如PytorchCUDA等固定或者可变的开销显存估算公式对于使用FP16/BF16混合精度训练AdamW优化器的标准配置显存需求可以这样估算模型参数显存X B * 2 bytes/param 2X GB梯度显存X B * 2 bytes/param 2X GB优化器状态显存AdamWFP32 状态X B * 8 bytes/param 8X GB总计核心部分2 2 8* X GB 12X GB考虑激活值和其他开销后实际需求会更高非常粗略的下限梯度检查点有效且batch_size/seq_len适中 14X GB到 18X GB更实际的考虑包含一定的激活值和开销可能需要20GB或者更多具体例子说明例子1:LLaMA-7B模型全参数微调对于7B70亿参数的LLaMA模型核心部分模型参数7 * 2 14GB梯度7 * 2 14GB优化器状态7 * 8 56GB总计141456 84GB加上激活值和开销即使使用梯度检查点总显存需求可能轻松超过100GB经验值约为7 * 20 120GB实际配置单个A100/H10080GB通常不够需要2 * A10080GB并配合DeepSpeed ZeRO Stage2 或者3例子2LLaMA-70B模型全参数微调对于70B(700亿)参数的模型核心部分12 * 70 840 GB总需求远超1TB需要大规模的GPU集群大约需要14张80GB的A100显卡(1120GB)不同微调方法的显存对比根据经验数据不同的微调方法对7B模型的显存需求如下方法bits7B模型显存需求全参数微调16160GBFreeze1620GBLoRA1616GBQLoRA810GBQLoRA46GB可以看到全参数微调的显存需求远高于参数高效微调方法PEFT。降低显存需求的技术为了降低全参数微调的显存需求可以采用以下技术梯度检查点Gradient Checkpointing通过时间换空间显著减少激活值的显存占用混合精度训练使用FP16/BF16代替FP32优化器选择使用Adafactor或者8-bit Optimizers等内存优化型优化器模型并行如张量并行TP流水线并行PPZeRO优化如DeepSpeed的ZeRO stage 1-3LOMO优化器复旦大学提出的低内存优化器可讲65B模型微调显存降低至8* 24GB GPU可行。实际建议小模型 7B:可以在单卡或者多卡上进行全参数微调中等规模7B-30B需要多卡并行 DeepSpeed ZeRO大模型30B:建议考虑参数高效微调方法LoRA等或使用大型GPU集群。全参数微调虽然效果通常优于参数高效微调方法但对硬件资源要求极高需要根据实际需求和资源情况权衡选择。2.15 为什么SFT之后感觉LLM傻了SFT之后模型出现性能下降或者变傻的现象时实际应用中常见的挑战结合最新研究和实践以下是主要原因以及解决方案核心原因解析灾难性遗忘模型在适应新任务时可能覆盖预训练阶段学到的通用知识。例如医疗领域微调后可能丧失基础数学能力机制参数更新冲突导致旧任务知识被新任务梯度覆盖。数据质量问题领域偏差微调数据集中于特定领域如法律术语削弱了通用对话能力标注错误错误标签引导模型学习错误模式如医学问答中混淆症状关联性低多样性数据缺乏场景覆盖如客服数据仅含有正式用语忽略口语表达训练策略不当过拟合小数据集高参数量导致模型死记硬背训练样本。例如1万条数据训练7B模型时验证集损失骤升学习率失调过高学习率破坏预训练特征过低则收敛缓慢。任务适配性不足基座模型选择错误如用Chat模型处理非对话任务或微调任务与预训练目标差异过大如代码生成模型微调文学创作解决方案与实践建议5. 确保数据质量使用多样化且高质量的微调数据集以确保其具有代表性和有效性1. 通过IFDInstruction-Following Difficulty指标筛选高价值数据仅用5%数据即可超越全量训练效果2. 多样性保障采用self-instruct方法构造多样化指令数据ROUGE-L相似度阈值设为0.7也可混合通用与领域数据建议比例82缓解领域偏移。6. 正则化技术采用正则化方法如Dropout权重衰减来防止模型过拟合7. 学习率调整使用适当的学习率通常微调时的学习率应该低于预训练阶段的学习率8. 逐层微调逐步解冻并微调模型的层而不是一次性微调所有层这可以避免灾难性遗忘。9. 数据增强通过数据增强技术增加微调数据的多样性从而帮助模型更好的泛化。2.16 SFT指令微调数据如何构建构建SFT的微调数据需要以下步骤收集原始数据首先需要收集与目标任务相关的原始数据这可以是对话数据分类数据生成任务数据等具体取决于您的任务类型。确保数据集具有代表性和多样性以提高模型的泛化能力。标注数据对原始数据进行标注为每个样本提供正确的标签或者目标输出。标签的类型取决于任务可以是分类标签生成文本对话回复等确保标注的准确性和一致性。划分数据集将标注数据划分为训练集验证集和测试集大部分用于训练一小部分用于验证模型的性能和调整超参数最后一部分用于最终评估模型的泛化能力数据预处理根据任务的要求对数据进行预处理这可能包括文本清洗分词去除停用词等处理步骤确保数据格式和特征适合模型的输入要求。2.17 提升sft的prompt的代表性有什么好的方法提升**监督微调Supervised Fine-Tuning, SFT**中的提示prompt代表性是确保模型在特定任务上表现良好的重要环节。有效的提示可以帮助模型更好地理解任务从而提高性能。以下是一些提升提示代表性的有效方法1. 数据集多样性多样化训练数据确保用于微调的数据集涵盖了任务的多种场景和变体。通过多样化的数据源如不同领域、话题等可以增强模型对各种输入的适应性。合成数据生成使用数据增强技术或生成对抗网络GANs生成多样化的输入数据以丰富训练集的内容。2. 提示设计优化上下文设定提供足够的上下文信息使模型能够理解任务的背景。例如在问答任务中可以提供问题和相关文本的组合。明确的指令使用清晰且具体的提示来引导模型的行为。例如避免使用模糊的指令确保提示明确表达期望的输出。示例提示使用示例few-shot 或 one-shot来引导模型。例如先给出几个输入及其对应的输出示例让模型学习如何生成合适的响应。3. 使用模板化提示模板化设计设计标准化的提示模板确保在不同的输入中保持一致性。这有助于模型快速适应任务。例如对于文本分类任务可以使用“这段文本属于哪个类别”这样的模板。灵活的占位符在模板中使用占位符允许根据不同的输入动态生成提示。这样可以提高提示的适应性和代表性。4. 反馈循环人类反馈在模型输出的基础上进行人类评估收集反馈并优化提示。通过迭代的方式逐步改进提示的设计。自动化评估使用现有的评价指标如BLEU、ROUGE等对模型输出进行自动评估识别哪些提示更有效并进行相应调整。5. 领域知识融入使用领域特定知识在提示中融入领域特定的术语和概念以提高在特定领域任务中的表现。例如对于医学领域的任务可以使用医学术语来构建提示。专家指导请教领域专家获取他们对提示设计的建议确保提示的专业性和针对性。6. 动态调整在线学习根据模型的实时表现动态调整提示。通过监控模型的输出对提示进行优化以适应当前的任务需求。实验不同提示在微调过程中尝试不同的提示设计比较其效果选择最佳的提示形式。7. Prompt Tuning提示微调Prompt Tuning直接对提示的参数进行微调而不是对整个模型进行微调。通过专门优化提示可以在保持模型大部分参数不变的同时提高性能。8. 使用先进的技术Prompt Engineering结合最新的提示工程技术比如使用变换器Transformers模型的特性来生成更高质量的提示。基于模型的提示生成使用一个预训练模型来自动生成或优化提示以确保提示的质量和适应性。结论提升 SFT 中提示的代表性是一个持续的过程涉及数据多样性、提示设计、反馈循环、领域知识等多个方面。通过上述方法可以有效地优化提示增强模型在特定任务上的表现。选择合适的方法并结合具体任务的需求将有助于更好地实现目标。3 领域模型微调3.1 领域模型Continue Pretrain数据选取领域继续预训练和微调的区别领域继续预训练在特定领域如医学法律金融等的数据集上进行训练以进一步定制模型的表示。目标是使得模型适应特定领域的术语语法上下文和知识微调在特定任务如文本分类问答命名实体识别等上对模型进行训练只对部分层进行更新。目标是优化模型在特定任务上的性能。在领域模型继续预训练过程中数据选取是一个关键的步骤以下是常见的数据选取方法领域相关数据首先可以收集与目标领域相关的数据。这些数据可以从互联网上爬取的来自特定领域的文档或者公司内部的数据等。这样的数据可以提供领域相关的语言和知识有助于模型在特定领域上的表现。领域专家标注如果有领域专家可以用可以请他们对领域相关的数据进行标注。标注可以是分类命名实体识别关系抽取等任务这样可以提供有监督的数据用于模型的训练。伪标签如果没有领域专家或者标注数据生成的成本较高可以使用一些自动化的方法生成伪标签例如可以使用预训练的模型对领域相关的数据进行预测将预测结果作为伪标签然后使用这些伪标签进行模型的训练数据平衡在进行数据选取时注意数据的平衡性如果某个类别的数据样本较少可以考虑使用数据增强手段或者对该类别进行过采样以平衡各个类别的数据量数据质量控制在进行数据选取时需要对数据的质量进行控制可以使用一些质量评估指标如数据的准确性一致性等来筛选和过滤数据。数据预处理在进行数据选取之前可能需要对数据进行一些预处理如分词去除停用词标准化等以准备好输入模型进行训练。在数据选取过程中需要根据具体任务和需求进行适当的调整和定制。选择合适的数据可以提高模型在特定领域上的性能和泛化能力。3.2 领域数据训练后通用能力往往会有所下降如何缓解模型遗忘通用能力当使用领域数据进行训练后模型往往会出现遗忘通用能力的问题以下是缓解模型遗忘通用能力的方法保留通用数据在进行领域数据训练时仍然需要保留一部分通用数据用于模型训练这样可以确保模型仍然能够学习到通用的语言和知识从而保持一定的通用能力。增量学习使用增量学习的方法将领域数据与通用数据逐步交替进行训练这样在学习新领域的同时保持对通用知识的记忆。预训练和微调在领域数据训练之前可以使用大规模通用数据进行预训练获得一个通用的基础模型然后在领域数据上进行微调以适应特定领域的任务。这样可以在保留通用能力的同时提升领域任务的性能。强化学习使用强化学习的方法通过给模型设置奖励机制鼓励模型在领域任务上表现好同时保持一定的通用能力。领域适应技术使用领域适应技术如领域自适应和领域对抗训练帮助模型在不同领域之间进行迁移学习从而减少遗忘通用能力的问题。数据重采样在进行领域数据训练时可以使用数据重采样的方法使得模型在训练过程中能够更多的接触到通用数据从而缓解遗忘通用能力的问题。综合使用上述方法可以在一定程度上缓解模型遗忘通用能力的问题使得模型既能够适应特定领域的任务有能够保持一定的通用能力3.3 领域模型Continue PreTrain如何让模型在预训练过程中就能学习到更多的知识在领域模型的Continue PreTrain过程中可以采取一些策略来让模型在预训练过程中学习到更多的知识。以下是一些方法多任务学习在预训练过程中可以引入多个任务使得模型能够学习到更多的知识。这些任务可以是领域相关的任务也可以是通用的语言理解任务。通过同时训练多个任务模型可以学习到更多的语言规律和知识。多领域数据收集来自不同领域的数据包括目标领域和其他相关领域的数据。将这些数据混合在一起进行预训练可以使得模型在不同领域的知识都得到学习和融合。大规模数据使用更大规模的数据进行预训练可以让模型接触到更多的语言和知识。可以从互联网上爬取大量的文本数据或者利用公开的语料库进行预训练。数据增强在预训练过程中可以采用数据增强的技术如随机遮挡、词替换、句子重组等来生成更多的训练样本。这样可以增加模型的训练数据量使其能够学习到更多的知识和语言规律。自监督学习引入自监督学习的方法通过设计一些自动生成的标签或任务让模型在无监督的情况下进行预训练。例如可以设计一个掩码语言模型任务让模型预测被掩码的词语。这样可以使模型在预训练过程中学习到更多的语言知识。3.4 进行SFT操作的时候基座模型选用Chat还是Base在进行sft时基座模型的选择可以根据具体情况来决定与之前的sft操作不同这次的目标时在特定的监督任务上进行微调因此选择基座模型时需要考虑任务的性质和数据集的特点。如果监督任务时对话生成相关的比如对话回复或者对话情感分类等那么选择chat模型作为基座模型更合适如果监督任务时单论文本生成或者非对话生成任务那么base模型作为基座模型更合适。3.5 领域模型微调 指令数据输入格式的要求领域模型微调是指使用预训练的通用语言模型如bertgpt等对特定领域的数据进行微调以适应该领域的任务需求以下时领域模型微调的指令和数据输入格式的要求指令定义任务明确所需要的任务类型如文本分类命名实体识别情感分析等选择预训练模型根据任务需求选择合适的预训练模型如bertgpt等准备微调数据收集和标注与领域任务相关的数据确保数据集具有代表性和多样性。数据预处理根据任务的要求对数据进行预处理例如分词去除停用词等划分数据集将数据集划分为训练集验证集和测试机用于模型的训练验证和评估模型微调使用预训练模型和微调数据对模型进行微调调整超参数并进行训练。模型评估使用测试集评估微调后的模型的性能计算适当的评估指标如准确率和召回率等。模型应用将微调后的模型用于实际任务在新的输入上进行预测和生成。数据输入格式要求输入数据应该以文本形式提供每个样本对应一行对于分类任务每个样本应该包含文本和标签可以使用制表符或者逗号将文本和标签分隔开对于生成任务每个样本只需要包含文本即可。对于序列标注任务每个样本应该包含文本和对应的标签序列可以使用制表符或者逗号将文本和标签序列分隔开数据集应该以常见的文件格式如文本文件csv文件json文件等保存确保数据的格式和模型的输入的要求一致。根据具体的任务和模型要求数据输入格式可能会有所不同在进行领域模型微调之前建议仔细阅读多使用模型的文档和示例代码医疗界具体的数据输入格式要求。3.6 领域模型微调 领域评测集如何构建构建领域评测集的过程可以参考以下步骤收集数据首先需要收集与目标领域相关的数据。这可以包括从互联网上爬取文本数据、使用已有的公开数据集或者通过与领域专家合作来获取数据。确保数据集具有代表性和多样性能够涵盖领域中的各种情况和语境。标注数据对收集到的数据进行标注以便用于评测模型的性能。标注可以根据任务类型来进行如文本分类、命名实体识别、关系抽取等。标注过程可以由人工标注或者使用自动化工具进行具体取决于数据集的规模和可行性。划分数据集将标注好的数据集划分为训练集、验证集和测试集。通常训练集用于模型的训练验证集用于调整超参数和模型选择测试集用于最终评估模型的性能。划分数据集时要确保每个集合中的样本都具有代表性和多样性。设计评测指标根据任务类型和领域需求选择合适的评测指标来评估模型的性能。例如对于文本分类任务可以使用准确率、召回率、F1值等指标来衡量模型的分类性能。进行评测使用构建好的评测集对微调后的模型进行评测。将评测集输入模型获取模型的预测结果并与标注结果进行比较计算评测指标。分析和改进根据评测结果分析模型在不同方面的表现并根据需要进行模型的改进和调整。可以尝试不同的超参数设置、模型架构或优化算法以提高模型的性能。3.7 领域模型词表扩增是不是有必要的领域模型的词表扩增可以有助于提升模型在特定领域任务上的性能但是否有必要取决于具体的情况。以下是一些考虑因素领域特定词汇如果目标领域中存在一些特定的词汇或术语而这些词汇在通用的预训练模型的词表中没有覆盖到那么词表扩增就是必要的。通过将这些领域特定的词汇添加到模型的词表中可以使模型更好地理解和处理这些特定的词汇。领域特定上下文在某些领域任务中词汇的含义可能会受到特定上下文的影响。例如在医学领域中同一个词汇在不同的上下文中可能具有不同的含义。如果领域任务中的上下文与通用预训练模型的训练数据中的上下文有较大差异那么词表扩增可以帮助模型更好地理解和处理领域特定的上下文。数据稀缺性如果目标领域的训练数据相对较少而通用预训练模型的词表较大那么词表扩增可以帮助模型更好地利用预训练模型的知识并提升在目标领域任务上的性能。3.8 如何训练自己的大模型数据收集和准备首先需要收集与目标任务和领域相关的大规模数据集。这可以包括从互联网上爬取数据、使用公开数据集或者与合作伙伴合作获取数据。然后对数据进行预处理和清洗包括去除噪声、处理缺失值、标准化数据等。模型设计和架构选择根据任务的特点和目标选择适合的模型架构。可以基于已有的模型进行修改和调整或者设计全新的模型。常见的大模型架构包括深度神经网络如卷积神经网络、循环神经网络、Transformer等和预训练语言模型如BERT、GPT等。数据划分和预处理将数据集划分为训练集、验证集和测试集。训练集用于模型的训练验证集用于调整超参数和模型选择测试集用于最终评估模型的性能。进行数据预处理如分词、编码、标记化、特征提取等以便输入到模型中。模型训练使用训练集对模型进行训练。训练过程中需要选择合适的优化算法、损失函数和学习率等超参数并进行适当的调整和优化。可以使用GPU或者分布式训练来加速训练过程。模型调优和验证使用验证集对训练过程中的模型进行调优和验证。根据验证集的性能指标调整模型的超参数、网络结构或者其他相关参数以提升模型的性能。模型评估和测试使用测试集对最终训练好的模型进行评估和测试。计算模型的性能指标如准确率、召回率、F1值等评估模型的性能和泛化能力。模型部署和优化将训练好的模型部署到实际应用中。根据实际需求对模型进行进一步的优化和调整以提高模型的效率和性能。3.9 指令微调的好处指令微调Instruction fine-tuning是一种在预训练模型上进行微调的方法其中模型接受指令或者约束来生成特定的输出指令微调有以下几个好处控制生成输出指令微调能够使得模型能够根据指定的指令或者约束生成特定的输出这对于需要精确控制模型生成结果的任务非常有用例如自然语言生成任务中的文本摘要翻译或者对话系统可解释性和可控性通过指令微调可以将任务的要求以指令的形式传达给模型。这增加了模型的可解释性和可控性使得用户能够更好的理解和干预模型的生成过程避免不符合要求的输出通过指令微调可以避免模型生成不符合要求或者偏离期望的输出通过明确的指令或者约束模型能够更好的遵循任务的要求并生成符合期望的结果。提高任务性能指令微调可以针对具体任务进行优化使得模型在该任务的性能得到提升。通过引入任务特定的指令或者约束模型可以更好的适应特定任务的需求并生成更准确更合理的输出灵活性和可扩展性指令微调是一种灵活且可扩展的方法允许在不同任务和场景中进行微调通过调整和修改指令或者约束可以适应不同的任务需求并在多个任务上进行微调。需要注意的是指令微调需要提供明确的指令或者约束并对模型进行适当的调整和微调在实践中需要根据具体任务和应用场景来决定是否采用指令微调以及如何设计和实施指令。3.10 预训练和微调是在哪个阶段注入知识的预训练和微调两个阶段都可以注入知识但它们注入知识的方式和范围略有不同。在预训练阶段模型通过大规模的未标注数据进行训练从中学习语言的统计特征语义知识和语言规律预训练的目的是让模型建立起对语言的基本理解和概念并学习到一般性的语言表示这种预训练过程注入了通用的语言知识并可以迁移到各种下游任务中。在微调阶段预训练的模型通过在特定任务上使用带标注的数据进行微调并适应具体任务的要求在微调过程中模型通过接触任务特定的数据和标签进一步调整和优化模型的参数使其更好的适应任务的特定特征和要求微调阶段注入的是与任务相关的知识和信息。综上所述预训练阶段主要注入通用的语言知识和表示能力而微调阶段则将这种能力与具体任务相结合使模型在任务上表现更好预训练和微调两个阶段的结合可以有效的提高模型的性能和泛化能力。3.11 想让模型学习某个领域或者行业的知识是应该预训练还是应该微调如果想让模型学习到某个特定领域或者行业的知识一般建议使用微调的方法。预训练模型通常是在大规模通用数据上进行预训练以学习通用的语言知识和表示能力虽然预训练模型可以在各种任务上表现出色但它们的训练并未针对特定领域或者行业进行优化。因此如果希望模型具备特定领域的专业知识微调是更合适的选择。在微调阶段可以使用特定领域的数据来微调预训练模型使其适应该领域的任务和语境通过在特定领域的数据集上进行微调模型可以学习到该领域的专业术语实体关系特定语义和上下文等微调过程可以使模型更好的理解和处理与特定领域相关的文本数据从而提高模型在该领域任务上的性能。需要注意的是微调需要在预训练模型的基础上进行因此首先选择合适的预训练模型然后再特定领域上微调微调过程中可以根据任务需求和数据情况调整微调的超参数如学习率微调步数等。3.12 多轮对话任务如何微调模型在多轮对话任务中微调模型的目标是使其能够更好地理解和生成连续的对话内容并具备上下文理解和一致性回复的能力。下面是一种常见的微调模型的方法数据准备收集或创建适用于多轮对话任务的数据集包括对话文本和相应的标签或回复。确保数据集中包含上下文信息和对话的连续性。构建输入输出格式将对话数据转换为适合模型输入的格式。通常情况下输入可以是包含多个对话轮次的上下文文本输出可以是下一轮对话的回复或标签。模型选择选择适合多轮对话任务的预训练模型如DialoGPT、BERT等。这些模型已经在大规模对话数据上进行了预训练并具备一定的对话理解和生成能力。微调模型使用多轮对话数据集对预训练模型进行微调。微调的过程通常包括以下步骤初始化模型参数将预训练模型的参数加载到模型中。定义损失函数根据任务要求定义适当的损失函数如交叉熵损失函数或生成模型中的对抗损失函数。进行反向传播和参数更新根据损失函数通过反向传播算法计算梯度并更新模型参数。重复训练步骤重复进行微调步骤直到模型在验证集上达到满意的性能。超参数调优根据任务需求和数据情况调整微调过程中的超参数如学习率、批大小、微调步数等。可以使用验证集来评估模型性能并选择最佳的超参数配置。评估和测试使用测试集对微调后的模型进行评估和测试评估模型在多轮对话任务上的性能和表现。需要注意的是微调多轮对话模型时除了常规的微调方法还可以采用一些特定的技巧如引入对话历史的注意力机制、使用特定的对话策略进行训练等以进一步提升模型在多轮对话任务中的性能。3.13 微调后的模型出现能力劣化灾难性遗忘是怎么回事灾难性遗忘是指在模型微调过程中当模型在新任务上进行训练时可能会忘记之前学习到的知识导致在旧任务上的性能下降这种现象常见于神经网络模型的迁移学习或者连续学习场景中。在微调大语言模型时灾难性遗忘可能出现的原因包括数据分布差异微调过程中使用的新任务数据与预训练数据或者旧任务数据的分布存在差异如果新任务的数据分布与预训练数据差异较大模型坑会过渡调整以适应新任务导致旧任务上的性能下降。参数更新冲突微调过程中对新任务进行训练时模型参数可能会被更新导致之前学习到的知识被覆盖或者丢失新任务的梯度更新可能会遇旧任务的梯度更新发生冲突导致旧任务的知识被遗忘。为了解决灾难性遗忘问题可以尝试一下方法经验回放在微调过程中使用一个缓存区来存储旧任务的样本然后将旧任务的样本和新任务的样本混合在一起进行训练这样可以保留旧任务的知识减少灾难性遗忘的发生弹性权重共享通过引入正则化项限制模型参数的变动范围以保护之前学习到的知识这种方法可以在微调过程中平衡新任务和旧任务之间的重要性增量学习将微调过程分为多个阶段每个阶段只微调一部分参数这样可以逐步引入新任务减少参数更新的冲突降低灾难性遗忘的风险。多任务学习在微调过程中同时训练多个相关任务以提高模型的泛化能力和抗遗忘能力通过共享模型参数可以在不同任务之间传递知识减少灾难性遗忘的影响。综上所述灾难性遗忘是在模型微调过程中可能出现的问题通过合适的方法和技术可以减少灾难性遗忘的发生保留之前学习到的知识提高模型的整体性能。3.14 预训练和SFT操作有什么不同大语言模型的预训练和有监督微调Supervised Fine-Tuning是两个不同的操作它们在目标、数据和训练方式等方面存在一些区别。目标预训练的目标是通过无监督学习从大规模的文本语料库中学习语言模型的表示能力和语言知识。预训练的目标通常是通过自我预测任务例如掩码语言模型Masked Language ModelMLM或下一句预测Next Sentence PredictionNSP等来训练模型。有监督微调的目标是在特定的任务上进行训练例如文本分类、命名实体识别等。在有监督微调中模型会利用预训练阶段学到的语言表示和知识通过有监督的方式调整模型参数以适应特定任务的要求。数据在预训练阶段大语言模型通常使用大规模的无标签文本数据进行训练例如维基百科、网页文本等。这些数据没有特定的标签或任务信息模型通过自我预测任务来学习语言模型。在有监督微调中模型需要使用带有标签的任务相关数据进行训练。这些数据通常是人工标注的包含了输入文本和对应的标签或目标。模型通过这些标签来进行有监督学习调整参数以适应特定任务。训练方式预训练阶段通常使用无监督的方式进行训练模型通过最大化预训练任务的目标函数来学习语言模型的表示能力。有监督微调阶段则使用有监督的方式进行训练模型通过最小化损失函数来学习任务相关的特征和模式。在微调阶段通常会使用预训练模型的参数作为初始参数并在任务相关的数据上进行训练。总的来说预训练和有监督微调是大语言模型训练的两个阶段目标、数据和训练方式等方面存在差异。预训练阶段通过无监督学习从大规模文本数据中学习语言模型而有监督微调阶段则在特定任务上使用带有标签的数据进行有监督学习以适应任务要求。3.15 样本量规模增大训练出现OOM错误怎么办当在大语言模型训练过程中样本量规模增大导致内存不足的情况出现时可以考虑出一下几种解决方案减少批量大小将批量大小减小可以减少每个训练步骤中需要的内存量较小的批量大小可能会导致训练过程中的梯度估计不稳定但可以通过增加训练步骤的数量来弥补这一问题分布式训练使用多台机器或者多个GPU进行分布式训练可以讲训练负载分散到多个设备上从而减少单个设备上的内存需求通过分布式训练可以将模型参数和梯度在多个设备之间进行同步和更新。内存优化技术使用一些内存优化技术可以减少模型训练过程中的内存占用。例如使用混合精度训练可以减少模型参数的内存占用使用梯度累积可以减少每个训练步骤中的内存需求减少模型规模如果内存问题仍然存在可以考虑减少模型的规模例如减少模型的层数隐藏单元的数量等虽然这可能导致模型性能的一定损失但是可以在一定程度上减少内存需求。增加硬件资源如果条件允许可以考虑增加硬件资源例如增加内存容量或者使用更高的内存的设备。这样可以提供更多的内存空间来容纳更大规模的训练数据。数据处理和加载优化优化数据处理和加载过程可以减少训练过程中的内存占用。例如可以使用数据流水线技术来并行加载和处理数据减少内存中同时存在的数据量。综上所述当在大语言模型训练中遇到内存不足的问题时可以通过减少批量大小分布式训练内存优化技术减少模型规模增加硬件资源或者优化数据处理等方式来解决具体的解决方案需要根据具体情况进行选择和调整。4 PEFT4.1 介绍一下PEFT是啥如何微调Parameter-Efficient Fine-tuning 是一种微调策略旨在仅训练少量参数使模型适应下游任务。对大规模PLMpre-trained language models进行微调的成本往往高的令人望而却步。在这方面PEFT方法只是微调了少量额外的模型参数从而大大降低了计算和存储成本。最近最先进行PEFT技术实现了与完全微调相当的性能。PEFT通过冻结预训练模型的某些层并仅微调特定于下游任务的最后几层来实现这种效率。这样模型就可以适应新的任务计算开销更少标记的例子也更少。尽管PEFT是一个相对较新的概念但自从引入迁移学习以来更新最后一层模型已经在计算机视觉领域得到了实践即使在NLP中静态和非静态词嵌入的实验也很早就进行了。参数高效微调旨在提高预训练模型如Bert 和RoBertTa在各种下游任务上的性能包括情感分析命名实体识别和问答。它在数据和计算资源有限的低资源设置中实现了这一点它只修改模型参数的一小部分并且不容易过拟合。参数高效的微调在计算资源有限或者涉及大型预训练模型的情况下特别有用。在这种情况下PEFT可以在不牺牲性能的情况下提供一种更有效的方法来微调模型。然而需要注意的是PEFT有时可能会达到与完全微调不同的性能水平特别是在预训练模型需要进行重大修改才能在新任务上表现良好的情况下。高效微调技术可以粗略的分为以下三类增加额外参数-A选取一部分参数更新S引入重参数化。而在增加额外参数这类方法中又主要分为类适配器Adapter-like方法和软提示sofrt prompts两个小类。4.2 为什么需要适配器微调Adapter-tuningadapter是在预训练模型每层中插入用于下游任务的参数针对每个下游任务仅增加3.6%的参数在微调时将模型主体冻结仅训练特定于任务的参数从而减少了训练时的算力开销。技术原理作者设计了一种新的Adapter结构并将其嵌入Transformer的结构里面针对每一个Transformer层增加两个Adapter结构分别是多头注意力的投影之后和第二个feed-forward层之后在训练时固定住原来预训练的参数不变只对新增的Adapter结构和Layer Norm层进行微调从而保证了训练的高效性每当出现新的下游任务通过添加Adapter模块来产生一个易于扩展的下游模型从而避免了全量微调和灾难性遗忘的问题。4.3 适配器微调Adapter-tuning的一些细节每个Adapter模块主要有两个前馈feed forward子层组成第一个前馈子层将Transformer块的输出作为输入将原始输入维度d高维特征投影到m低维特征通过控制m的大小来限制Adapter模块的参数量通常情况下m《d。然后中间通过一个非线性层在输出阶段通过第二个前馈子层up- project还原输入维度将m低维特征重新映射回d原来的高维特征作为Adapter模块的输出同时通过一个跳跃链接skip-connenction来将Adapter的输入重新加到最终的输出中去这样可以保证即便Adapter一开始的参数初始化接近0Adapter也由于skip connection的设置而接近于一个恒等映射从而确保训练的有效性。通过实验发现只训练少量参数的Adapter方法的效果可以媲美全量微调这也验证了Adapter是一种高效的参数训练方法可以快速的将语言模型的能力迁移到下游任务中去。Adapter通过引入0.5%-5%的模型参数可以达到不落后全量微调模型1%的性能。5 LoRA系列5.1 什么是LoRA?LoRA是一种参数高效微调技术主要是用于大型预训练模型的微调它通过在模型的权重矩阵中引入低秩矩阵来实现对模型的调整从而减少训练参数的数量降低计算和存储成本。LoRA的核心思想是大型语言模型在进行特定任务的微调时并不必要更新所有参数。通过仅对模型中一小部分参数进行微调可以显著减少所需要的计算资源同时保持或者提升模型性能。在具体实现上LoRA通过在预训练模型的权重矩阵上添加一个可学习的低秩矩阵来实现对模型的微调这个低秩矩阵由两个较小的矩阵相乘的到这两个矩阵在训练过程中进行更新而原始的预训练权重则保持不变。冻结一个预训练模型的矩阵参数并选择用A和B矩阵来替代在下游任务时只更新A和B矩阵。5.2 LoRA的思路是什么LoRA的核心思想1 冻结原模型保持预训练模型参数不变不直接修改“大脑”2 添加轻量补丁插入两个小型矩阵A和B秩r远小于原参数维度仅训练这些新参数3 合并输出工作时将原模型输出与补丁输出相加实现专业适配。为什么有效1 大模型任务在下游任务中需要的调整其实都是“低维度”的就像高维空间中的点在低维平面上2 通过低秩分解用极少的参数通常1%原模型参数就能捕捉任务特定模式3 训练后可将AB矩阵合并回原模型推理时零开销。1 旁路增加与低秩分解在原模型的旁边加一个额外的路径称为旁路使用两个低秩矩阵分解来近似更新量首先将输入通过一个降维矩阵A然后通过一个升维矩阵B进行还原这使得我们能够用更小的参数更新来捕捉必要的信息从而减少计算开销2 训练策略在微调过程中原模型的参数保持不变专注于训练降维和升维矩阵A和B这种方式避免了对所有模型参数的训练只更新额外的旁路降低了计算复杂度和内存需求。3 推理阶段整合在推理时将训练好的旁路矩阵BA与原模型参数进行相加从而无需改变原有计算图这种设计不增加额外的实时计算开销4 初始化策略降维矩阵A采用高斯分布正态分布来初始化以赋予其随机特性而升维矩阵B初始化为0矩阵这样开始训练时不会影响原有模型的输出确保训练稳定性。5 可插拔的任务切花通过不同的A和B配置可快速适应新的任务情景。当前任务可表示为W0 B1A1只需要移除或者替换旁路中的LoRA的部分即可切换任务例如使用B2A2实现快速的模型适应。优势对比方法参数量训练成本推理开销适用场景全参数微调100%极高无数据充足、资源丰富LoRA0.1%-1%低无资源有限、快速适配Adapter3%-10%中有需要模块化设计5.3 LoRA的特点是什么将B A矩阵加到W上可以消除推理延迟可以通过可插拔的形式切换到不同的任务设计的比较好简单且效果好5.4 QLoRA是什么QLoRA是LoRA的量化版本结合了量化和低秩适配两种技术旨在减少模型微调过程中的内存占用和计算成本同时尽量保持模型性能。在QLoRA中首先对模型的权重进行4位量化这意味着模型的每个权重都被表示位4位的树枝显著减少了模型的内存占用。量化后的模型参数以一种称为NormalFloatNF4的数据类型存储这种数据类型特别适合表示正态分布的数据并且可以比传统的4位整数或者浮点数提供更好的量化效果。接下来QLoRA利用LoRA技术通过在模型中引入可训练的低秩矩阵来进一步微调模型。这些低秩矩阵作为适配器被添加到模型的特定层中并且只有这些适配器的参数在微调过程中被更新而模型的原始参数保持不变。这样做的好处是可以针对特定任务微调模型的行为而不需要对整个模型进行昂贵的更新。此外QLoRA还采用了一种称为双重量化的技术对量化过程中使用的缩放因子scale factor和偏移量offset进行再次量化从而进一步减少内存占用。QLoRA的另一个关键技术是利用NVIDIA的统一内存进行分页优化。这种方法可以有效地管理内存使用特别是在处理长序列数据时可以避免内存峰值过高的问题。Rank是矩阵中线性无关行或者列的最大数目。在LoRA中通过引入低秩矩阵可以减少模型的参数数量从而降低计算和存储成本。5.5 QLoRA的思路和流程是怎么样的QLoRA是什么想象你要微调一个超级大的语言模型比如650亿参数但你的显卡只有24GB显存比如RTX 3090。传统方法需要780GB显存就像用自行车拉火车——根本不可能QLoRA就是解决这个问题的魔法工具包它能让你用家用显卡微调超大模型效果还和全量微调差不多。核心原理4位压缩把模型参数压缩成超级精简版原大小的1/8就像把高清电影转成流畅画质但关键信息不丢。外挂训练冻结压缩后的模型只训练新增的小补丁LoRA模块类似给固定骨架加可调节关节。无损还原训练时临时把4位参数恢复成16位精度计算保证数学计算的准确性 。5.6 QLoRA在LoRA基础上的四大改进4位智能压缩NF4量化传统问题直接4舍5入压缩会丢失关键信息就像把彩色照片粗暴转黑白。QLoRA方案用统计学方法分位数量化根据权重分布特点智能分配压缩档位。好比把照片按明暗分成16档确保暗部细节不丢失 。示例对于正态分布的权重QLoRA会让靠近0的密集区域分配更多档位边缘稀疏区域分配较少档位 。双重压缩Double Quantization传统问题量化时需要存储缩放系数这些系数本身也占空间。QLoRA方案对缩放系数再压缩一次就像把zip压缩包再打个rar包显存占用从0.5bit/参数降到0.127bit/参数 。效果65B模型节省3GB显存。分页优化器Paged Optimizer传统问题训练时偶尔会显存爆炸就像春运火车站突然涌入大量乘客。QLoRA方案在显存不够时自动把部分数据暂存到内存需要时再调回。类似机场的应急分流通道 。计算优化关键设计存储用4位计算时恢复成16位。就像把压缩文件解压后使用既省硬盘又不影响CPU计算 。流程4位存储 → 实时解压 → 16位计算 → 4位存储 。效果对比以65B模型为例指标传统微调LoRAQLoRA显存占用780GB160GB48GB训练速度1x1.2x0.7x性能保留率100%98%99.3%为什么这些改进有效正态分布特性大模型权重天然符合正态分布QLoRA的NF4正好匹配这个规律 。异常值处理分块量化避免单个异常值影响整体精度 。硬件友好4位存储16位计算完美适配GPU的Tensor Core 。通俗类比把QLoRA想象成乐高改装大师原模型是拼好的巨型乐高城堡不可拆NF4量化是把城堡拍成高清照片轻量存档LoRA是外挂可动部件只改这些部件双重压缩是把照片存成zip密码更省空间需要玩的时候按图纸恢复局部16位计算这样既不用拆原城堡又能低成本改造5.7 LoRA矩阵的标准初始化方式LoRALow-Rank Adaptation通过引入两个低秩矩阵A和B来微调预训练模型其初始化遵循以下规则矩阵A采用随机高斯分布初始化如Kaiming初始化通常从均值为0、方差较小的正态分布中采样。例如Pythonnn.init.normal_(self.lora_A, mean0, std0.02) # 小随机数初始化这种初始化方式为模型提供初始的随机方向便于梯度更新时捕捉任务特定特征。矩阵B初始化为全0矩阵。例如Pythonnn.init.zeros_(self.lora_B) # 全0初始化这是LoRA实现中的默认设置Hugging Face的PEFT库等主流工具均采用此方式。初始化为全0的原因矩阵B初始化为0的核心目的是保证训练初期的稳定性 初始状态下LoRA的更新项 ΔWBAΔWBA 为0因为B0模型行为与原始预训练模型完全一致。这避免了随机初始化可能带来的初始扰动防止破坏预训练学到的知识。梯度更新的对称性打破 虽然B初始为0但A的随机初始化会通过反向传播自然引导B的更新方向。若B也随机初始化可能导致初始更新方向混乱影响收敛。与学习率的协同作用 理论分析表明B0的初始化允许使用更大的学习率相比A0的方案加速收敛且不易引发输出不稳定。实验证明这种初始化在大多数任务中表现更优。其他初始化方案的对比A0 B随机 虽然数学上 BA0BA0 仍成立但实际训练中会导致梯度更新效率降低且需更小的学习率来维持稳定性效果通常不如标准方案。A/B均随机 可能加速初期收敛但需精细调整方差和学习率否则易引发训练不稳定。初始化对训练动态的影响默认方案A随机B0 梯度从A流向B形成“渐进式学习”适合大多数任务。反向方案A0B随机 梯度从B流向A可能因初始噪声导致训练波动。总结LoRA将B初始化为0是为了稳定训练起点并简化超参数调优而A的随机初始化则提供探索方向。这种组合在实践中被证明是效率与稳定性的最佳平衡。5.8 如何使用PEFT库中的LoraParameter-Efficient Fine-Tuning (PEFT) 是一种微调大型预训练模型如语言模型的技术PEFT库参数高效微调是一个库用于高效的将大型预训练模型适配到各种下游应用而无需微调模型的所有参数因为这样做成本过高。PEFT方法仅微调少量额外模型参数同时产生与完全微调模型相当的性能。这使得在消费硬件上训练和存储大型语言模型LLm变得更加容易。PEFT与TransformersDiffusers和Accelerate库集成提供更快更简单的方法来加载训练和使用大型模型进行推理。PEFT库使用方法可以概括为以下几个步骤1 安装PEFT库pip install peft5.9 如何配置LoraConfig每个PEFT方法由一个PeftConfig类定义存储构建PeftModel的所有重要参数以LoRA为例需要指定任务类型是否用于推理低秩矩阵的维度等参数12fromimport False8320.1一 核心参数配置基础参数r秩控制低秩矩阵的维度默认值为8较小的r如4-16适合简单任务较大的r如64适合复杂任务但会增加计算量。lora_alpha:缩放因子默认值为8建议设为r的1-4倍如r8时设为16用于平衡低秩矩阵的影响。lora_dropout:防止过拟合的Dropout率常用0.05-0.1模块选择target_modules:指定应用LoRA的模型层如Transformer的q_proj(查询矩阵)和v_proj(值矩阵)。不同模型层可能不同需要通过print(model)查看示例target_modules [“q_proj”,“v_proj”]任务类型task_type:根据任务选择如CAUSAL_LM自回归生成如GPTSEQ_2_SEQ_LM:序列到序列任务如T5TOKEN_CLS:标注任务二 高级参数优化初始化与正则化init_lora_weights:True:LoRA矩阵B初始化为0A为随机高斯分布确保训练前不改变原始模型输出。“gaussian”或者“eva”更复杂的初始化策略适合特定场景。bias:可选“none”默认“all”或者“lora_only”,控制偏执项是否参与训练。动态调整rank_pattern和alpha_pattern:对不同层设置不同r和alpha例如12model.layers.10.*16# 第10层使用更高秩 model.layers.1.*32# 第1层使用更大alpha适用于深层模型的关键层微调。3. 显存优化1. modules_to_save:指定额外需训练的全参数层如分类头classifier与LoRA层结合使用。2. use_rslora:设为True时缩放因子改为alpha/sqrt®,可能提升稳定性。12345678910111213fromimport 16# 低秩维度 32# 缩放因子 q_projv_projo_proj# 目标层 0.05# Dropout率 none# 不训练偏置 CAUSAL_LM# 自回归任务 lm_head# 额外训练输出层 gaussian# 高斯初始化 True# 启用稳定缩放三 实践建议模型适配使用print(model)查看层名确保target_modules命名正确。例如ChatGLM的查询层名为query_key_value参数调优小数据集降低r如4-8和alpha如8-16增加dropout如0.1多任务训练通过rank_pattern分层配置关键任务层分配更高秩。工具链合成结合prepare_model_for_int8_training 实现8位量化减少显存占用。五 常见问题参数冲突避免同时设置target_modules 和 layers_to_transform,可能导致重复适配。效果不佳检查task_type是否匹配任务如分类任务设为CAUSAL_LM通过以上配置可高效微调大模型典型场景下仅需训练0.1%-1%的参数量。5.10 模型加载PEFT策略加载要微调的基础模型使用get_peft_model()函数包装基础模型和peft_config以创建PeftModel1234fromimport fromimport bigscience/mt0-large训练模型现在可以用Transformers的Trainer、Accelerate或任何自定义的PyTorch训练循环来训练模型。例如使用Trainer类进行训练例如使用Trainer类进行训练123456789101112131415161718fromimport your-name/bigscience/mt0-large-lora 1e-3 32 2 0.01 train test5.11 微调需要了解的知识-模型显存占用的部分有哪些模型参数存储内容模型的权重矩阵如全连接层卷积核embedding层等显存计算参数量* 参数精度如FP32占4字节FP16占2字节示例7B参数的模型在FP16下占用14GB显存特点静态占用与输入数据无关梯度Gradients存储内容反向传播时计算的参数梯度用于优化器更新权重。显存计算与参数量相同FP16梯度占2字节/参数优化器影响如使用Adam需存储梯度SGD则无需额外状态优化器状态Optimizer States存储内容优化器维护的中间变量如Adam的一阶动量、二阶动量。显存计算Adam每个参数需额外8字节FP32状态SGD仅需梯度无额外状态示例7B模型使用Adam时优化器状态占用约56GB7B×8字节中间激活值Activations存储内容前向传播中每层的输出特征图用于反向传播计算梯度。显存计算与输入数据batch size、序列长度强相关公式为125 6070KV Cache推理专用存储内容推理时缓存注意力层的Key-Value矩阵加速自回归生成。显存计算4blh(sn)l层数s输入序列长度n生成序列长度优化方法MQA/GQA减少多头KV Cache的冗余存储临时缓存与框架开销存储内容框架的临时缓冲区、通信缓存、显存碎片等。显存占比通常5%但可能随batch size增大而显著显存占用分布示例训练 vs 推理组件训练显存占比Adam推理显存占比模型参数20%80%-90%梯度20%-优化器状态30%-中间激活值30%-60%10%KV Cache-5%-20%5.12 模型显存占用优化策略训练阶段- 使用混合精度FP16/BF16减少参数和梯度显存- 激活重计算ZeRO分片如Deepspeed优化中间激活和优化器状态推理阶段- 量化INT8/INT4压缩模型参数- 动态调整KV Cache长度通过合理配置上述策略可显著降低显存需求。例如7B模型全参数训练需112GB显存FP32而QLoRA微调仅需2.3GB5.13 prefix类的微调方式有哪些prefix类的微调包括以下几种prefix tuning在prefix tuning之前的工作主要是人工设计离散的模版或者自动化搜索离散的模板。对于人工设计的模板模板的变化对模型最终的性能特别敏感加一个词少一个词或者变动位置都会造成非常大的变化。而对于自动化搜索模版成本也比较高同时以前这种离散化的token搜索出来的结果可能并不是最优的除此之外传统的微调范式利用预训练模型去对不同的下游任务进行微调对每个任务都要保存一份微调后的模型权重一方面微调整个模型耗时较长另一方面也会占用很多存储空间。技术原理基于以上prefix tuning提出固定预训练语言模型为语言模型添加可训练任务特定的前缀这样就可以为不同任务保存不同的前缀微调成本也小prefix Tuning在输入token之前构造一段任务相关的virtual tokens作为prefix然后训练的时候只更新prefix那部分的参数而PLM中的其他部分参数固定。prompt tuning大模型全量微调对每一个任务训练一个模型开销和部署成本都比较高同时离散的prompts方法成本比较高并且效果不太好。除此之外之前的prefix tuning在更新参数的时候还是有些复杂。技术原理基于此作者提出了prompt tuning通过反向传播更新参数来学习prompts而不是人工设计prompts同时冻结模型原始权重只训练prompts参数训练完之后用同一个模型可以做多任务推理。prompt tuning该方法可以看作是prefix tuning的简化版本它给每个任务定义了自己的prompt然后拼接到数据上作为输入但是只在输入层加入prompt tokens并且不需要加入多层感知器MLP 进行调整来解决难训练的问题。model tuning需要为每个下游任务制作整个预训练模型的任务特定副本并且必须分批进行推理prompt tuning只需要为每个任务存储一个特定于任务的小提示并使用原始预训练模型进行混合任务推理。通过实验发现随着预训练模型参数量的增加prompt tuning的方法会逼近全参数微调的结果。5.14 prompt tuning和prefix tuning在微调上的区别是什么他们都是在自然语言处理任务中对预训练模型进行微调的方法但它们在实现细节和应用场景上有所不同。以下是他们之间的主要区别参数更新位置prompt tuning通常只在输入层添加参数而prefix tuning在每一层都添加了参数参数数量prefix tuning通常比prompt tuning有更多的可学习参数因为它为模型的每一层都添加了前缀适用任务prompt tuning更适合于分类任务而prefix tuning更适合于生成任务因为它可以在不同层次上调整模型的行为训练效率prompt tuning通常有更高的训练效率。P-tuning背景1 大模型的prompt构造方法严重影响到下游任务的效果比如gpt-3采用人工构造模版来做上下文学习但人工设计的模版的变化特别敏感加一个词或者少一个词或者变动位置都会造成比较大的变化。进来的自动化搜索模版工作成本也比较高以前这种离散化的token的搜多出来的结果可能不是最优的导致性能不稳定。基于此设计了一种连续可微的virtual token该方法将prompt转换为可以学习的embedding 层并对prompt embedding进行一层处理。相比prefix tuningp-tuning加入了可微的virtual token但仅限于输入层没有在每一层都加另外virtual token的位置也不一定是前缀插入的位置是可选的。这里的出发点实际是把传统人工设计模版中真实token替换成可微的virtual token。P-tuning v2之前的prompt tuning和p tuning等方法存在两个主要的问题一缺乏模型参数规模和任务通用性。缺乏规模通用性prompt tuning论文中表明当模型参数规模超过10B时提示优化可以与全量微调相媲美但是对于那些较小的模型从100M到1B提示优化和全量微调的表现有很大的差异这大大限制了提示优化的适用性。缺乏任务普遍性尽管prompt tuning和p tuning在一些NLU基准测试中表现出优势但提示调优对硬序列标记任务即序列标注的有效性尚未得到验证。第二缺少深度提示优化在prompt tuning 和p-tuning中连续提示只被插入transfomrer第一层的输入embedding序列中。在接下来的transformer层中插入连续提示的位置的embedding是由之前的transformer层计算出来的这可能导致两个可能的优化挑战。由于序列长度的限制可调参数的数量是有限的。输入embeddinembedding对模型预测只有相对间接的影响。P-tuning v2方法在每一层都加入了prompts tokens 作为输入2️而不仅仅是加入到输入层这带来两个方面的好处更多的可学习参数从p-tuning 和prompt tuning 的0.01%增加到0.1%-3%加入到更深层结构中的prompt能给模型预测带来更直接的影响。总结1 prefix tuning在每一个transformer层都带上一些virtual token作为前缀以适应不同的任务。优化多层prefix与fine-tuning比肩2 prompt tuning该方法可以看作是prefix tuning的简化版本针对不同的任务仅在输入层引入virtual token形式的软提示soft prompt优化单层prefix大尺寸模型下与fine-tuning比肩3 p-tuning将prompt转换为可以学习的embeddinembedding层相比prefix tuning仅在输入层加入的可微的virtual token另外virtual token的位置也不一定是前缀插入的位置时可选的。优化单层prefix大尺寸模型下与fine-tuning比肩4 p tuning v2该方法在每一个transformer层都加入了prompt token作为输入引入多任务学习针对不同任务采用不同的提示长度优化多层prefix小尺寸和大尺寸模型下均与fine-tuning比肩。分别用通俗易懂的语言介绍prefix tuning prompt tuning p-tuningp- tuning v2如何学习AI大模型 “最先掌握AI的人将会晚掌握AI的人有竞争优势晚掌握AI的人比完全不会AI的人竞争优势更大”。在这个技术日新月异的时代不会新技能或者说落后就要挨打。老蓝我作为一名在一线互联网企业保密不方便透露工作十余年指导过不少同行后辈。帮助很多人得到了学习和成长。我是非常希望可以把知识和技术分享给大家但苦于传播途径有限很多互联网行业的朋友无法获得正确的籽料得到学习的提升所以也是整理了一份AI大模型籽料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、落地项目实战等免费分享出来。点击即可获取大模型学习包2026年最新版AI大模型学习路线图100套AI大模型商业化落地方案100集大模型视频教程200本大模型PDF书籍LLM面试题合集AI产品经理资源合集大模型学习路线想要学习一门新技术你最先应该开始看的就是学习路线图而下方这张超详细的学习路线图按照这个路线进行学习学完成为一名大模型算法工程师拿个20k、15薪那是轻轻松松视频教程首先是建议零基础的小伙伴通过视频教程来学习其中这里给大家分享一份与上面成长路线学习计划相对应的视频教程。文末有整合包的领取方式技术书籍籽料当然当你入门之后仅仅是视频教程已经不能满足你的需求了这里也分享一份我学习期间整理的大模型入门书籍籽料。文末有整合包的领取方式大模型实际应用报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。文末有整合包的领取方式大模型落地应用案例PPT光学理论是没用的要学会跟着一起做要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。文末有整合包的领取方式大模型面试题答案截至目前大模型已经超过200个在大模型纵横的时代不仅大模型技术越来越卷就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道我总结了大模型常考的面试题。文末有整合包的领取方式领取方式这份完整版的 AI大模型学习籽料我已经上传CSDN需要的同学可以微⭐扫描下方CSDN官方认证二维码免费领取
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

重庆荣昌网站建设做机械比较好的外贸网站

FaceFusion模型微调指南:针对特定人群优化换脸自然度在影视特效、虚拟偶像和个性化内容创作日益火热的今天,人脸交换技术早已不再是实验室里的概念。像FaceFusion这样的先进框架,已经能实现跨姿态、高保真的面部替换,但在实际落地…

张小明 2026/1/4 9:08:45 网站建设

做网站毕业设计标准型网站构建

——面向新型空间智能的安全感知与管控体系前言高安全仓储与地下硐室是军工体系、战略物资保障体系以及重要基础设施运行体系中的关键组成部分,承担着装备储存、物资保障、应急支撑与战备准备等重要任务。其运行环境具有空间结构复杂、环境条件封闭、风险要素高度耦…

张小明 2026/1/4 9:08:43 网站建设

天津网站开发培训学校wordpress xiu底部广告

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/4 10:35:45 网站建设

刘涛给孩子网站做的广告一步一步教你做网站后台视频

第一章:量子模拟环境构建概述量子计算作为前沿科技领域的重要分支,其研究与应用依赖于稳定高效的模拟环境。构建一个功能完备的量子模拟平台,是开展算法验证、电路设计和系统优化的基础。本章将介绍搭建量子模拟环境所需的核心组件、工具链选…

张小明 2026/1/4 10:35:43 网站建设

和国外做贸易用什么网站天津和平做网站多少钱

4.5 AI 世界的“防火墙”:从零构建 LLM 攻击实时检测系统 导语:我们已经构建了功能强大、可观测、可评估的 AI Agent。但我们是否忽略了一个致命的“阿喀琉斯之踵”——安全?当你的 Agent 能够调用 API、访问数据库、甚至执行代码时,它就从一个信息处理器,变成了一个拥有“…

张小明 2026/1/8 1:57:46 网站建设

建设网站上海怎么查看网站开发使用什么技术

第一章:Open-AutoGLM插件热加载优化之路(从卡顿到毫秒级响应的蜕变)在高并发场景下,Open-AutoGLM 插件系统的初始热加载机制存在明显性能瓶颈,平均响应延迟高达 1.2 秒,严重影响用户体验。为实现毫秒级动态…

张小明 2026/1/4 10:35:40 网站建设