[PNL, Huggingface, Colab] Use Trainer para entrenar el modelo y guardar los parámetros del modelo

[PNL, Huggingface, Colab] Use Trainer para entrenar el modelo y guardar los parámetros del modelo

conocimiento previo

  • Uso de Colaboración
  • Sitio web oficial de Huggingface y algunas API básicas

código superior

  • En primer lugar, se recomienda guardar el código enVSCode , así que haga doble clic en la clase de clave, F12puede ingresar para ver los parámetros de interfaz específicos y sus significados.
    Luego, se sugiere que el código se esté Colabejecutando , el primero es tener el GPUrecurso predeterminado, y el segundo generará varios ConnectionError, OSErrorerrores, etc....
  • El foco se puede ver en las notas. Exploré algunos parámetros adicionales por mí mismo, y la mayoría de la gente no habló sobre la necesidad de guardar los parámetros del modelo durante/después del entrenamiento...
"""
首先运行如下代码安装库
然后直接运行改代码即可
!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")
  • La carpeta final es la siguiente, test-trainer guarda el punto de interrupción del entrenamiento y output_model guarda el modelo de parámetros después del entrenamiento.
    Por favor agregue una descripción de la imagen

Supongo que te gusta

Origin blog.csdn.net/weixin_45775438/article/details/131649332
Recomendado
Clasificación