1 Star 0 Fork 0

刘凯 / FlagEmbedding

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

FlagEmbedding

Build License License License

更新 | 项目 | 模型列表 | Citation | License

English | 中文

FlagEmbedding专注于检索增强llm领域,目前包括以下项目:

更新

  • 3/18/2024: 发布新的rerankers, 拥有更好的性能同时支持多语言和长文本。 :fire:
  • 3/18/2024: 发布Visualized-BGE,该项目通过引入image token embedding赋予BGE视觉编码能力。Visualized-BGE可以对混合图文数据进行编码,用于广泛的混合模态检索任务。 :fire:
  • 1/30/2024: 发布BGE-M3, 第一个具有多功能、多语言和多粒度特性的文本检索模型,高效支持多语言(100+语言)、长文本(至多8192长度的输入文本)、和混合检索(稠密、稀疏、多向量)。 详见report代码 :fire:
  • 1/9/2024: 发布Activation-Beacon, 一个有效、高效、兼容、低成本(训练)的扩展大预言模型上下文长度的方法。技术报告
  • 12/24/2023: 发布LLaRA, 一个基于LLaMA-7B的稠密检索模型, MS MARCO与BEIR上取得了迄今最好的实验结果. 模型与代码将会陆续开源. 敬请关注. 技术报告
  • 11/23/2023: 发布LM-Cocktail, 一种通过模型融合在微调时保持原有模型通用能力的方法. 技术报告
  • 10/12/2023: 发布 LLM-Embedder, 专为大语言模型各种检索增强任务设计的英文向量模型。技术报告
  • 09/15/2023: 发布 技术报告数据集.
  • 09/12/2023: 更新:
    • 新增重排模型:开源交叉编码器模型bge-reranker,具有比向量模型更强大的排序能力。非常建议使用或者微调它来重新排序向量模型返回的top-k文档,提高最终结果的相关性。
    • 更新向量模型:发布bge-*-v1.5向量模型,缓解相似度分布问题,提升无指令情况下的检索能力(但检索任务仍建议使用指令)
  • 09/07/2023: 更新微调代码: 增加难负样本挖掘脚本,增加指令参数方便在微调中添加指令.
  • 08/09/2023: BGE模型整合入Langchain, 可以在langchain中非常简单的使用它; C-MTEB中文榜单已在线更新.
  • 08/05/2023: 发布更小的模型(base, small), 在同尺寸模型中取得最好的性能! 🤗
  • 08/02/2023: :tada: :tada: 发布中英文向量模型BGE(BAAI General Embedding的缩写), 在MTEB和C-MTEB榜单上取得最好的性能
  • 08/01/2023: 发布大规模中文文本向量评测榜单 (C-MTEB), 其包括31个测试任务.

项目

BGE-M3(Paper, Code)

在这个项目中,我们发布了BGE-M3,它是第一个具有多功能、多语言和多粒度特性的文本检索模型。

  • 多功能:可以同时执行三种检索功能:单向量检索、多向量检索和稀疏检索。
  • 多语言:支持100多种工作语言。
  • 多粒度:它能够处理不同粒度的输入,从短句子到长达8192个词汇的长文档。

在本项目中,为了提高单一检索模式的性能,提出了一种新的自知识蒸馏方法。 我们优化了批处理策略,支持大批处理大小,这可以在对长文本或大型语言模型进行向量微调时简单使用。 我们还构建了一个用于文档检索的数据集,并提出了一个简单的策略来提高长文本的建模能力。 训练代码和微调数据将在不久的将来开源。

Visualized-BGE

在这个项目中,我们发布了Visualized-BGE。 通过引入image token embedding,Visualized-BGE可以被用来编码混合图文数据。它可以被应用在广泛的多模态检索任务中,包括但不限于:多模态知识检索,多模态查询的图像检索等。

Activation Beacon

由于有限的上下文窗口长度,有效利用长上下文信息是对大型语言模型的一个巨大挑战。 Activation Beacon 将 LLM 的原始激活压缩为更紧凑的形式,以便它可以在有限的上下文窗口中感知更长的上下文。 它是一种有效、高效、兼容、低成本(训练)的延长LLM上下文长度的方法。 更多细节请参考技术报告代码

LM-Cocktail

模型合并被用于提高单模型的性能。 我们发现这种方法对大型语言模型和文本向量模型也很有用, 并设计了”语言模型鸡尾酒“方案,其自动计算融合比例去融合基础模型和微调模型。 利用LM-Cocktail可以缓解灾难性遗忘问题,即在不降低通用性能的情况下提高目标任务性能。 通过构造少量数据样例,它还可以用于为新任务生成模型,而无需进行微调。 它可以被使用来合并生成模型或向量模型。 更多细节请参考技术报告代码

LLM Embedder

LLM-Embedder向量模型是根据LLM的反馈进行微调的。 它可以支持大型语言模型的检索增强需求,包括知识检索、记忆检索、示例检索和工具检索。 它在6个任务上进行了微调:问题回答,对话搜索,长对话, 长文本建模、上下文学习和工具学习。 更多细节请参考./FlagEmbedding/llm_embedder/README.md

BGE Reranker

交叉编码器将对查询和答案实时计算相关性分数,这比向量模型(即双编码器)更准确,但比向量模型更耗时。 因此,它可以用来对嵌入模型返回的前k个文档重新排序。 我们在多语言数据上训练了交叉编码器,数据格式与向量模型相同,因此您可以根据我们的示例 轻松地对其进行微调。 更多细节请参考./FlagEmbedding/reranker/README.md

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

BGE Embedding

BGE Embedding是一个通用向量模型。 我们使用retromae 对模型进行预训练,再用对比学习在大规模成对数据上训练模型。 你可以按照我们的示例 在本地数据上微调嵌入模型。 我们还提供了一个预训练示例 。 请注意,预训练的目标是重构文本,预训练后的模型无法直接用于相似度计算,需要进行微调之后才可以用于相似度计算。 更多关于bge的训练情况请参阅论文代码.

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

C-MTEB

中文向量榜单,已整合入MTEB中。更多细节参考 论文代码.

模型列表

Model Language Description query instruction for retrieval [1]
BAAI/bge-m3 Multilingual 推理 微调 多功能(向量检索,稀疏检索,多表征检索)、多语言、多粒度(最大长度8192)
LM-Cocktail English 微调的Llama和BGE模型,可以用来复现LM-Cocktail论文的结果
BAAI/llm-embedder English 推理 微调 专为大语言模型各种检索增强任务设计的向量模型 详见 README
BAAI/bge-reranker-large Chinese and English 推理 微调 交叉编码器模型,精度比向量模型更高但推理效率较低 [2]
BAAI/bge-reranker-base Chinese and English 推理 微调 交叉编码器模型,精度比向量模型更高但推理效率较低 [2]
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 推理 微调 small-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 推理 微调 small-scale 向量模型 为这个句子生成表示以用于检索相关文章:

Contributors:

Citation

如果您觉得我们的工作有所帮助,请考虑点个星 :star: 和引用以下论文:

@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}
}

License

FlagEmbedding基于MIT License开源协议。

MIT License Copyright (c) 2022 staoxiao Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
Python 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/MufcLiuKai/FlagEmbedding.git
git@gitee.com:MufcLiuKai/FlagEmbedding.git
MufcLiuKai
FlagEmbedding
FlagEmbedding
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891