File size: 3,243 Bytes
8ebda9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# 二郎神打CLUE语义匹配榜
  - [比赛介绍](#比赛介绍)
  - [clue语义匹配榜打榜思路](#clue语义匹配榜-打榜思路)
  - [数据集介绍](#数据集介绍)
  - [环境](#环境)
  - [用法](#用法)
  - [提交](#提交)

## 比赛介绍
- clue的语义匹配榜 (https://www.cluebenchmarks.com/sim.html)
- clue sim官方实例 (https://github.com/CLUEbenchmark/QBQTC)

## clue语义匹配榜 打榜思路

- 直接使用fengshenbang的二郎神模型,就打到了前三。
- 为了解决标签平衡问题,设计了一个交叉熵平滑滤波loss,就达到了第一。

详细的思路讲解在知乎: <a href="https://zhuanlan.zhihu.com/p/539870077?">链接</a>

## 数据集介绍

QQ浏览器搜索相关性数据集(QBQTC,QQ Browser Query Title Corpus),是QQ浏览器搜索引擎目前针对大搜场景构建的一个融合了相关性、权威性、内容质量、
时效性等维度标注的学习排序(LTR)数据集,广泛应用在搜索引擎业务场景中。

相关性的含义:0,相关程度差;1,有一定相关性;2,非常相关。数字越大相关性越高。

**数据量统计**

| 训练集(train) | 验证集(dev) | 公开测试集(test_public) | 私有测试集(test) |
| :----: | :----: | :----: | :----: |
| 180,000| 20,000| 5,000 | >=10,0000|

**评测指标**

f1_score来自于sklearn.metrics,计算公式如下:
`F1 =  2 * (precision * recall) / (precision + recall)`

## 环境
* Python >= 3.6
* torch == 1.8.0+cu111
* transforms == 4.6.0
* pytorch-lightning == 1.3.2
* 一张GPU: A100 40G

## 用法

fengshenbang的二郎神模型的使用是非常简单的。

该example下的代码和思想继承自<a href="https://github.com/IDEA-CCNL/Fengshenbang-LM/blob/hf-ds/fengshen/examples/classification/finetune_classification.py">fengshen/examples/classification/finetune_classification.py</a>

如果需要直接使用该python脚本,把官方的数据集处理成如下形式:

```json
{"sentence1": "应届生实习", "sentence2": "实习生招聘-应届生求职网", "label": "1", "id": 0}
```

然后修改其中的<a href="https://github.com/IDEA-CCNL/Fengshenbang-LM/blob/hf-ds/fengshen/examples/classification/finetune_classification.sh">fengshen/examples/classification/finetune_classification.sh</a>的参数即可。

下面介绍该example的用法:

### 创建文件夹

- dataset 文件夹,下载官方数据集后放进来就行
- weights 文件夹,用以存放二郎神模型
- submissions 文件夹,用以存放需要评测的json文件

### Train
```bash
python main.py \
    --mode 'Train' \
    --model_path './weights/Erlangshen-MegatronBert-1.3B-Similarity' \
    --model_name 'IDEA-CCNL/Erlangshen-MegatronBert-1.3B-Similarity'
```

加载最优的模型用以Test set的预测。

### Test
```bash
python main.py \
    --mode 'Test' \
    --predict_model_path 'your_model_path' \
    --model_path './weights/Erlangshen-MegatronBert-1.3B-Similarity' \
    --model_name 'IDEA-CCNL/Erlangshen-MegatronBert-1.3B-Similarity'
```

## 提交

在路径 ./submissions 下,找到 qbqtc_predict.json 并且提交到<a href="https://www.CLUEbenchmarks.com">测评系统</a>

注意:名字必须为qbqtc_predict.json