目录
使用 Trainer API 微调模型
如何导入huggingface上面的预训练模型?
导入huggingface上面的预训练模型有两种方法。
一.自动导入
第一种是指定预训练模型的名称,如'bert-base-chinese',程序会自动从Huggingface上面的下载所需要的文件
from transformers import AutoTokenizer, AutoModel
model = AutoModel.from_pretrained('bert-base-chinese')
tokenizer = AutoTokenizer.from_pretrained('bert-base-chinese')
二.手动导入
- 登陆huggingface官网:Hugging Face – The AI community building the future.
- 在搜索框输入模型的名字
- 下载模型文件
下载完成后将传入的参数改为模型文件保存的本地路径。
(AutoModel.from_pretrained里面输入的是文件夹的路径,AutoTokenizer.from_pretrained里面输入的是vocab.txt所在文件夹的路径)
model = AutoModel.from_pretrained('./model')
tokenizer = AutoTokenizer.from_pretrained('./model')
使用 Trainer API 微调模型
Traine常用的参数
training_args = TrainingArguments(
output_dir='./output', # 模型输出路径
learning_rate=2e-5, # 学习率
per_device_train_batch_size=32,
per_device_eval_batch_size=128,
num_train_epochs=5,
weight_decay=0.01, # 权重衰减
logging_dir='./logs', # 日志保存路径
logging_steps=10, # 日志记录的步长(loss,学习率)
evaluation_strategy="epoch", # 评估策略为训练完一个epoch之后进行评估
save_strategy="epoch", # 保存策略同上
save_total_limit=3, # 最多保存数量
load_best_model_at_end=True, # 设置训练完成后加载最优模型
metric_for_best_model="f1", # 指定最优模型的评估指标为f1
fp16=True # 半精度训练(提高训练速度)
)
trainer = Trainer(
model=model, # 模型
args=training_args,
train_dataset=train_dataset, # 训练集
eval_dataset=val_dataset, # 验证集
compute_metrics=compute_metrics # 验证函数
)
然后定义好参数后可以直接使用.train()
来启动训练:
trainer.train()