☆ 问题描述
在 transformers 框架中,Model 模块是核心组件之一,提供了多种预训练模型及其相关功能,广泛应用于自然语言处理(NLP)任务。
Model
基本代码
# 导入相关文件
from transformers import AutoConfig, AutoModel, AutoTokenizer
# 在线加载模型
model = AutoModel.from_pretrained("hfl/rbt3", force_download=True)
# 加载本地模型
model = AutoModel.from_pretrained("rbt3")
# 查看模型参数
model.config
#或
config = AutoConfig.from_pretrained("./rbt3/")
config
类: AutoModelForSequenceClassification
AutoModelForSequenceClassification 是 Hugging Face Transformers 库中的一个类,用于根据指定的预训练模型自动选择相应的序列分类模型。这个类的主要作用是根据提供的预训练模型架构名称或路径,加载对应的模型,并针对序列分类任务进行微调或推理。
https://huggingface.co/models
model_name = "bert-base-uncased" # 替换为你想要使用的预训练模型的名称
model = AutoModelForSequenceClassification.from_pretrained(model_name)
TrainingArguments
1. 概述
TrainingArguments
是 Hugging Face 的transformers
库中用于配置模型训练的重要类。- 它允许你指定训练过程中的各种参数,如学习率、批量大小、训练周期数等。
2. 常见参数
-
output_dir
: 指定模型和训练日志的输出目录。 -
overwrite_output_dir
: 如果设为True
,则在每次运行时会覆盖output_dir
中的内容。 -
per_device_train_batch_size
: 每个设备(GPU 或 CPU)上的训练批量大小。 -
num_train_epochs
: 训练周期数,即模型将遍历整个训练数据集的次数。 -
learning_rate
: 初始学习率,控制每次更新模型参数时的步长大小。 -
logging_dir
: 指定存储训练日志的目录。 -
save_total_limit
: 控制保存模型的数量限制。
3. 使用示例
from transformers import TrainingArguments
# 定义训练参数
training_args = TrainingArguments(
output_dir='./results', # 输出目录
overwrite_output_dir=True, # 是否覆盖输出目录
per_device_train_batch_size=8, # 每个设备的训练批量大小
num_train_epochs=3, # 训练周期数
learning_rate=1e-4, # 初始学习率
logging_dir='./logs', # 日志目录
save_total_limit=5 # 最多保存的模型数量
evaluation_strategy="epoch", # 每个训练周期结束后进行评估
save_strategy="epoch", # 每个训练周期结束后保存模型
)
4. 使用方法
- 创建
TrainingArguments
对象时,传入上述参数进行配置。 - 将
TrainingArguments
对象传递给模型训练函数或者Trainer
类中的TrainingArguments
参数。
5. 实际应用
- 在使用 Hugging Face 的
transformers
库训练模型时,几乎所有的训练相关参数都是通过TrainingArguments
来进行配置和管理的。 - 通过调整这些参数,可以优化模型的训练过程,提高训练效率和模型性能。