"examples/vscode:/vscode.git/clone" did not exist on "4c823480e6fcf86206590ab935d3337165fdeebc"
Commit 77ee3a32 authored by chenych's avatar chenych
Browse files

Fix bugs in llm_reranker and update READMES

parent acf54ee3
......@@ -21,7 +21,13 @@
## Usage
### 使用 FlagEmbedding
确认环境配置完成,请参考[环境配置](../../README.md#环境配置)
1. 确认环境配置完成,请参考[环境配置](../../README.md#环境配置)
2. `We couldn't connect to 'https://huggingface.co' to load this file`报错,需要先修改huggingface镜像源,修改方法如下:
```
pip install -U huggingface_hub hf_transfer
export HF_ENDPOINT=https://hf-mirror.com
```
#### 常规 reranker (bge-reranker-base / bge-reranker-large / bge-reranker-v2-m3 )
计算相关性得分(得分越高,相关性越强):
......
......@@ -56,21 +56,21 @@ export LD_LIBRARY_PATH=/path/of/site-packages/faiss/:$LD_LIBRARY_PATH
```
## 已经适配的项目
### [BGE Reranker](./FlagEmbedding/reranker)
### [BGE Reranker](FlagEmbedding/reranker)
- 交叉编码器将对查询和答案实时计算相关性分数,这比向量模型(即双编码器)更准确,但比向量模型更耗时。
因此,它可以用来对嵌入模型返回的前k个文档重新排序。
我们在多语言数据上训练了交叉编码器,数据格式与向量模型相同,因此您可以根据我们的[示例](./examples/reranker)轻松地对其进行微调。
更多细节请参考[这里](./FlagEmbedding/reranker/README.md)
我们在多语言数据上训练了交叉编码器,数据格式与向量模型相同,因此您可以根据我们的[示例](examples/reranker)轻松地对其进行微调。
更多细节请参考[这里](FlagEmbedding/reranker/README.md)
- 我们提供了新版的交叉编码器,支持更多的语言以及更长的长度。使用的数据格式与向量模型类似,但是新增了prompt用于微调以及推理。您可以使用特定的层进行推理或使用完整的层进行推理,您可以根根据我们的[示例](./FlagEmbedding/llm_reranker#fine-tune)轻松地对其进行微调。
更多细节请参考[llm_reranker/README.md](./examples/llm_reranker/README.md)
- 我们提供了新版的交叉编码器,支持更多的语言以及更长的长度。使用的数据格式与向量模型类似,但是新增了prompt用于微调以及推理。您可以使用特定的层进行推理或使用完整的层进行推理,您可以根根据我们的[示例](FlagEmbedding/llm_reranker/README.md#微调)轻松地对其进行微调。
更多细节请参考[llm_reranker/README.md](FlagEmbedding/llm_reranker/README.md)
### [BGE Embedding](./FlagEmbedding/baai_general_embedding)
### [BGE Embedding](FlagEmbedding/baai_general_embedding)
BGE Embedding是一个通用向量模型。 我们使用[retromae](https://github.com/staoxiao/RetroMAE)对模型进行预训练,再用对比学习在大规模成对数据上训练模型。
**你可以按照我们的[示例](./examples/finetune)在本地数据上微调嵌入模型。**
我们还提供了一个[预训练示例](./examples/pretrain)
**你可以按照我们的[示例](examples/finetune)在本地数据上微调嵌入模型。**
我们还提供了一个[预训练示例](examples/pretrain)
请注意,预训练的目标是重构文本,预训练后的模型无法直接用于相似度计算,需要进行微调之后才可以用于相似度计算。
更多关于bge的训练情况请参阅[论文](https://arxiv.org/pdf/2309.07597.pdf)[代码](./baai_general_embedding/README.md).
更多关于bge的训练情况请参阅[论文](https://arxiv.org/pdf/2309.07597.pdf)[代码](FlagEmbedding/baai_general_embedding/README.md).
**注意BGE使用CLS的表征作为整个句子的表示,如果使用了错误的方式(如mean pooling)会导致效果很差。**
......
......@@ -21,6 +21,9 @@
## 微调
### Hard Negatives
**TIPS: 只能单卡,不可多卡**
Hard negatives是一种广泛使用的提高句子嵌入质量的方法,使用方法如下:
```bash
python -m FlagEmbedding.baai_general_embedding.finetune.hn_mine \
......@@ -84,7 +87,7 @@ torchrun --nproc_per_node {number of gpus} \
通过合并微调模型和基本模型,LM-Cocktail可以显著提高下游任务的效果,同时在其他不相关的任务中保持性能。
```python
from LM_Cocktail import mix_models, mix_models_with_data
from LM_Cocktail.LM_Cocktail import mix_models, mix_models_with_data
# Mix fine-tuned model and base model; then save it to output_path: ./mixed_model_1
model = mix_models(
......
......@@ -6,7 +6,7 @@
## 数据格式
reranker的数据格式与[embedding fine-tune](../../examples/finetune/README.md#数据集)一样。
此外,我们强烈建议参考[mine hard negatives](../../xamples/finetune/README.md)中的Hard Negatives去微调reranker。
此外,我们强烈建议参考[mine hard negatives](../../examples/finetune/README.md)中的Hard Negatives去微调reranker。
## 训练
```
......@@ -40,7 +40,7 @@ torchrun --nproc_per_node {number of gpus} \
通过合并微调模型和基本模型,LM-Cocktail可以显著提高下游任务的效果,同时在其他不相关的任务中保持性能。
```python
from LM_Cocktail import mix_models, mix_models_with_data
from LM_Cocktail.LM_Cocktail import mix_models, mix_models_with_data
# Mix fine-tuned model and base model; then save it to output_path: ./mixed_model_1
model = mix_models(
......
......@@ -21,13 +21,3 @@ torchrun --nproc_per_node {number of gpus} \
--logging_steps 10 \
--save_steps 1000 \
--query_instruction_for_retrieval ""
### Hard Negatives
# python -m FlagEmbedding.baai_general_embedding.finetune.hn_mine \
# --model_name_or_path BAAI/bge-base-en-v1.5 \
# --input_file toy_finetune_data.jsonl \
# --output_file toy_finetune_data_minedHN.jsonl \
# --range_for_sampling 2-200 \
# --negative_number 15 \
# --use_gpu_for_searching
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment