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) |