简介:Hugging(transformers)读取自定义 checkpoint、使用 Trainer 进行测试回归任务
Hugging(transformers)读取自定义 checkpoint、使用 Trainer 进行测试回归任务
随着自然语言处理(NLP)领域的不断发展,Hugging Face的Transformers库已经成为了一个非常流行的工具,用于构建和训练深度学习模型。其中,Hugging Face的Transformers库提供了很多预训练的模型和工具,方便用户进行微调和自定义训练。
在本文中,我们将介绍如何使用Hugging Face的Transformers库读取自定义checkpoint,并使用Trainer进行测试回归任务。
一、读取自定义checkpoint
在使用Hugging Face的Transformers库时,我们可以通过from_pretrained函数读取预训练模型。但是,如果我们想加载自己训练的模型,就需要使用from_checkpoint函数。
首先,我们需要将模型保存到checkpoint文件中。这可以通过使用Hugging Face的Transformers库的save_model函数来完成。例如:
from transformers import AutoTokenizer, AutoModelForSequenceClassificationtokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")# 保存模型到checkpoint文件model.save_model("my_model")
然后,我们可以使用from_checkpoint函数从checkpoint文件中加载模型。例如:
from transformers import AutoTokenizer, AutoModelForSequenceClassificationtokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")model = AutoModelForSequenceClassification.from_checkpoint("my_model")
二、使用Trainer进行测试回归任务
在加载模型之后,我们可以使用Hugging Face的Transformers库的Trainer类来进行测试回归任务。Trainer类提供了一个方便的接口,用于训练和评估模型。
首先,我们需要准备测试数据。测试数据应该是一个包含输入和标签的数据集。例如:
import torchfrom sklearn.model_selection import train_test_splitfrom sklearn.datasets import load_bostonfrom sklearn.metrics import mean_squared_error# 加载数据集boston = load_boston()X, y = boston.data, boston.targetX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
然后,我们可以使用Trainer类进行训练和评估。例如:
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification, Trainer, TrainingArguments
tokenizer = AutoTokenizer.from_pretrained(“bert-base-uncased”)
model = AutoModelForSequenceClassification.from_checkpoint(“my_model”)
inputs = tokenizer(X_train, return_tensors=”pt”, padding=True, truncation=True)
labels = torch.tensor(y_train)
optimizer = torch.optim.Adam(model.parameters(), lr=1e-5)
criterion = torch.nn.MSELoss()
training_args = TrainingArguments(
output_dir=’./results’, # 输出目录的名称
num_train_epochs=30, # 总共训练轮数 (default: 10)
per_device_train_batch_size=16, # 在一个GPU/CPU上使用的批量大小 (default: 16)
per_device_eval_batch_size=64, # 在一个GPU/CPU上使用的评估批量大小 (default: 64)
warmup_steps=500, # 预热步数 (default: 10)
weight_decay=0.01, # L2权重衰减 (default: 0.01)
logging_dir=’./logs’, # 日志目录的名称 (default: logs) 保存输出结果,以供以后分析模型训练过程。例如: 输出训练过程中每一轮的准确率、损失值等信息。这样可以通过观察分析日志文件来评估模型训练效果的好坏,并针对不好的情况及时调整训练参数或者更换模型结构等。同时也可以为后续模型的进一步应用提供参考数据支持。