"...git@developer.sourcefind.cn:OpenDAS/TransformerEngine.git" did not exist on "77e5b16386115fe238570685f4afff25439ffd31"
README.md 5.12 KB
Newer Older
Rayyyyy's avatar
Rayyyyy committed
1
# FlagEmbedding
Rayyyyy's avatar
Rayyyyy committed
2
智源开源库FlagEmbedding,专注于检索增强llm领域。
Rayyyyy's avatar
Rayyyyy committed
3
4
5
6
7
8
9
10
11
12
13

## 已适配模型
- **Embedding Model**: [BGE Embedding](./FlagEmbedding/baai_general_embedding)
- **Reranker Model**: [BGE Reranker](./FlagEmbedding/reranker/)

## 环境配置
-v 路径、docker_name和imageID根据实际情况修改
**注意**:bitsandbytes库功能不全,暂不支持量化相关

### Docker(方法一)
```bash
14
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10
Rayyyyy's avatar
Rayyyyy committed
15
16
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=80G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash

Rayyyyy's avatar
Rayyyyy committed
17
cd /your_code_path/FlagEmbedding_pytorch
Rayyyyy's avatar
Rayyyyy committed
18
pip install -e .
19
pip install peft
Rayyyyy's avatar
Rayyyyy committed
20
pip install faiss-1.7.2_dtk24.04_gitb7348e7df780-py3-none-any.whl
21
22

export LD_LIBRARY_PATH=/path/of/site-packages/faiss/:$LD_LIBRARY_PATH
Rayyyyy's avatar
Rayyyyy committed
23
24
25
26
27
28
29
30
```

### Dockerfile(方法二)
```bash
cd docker
docker build --no-cache -t FlagEmbedding:latest .
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=80G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash

Rayyyyy's avatar
Rayyyyy committed
31
cd /your_code_path/FlagEmbedding_pytorch
Rayyyyy's avatar
Rayyyyy committed
32
pip install -e .
33
pip install peft
Rayyyyy's avatar
Rayyyyy committed
34
pip install faiss-1.7.2_dtk24.04_gitb7348e7df780-py3-none-any.whl
35
36

export LD_LIBRARY_PATH=/path/of/site-packages/faiss/:$LD_LIBRARY_PATH
Rayyyyy's avatar
Rayyyyy committed
37
38
39
40
41
```

### Anaconda(方法三)
关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.hpccube.com/tool/)开发者社区下载安装。
```bash
42
DTK驱动: dtk24.04.1
Rayyyyy's avatar
Rayyyyy committed
43
44
45
46
47
48
49
python: python3.10
torch: 2.1.0
```
`Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应`

其它非深度学习库安装方式如下:
```bash
Rayyyyy's avatar
Rayyyyy committed
50
cd /your_code_path/FlagEmbedding_pytorch
Rayyyyy's avatar
Rayyyyy committed
51
pip install -e .
52
pip install peft
Rayyyyy's avatar
Rayyyyy committed
53
pip install faiss-1.7.2_dtk24.04_gitb7348e7df780-py3-none-any.whl
54
55

export LD_LIBRARY_PATH=/path/of/site-packages/faiss/:$LD_LIBRARY_PATH
Rayyyyy's avatar
Rayyyyy committed
56
57
58
```

## 已经适配的项目
59
### [BGE Reranker](FlagEmbedding/reranker)
Rayyyyy's avatar
Rayyyyy committed
60
61
- 交叉编码器将对查询和答案实时计算相关性分数,这比向量模型(即双编码器)更准确,但比向量模型更耗时。
因此,它可以用来对嵌入模型返回的前k个文档重新排序。
62
63
我们在多语言数据上训练了交叉编码器,数据格式与向量模型相同,因此您可以根据我们的[示例](examples/reranker)轻松地对其进行微调。
更多细节请参考[这里](FlagEmbedding/reranker/README.md)
Rayyyyy's avatar
Rayyyyy committed
64

