FlagEmbedding专注于检索增强llm领域,目前包括以下项目:
Fine-tuning of LM : LM-Cocktail
Dense Retrieval: LLM Embedder, BGE Embedding, C-MTEB
Reranker Model: BGE Reranker
更新
11/23/2023: Release 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: 发布中英文向量模型BGE(BAAI General Embedding的缩写), 在MTEB和C-MTEB榜单上取得最好的性能
08/01/2023: 发布大规模中文文本向量评测榜单 (C-MTEB), 其包括31个测试任务.
项目
LM-Cocktail
微调预训练语言模型可以更好地支持下游任务。但是,该操作可能会导致目标领域之外的一般性任务上性能下降。 为了克服这个问题,我们提出了LM-Cocktail。 LM-Cocktail在提高下游目标任务的准确度的同时,保持在其他任务上的性能。 它还可以用于为新任务生成模型,避免微调对资源和数据的要求。 你可以使用它去融合多个大语言模型(如,Llama)或者向量模型。 更多细节请参考论文和代码。
LLM Embedder
LLM-Embedder向量模型是根据LLM的反馈进行微调的。 它可以支持大型语言模型的检索增强需求,包括知识检索、记忆检索、示例检索和工具检索。 它在6个任务上进行了微调:问题回答,对话搜索,长对话, 长文本建模、上下文学习和工具学习。 更多细节请参考./FlagEmbedding/llm_embedder/README.md
BGE Reranker
交叉编码器将对查询和答案实时计算相关性分数,这比向量模型(即双编码器)更准确,但比向量模型更耗时。 因此,它可以用来对嵌入模型返回的前k个文档重新排序。 我们在多语言数据上训练了交叉编码器,数据格式与向量模型相同,因此您可以根据我们的示例 轻松地对其进行微调。 更多细节请参考./FlagEmbedding/reranker/README.md
BGE Embedding
BGE Embedding是一个通用向量模型。 我们使用retromae 对模型进行预训练,再用对比学习在大规模成对数据上训练模型。 你可以按照我们的示例 在本地数据上微调嵌入模型。 我们还提供了一个预训练示例 。 请注意,预训练的目标是重构文本,预训练后的模型无法直接用于相似度计算,需要进行微调之后才可以用于相似度计算。 更多关于bge的训练情况请参阅baai_general_embedding ,