# 实战任务一 **Repository Path**: gu-jinghan/practical-task-1 ## Basic Information - **Project Name**: 实战任务一 - **Description**: 使用BERT预训练模型微调完成情感分类下游任务 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-08-28 - **Last Updated**: 2025-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 环境安装 ### 下载huggingface官方库 ``` pip install transformers ``` ### 下载预训练模型bert-base-uncased到本地 [使用镜像下载](https://www.kdocs.cn/l/cgMSPJYfJOf8?openfrom=docs) ### 安装依赖库 ```pip install -r requirements.txt``` # 任务说明 使用huggingface的开源预训练模型训练下游任务。要求训练模型能够对文本做情感分类任务,并写成接口的形式。"Positive"or"Negative" 请求示例: ```json { "text": "The movie is excellent" } ``` 响应示例: ```json { "text": "The movie is excellent", "Lable": "Positive" } ``` 制定计划: 截止时间:8月30日,周五 8月28日: 完成计划,准备资源。 8月29日: 执行计划,记录进展 8月30日: 撰写报告,反馈和优化,学习与总结。 任务要求 • 找到合适的预训练模型 • 下载预训练模型到本地 • 使用加载的BERT模型作为特征提取器,并在其顶部添加一个线性分类器。 • 实现情感二分类任务 实现思路: 1. 加载预训练模型: ◦ 使用BertModel.from_pretrained加载预训练的BERT模型。 2. 构建分类模型: ◦ 使用加载的BERT模型作为特征提取器,并在其顶部添加一个线性分类器。 ◦ BertClassifier类中的__init__方法初始化了BERT模型和分类器。 ◦ forward方法定义了模型的前向传播过程,使用BERT模型提取文本特征,并通过分类器进行分类。 3. 微调过程: ◦ 在train_epoch函数中,我们执行了一个epoch的训练过程,包括前向传播、计算损失、反向传播、优化器更新等。 ◦ 我们使用了AdamW优化器和线性学习率调度器来更新BERT模型和分类器的参数。 ◦ 通过这种方式,BERT模型的权重会被微调以更好地适应情感分类任务。 4. 评估: ◦ 在eval_model函数中,我们评估了模型在测试集上的性能,计算了准确率和损失。