与企业网站做接口,免费企业网站建站,网站开发遇到的难题解决,东莞网站建设怎么收费前言
记录一下自己的学习历程#xff0c;也怕自己忘掉了某些知识点
Prefix LM 和 Causal LM区别是什么#xff1f; Prefix LM #xff08;前缀语⾔模型#xff09;和 Causal LM#xff08;因果语言模型#xff09;是两者不同类型的语言模型#xff0c;它们的区别在于生…前言
记录一下自己的学习历程也怕自己忘掉了某些知识点
Prefix LM 和 Causal LM区别是什么
Prefix LM 前缀语⾔模型和 Causal LM因果语言模型是两者不同类型的语言模型它们的区别在于生成文本的方式和训练目标 Prefix LM Prefix LM前缀语⾔模型其实是Encoder-Decoder模型的变体。①在标准的Encoder-Decoder模型中Encoder和Decoder各自使用不同的结构 ②在Prefix LM中Encoder和Decoder则共享一个Transformer结构而Transformer内部通过Attention Mask机制实现Encoder与Decoder。 与标准的Encoder-Decoder类似Prefix LM在Encoder部分采用Auto Encoding自编码模式即前缀序列中任意两个Token都相互可见而Decoder部分采用Auto Regressive自回归模式即待生成的token可以看到Encoder侧所有token和Decoder侧已经生成的token但不能看到未来尚未产生的token。 应用场景 适合于需要基于已有文本继续生成文本的任务例如文本补全、续写故事等 优势 能够利用完整的上下文信息来生成文本有助于生成更加准确和连贯的内容 代表模型 T5、UniLM等这些模型通过共享编码器Encoder和解码器Decoder的参数实现对前缀的理解和文本生成 Causal LM Causal LM是因果语言模型目前流行地大多数模型就是这种结构因为GPT系列的模型内部结构就是它还有开源的LLaMa也是。 Causal LM只涉及到Encoder-Decoder中的Decoder部分采用Auto Regressive模式直白地说就是根据历史的token来预测下一个token也是在Attention Mask这里做的手脚 应用场景 广泛用于需要生成新文本的任务例如文本摘要、聊天机器人、语言生成等 优势 由于其自回归的特性Causal LM在生成文本时可以逐步构建上下文适用于长文本生成和需要逐步推理的场景 代表模型 GPT系列模型这些模型通过逐步生成文本的方式实现了对语言的深入理解和生成 技术细节对比 训练过程Prefix LM在训练时可能会使用到整个序列的信息来预测下一个词而Causal LM在训练时只能使用到当前词之前的所有词。 解码方式Prefix LM可以采用非自回归解码即并行生成所有词Causal LM则采用自回归解码即一个词接一个词地生成。 上下文利用Prefix LM在生成时可以利用到更全面的上下文信息而Causal LM则只能利用到已经生成的文本作为上下文。 网上答案 1. Prefix LM前缀语⾔模型是⼀种⽣成模型它在⽣成每个词时都可以考虑之前的上下⽂信 息。在⽣成时前缀语⾔模型会根据给定的前缀即部分⽂本序列预测下⼀个可能的词。这种模型可以⽤于自然语言理解、机器翻译、填空等任务。 2. Causal LM因果语⾔模型是⼀种⾃回归模型它只能根据之前的⽂本⽣成后续的⽂本⽽不 能根据后续的⽂本⽣成之前的⽂本。在训练时因果语⾔模型的⽬标是预测下⼀个词的概率给定之前 的所有词作为上下⽂。这种模型可以⽤于⽂本⽣成、语⾔建模等任务。 为什么现在的大模型大多是decoder-only的架构 1、训练效率 相比于Encoder-Decoder结构Decoder-only模型通常需要更少的参数来达到相似的性能。这是因为Encoder-Decoder结构需要同时学习编码输入和生成输出的能力而Decoder-only模型只需要专注于生成输出 2、性能表现 尽管Decoder-only模型在理解性任务上可能不如Encoder-Decoder结构但它们在生成性任务上的表现往往更胜一筹。随着模型规模的增大Decoder-only模型在理解和生成任务上的差距逐渐缩小甚至在某些情况下能够超越Encoder-Decoder模型。 3、理论 理论上是因为Encoder-Decoder的双向注意力会存在低秩问题这可能会削弱模型表达能力就生成任务而言引入双向注意力并无实质好处。而Encoder-Decoder架构之所以能够在某些场景下表现更好大概只是因为它多了一倍参数。所以在同等参数量、同等推理成本下Decoder-only架构就是最优选择了。 Multi-query Attention与Grouped-query Attention区别是什么 回答 Multi-query Attention和Grouped-query Attention是两种改进和扩展传统自注意力机制的变体。 传统的MHAMulti-head Attention是将输入划分为多个Head并为每个Head独立计算注意力。在MHA中的Q、K、V会根据每个head做不同的转换可以独立学习输入中的不同特性。这在Head数量较多时候可能会存在计算密集的问题。 Grouped-query Attention这种机制将查询分成多个组每个组内的查询与相应的键值对进行交互。这样可以减少计算复杂度提高效率同时仍能保持良好的性能。 Multi-query AttentionMQA 让所有的Head之间共享同样的一份 K 和 V 矩阵意味K和V的计算唯一只让 Q 保留了原始多头的性质每个Head存在不同的转换从而大大减少 K 和 V 矩阵的参数量以及KV Cache的显存占用以此来达到提升推理速度但是会带来精度上的损失 LLM中token指的是什么 省流总结文本被转换为token。token被赋予token ID。这些token ID 可用于创建embeddingembedding之后输入LLM 关于LLM揭秘token与embedding的机制 搞懂LLM中的Token看这一篇就够了 关于LLM揭秘token与embedding的机制 稀疏向量与稠密向量 在RAG应用中经常能听到稀疏向量与稠密向量在这里简单介绍一下。 在机器学习和数据处理中向量是基本的数据结构之一。根据向量中非零元素的数量和分布可以将向量分为稀疏向量Sparse Vector和稠密向量Dense Vector。 稀疏向量 稀疏向量是指大部分元素都是零只有少数几个元素是非零的向量。这种向量在表示上通常会省略掉零元素只记录非零元素的位置和值以节省存储空间和提高计算效率。例如一个长度为1000的向量如果只有10个元素是非零的那么这个向量就可以被视为稀疏向量。 举个例子向量(1.0,0.0,1.0,3.0) 密集格式表示为[1.0,0.0,1.0,3.0] 稀疏格式表示为(4,[0,2,3],[1.0,1.0,3.0]) 第一个4表示向量的长度(元素个数)[0,2,3]是索引数组即位置[1.0,1.0,3.0]是values数组索引对应位置的值表示向量0的位置的值是1.02的位置的值是1.0,而3的位置的值是3.0,其他的位置都是0 稠密向量 稠密向量则相反它包含的元素大部分是非零的或者非零元素的比例并不低。稠密向量的存储通常会保存所有元素的值无论它们是否为零 两者的区别 非零元素的分布 稀疏向量非零元素很少大部分元素都是零。稠密向量非零元素较多或者非零元素的比例不低。 存储方式 稀疏向量通常只存储非零元素的位置和值可以节省大量存储空间。稠密向量需要存储所有元素的值即使大部分是零。 计算效率 稀疏向量在执行向量运算时可以只对非零元素进行操作通常计算效率更高。稠密向量需要考虑所有元素计算可能会更耗时。 应用场景 稀疏向量在特征维度非常高但每个样本的有效特征很少的情况下非常适用如文本处理中的词袋模型。稠密向量在特征维度不高且大部分特征对结果都有影响的情况下使用如图像处理中的像素数据。 稀疏向量表示通常适用于以下几种情况 高维数据当数据的维度非常高时如果每个样本中只有少数几个特征是非零的使用稀疏向量可以节省大量的存储空间和计算资源。 特征稀疏在数据集中如果大多数特征对于大多数样本都是零值例如文本数据中的词袋模型每个文档只包含词汇表中的少数几个词。 减少计算复杂度稀疏向量可以在计算过程中跳过零值从而减少计算量提高算法的效率。 以下是一些具体的应用场景其中稀疏向量表示特别有用 文本处理在自然语言处理中文本数据通常转换成词频或TF-IDF向量这些向量通常是稀疏的因为一个文档只包含词汇表中的少数几个词。 推荐系统用户对商品的评分矩阵通常是稀疏的因为用户只对少数商品进行了评分。 基因数据分析在基因表达数据中通常只有少数基因在特定细胞类型中活跃因此数据是稀疏的。 图像处理在处理图像数据时如果图像被转换成某种基于像素的特征表示且图像中有很多空白或单一颜色区域则可以使用稀疏向量。 稀疏编码在稀疏编码算法中目的是找到一组稀疏的基向量来表示数据这样可以更好地捕捉数据的结构。 压缩感知在压缩感知领域信号的稀疏表示用于从远低于奈奎斯特率的采样率中恢复信号。 图数据在处理图数据时如果图是稀疏的即边的数量远小于可能的最大边数那么邻接矩阵或特征矩阵可能是稀疏的。 二者的优势 稠密向量:捕获文本的整体语义信息稀疏向量:保留关键词的重要性和频率信息 解释下 稠密向量和稀疏向量在捕获文本信息时的差异主要源于它们的数据表示方式和适用的算法特性。 稠密向量 稠密向量通常是固定长度的并且每个维度都对应一个实际的数值无论这个数值是否为零。稠密向量常用于深度学习模型如词嵌入Word Embeddings技术例如Word2Vec或GloVe。以下解释为什么稠密向量能捕获文本的整体语义信息 上下文关系稠密向量通过学习单词在大量文本中的上下文关系将单词映射到高维空间中的向量。这些向量捕获了单词的语义和语法属性即使是非常相似的词也能够在向量空间中体现出差异。 分布式表示稠密向量采用分布式表示意味着单词的意义是由其向量中的所有维度共同决定的而不是由单个维度或几个维度决定。这种表示方式可以捕捉到单词的复杂语义信息。 连续性稠密向量在向量空间中的位置是连续的这意味着相似的词在向量空间中是接近的这使得稠密向量可以用于捕捉文本中的细微语义差异。 稀疏向量 稀疏向量则主要记录非零元素的索引和值而零元素通常不存储。稀疏向量常用于基于计数的模型如TF-IDF。以下是为什么稀疏向量主要保留关键词的重要性和频率信息 关键词重要性在稀疏向量表示中非零元素通常对应于文本中的关键词。这些非零元素的值如词频或TF-IDF权重反映了关键词在文本中的重要性。 频率信息稀疏向量中的非零值可以直接表示单词在文本中出现的频率。这对于某些算法如基于频率的文本分类器来说是非常重要的信息。 可解释性稀疏向量的每个非零元素都可以直接对应到原始文本中的一个特征如单词这使得稀疏向量在模型解释性方面具有优势。 LLM输入句子长度理论上可以无限延长嘛 理论上来说LLMs⼤型语⾔模型可以处理任意⻓度的输⼊句⼦但实际上存在⼀些限制和挑战。下⾯是⼀些相关的考虑因素 1. 计算资源⽣成⻓句⼦需要更多的计算资源包括内存和计算时间。由于LLMs通常是基于神经⽹络的模型计算⻓句⼦可能会导致内存不⾜或计算时间过⻓的问题。 2. 模型训练和推理训练和推理⻓句⼦可能会⾯临⼀些挑战。在训练阶段处理⻓句⼦可能会导致梯度消失或梯度爆炸的问题影响模型的收敛性和训练效果。在推理阶段⽣成⻓句⼦可能会增加模型的错误率和⽣成时间。 3. 上下⽂建模LLMs是基于上下⽂建模的模型⻓句⼦的上下⽂可能会更加复杂和深层。模型需要能够捕捉⻓句⼦中的语义和语法结构以⽣成准确和连贯的⽂本。 可以通过增加计算资源、优化模型结构和参数设置以及使用更高效的推理算法来提高LLMS处理长句子的能力 如果想要在某个模型基础上做全参数微调究竟需要多少显存 要确定全参数微调所需的显存量需要考虑以下⼏个因素 1. 模型的⼤⼩模型的⼤⼩是指模型参数的数量。通常参数越多模型的⼤⼩就越⼤。⼤型的预训练模型如Bert、GPT等通常有数亿到数⼗亿个参数⽽较⼩的模型可能只有数百万到数千万个参数。模型的⼤⼩直接影响了所需的显存量。 2. 批量⼤⼩批量⼤⼩是指在每次训练迭代中⼀次性输⼊到模型中的样本数量。较⼤的批量⼤⼩可以提⾼训练的效率但也需要更多的显存。通常全参数微调时较⼤的批量⼤⼩可以提供更好的性 能。 3. 训练数据的维度训练数据的维度是指输⼊数据的形状。如果输⼊数据具有较⾼的维度例如图像数据那么所需的显存量可能会更⼤。对于⽂本数据通常需要进⾏⼀些编码和嵌⼊操作这也会增加显存的需求。 4. 训练设备的显存限制最后需要考虑训练设备的显存限制。显卡的显存⼤⼩是⼀个硬性限制超过显存限制可能导致训练失败或性能下降。确保所选择的模型和批量⼤⼩适应训练设备的显存⼤ ⼩。 综上所述全参数微调所需的显存量取决于模型的⼤⼩、批量⼤⼩、训练数据的维度以及训练设备的显存限制。在进⾏全参数微调之前建议先评估所需的显存量并确保训练设备具备⾜够的显存来⽀持训练过程。 SFT监督微调Supervised Fine-Tuning SFT指的是在一个预训练的模型如大型语言模型基础上利用针对性的数据集实施额外的训练过程旨在使模型更精准地契合特定任务需求或深入某一专业领域。 当前SFT的几种方式如下 1、全参数微调Full Parameter Fine Tuning全参数微调涉及对模型的所有权重进行调整以使其完全适应特定领域或任务。这种方法适用于拥有大量与任务高度相关的高质量训练数据的情况通过更新所有参数来最大程度地优化模型对新任务的理解和表现 2、部分参数微调Sparse Fine Tuning / Selective Fine Tuning部分参数微调策略仅选择性地更新模型中的某些权重尤其是在需要保留大部分预训练知识的情况下。 3、LoRALow-Rank Adaptation通过向模型权重矩阵添加低秩矩阵来进行微调既允许模型学习新的任务特定模式又能够保留大部分预训练知识从而降低过拟合风险并提高训练效率 4、P-tuning v2这是一种基于prompt tuning的方法仅微调模型中与[prompt] 相关的部分参数例如额外添加的可学习prompt嵌入而不是直接修改模型主体的权重 5、QLoRA可能是指Quantized Low-Rank Adaptation或其他类似技术它可能结合了低秩调整与量化技术以实现高效且资源友好的微调 特点 1、SFT能够利用预训练模型的参数和结构避免从头开始训练模型从而加速模型的训练过程并且能够提高模型在目标任务上的表现。 2、缺点需要大量的标注数据用于目标任务的微调如果标注数据不足可能会导致微调后的模型表现不佳。其次由于预训练模型的参数和结构对微调后的模型性能有很大的影响因此选择合适的预训练模型也很重要 为什么SFT之后感觉LLM傻了? 在进⾏Supervised Fine-TuningSFT之后有时可能会观察到基座模型如语⾔模型的性能下降或产⽣⼀些“傻”的⾏为。这可能是由于以下原因 1. 数据偏移SFT过程中使⽤的微调数据集可能与基座模型在预训练阶段接触到的数据分布有所不同。如果微调数据集与预训练数据集之间存在显著的差异模型可能会在新任务上表现较差。这种数据偏移可能导致模型在新任务上出现错误的预测或不准确的输出。 2. ⾮典型标注微调数据集的标注可能存在错误或不准确的标签。这些错误的标签可能会对模型的性能产⽣负⾯影响导致模型产⽣“傻”的⾏为。 3. 过拟合如果微调数据集相对较⼩或者模型的容量参数数量较⼤模型可能会过拟合微调数据导致在新的输⼊上表现不佳。过拟合可能导致模型过于依赖微调数据的特定样本⽽⽆法泛化到更⼴泛的输⼊。 4. 缺乏多样性微调数据集可能缺乏多样性未能涵盖模型在新任务上可能遇到的各种输⼊情况。这可能导致模型在⾯对新的、与微调数据集不同的输⼊时出现困惑或错误的预测。 为了解决这些问题可以尝试以下⽅法 1、收集更多的训练数据以增加数据的多样性和覆盖范围。 2、仔细检查微调数据集的标注确保标签的准确性和⼀致性。 3、使⽤正则化技术如权重衰减、dropout来减少过拟合的⻛险。 4、进⾏数据增强通过对微调数据进⾏⼀些变换或扩充来增加多样性。 5、使⽤更复杂的模型架构或调整模型的超参数以提⾼模型的性能和泛化能⼒。 通过这些⽅法可以尽量减少Supervised Fine-Tuning之后模型出现“傻”的情况并提⾼模型在新任务上的表现。 SFT 指令微调数据 如何构建? 构建Supervised Fine-TuningSFT的微调数据需要以下步骤 1. 收集原始数据⾸先您需要收集与⽬标任务相关的原始数据。这可以是对话数据、分类数据、⽣成任务数据等具体取决于您的任务类型。确保数据集具有代表性和多样性以提⾼模型的泛化能⼒。 2. 标注数据对原始数据进⾏标注为每个样本提供正确的标签或⽬标输出。标签的类型取决于您的任务可以是分类标签、⽣成⽂本、对话回复等。确保标注的准确性和⼀致性。 3. 划分数据集将标注数据划分为训练集、验证集和测试集。通常⼤部分数据⽤于训练⼀⼩部分⽤于验证模型的性能和调整超参数最后⼀部分⽤于最终评估模型的泛化能⼒。 4. 数据预处理根据任务的要求对数据进⾏预处理。这可能包括⽂本清洗、分词、去除停⽤词、词⼲化等处理步骤。确保数据格式和特征表示适合模型的输⼊要求。 5. 格式转换将数据转换为适合模型训练的格式。这可能涉及将数据转换为⽂本⽂件、JSON格式或其他适合模型输⼊的格式。 6. 模型微调使⽤转换后的数据对基座模型进⾏微调。根据任务的要求选择适当的微调⽅法和超参数进⾏训练。这可以使⽤常⻅的深度学习框架如PyTorch、TensorFlow来实现。 7. 模型评估使⽤测试集对微调后的模型进⾏评估计算模型在任务上的性能指标如准确率、召回率、⽣成质量等。根据评估结果对模型进⾏进⼀步的优化和调整。 通过以上步骤您可以构建适合Supervised Fine-Tuning的微调数据集并使⽤该数据集对基座模型进⾏微调以适应特定任务的需求 训练中⽂⼤模型有啥经验 1. 数据预处理对于中⽂⽂本常⻅的预处理步骤包括分词、去除停⽤词、词性标注、拼⾳转换等。 分词是中⽂处理的基本步骤可以使⽤成熟的中⽂分词⼯具如jieba、pkuseg等。 2. 数据增强中⽂数据集可能相对有限可以考虑使⽤数据增强技术来扩充数据集。例如可以使⽤同义词替换、随机插⼊或删除词语、句⼦重组等⽅法来⽣成新的训练样本。 3. 字词级别的表示中⽂中既有字级别的表示也有词级别的表示。对于字级别的表示可以使⽤字符嵌⼊或者字级别的CNN、RNN等模型。对于词级别的表示可以使⽤预训练的词向量如 Word2Vec、GloVe等。 4. 预训练模型可以考虑使⽤已经在⼤规模中⽂语料上预训练好的模型作为初始模型然后在⽬标任务上进⾏微调。例如可以使⽤BERT、GPT等预训练语⾔模型。这样可以利⽤⼤规模中⽂语料的信息 提升模型的表达能⼒和泛化能⼒。 5. 中⽂特定的任务对于⼀些中⽂特定的任务例如中⽂分词、命名实体识别、情感分析等可以使⽤⼀些中⽂特定的⼯具或者模型来辅助训练。例如可以使⽤THULAC、LTP等中⽂NLP⼯具包。 6. 计算资源训练⼤模型需要⼤量的计算资源包括GPU、内存和存储。可以考虑使⽤云计算平台或者分布式训练来加速训练过程。 7. 超参数调优对于⼤模型的训练超参数的选择和调优⾮常重要。可以使⽤⽹格搜索、随机搜索或者基于优化算法的⾃动调参⽅法来寻找最佳的超参数组合。 预训练和微调哪个阶段注⼊知识的 在⼤模型训练过程中知识注⼊通常是在预训练阶段进⾏的。具体来说⼤模型的训练⼀般包括两个阶段预训练和微调。 在预训练阶段使⽤⼤规模的通⽤数据对模型进⾏训练以学习语⾔知识和表示能⼒。这⼀阶段的⽬标是通过⾃监督学习或其他⽆监督学习⽅法让模型尽可能地捕捉到数据中的统计规律和语⾔结构并⽣成丰富的语⾔表示。 在预训练阶段模型并没有针对特定任务进⾏优化因此预训练模型通常是通⽤的可以应⽤于多个不 同的任务和领域。 在微调阶段使⽤特定任务的数据对预训练模型进⾏进⼀步的训练和调整。微调的⽬标是将预训练模型中学到的通⽤知识和能⼒迁移到特定任务上提升模型在⽬标任务上的性能。 在微调阶段可以根据具体任务的需求调整模型的参数和结构以更好地适应⽬标任务的特点。微调通常需要较少的任务数据因为预训练模型已经具备了⼀定的语⾔理解和泛化能⼒。 因此知识注⼊是在预训练阶段进⾏的预训练模型通过⼤规模通⽤数据的训练学习到了丰富的语⾔知识和表示能⼒为后续的微调阶段提供了基础。微调阶段则是在预训练模型的基础上使⽤特定任务的数据进⾏进⼀步训练和调整以提升性能。 想让模型学习某个领域或⾏业的知识是应该预训练还是应该微调 如果你想让⼤语⾔模型学习某个特定领域或⾏业的知识通常建议进⾏微调⽽不是预训练。 预训练阶段是在⼤规模通⽤数据上进⾏的旨在为模型提供通⽤的语⾔理解和表示能⼒。预训练模型通常具有较强的泛化能⼒可以适⽤于多个不同的任务和领域。然⽽由于预训练模型是在通⽤数据上进⾏训练的其对特定领域的知识和术语可能了解有限。 因此如果你希望⼤语⾔模型能够学习某个特定领域或⾏业的知识微调是更合适的选择。在微调阶段你可以使⽤特定领域的数据对预训练模型进⾏进⼀步训练和调整以使模型更好地适应⽬标领域的特点和需求。微调可以帮助模型更深⼊地理解特定领域的术语、概念和语境并提升在该领域任务上的性能。 微调通常需要较少的任务数据因为预训练模型已经具备了⼀定的语⾔理解和泛化能⼒。通过微调你可以在预训练模型的基础上利⽤特定领域的数据进⾏有针对性的调整以使模型更好地适应⽬标领域的需求。 总之如果你希望⼤语⾔模型学习某个特定领域或⾏业的知识建议进⾏微调⽽不是预训练。微调可以 帮助模型更好地适应⽬标领域的特点和需求并提升在该领域任务上的性能。 微调后的模型出现能⼒劣化灾难性遗忘是怎么回事 灾难性遗忘Catastrophic Forgetting是指在模型微调过程中当模型在新任务上进⾏训练 时可能会忘记之前学习到的知识导致在旧任务上的性能下降。这种现象常⻅于神经⽹络模型的迁移学习或连续学习场景中。 在微调⼤语⾔模型时灾难性遗忘可能出现的原因包括 1. 数据分布差异微调过程中使⽤的新任务数据与预训练数据或旧任务数据的分布存在差异。如果新任务的数据分布与预训练数据差异较⼤模型可能会过度调整以适应新任务导致旧任务上的性能下降。 2. 参数更新冲突微调过程中对新任务进⾏训练时模型参数可能会被更新导致之前学习到的知识被覆盖或丢失。新任务的梯度更新可能会与旧任务的梯度更新发⽣冲突导致旧任务的知识被遗忘。 为了解决灾难性遗忘问题可以尝试以下⽅法 1. 重播缓冲区Replay Buffer在微调过程中使⽤⼀个缓冲区来存储旧任务的样本然后将旧任务的样本与新任务的样本⼀起⽤于训练。这样可以保留旧任务的知识减少灾难性遗忘的发⽣。 2. 弹性权重共享Elastic Weight Consolidation通过引⼊正则化项限制模型参数的变 动范围以保护之前学习到的知识。这种⽅法可以在微调过程中平衡新任务和旧任务之间的重要性。 3. 增量学习Incremental Learning将微调过程分为多个阶段每个阶段只微调⼀⼩部分参数。这样可以逐步引⼊新任务减少参数更新的冲突降低灾难性遗忘的⻛险。 4. 多任务学习Multi-Task Learning在微调过程中同时训练多个相关任务以提⾼模型的 泛化能⼒和抗遗忘能⼒。通过共享模型参数可以在不同任务之间传递知识减少灾难性遗忘的影响。 综上所述灾难性遗忘是在模型微调过程中可能出现的问题。通过合适的⽅法和技术可以减少灾难性遗忘的发⽣保留之前学习到的知识提⾼模型的整体性能。 预训练和SFT操作有什么不同 ⼤语⾔模型的预训练和有监督微调Supervised Fine-Tuning是两个不同的操作它们在⽬标、 数据和训练⽅式等⽅⾯存在⼀些区别。 1. ⽬标预训练的⽬标是通过⽆监督学习从⼤规模的⽂本语料库中学习语⾔模型的表示能⼒和语⾔知识。预训练的⽬标通常是通过⾃我预测任务例如掩码语⾔模型Masked Language Model MLM或下⼀句预测Next Sentence PredictionNSP等来训练模型。 有监督微调的⽬标是在特定的任务上进⾏训练例如⽂本分类、命名实体识别等。在有监督微调 中模型会利⽤预训练阶段学到的语⾔表示和知识通过有监督的⽅式调整模型参数以适应特定任务的要求。 2. 数据在预训练阶段⼤语⾔模型通常使⽤⼤规模的⽆标签⽂本数据进⾏训练例如维基百科、⽹ ⻚⽂本等。这些数据没有特定的标签或任务信息模型通过⾃我预测任务来学习语⾔模型。 在有监督微调中模型需要使⽤带有标签的任务相关数据进⾏训练。这些数据通常是⼈⼯标注的 包含了输⼊⽂本和对应的标签或⽬标。模型通过这些标签来进⾏有监督学习调整参数以适应特定任务。 3. 训练⽅式预训练阶段通常使⽤⽆监督的⽅式进⾏训练模型通过最⼤化预训练任务的⽬标函数来学习语⾔模型的表示能⼒。 有监督微调阶段则使⽤有监督的⽅式进⾏训练模型通过最⼩化损失函数来学习任务相关的特征和 模式。在微调阶段通常会使⽤预训练模型的参数作为初始参数并在任务相关的数据上进⾏训练。 总的来说预训练和有监督微调是⼤语⾔模型训练的两个阶段⽬标、数据和训练⽅式等⽅⾯存在差异。预训练阶段通过⽆监督学习从⼤规模⽂本数据中学习语⾔模型⽽有监督微调阶段则在特定任务上使⽤带有标签的数据进⾏有监督学习以适应任务要求。 欢迎大家点赞或收藏~ 大家的点赞或收藏可以鼓励作者加快更新哟~