【第四章:大模型(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 技术。

相关推荐
威化饼的一隅1 天前
【搜索推荐学习】生成式召回
大模型·双塔模型·语义id·召回·sid·生成式召回
thesky1234561 天前
27届大模型面试准备(六十七):大模型推理编译与图优化工程——从计算图到高效内核
大模型·tvm·图优化·xla·算子融合·编译期优化·推理编译
山顶夕景1 天前
【LLM】GLM-5.3-Flash模型
大模型·llm·agent·多模态·moe
木卫四科技1 天前
AgentAntibody:Prompt 注入防御开始“长记忆”,LLM Agent 如何构建自进化免疫系统?
人工智能·prompt·智能体安全
pnoker1 天前
IoT DC3 AI 能力:Agentic Center 的设计与边界
java·人工智能·物联网·大模型·spring ai
JoannaJuanCV1 天前
VLM学习-SFT(监督微调)
深度学习·学习·机器学习·大模型·视觉大模型·vlm·视觉编码器
tachibana21 天前
AI Agent 的记忆机制
人工智能·ai·大模型·llm·agent
thesky1234561 天前
27届大模型面试准备(六十八):长思维链与推理时计算扩展——从 long-CoT 到 inference-time scaling
大模型·长思维链·推理时计算扩展·inference-time scaling·long-cot·best-of-n·process reward
CoderJia程序员甲1 天前
GitHub 热榜项目 - 周榜(2026-08-30)
ai·大模型·llm·github·ai教程
Patrick在香港1 天前
Claude Prompt Caching 实测账单:第一轮贵 25%,从第二轮开始省 86%
python·prompt·claude·成本优化·prompt缓存·anthropic api