# 代码说明
## 环境配置
本实验使用的python版本为3.8, cuda版本10.0其他主要的第三方库包括:
- pytorch==1.10.1
- transformers=4.17.0
- ark-nlp==0.0.8
## 数据
## 预训练模型
使用了NeZha预训练模型,可以通过GitHub链接https://github.com/lylcst/NeZha_Chinese_PyTorch 获得,
对code/models/modeling_nezha.py中的网络进行初始化
## 算法
### 整体思路介绍
模型结构:使用NeZha预训练模型 nezha-cn-base作为基础模型,使用GlobalPointer作为解码器进行解码。
1、加了warmup、梯度裁剪、weight_decay,调整超参数
2、使用了fgm对抗训练
3、使用了伪标签,用训练好的模型去标注了20000条无标签的数据(unlabeled_train_data.txt),然后和训练集数据一起重新训练模型
4、加了rdrop略有提升
5、试过利用无标注的数据对nezha-cn-base做自监督的进一步预训练,但是还没有提升
### 网络结构
![image-20220423220155460](https://github.com/lylcst/GAIIC_project_NER/blob/master/img/%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84%E5%9B%BE.png)
### 损失函数
使用多标签类别的交叉熵损失函数:multilabel_categorical_crossentropy
### 其他说明
data/orther下放置了一个文件:fake_train_data_20000.txt,是用自己模型标注的伪标签数据集,用于训练阶段使用。
## 训练流程
```sh
sh train.sh
```
或
```sh
python code/train.py --train_data_file_path data/contest_data/train_data/train.txt \
--model_name data/pretrain_model/nezha-cn-base \
--model_save_dir data/model_data \
--learning_rate 2e-5 \
--num_epoches 6 \
--batch_size 32 \
--warmup_proportion 0.1 \
--gradient_accumulation_steps 1 \
--max_grad_norm 1.0 \
--weight_decay 0.01 \
--do_adv \
--do_fake_label \
--fake_train_data_path data/tmp_data \
--fake_train_data_name fake_train_data_20000.txt \
--rdrop \
--rdrop_rate 0.5 \
--cuda_device 0 \
--seed 42
```
参数列表:
| FLAG | description | default |
| :----------------------: | :---------------: | :--------------: |
| --train_data_file_path | 训练数据文件train.txt的路径 | None |
| --model_name | 使用的模型初始化参数路径 | data/pretrain_model/nezha-cn-base |
| --model_save_dir | 模型的保存根目录 | ./data/model_data |
| --learning_rate | 模型训练的学习率 | 2e-5 |
| --num_epoches | 模型训练的epoch数 | 6 |
| --batch_size | 模型训练的batch大小 | 32 |
| --warmup_proportion | Proportion of training to perform linear learning rate warmup | 0.1 |
| --gradient_accumulation_steps | Number of updates steps to accumulate before performing a backward/update pass | 1 |
| --max_grad_norm | Max gradient norm | 1.0 |
| --weight_decay | Weight decay if we apply some | 0.01 |
| --do_adv | Whether to use fgm | False |
| --do_fake_label | 是否使用伪标签训练 | False |
| --fake_train_data_path | 如果使用伪标签训练,此项设置伪标签文件的目录路径 | ./data/orther |
| --fake_train_data_name | 如果使用伪标签训练,此项设置伪标签文件的名字 | None |
| --rdrop | 是否使用rdrop | None |
| --rdrop_rate | rdrop系数 | 0.5 |
| --cuda_device | 使用的GPU设备号 | 0 |
| --seed | 随机种子 | 42 |
## 测试流程
```sh
sh test.sh data/contest_data/preliminary_test_b/sample_per_line_preliminary_B.txt
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【目标受众】: 本项目适合IT相关专业各种计算机技术的源代码和项目资料,如计科、人工智能、通信工程、自动化和电子信息等的在校学生、老师或者企业员工下载使用。 也适合小白学习进阶,可以用作比赛项目、可以进行项目复刻去参加同赛道比赛。 【资源内容】: 源码与竞赛资料:教育部认可的大学生竞赛备赛资料代码、源码、竞赛总结。 功能与质量保证:这个资源库是一个宝贵的学习平台,有助于他们深入了解计算机技术的原理和应用。这些源码经过测试和验证,可以直接运行,方便学生快速上手并开始实践。 【应用场景】: 竞赛准备:适用于各种教育部认可的竞赛,如全国电子设计大赛、全国大学生智能汽车竞赛等,他们可以借助这些资料了解竞赛的规则、要求和技巧。 学习与项目开发:可以用作毕设、课设、作业和竞赛项目的开发基础,可以使用这些源码作为项目开发的基础,快速构建出具有竞争力的作品。 【互动与交流】: 资料鼓励下载和使用这些资源,并欢迎学习者进行沟通交流、互相学习、共同进步。这种互动式的学习方式有助于形成良好的学习氛围,促进知识的共享和传播,为计算机相关专业的学习者提供了一个全面的学习和发展平台。
资源推荐
资源详情
资源评论
收起资源包目录
竞赛资料源码-商品命名实体识别竞赛.zip (290个子文件)
.DS_Store 6KB
.DS_Store 6KB
preprocessed_unlabeled_data.json 53KB
config.json 401B
README.md 4KB
README.md 962B
网络结构图.png 52KB
modeling_nezha.py 83KB
modeling_nezha.py 83KB
run_ner_crf.py 26KB
lr_scheduler.py 21KB
crf_block.py 20KB
crf.py 20KB
nezha_block.py 19KB
roformer_block.py 18KB
named_entity_recognition.py 18KB
prepare_training_data.py 16KB
conlleval.py 15KB
train.py 15KB
_sequence_classification.py 15KB
casrel_relation_extraction_task.py 13KB
prgc_relation_extraction_task.py 12KB
common.py 11KB
ner_seq.py 11KB
ner_span.py 11KB
transfomer.py 10KB
trainer.py 10KB
prgc_bert.py 9KB
nezha.py 9KB
roformer.py 9KB
_sentence_classification_dataset.py 8KB
prgc_relation_extraction_predictor.py 8KB
adafactor.py 8KB
predict.py 7KB
prgc_relation_extraction_dataset.py 7KB
_task.py 7KB
bert.py 7KB
finetuning_argparse.py 7KB
_dataset.py 7KB
madgrad.py 6KB
configuration_nezha.py 6KB
utils_ner.py 6KB
configuration_nezha.py 6KB
configuration_nezha.py 6KB
bert_for_ner.py 6KB
unsupervised_simcse.py 6KB
rnn.py 6KB
text_match.py 6KB
span_bert_named_entity_recognition.py 6KB
text_classification.py 6KB
configuration_roformer.py 6KB
casrel_relation_extraction_dataset.py 6KB
adabound.py 6KB
casrel_relation_extraction_predictor.py 5KB
text_match.py 5KB
text_classification.py 5KB
global_pointer_block.py 5KB
text_level_gcn.py 5KB
ralars.py 5KB
attack.py 5KB
global_pointer_nezha.py 4KB
char_vocab.py 4KB
lamb.py 4KB
lookahead.py 4KB
optimizer.py 4KB
adamw.py 4KB
adversarial.py 4KB
span_bert.py 4KB
biaffine_named_entity_recognition.py 4KB
ralamb.py 4KB
global_pointer_named_entity_recognition.py 4KB
_sequence_classification.py 4KB
crf_named_entity_recognition.py 4KB
bio_named_entity_recognition.py 4KB
word_vocab.py 4KB
ner_metrics.py 4KB
span_named_entity_recognition.py 4KB
nadam.py 4KB
ema.py 4KB
__init__.py 4KB
radam.py 4KB
modelcheckpoint.py 4KB
unsupervised_simcse_predictor.py 4KB
biaffine_bert.py 4KB
biaffine_bert.py 4KB
global_pointer_bert_named_entity_recognition.py 4KB
unsupervised_simcse_task.py 4KB
span_named_entity_recognition_dataset.py 4KB
biaffine_named_entity_recognition_dataset.py 4KB
biaffine_named_entity_recognition.py 4KB
lars.py 4KB
bio_named_entity_recognition_dataset.py 4KB
textcnn.py 3KB
__init__.py 3KB
sgdw.py 3KB
_predictor.py 3KB
global_pointer_named_entity_recognition_dataset.py 3KB
novograd.py 3KB
main.py 3KB
text_level_gcn.py 3KB
共 290 条
- 1
- 2
- 3
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功