HugginngFace的Trainer的常见用法

Hugging FaceTrainer 类提供了一个高度集成的训练、评估和预测接口,能大幅简化我们预训练和微调的工作量。比如我最近最常会遇到的用监督学习微调语言模型任务为例,只需要定义一个Trainer,然后传入我想要训练的模型和数据集,就可以直接运行微调任务。

以下是 Trainer 的一些常见用法和参数配置:

首先,Trainer 可以通过提供模型、数据集、训练参数等来进行快速的模型训练:

from transformers import Trainer, TrainingArguments, AutoModelForSequenceClassification, AutoTokenizer
from datasets import load_dataset

# 加载预训练模型和分词器
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

# 加载数据集
dataset = load_dataset("glue", "sst2")
encoded_dataset = dataset.map(lambda x: tokenizer(x['sentence'], padding="max_length", truncation=True), batched=True)

# 设置训练参数
training_args = TrainingArguments(
    output_dir="./results",          # 模型保存路径
    evaluation_strategy="epoch",     # 每个epoch进行一次评估
    learning_rate=2e-5,              # 学习率
    per_device_train_batch_size=16,  # 每个设备的训练批次大小
    per_device_eval_batch_size=16,   # 每个设备的评估批次大小
    num_train_epochs=3,              # 训练轮数
    weight_decay=0.01,               # 权重衰减
)

# 创建Trainer
trainer = Trainer(
    model=model,                         # 预训练模型
    args=training_args,                  # 训练参数
    train_dataset=encoded_dataset['train'],  # 训练数据集
    eval_dataset=encoded_dataset['validation'],  # 评估数据集
)

# 开始训练
trainer.train()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值