预训练模型与迁移学习全解析:用BERT/GPT-2微调实现10倍效率提升

B站影视 港台电影 2025-05-16 23:39 2

摘要:预训练模型(Pre-trained Model, PTM)是在大规模通用数据上预先训练的模型,通过自监督学习掌握基础语义理解能力,可迁移到下游任务。典型代表:

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习内容尽在官网-聚客AI学院大模型应用开发微调项目实践课程学习平台

预训练模型(Pre-trained Model, PTM)是在大规模通用数据上预先训练的模型,通过自监督学习掌握基础语义理解能力,可迁移到下游任务。典型代表:

BERT(双向Transformer):文本掩码预测GPT(自回归Transformer):文本生成ViT(Vision Transformer):图像分类

技术价值

知识蒸馏:从海量数据中提取通用模式迁移潜能:参数携带跨任务可复用知识源领域(大数据) → 知识迁移 → 目标领域(小数据)

典型场景

冻结PTM参数,仅训练顶层分类器:
代码示例:BERT固定特征提取

from transformers import BertModel, BertTokenizer import torch # 加载预训练模型 model = BertModel.from_pretrained("bert-base-uncased") tokenizer = BertTokenizer.from_pretrained("bert-base-uncased") # 冻结参数 for param in model.parameters: param.requires_grad = False # 提取特征 inputs = tokenizer("Hello world!", return_tensors="pt") outputs = model(**inputs) features = outputs.last_hidden_state[:, 0, :] # 取[CLS]向量 # 添加分类层 classifier = torch.nn.Linear(768, 2) logits = classifier(features)

解冻全部或部分参数进行端到端训练:
代码示例:GPT-2微调

from transformers import GPT2LMHeadModel, GPT2Tokenizer, Trainer, TrainingArguments model = GPT2LMHeadModel.from_pretrained("gpt2") tokenizer = GPT2Tokenizer.from_pretrained("gpt2") # 准备训练数据 train_texts = ["AI is changing...", "Machine learning..."] train_encodings = tokenizer(train_texts, truncation=True, padding=True) # 微调配置 training_args = TrainingArguments( output_dir='./results', num_train_epochs=3, per_device_train_batch_size=4, learning_rate=5e-5 ) trainer = Trainer( model=model, args=training_args, train_dataset=train_encodings ) trainer.trainpip install transformers torch datasets

如果本次分享对你有所帮助,记得告诉身边的朋友。

来源:聚客AI

相关推荐