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

相关推荐
老谷子.AI原始技术5 小时前
《Claude Code工程化实践》加课4-Claude Code 的底层内功:Prompt Engineering
prompt·claude code
战族狼魂7 小时前
高频面试题精选:分治与AI Agent架构
人工智能·算法·大模型·大语言模型
GPUStack13 小时前
Day 0 实测|在 GPUStack 上部署 Inkling-BF16:8 卡 H20-141G 推理性能测试
ai·大模型·llm·gpu·vllm·gpu集群·sglang·gpustack
Tbisnic15 小时前
28.NLP 三大预训练模型 ELMo/BERT/GPT + HuggingFace Transformers
gpt·自然语言处理·大模型·nlp·bert·预训练模型
中微极客15 小时前
从Prompt到RAG:LLM工程实战全链路解析
人工智能·python·prompt
黑夜路人15 小时前
可靠 Agent 设计:从一句 Prompt 到稳定交付
数据库·人工智能·prompt
hhzz16 小时前
CNN图像分类入门:基于TensorFlow+Keras的CIFAR-10数据集全流程实战
图像处理·计算机视觉·ai·cnn·大模型
视***间16 小时前
端侧20B级推理标杆:视程空间Pandora,让GPT-OSS 20B在边缘原生落地
人工智能·gpt·大模型·本地部署·大模型本地部署·视程空间
冷小鱼1 天前
Agent 大模型的后训练、微调、评估与迭代优化:从理论到工程实践
大模型·微调·优化·迭代·评估
kp000001 天前
System Prompt Leakage(系统提示词泄露)及安全防御
网络·安全·网络安全·信息安全·prompt·ai安全