【第四章:大模型(LLM)】10.微调方法与实战-(1)Prompt Tuning

第四章:大模型(LLM)

第十部分:微调方法与实战

第一节:Prompt Tuning


1. 背景与动机

大规模语言模型(LLM)在预训练过程中学习了通用语言知识和世界知识,但在具体下游任务(如情感分类、问答、摘要生成)中,直接使用模型往往表现不足。

传统方法如 全参数微调(Full Fine-tuning) 需要更新所有模型参数,代价昂贵且存储开销大。为此,人们提出了 参数高效微调(PEFT, Parameter-Efficient Fine-Tuning) 方法,其中 Prompt Tuning 是最早期、最具代表性的一种。


2. Prompt Tuning 的核心思想

  • 核心理念 :冻结大模型参数,只在输入端加入 可学习的提示向量(soft prompt) 来引导模型完成任务。

  • 与手工 Prompt 的区别

    • 手工 Prompt → 通过人类编写文本提示(例如:"请判断这句话的情感是积极还是消极")。

    • Prompt Tuning → 学习一组连续的向量(embedding),模型直接将其视作输入的一部分。


3. 方法原理

  1. 冻结 LLM 参数:保持预训练好的 Transformer 权重不变。

  2. 添加可训练的 Prompt 向量

    • 在输入序列前(或中间、后部)插入 m 个可学习的 embedding。

    • 这些 embedding 与词向量维度相同,初始化可随机或从词表中选取。

  3. 联合训练

    • 仅更新这 m 个 Prompt embedding 的参数,使用下游任务的监督信号进行优化。

    • 模型前向计算时,等价于 "输入 = prompt embedding + 原始输入 embedding"


4. Prompt Tuning 的特点

  • 优点

    • 极大减少需要训练的参数(通常 < 0.1%)。

    • 不改变原始模型结构,兼容性好。

    • 存储友好(不同任务只需保存一份 Prompt 向量)。

  • 缺点

    • 表达能力有限,尤其在小模型或复杂任务上,效果可能不如 LoRA、Adapter 等方法。

    • 对 Prompt 位置、长度等较为敏感。


5. 与相关方法对比

方法 参数开销 训练方式 适用场景
Full Fine-tuning 100% 更新所有参数 高资源场景,模型可控性强
Prompt Tuning <0.1% 学习软 Prompt embedding 少量参数更新,简单任务
Prefix Tuning ~0.1-1% 在每层输入 KV Cache 前添加可学习向量 更强表达能力
LoRA ~0.1-1% 低秩矩阵分解更新权重 复杂任务,兼容性强

6. 实战案例(PyTorch 伪代码)

python 复制代码
import torch
import torch.nn as nn

class PromptTuningWrapper(nn.Module):
    def __init__(self, base_model, prompt_length=20, hidden_size=4096):
        super().__init__()
        self.base_model = base_model
        # 可学习的 Prompt 向量
        self.prompt_embeddings = nn.Parameter(
            torch.randn(prompt_length, hidden_size)
        )

    def forward(self, input_ids, attention_mask=None):
        # 获取原始 embedding
        inputs_embeds = self.base_model.model.embed_tokens(input_ids)
        batch_size = inputs_embeds.size(0)

        # 将 prompt 拼接到输入前
        prompt = self.prompt_embeddings.unsqueeze(0).expand(batch_size, -1, -1)
        inputs_with_prompt = torch.cat([prompt, inputs_embeds], dim=1)

        # 调用原始模型
        return self.base_model(
            inputs_embeds=inputs_with_prompt,
            attention_mask=None  # 注意 mask 要适配
        )

7. 总结

Prompt Tuning 作为参数高效微调(PEFT)的先驱方法,为 LLM 在下游任务中的快速适配提供了轻量化解决方案。

它适合 资源受限、任务较简单 的场景,是研究与教学中的入门必学方法。

但在实际应用中,随着任务复杂度提升,往往需要结合 Prefix Tuning、LoRA、Adapter 等更强大的 PEFT 技术。

相关推荐
有点不太正常2 小时前
FlippedRAG——论文阅读
论文阅读·安全·大模型·rag
嘀咕博客7 小时前
Visual Prompt Builder-AI 提示词可视化工具
人工智能·prompt·ai工具
一颗小树x9 小时前
【机器人】CogNav 目标导航 | 认知过程建模 | LLM大模型
机器人·大模型·cognav·目标导航·认知过程建模
top_designer11 小时前
游戏优化“屠龙技”:AI+Substance Painter LOD烘焙工作流
人工智能·游戏·prompt·aigc·设计师·substance painter·游戏美术
胡斌附体14 小时前
docker离线部署gpt-oss-20b流程,从下载到安装再到可以使用
gpt·docker·容器·大模型·部署·记录·离线
CodeNerd影14 小时前
prompt提示词工程---如何让大模型更听得懂人话
笔记·python·prompt
小苑同学14 小时前
PaperReading:《Manipulating Multimodal Agents via Cross-Modal Prompt Injection》
人工智能·网络安全·语言模型·prompt·安全性测试
shy_snow14 小时前
Prompt Optimizer 提示词优化器安装使用
prompt
这张生成的图像能检测吗14 小时前
(论文速读)Prompt-Free Diffusion:告别提示工程的烦恼
人工智能·深度学习·计算机视觉·prompt·图像生成·超分辨率重建·clip
xixixi7777715 小时前
LangChain(一个用于构建大语言模型(LLM)应用程序的开源框架)
人工智能·深度学习·机器学习·langchain·大模型·大模型框架