File size: 2,042 Bytes
eb0c66d
 
00b7271
b1be298
d8bd543
9a1027d
 
f858651
eb0c66d
7313ccb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9b92c9c
7313ccb
 
 
 
 
 
 
40a8451
7313ccb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eb0c66d
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
92
93
94
95
---
license: apache-2.0
language:
- zh
pipeline_tag: sentence-similarity
tags:
- embedding
- text-embedding
---

<h1 align="center">
    Long Bert Chinese
    <br>
</h1>

<h4 align="center">
    <p>
        <b>简体中文</b> |
        <a href="https://github.com/OctopusMind/long-bert-chinese/blob/main/README_EN.md">English</a> 
    </p>
</h4>

<p >
<br>
</p>

**Long Bert**: 长文本相似度模型,支持8192token长度。
基于bert-base-chinese,将原始BERT位置编码更改成ALiBi位置编码,使BERT可以支持8192的序列长度。

### News
* 支持`CoSENT`微调
* github仓库 [github](https://github.com/OctopusMind/longBert)


### 使用
```python
from numpy.linalg import norm
from transformers import AutoModel

model_path = "OctopusMind/longbert-embedding-8k-zh"
model = AutoModel.from_pretrained(model_path, trust_remote_code=True)

sentences = ['我是问蚂蚁借呗为什么不能提前结清欠款', "为什么借呗不能选择提前还款"]
embeddings = model.encode(sentences)
cos_sim = lambda a,b: (a @ b.T) / (norm(a)*norm(b))
print(cos_sim(embeddings[0], embeddings[1]))
```

## 微调
### 数据格式

```json
[
    {
        "sentence1": "一个男人在吹一支大笛子。",
        "sentence2": "一个人在吹长笛。",
        "label": 3
    },
    {
        "sentence1": "三个人在下棋。",
        "sentence2": "两个人在下棋。",
        "label": 2
    },
    {
        "sentence1": "一个女人在写作。",
        "sentence2": "一个女人在游泳。",
        "label": 0
    }
]
```

### CoSENT 微调`train/`路径下
```bash
cd train/
```
进行 CoSENT 微调
```bash
python cosent_finetune.py \
        --data_dir ../data/train_data.json \
        --output_dir ./outputs/my-model \
        --max_seq_length 1024 \
        --num_epochs 10 \
        --batch_size 64 \
        --learning_rate 2e-5
```



## 贡献
欢迎通过提交拉取请求或在仓库中提出问题来为此模块做出贡献。

## License
本项目遵循[Apache-2.0开源协议](./LICENSE)