项目简介
本项目是基于Python和PyTorch框架构建的命名实体识别(NER)系统。借助预训练的NeZha模型,经两阶段预训练与微调过程,达成高效的命名实体识别功能。系统能支持多种NLP任务,且具备灵活的训练、评估和预测功能。
项目的主要特性和功能
- 两阶段预训练:第一阶段用无标注语料和初赛测试集开展N - gram mask language modeling预训练;第二阶段在第一阶段基础上,用训练集继续预训练。
- 微调模型:采用GlobalPointer命名实体提取模型,支持嵌套实体提取,通过设定规则去重。
- 网络结构:NeZha -> LSTM -> GlobalPointer。
- 损失函数:使用交叉熵损失函数计算每个片段的分类损失。
- 训练和测试流程:提供详细的训练流程(train.ipynb)和测试流程(test.ipynb)。
- 模型保存与加载:支持保存和加载预训练及微调模型,方便后续使用与评估。
安装使用步骤
假设用户已下载项目的源码文件,以下是使用步骤:
1. 环境配置:确保安装Python和PyTorch(版本1.7.0),安装torch==1.7.0
、transformers==4.18.0
等所需额外包。
2. 数据准备:准备训练、验证和测试数据,数据格式要符合系统要求。
3. 预训练模型获取:下载预训练的NeZha模型(nezha - cn - base),存于data/pretrain_model/nezha - cn - base
路径下。
4. 预训练:使用run_pretrain_nezha_v2.py
和run_pretrain_nezha_v3.py
脚本进行两阶段预训练。
5. 微调模型:用训练集微调,配置参数参考train.ipynb
。
6. 模型评估:用验证数据评估模型性能。
7. 模型预测:用测试数据进行模型预测并输出结果。
8. 模型保存与加载:保存训练好的模型,需要时加载使用。
需注意,项目具体配置和细节可能因不同任务和数据集有差异,用户可能需根据实际情况调整代码。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】