OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  FlagEmbedding — 适合检索、重排与向量表征的中文友好项目

FlagEmbedding — 适合检索、重排与向量表征的中文友好项目

 
  ipad ·  2026-04-10 11:00:23 · 2 次点击  · 0 条评论  

⚡️BGE:面向搜索与RAG的一站式检索工具包

bge_logo

Build Build License Build Build

最新动态 | 安装 | 快速开始 | 社区 | 研究项目 | 模型列表 | 贡献者 | 引用 | 许可证

English | 中文

最新动态

  • 2025年3月6日::fire::fire: 推出 BGE-VL (HF仓库),这是一个最先进的多模态嵌入模型,支持任何视觉搜索应用(包括文本到图像、图像到文本、图像&提示到图像、文本到图像&文本等)。它们在MIT许可证下发布,完全免费供学术和商业使用。我们还发布了 MegaPairs (仓库, 论文),这是一个赋能BGE-VL的大规模合成数据集!
  • 2024年12月5日::book: 我们建立了 BGE文档网站,用于集中展示BGE的信息和资料!
  • 2024年10月29日::earth_asia: 我们创建了BGE的微信群。扫描二维码加入群聊!想获取我们更新和新发布的第一手消息,或有任何问题或想法,现在就加入我们吧!
  • bge_wechat_group

  • 2024年10月22日:我们发布了另一个有趣的模型:OmniGen,这是一个支持多种任务的统一图像生成模型。OmniGen无需ControlNet、IP-Adapter等额外插件或姿态检测、人脸检测等辅助模型,即可完成复杂的图像生成任务。

  • 2024年9月10日:介绍 MemoRAG,这是在受记忆启发的知识发现基础上向RAG 2.0迈出的一步(仓库:https://github.com/qhjqhj00/MemoRAG,论文:https://arxiv.org/pdf/2409.05591v1)
  • 2024年9月2日:开始维护教程。其中的内容将积极更新和丰富,敬请关注!:books:
  • 2024年7月26日:发布新的嵌入模型 bge-en-icl,这是一个融入了上下文学习能力的嵌入模型,通过提供任务相关的查询-响应示例,可以编码语义更丰富的查询,进一步提升嵌入的语义表示能力。
  • 2024年7月26日:发布新的嵌入模型 bge-multilingual-gemma2,这是一个基于gemma-2-9b的多语言嵌入模型,支持多种语言和多样化的下游任务,在多语言基准测试(MIRACL、MTEB-fr和MTEB-pl)上达到了新的SOTA。
  • 2024年7月26日:发布新的轻量级重排序器 bge-reranker-v2.5-gemma2-lightweight,这是一个基于gemma-2-9b的轻量级重排序器,支持令牌压缩和分层轻量化操作,在节省大量资源的同时仍能保证良好的性能。:fire:
更多 - 2024年6月7日:发布新的基准测试 [MLVU](https://github.com/JUNJIE99/MLVU),这是第一个专门为长视频理解设计的综合性基准测试。MLVU具有广泛的视频时长范围、多样化的视频来源集合以及一套专为长视频理解定制的评估任务。:fire: - 2024年5月21日:与Jina AI、Zilliz、HuggingFace等合作伙伴共同发布新的基准测试 [AIR-Bench](https://github.com/AIR-Bench/AIR-Bench)。AIR-Bench专注于神经信息检索(Neural IR)和RAG的公平分布外评估。它生成针对不同领域和语言的合成数据进行基准测试。它是动态的,并将定期更新。[排行榜](https://huggingface.co/spaces/AIR-Bench/leaderboard) :fire: - 2024年4月30日:发布 [Llama-3-8B-Instruct-80K-QLoRA](https://huggingface.co/namespace-Pt/Llama-3-8B-Instruct-80K-QLoRA),通过在一些合成的长上下文数据上进行QLoRA训练,将Llama-3-8B-Instruct的上下文长度从8K扩展到80K。该模型在各种长上下文基准测试中取得了显著性能。[代码](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/longllm_qlora) :fire: - 2024年3月18日:发布新的[重排序器](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_reranker),基于强大的M3和LLM(GEMMA和MiniCPM,实际上并不那么大 :smiley:)骨干构建,支持多语言处理和更大的输入,在BEIR、C-MTEB/Retrieval、MIRACL、LlamaIndex评估等排名性能上实现了巨大提升 :fire: - 2024年3月18日:发布 [Visualized-BGE](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/visual_bge),为BGE赋予视觉能力。Visualized-BGE可用于生成混合图像-文本数据的嵌入。:fire: - 2024年1月30日:发布 **BGE-M3**,BGE模型系列的新成员!M3代表**多**语言性(100+种语言)、**多**粒度(输入长度高达8192个令牌)、**多**功能性(稠密检索、词法检索、多向量/ColBERT检索的统一)。它是第一个支持所有三种检索方法的嵌入模型,在多语言(MIRACL)和跨语言(MKQA)基准测试上达到了新的SOTA。[技术报告](https://arxiv.org/pdf/2402.03216.pdf) 和 [代码](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/BGE_M3)。:fire: - 2024年1月9日:发布 [Activation-Beacon](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/Long_LLM/activation_beacon),一种有效、高效、兼容且低成本(训练)的扩展LLM上下文长度的方法。[技术报告](https://arxiv.org/abs/2401.03462) - 2023年12月24日:发布 **LLaRA**,一个基于LLaMA-7B的稠密检索器,在MS MARCO和BEIR上达到了最先进的性能。模型和代码将开源。请保持关注。[技术报告](https://arxiv.org/abs/2312.15503) 和 [代码](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LLARA) - 2023年11月23日:发布 [LM-Cocktail](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/LM_Cocktail),一种通过合并多个语言模型来在微调期间保持通用能力的方法。[技术报告](https://arxiv.org/abs/2311.13534) - 2023年10月12日:发布 [LLM-Embedder](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/llm_embedder),一个统一的嵌入模型,以支持LLMs多样化的检索增强需求。[技术报告](https://arxiv.org/pdf/2310.07554.pdf) - 2023年9月15日:BGE的[技术报告](https://arxiv.org/pdf/2309.07597.pdf)已发布 - 2023年9月15日:BGE的[大规模训练数据](https://data.baai.ac.cn/details/BAAI-MTP)已发布 - 2023年9月12日:新模型: - **新的重排序器模型**:发布交叉编码器模型 `BAAI/bge-reranker-base` 和 `BAAI/bge-reranker-large`,它们比嵌入模型更强大。我们建议使用/微调它们来对嵌入模型返回的前k个文档进行重新排序。 - **更新嵌入模型**:发布 `bge-*-v1.5` 嵌入模型,以缓解相似度分布问题,并在无需指令的情况下增强其检索能力。 - 2023年9月7日:更新[微调代码](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/baai_general_embedding):添加挖掘困难负样本的脚本,并支持在微调期间添加指令。 - 2023年8月9日:BGE模型已集成到 **Langchain** 中,您可以像[这样](#using-langchain)使用它;C-MTEB **排行榜** 已[可用](https://huggingface.co/spaces/mteb/leaderboard)。 - 2023年8月5日:发布基础规模和小规模模型,**在同尺寸模型中性能最佳 🤗** - 2023年8月2日:发布 `bge-large-*`(BAAI General Embedding的简称)模型,**在MTEB和C-MTEB基准测试中排名第一!** :tada: :tada: - 2023年8月1日:我们发布了[中文大规模文本嵌入基准测试](https://github.com/FlagOpen/FlagEmbedding/tree/master/research/C_MTEB) (**C-MTEB**),包含31个测试数据集。

BGE (BAAI General Embedding) 专注于检索增强的大语言模型,目前包含以下项目:

projects

安装

使用 pip:

如果您不需要微调模型,可以安装不带微调依赖的包:

pip install -U FlagEmbedding

如果您需要微调模型,可以安装带微调依赖的包:

pip install -U FlagEmbedding[finetune]

从源码安装:

克隆仓库并安装

git clone https://github.com/FlagOpen/FlagEmbedding.git
cd FlagEmbedding
# 如果您不需要微调模型,可以安装不带微调依赖的包:
pip install  .
# 如果您需要微调模型,安装带微调依赖的包:
# pip install  .[finetune]

对于可编辑模式的开发安装:

# 如果您不需要微调模型,可以安装不带微调依赖的包:
pip install -e .
# 如果您需要微调模型,安装带微调依赖的包:
# 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)

更多详情,请参考嵌入器推理重排序器推理嵌入器微调重排序器微调评估

如果您对任何相关概念不熟悉,请查看教程。如果教程中没有,请告诉我们。

关于BGE的更多有趣主题,请查看研究

社区

我们正在积极维护BGE和FlagEmbedding的社区。如果您有任何建议或想法,请告诉我们!

目前我们正在更新教程,我们的目标是为文本检索和RAG的初学者创建一个全面且详细的教程。敬请关注!

以下内容将在未来几周内发布:

  • 评估
  • BGE-EN-ICL
完整的教程路线图

模型列表

bgeBAAI general embedding 的简称。

模型 语言 描述 用于检索的查询指令
BAAI/bge-en-icl 英语 一个具有上下文学习能力的基于LLM的嵌入模型,可以基于少量示例充分发挥模型的潜力 根据给定任务自由提供指令和少量示例。
BAAI/bge-multilingual-gemma2 多语言 一个基于LLM的多语言嵌入模型,在多种语言和任务上进行训练。 根据给定任务提供指令。
BAAI/bge-m3 多语言 多功能性(稠密检索、稀疏检索、多向量/colbert检索)、多语言性、多粒度(8192个令牌)
LM-Cocktail 英语 可用于复现LM-Cocktail结果的微调模型(Llama和BGE)
BAAI/llm-embedder 英语 一个统一的嵌入模型,以支持LLMs多样化的检索增强需求 参见 README
BAAI/bge-reranker-v2-m3 多语言 一个轻量级的交叉编码器模型,具有强大的多语言能力,易于部署,推理速度快。
BAAI/bge-reranker-v2-gemma 多语言 一个适用于多语言环境的交叉编码器模型,在英语能力和多语言能力方面都表现良好。
BAAI/bge-reranker-v2-minicpm-layerwise 多语言 一个适用于多语言环境的交叉编码器模型,在英语和中文能力方面都表现良好,允许自由
2 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 33 ms
Developed with Cursor