大语言模型常用微调与基于SFT微调DeepSeek R1指南

概述

大型语言模型(LLM,Large Language Model)的微调(Fine-tuning)是指在一个预训练模型的基础上,使用特定领域或任务的数据对模型进行进一步训练,以使其在该领域或任务上表现更好。微调是迁移学习的一种常见方法,能够显著提升模型在特定任务上的性能。在大型语言模型(LLM)的微调中,有几种常见的方法,包括 SFT(监督微调)LoRA(低秩适应)P-tuning v2 和 **Freeze

可以在这个地址白嫖满血版的deepseek:https://dazi.co/login?i=d788ca33

1.大语言模型微调

1.1 微调的工作原理

微调(Fine-tuning)是指在预训练模型的基础上,使用特定任务的标注数据对模型进行进一步训练,使其在该任务上表现更好。微调的核心思想是利用预训练模型已经学习到的通用语言表示,通过少量任务数据调整模型参数,使其适应特定任务。

微调的关键组件
  • 输入 (X)

    • 提供给模型的文本数据(例如,电影评论、问题、对话等)。
    • 对于文本生成任务,输入可能是一个问题或提示。
  • 目标 (Y)

    • 基于标注数据的预期输出(例如,情绪标签、聊天机器人响应、摘要文本等)。
    • 对于分类任务,目标可能是类别标签(如“积极”或“消极”)。
    • 对于生成任务,目标可能是完整的文本响应。
  • 损失函数

    • 衡量模型的预测与目标之间的差异。
    • 通过优化损失函数,模型逐渐调整参数以更好地拟合任务数据。
示例:IMDB 情绪分类
  • 输入 (X):电影评论,例如“这部电影的视觉效果很棒,但情节很弱。”
  • 目标 (Y):情绪标签,例如“积极”或“消极”。
  • 模型任务:根据输入文本预测正确的情绪标签。
示例:文本生成
  • 输入 (X):问题,例如“什么是人工智能?”
  • 目标 (Y):生成的响应,例如“人工智能是模拟人类智能的技术。”
  • 模型任务:根据输入问题生成正确的文本响应。

1.2 使用的损失函数:交叉熵损失

在语言模型的微调中,交叉熵损失(Cross-Entropy Loss) 是最常用的损失函数。它用于衡量模型预测的概率分布与真实目标分布之间的差异。

交叉熵损失的公式

对于语言模型,交叉熵损失的公式为:
Cross-Entropy Loss = − ∑ i = 1 N y i log ⁡ ( p i ) \text{Cross-Entropy Loss} = -\sum_{i=1}^{N} y_i \log(p_i) Cross-Entropy Loss=i=1Nyilog(pi)

其中:

  • y i y_i yi:目标分布(真实标签的 one-hot 编码)。
  • p i p_i pi:模型预测的概率分布。
  • N N N:词汇表的大小(对于分类任务,( N ) 是类别数)。

交叉熵损失的作用

  • 衡量预测与目标的差异
    • 当模型预测的概率分布与目标分布越接近时,交叉熵损失越小。
    • 当模型预测的概率分布与目标分布差异较大时,交叉熵损失越大。
  • 优化目标
    • 在训练过程中,通过反向传播和梯度下降,模型不断调整参数以最小化交叉熵损失。

示例:文本生成中的交叉熵损失

假设模型生成一个句子,每个词的概率分布如下:

  • 目标词:["I", "love", "AI"]
  • 模型预测的概率分布:
    • I: 0.9
    • love: 0.8
    • AI: 0.7

交叉熵损失计算如下:
t e x t L o s s = − ( log ⁡ ( 0.9 ) + log ⁡ ( 0.8 ) + log ⁡ ( 0.7 ) ) text{Loss} = -(\log(0.9) + \log(0.8) + \log(0.7))

猜你喜欢

转载自blog.csdn.net/matt45m/article/details/145642698
今日推荐