import torchfrom transformers import BertModelBertTokenizerBertForSequenceClassificationfrom transformers import DataCollatorWithPaddingfrom datasets import load_dataset Dataset dataset_dict load_metr
- 数据加载和预处理
首先,我们使用 dataloader 函数从 csv 文件中加载数据,并使用 Dataset.from_pandas() 函数将 pandas 数据框转换为 Hugging Face 数据集格式。
接下来,我们使用 train_test_split() 函数将数据集分为训练集和测试集。
然后,我们加载预训练模型的路径和参数,使用 from_pretrained() 函数加载预训练模型和分词器。
最后,我们使用 map() 函数将文本数据转换为由模型和分词器可以处理的格式,使用 set_format() 函数将数据集转换为 pytorch 格式。同时,我们删除了原始中文评论及其长度列,只保留了标签和分词后的文本列。
- 数据批处理
我们使用 DataLoader 函数将训练集和测试集转换为批数据,并按批次内最大长度,统一填充数据。我们定义了一个数据合并函数,按批次最大长度填充,只需保证每一批内数据长度一致,无需按所有数据最最大长度填充,节省内存并加快训练速度。
- 模型训练和评估
我们定义了一个 compute_metrics() 函数,用于计算模型的准确率。
然后,我们设置了训练的超参数,包括输出目录、学习率、批次大小、训练轮数、权重衰减、评估策略和保存策略等。我们使用 Trainer() 函数来训练模型,并在每个 epoch 结束时评估模型。
- 模型预测和结果可视化
在模型训练完成后,我们使用 from_pretrained() 函数加载 fine-tuned 的模型和分词器,再使用 predict() 函数对测试集进行预测,并将预测结果使用 plot_confusion_matrix() 函数可视化
原文地址: https://www.cveoy.top/t/topic/gTBj 著作权归作者所有。请勿转载和采集!