65
66
- 我们提供了新版的交叉编码器,支持更多的语言以及更长的长度。使用的数据格式与向量模型类似,但是新增了prompt用于微调以及推理。您可以使用特定的层进行推理或使用完整的层进行推理,您可以根根据我们的[示例](FlagEmbedding/llm_reranker/README.md#微调)轻松地对其进行微调。
更多细节请参考[llm_reranker/README.md](FlagEmbedding/llm_reranker/README.md)
Rayyyyy's avatar
Rayyyyy committed
67

68
### [BGE Embedding](FlagEmbedding/baai_general_embedding)
Rayyyyy's avatar
Rayyyyy committed
69
BGE Embedding是一个通用向量模型。 我们使用[retromae](https://github.com/staoxiao/RetroMAE)对模型进行预训练,再用对比学习在大规模成对数据上训练模型。
70
71
**你可以按照我们的[示例](examples/finetune)在本地数据上微调嵌入模型。**
我们还提供了一个[预训练示例](examples/pretrain)
Rayyyyy's avatar
Rayyyyy committed
72
请注意,预训练的目标是重构文本,预训练后的模型无法直接用于相似度计算,需要进行微调之后才可以用于相似度计算。
73
更多关于bge的训练情况请参阅[论文](https://arxiv.org/pdf/2309.07597.pdf)[代码](FlagEmbedding/baai_general_embedding/README.md).
Rayyyyy's avatar
Rayyyyy committed
74
75
76
77
78
79
80
81

**注意BGE使用CLS的表征作为整个句子的表示,如果使用了错误的方式(如mean pooling)会导致效果很差。**

### 精度
暂无

## 应用场景
### 算法类别
Rayyyyy's avatar
Rayyyyy committed
82
检索增强
Rayyyyy's avatar
Rayyyyy committed
83
84

### 热点应用行业
Rayyyyy's avatar
Rayyyyy committed
85
广媒,教育,政府
Rayyyyy's avatar
Rayyyyy committed
86
87
88

## 预训练权重
通过[SCNet AIModels](http://113.200.138.88:18080/aimodels)下载预训练模型:
Rayyyyy's avatar
Rayyyyy committed
89

Rayyyyy's avatar
Rayyyyy committed
90
91
92
93
94
95
96
97
98
99
100
### BGE Embedding
- [bge-large-zh-v1.5](http://113.200.138.88:18080/aimodels/bge-large-zh-v1.5)
- [bge-base-zh-v1.5](http://113.200.138.88:18080/aimodels/baai/bge-base-zh-v1.5)
- [bge-small-zh-v1.5](http://113.200.138.88:18080/aimodels/baai/bge-small-zh-v1.5)
- [bge-large-en-v1.5](http://113.200.138.88:18080/aimodels/bge-large-en-v1.5)
- [bge-base-en-v1.5](http://113.200.138.88:18080/aimodels/bge-base-en-v1.5)
- [bge-small-en-v1.5](http://113.200.138.88:18080/aimodels/bge-small-en-v1.5)

### BGE Reranker
- [bge-reranker-base](http://113.200.138.88:18080/aimodels/bge-reranker-base)
- [bge-reranker-large](http://113.200.138.88:18080/aimodels/bge-reranker-large)
Rayyyyy's avatar
Rayyyyy committed
101
102
103
- [bge-reranker-v2-m3](http://113.200.138.88:18080/aimodels/baai/bge-reranker-v2-m3)
- [bge-reranker-v2-gemma](http://113.200.138.88:18080/aimodels/baai/bge-reranker-v2-gemma)
- [bge-reranker-v2-minicpm-layerwise](http://113.200.138.88:18080/aimodels/baai/bge-reranker-v2-minicpm-layerwise)
Rayyyyy's avatar
Rayyyyy committed
104
105

## 源码仓库及问题反馈
Rayyyyy's avatar
Rayyyyy committed
106
- https://developer.hpccube.com/codes/modelzoo/flagembedding_pytorch
Rayyyyy's avatar
Rayyyyy committed
107
108
109

## 参考资料
- https://github.com/FlagOpen/FlagEmbedding