更新 | 安装 | 快速开始 | 社区 | 项目 | 模型列表 | 贡献者 | Citation | License
BGE (BAAI General Embedding) 专注于检索增强llm领域,目前包括以下项目:
如果你不想微调模型,你可以直接安装包,不用finetune依赖:
pip install -U FlagEmbedding
如果你想微调模型,你可以用finetune依赖安装:
pip install -U FlagEmbedding[finetune]
克隆并安装FlagEmbedding:
git clone https://github.com/FlagOpen/FlagEmbedding.git
cd FlagEmbedding
# 如果你不想微调模型,你可以直接安装包,不用finetune依赖:
pip install .
# 如果你想微调模型,你可以用finetune依赖安装:
# pip install .[finetune]
在可编辑模式下安装:
# 如果你不想微调模型,你可以直接安装包,不用finetune依赖:
pip install -e .
# 如果你想微调模型,你可以用finetune依赖安装:
# pip install -e .[finetune]
首先,加载一个BGE向量模型:
from FlagEmbedding import FlagAutoModel
model = FlagAutoModel.from_finetuned('BAAI/bge-base-en-v1.5',
query_instruction_for_retrieval="Represent this sentence for searching relevant passages:",
use_fp16=True)
将语句作为模型输入,得到向量:
sentences_1 = ["I love NLP", "I love machine learning"]
sentences_2 = ["I love BGE", "I love text retrieval"]
embeddings_1 = model.encode(sentences_1)
embeddings_2 = model.encode(sentences_2)
取得向量后,通过内积计算相似度:
similarity = embeddings_1 @ embeddings_2.T
print(similarity)
关于更多细节,可以参考embedder推理, reranker推理, embedder微调, reranker微调, 评估, 研究.
我们将持续维护BGE及FlagEmbedding社区,有任何想法建议都欢迎告诉我们!
近期会持续更新教学中的内容,希望为文本检索以及RAG打造出完整且详细的教学,欢迎持续关注!
在未来将会更新以下内容:
| Model | Language | Description | query instruction for retrieval |
|---|---|---|---|
| BAAI/bge-en-icl | English | 基于大型语言模型的向量模型,具有上下文学习能力,能够基于少量示例充分发挥模型的潜力。 | 根据给定的任务自由提供指示和少数示例。 |
| BAAI/bge-multilingual-gemma2 | Multilingual | 基于大型语言模型的多语言向量模型,在多种语言和任务上训练,适应多样化的下游场景。 | 根据给定的任务自由提供指示和少数示例。 |
| BAAI/bge-m3 | Multilingual | 多功能(向量检索,稀疏检索,多表征检索)、多语言、多粒度(最大长度8192) | |
| LM-Cocktail | English | 微调的Llama和BGE模型,可以用来复现LM-Cocktail论文的结果 | |
| BAAI/llm-embedder | English | 专为大语言模型各种检索增强任务设计的向量模型 | 详见README |
| BAAI/bge-reranker-v2-m3 | Multilingual | 一个轻量级的交叉编码器模型,具有强大的多语言能力,易于部署,具有快速的推理能力。 | |
| BAAI/bge-reranker-v2-gemma | Multilingual | 一个支持多语言的交叉编码器模型,在英文和多语言能力方面均表现出色。 | |
| BAAI/bge-reranker-v2-minicpm-layerwise | Multilingual | 一个支持多语言的交叉编码器模型,在英文和中文方面均表现良好,允许自由选择输出层,以便加速推理。 | |
| BAAI/bge-reranker-v2.5-gemma2-lightweight | Multilingual | 一个支持多语言的跨编码器模型,不仅在英文和中文上表现良好,还允许自由选择输出层、压缩比例和压缩层,从而便于加速推理。 | |
| BAAI/bge-reranker-large | Chinese and English | 交叉编码器模型,精度比向量模型更高但推理效率较低 | |
| BAAI/bge-reranker-base | Chinese and English | 交叉编码器模型,精度比向量模型更高但推理效率较低 | |
| BAAI/bge-large-en-v1.5 | English | 1.5版本,相似度分布更加合理 | Represent this sentence for searching relevant passages: |
| BAAI/bge-base-en-v1.5 | English | 1.5版本,相似度分布更加合理 | Represent this sentence for searching relevant passages: |
| BAAI/bge-small-en-v1.5 | English | 1.5版本,相似度分布更加合理 | Represent this sentence for searching relevant passages: |
| BAAI/bge-large-zh-v1.5 | Chinese | 1.5版本,相似度分布更加合理 | 为这个句子生成表示以用于检索相关文章: |
| BAAI/bge-base-zh-v1.5 | Chinese | 1.5版本,相似度分布更加合理 | 为这个句子生成表示以用于检索相关文章: |
| BAAI/bge-small-zh-v1.5 | Chinese | 1.5版本,相似度分布更加合理 | 为这个句子生成表示以用于检索相关文章: |
| BAAI/bge-large-en | English | 向量模型,将文本转换为向量 | Represent this sentence for searching relevant passages: |
| BAAI/bge-base-en | English | base-scale 向量模型 | Represent this sentence for searching relevant passages: |
| BAAI/bge-small-en | English | base-scale 向量模型 | Represent this sentence for searching relevant passages: |
| BAAI/bge-large-zh | Chinese | 向量模型,将文本转换为向量 | 为这个句子生成表示以用于检索相关文章: |
| BAAI/bge-base-zh | Chinese | base-scale 向量模型 | 为这个句子生成表示以用于检索相关文章: |
| BAAI/bge-small-zh | Chinese | base-scale 向量模型 | 为这个句子生成表示以用于检索相关文章: |
十分感谢所有参与FlagEmbedding社区成员的贡献,也欢迎新的成员加入!
如果您觉得我们的工作有所帮助,请考虑点个星 ⭐ 和引用以下论文:
@misc{cocktail,
title={LM-Cocktail: Resilient Tuning of Language Models via Model Merging},
author={Shitao Xiao and Zheng Liu and Peitian Zhang and Xingrun Xing},
year={2023},
eprint={2311.13534},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@misc{llm_embedder,
title={Retrieve Anything To Augment Large Language Models},
author={Peitian Zhang and Shitao Xiao and Zheng Liu and Zhicheng Dou and Jian-Yun Nie},
year={2023},
eprint={2310.07554},
archivePrefix={arXiv},
primaryClass={cs.IR}
}
@misc{bge_embedding,
title={C-Pack: Packaged Resources To Advance General Chinese Embedding},
author={Shitao Xiao and Zheng Liu and Peitian Zhang and Niklas Muennighoff},
year={2023},
eprint={2309.07597},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
FlagEmbedding基于MIT License开源协议。
本项目受新一代人工智能国家科技重大专项(No. 2022ZD0116300)支持。