README.md 3.23 KB
Newer Older
chenych's avatar
chenych committed
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# BGE-Reranker
## 论文
暂无

## 模型结构
基于transformers结构
<div align=center>
    <img src="./doc/transformers.png"/>
</div>

## 算法原理
交叉编码器会对输入的成对数据进行全注意力处理,这比embedding模型(即双编码器)更准确,但比embedding模型更耗时。因此,它可以用于对嵌入模型返回的前 k 个文档进行重新排序。
<div align=center>
    <img src="./doc/methods.png"/>
</div>

## 环境配置

DCU型号:BW200/K100_AI 节点数量:1台,卡数:1 张。

`-v 路径``docker_name``imageID`根据实际情况修改

### Docker(方法一)
```bash
docker pull image.sourcefind.cn:5000/dcu/admin/base/custom:vllm0.8.5-ubuntu22.04-dtk25.04.1-rc4-das1.6-py3.10-20250620-fixpy
docker run -it --shm-size 200g --network=host --name {docker_name} --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mkfd --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro {imageID} bash

cd /your_code_path/bge-reranker_pytorch
pip install FlagEmbedding
```

### Dockerfile(方法二)
```bash
cd docker
docker build --no-cache -t bge-reranker:latest .
docker run -it --shm-size 200g --network=host --name {docker_name} --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mkfd --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro {imageID} bash

cd /your_code_path/bge-reranker_pytorch
pip install FlagEmbedding
```

### Anaconda(方法三)
关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装。
```bash
DTK: 25.04
python: 3.10
vllm: 0.8.5
torch: 2.4.1+das.opt2.dtk2504
deepspeed: 0.14.2+das.opt2.dtk2504

```
`Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应`

其它非深度学习库安装方式如下:
```bash
pip install FlagEmbedding
```

## 数据集


## 训练
暂无

## 推理
### vllm推理方法
#### server

server启动
```bash
vllm serve BAAI/bge-reranker-base --trust-remote-code --port 8002 --served-model-name bge-reranker-base
```

client调用
```bash
curl http://localhost:8002/score \
    -H "Content-Type: application/json" \
    -d '{
        "model": "bge-reranker-base",
        "text_1": "What is the capital of France?",
        "text_2": [
            "The capital of Brazil is Brasilia.",
            "The capital of France is Paris.",
            "Horses and cows are both animals"
        ]
    }'
```

## result
<div align=center>
    <img src="./doc/results-dcu.png"/>
</div>

### 精度
DCU与GPU精度一致,推理框架:vllm。

## 应用场景
### 算法类别
文本分类

### 热点应用行业
制造,广媒,家居,教育

## 预训练权重
- [bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)
- [bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large)

## 源码仓库及问题反馈
- https://developer.sourcefind.cn/codes/modelzoo/bge-reranker_pytorch

## 参考资料
- https://github.com/FlagOpen/FlagEmbedding/tree/master/research/reranker
- https://huggingface.co/FacebookAI/xlm-roberta-base