前置知识
- 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)
# 数据集分词并打包,传给data_collator
tokenized_datasets = raw_datasets.map(tokenize_function, batched=True)
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
# 设置训练参数,这里我选择训练1poch,每处理20%steps就保存,注意最后100%时不保存。
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保存训练后参数模型。
文章来源地址https://www.toymoban.com/news/detail-544405.html
文章来源:https://www.toymoban.com/news/detail-544405.html
到了这里,关于【NLP,Huggingface,Colab】使用 Trainer 训练模型,并保存模型参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!