【NLP,Huggingface,Colab】使用 Trainer 训练模型,并保存模型参数
前置知识
- Colab 的使用
- Huggingface 官网和一些基础API
上代码
- 首先,建议保存代码到
VSCode
,这样双击关键类,F12
可以进入查看具体接口参数及其含义。
然后,建议代码在 Colab
运行,第一个是有默认 GPU
资源,第二个是否则会产生各种 ConnectionError, OSError
等错误… - 重点可以看注释。自行摸索了一些额外的参数,大多数人都没有讲训练中/后需要保存模型参数…
"""
首先运行如下代码安装库
然后直接运行改代码即可
!pip install datasets transformers
!pip install accelerate -U
"""
from datasets import load_dataset
from transformers import (
AutoTokenizer,
DataCollatorWithPadding,
TrainingArguments,
AutoModelForSequenceClassification,
Trainer,
)
raw_datasets = load_dataset("glue", "mrpc")
checkpoint = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
def tokenize_function(example):
return tokenizer(example["sentence1"], example["sentence2"], truncation=True)
tokenized_datasets = raw_datasets.map(tokenize_function, batched=True)
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
training_args = TrainingArguments(
"test-trainer",
num_train_epochs=1,
save_strategy="steps",
save_steps=0.2,
)
model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
trainer = Trainer(
model,
training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["validation"],
data_collator=data_collator,
tokenizer=tokenizer,
)
trainer.train()
model.save_pretrained("./output_model")
- 最后文件夹如下,test-trainer 保存训练断点,output_model保存训练后参数模型。