SimCSE在常见中文数据集上的测试,包含ATEC、BQ、LCQMC、PAWSX、STS-B共5个任务。
- 博客:https://kexue.fm/archives/8348
- 论文:《SimCSE: Simple Contrastive Learning of Sentence Embeddings》
- 官方:https://github.com/princeton-nlp/SimCSE
- utils.py 工具函数
- eval.py 评测主文件
命令格式:
python eval.py [model_type] [pooling] [task_name] [dropout_rate]
使用例子:
python eval.py BERT cls ATEC 0.3
其中四个参数必须传入,含义分别如下:
- model_type: 模型,必须是['BERT', 'RoBERTa', 'WoBERT', 'RoFormer', 'BERT-large', 'RoBERTa-large', 'SimBERT', 'SimBERT-tiny', 'SimBERT-small']之一;
- pooling: 池化方式,必须是['first-last-avg', 'last-avg', 'cls', 'pooler']之一;
- task_name: 评测数据集,必须是['ATEC', 'BQ', 'LCQMC', 'PAWSX', 'STS-B']之一;
- dropout_rate: 浮点数,dropout的比例,如果为0则不dropout;
测试环境:tensorflow 1.14 + keras 2.3.1 + bert4keras 0.10.5,如果在其他环境组合下报错,请根据错误信息自行调整代码。
Google官方的两个BERT模型:
- BERT:chinese_L-12_H-768_A-12.zip
- RoBERTa:chinese_roberta_wwm_ext_L-12_H-768_A-12.zip
- NEZHA:NEZHA-base-WWM
- WoBERT:chinese_wobert_plus_L-12_H-768_A-12.zip
- RoFormer:chinese_roformer_L-12_H-768_A-12.zip
- SimBERT: chinese_simbert_L-12_H-768_A-12.zip
- SimBERT-small: chinese_simbert_L-6_H-384_A-12.zip
- SimBERT-tiny: chinese_simbert_L-4_H-312_A-12.zip
关于语义相似度数据集,可以从数据集对应的链接自行下载,也可以从作者提供的百度云链接下载。
- 链接: https://pan.baidu.com/s/1oXeLB_cFR9lB7CPkO5N_cQ 提取码: nww9
其中senteval_cn目录是评测数据集汇总,senteval_cn.zip是senteval目录的打包,两者下其一就好。
- BERT-whitening:https://github.com/bojone/BERT-whitening
QQ交流群:808623966,微信群请加机器人微信号spaces_ac_cn