BAAI/bge-large-en-v1.5 cover image
featured

BAAI/bge-large-en-v1.5

BGE embedding is a general Embedding Model. It is pre-trained using retromae and trained on large-scale pair data using contrastive learning. Note that the goal of pre-training is to reconstruct the text, and the pre-trained model cannot be used for similarity calculation directly, it needs to be fine-tuned

BGE embedding is a general Embedding Model. It is pre-trained using retromae and trained on large-scale pair data using contrastive learning. Note that the goal of pre-training is to reconstruct the text, and the pre-trained model cannot be used for similarity calculation directly, it needs to be fine-tuned

Public
$0.010 / Mtoken
512
ProjectPaperLicense
Web inference not supported yet, please check API tab

FlagEmbedding

Model List | FAQ | Usage | Evaluation | Train | Contact | Citation | License

More details please refer to our Github: FlagEmbedding.

English | 中文

FlagEmbedding can map any text to a low-dimensional dense vector which can be used for tasks like retrieval, classification, clustering, or semantic search. And it also can be used in vector databases for LLMs.

************* 🌟Updates🌟 *************

  • 10/12/2023: Release LLM-Embedder, a unified embedding model to support diverse retrieval augmentation needs for LLMs. Paper :fire:
  • 09/15/2023: The technical report of BGE has been released
  • 09/15/2023: The masive training data of BGE has been released
  • 09/12/2023: New models:
    • New reranker model: release cross-encoder models BAAI/bge-reranker-base and BAAI/bge-reranker-large, which are more powerful than embedding model. We recommend to use/fine-tune them to re-rank top-k documents returned by embedding models.
    • update embedding model: release bge-*-v1.5 embedding model to alleviate the issue of the similarity distribution, and enhance its retrieval ability without instruction.
More
  • 09/07/2023: Update fine-tune code: Add script to mine hard negatives and support adding instruction during fine-tuning.
  • 08/09/2023: BGE Models are integrated into Langchain, you can use it like this; C-MTEB leaderboard is available.
  • 08/05/2023: Release base-scale and small-scale models, best performance among the models of the same size 🤗
  • 08/02/2023: Release bge-large-*(short for BAAI General Embedding) Models, rank 1st on MTEB and C-MTEB benchmark! :tada: :tada:
  • 08/01/2023: We release the Chinese Massive Text Embedding Benchmark (C-MTEB), consisting of 31 test dataset.

Model List

bge is short for BAAI general embedding.

ModelLanguageDescriptionquery instruction for retrieval [1]
BAAI/llm-embedderEnglishInference Fine-tunea unified embedding model to support diverse retrieval augmentation needs for LLMsSee README
BAAI/bge-reranker-largeChinese and EnglishInference Fine-tunea cross-encoder model which is more accurate but less efficient [2]
BAAI/bge-reranker-baseChinese and EnglishInference Fine-tunea cross-encoder model which is more accurate but less efficient [2]
BAAI/bge-large-en-v1.5EnglishInference Fine-tuneversion 1.5 with more reasonable similarity distributionRepresent this sentence for searching relevant passages:
BAAI/bge-base-en-v1.5EnglishInference Fine-tuneversion 1.5 with more reasonable similarity distributionRepresent this sentence for searching relevant passages:
BAAI/bge-small-en-v1.5EnglishInference Fine-tuneversion 1.5 with more reasonable similarity distributionRepresent this sentence for searching relevant passages:
BAAI/bge-large-zh-v1.5ChineseInference Fine-tuneversion 1.5 with more reasonable similarity distribution为这个句子生成表示以用于检索相关文章:
BAAI/bge-base-zh-v1.5ChineseInference Fine-tuneversion 1.5 with more reasonable similarity distribution为这个句子生成表示以用于检索相关文章:
BAAI/bge-small-zh-v1.5ChineseInference Fine-tuneversion 1.5 with more reasonable similarity distribution为这个句子生成表示以用于检索相关文章:
BAAI/bge-large-enEnglishInference Fine-tune:trophy: rank 1st in MTEB leaderboardRepresent this sentence for searching relevant passages:
BAAI/bge-base-enEnglishInference Fine-tunea base-scale model but with similar ability to bge-large-enRepresent this sentence for searching relevant passages:
BAAI/bge-small-enEnglishInference Fine-tunea small-scale model but with competitive performanceRepresent this sentence for searching relevant passages:
BAAI/bge-large-zhChineseInference Fine-tune:trophy: rank 1st in C-MTEB benchmark为这个句子生成表示以用于检索相关文章:
BAAI/bge-base-zhChineseInference Fine-tunea base-scale model but with similar ability to bge-large-zh为这个句子生成表示以用于检索相关文章:
BAAI/bge-small-zhChineseInference Fine-tunea small-scale model but with competitive performance为这个句子生成表示以用于检索相关文章:

[1]: If you need to search the relevant passages to a query, we suggest to add the instruction to the query; in other cases, no instruction is needed, just use the original query directly. In all cases, no instruction needs to be added to passages.

[2]: Different from embedding model, reranker uses question and document as input and directly output similarity instead of embedding. To balance the accuracy and time cost, cross-encoder is widely used to re-rank top-k documents retrieved by other simple models. For examples, use bge embedding model to retrieve top 100 relevant documents, and then use bge reranker to re-rank the top 100 document to get the final top-3 results.

All models have been uploaded to Huggingface Hub, and you can see them at https://huggingface.co/BAAI. If you cannot open the Huggingface Hub, you also can download the models at https://model.baai.ac.cn/models .

Frequently asked questions

1. How to fine-tune bge embedding model?

Following this example to prepare data and fine-tune your model. Some suggestions:

  • Mine hard negatives following this example, which can improve the retrieval performance.

  • If you pre-train bge on your data, the pre-trained model cannot be directly used to calculate similarity, and it must be fine-tuned with contrastive learning before computing similarity.

  • If the accuracy of the fine-tuned model is still not high, it is recommended to use/fine-tune the cross-encoder model (bge-reranker) to re-rank top-k results. Hard negatives also are needed to fine-tune reranker.

2. The similarity score between two dissimilar sentences is higher than 0.5

Suggest to use bge v1.5, which alleviates the issue of the similarity distribution.

Since we finetune the models by contrastive learning with a temperature of 0.01, the similarity distribution of the current BGE model is about in the interval [0.6, 1]. So a similarity score greater than 0.5 does not indicate that the two sentences are similar.

For downstream tasks, such as passage retrieval or semantic similarity, what matters is the relative order of the scores, not the absolute value. If you need to filter similar sentences based on a similarity threshold, please select an appropriate similarity threshold based on the similarity distribution on your data (such as 0.8, 0.85, or even 0.9).

3. When does the query instruction need to be used

For the bge-*-v1.5, we improve its retrieval ability when not using instruction. No instruction only has a slight degradation in retrieval performance compared with using instruction. So you can generate embedding without instruction in all cases for convenience.

For a retrieval task that uses short queries to find long related documents, it is recommended to add instructions for these short queries. The best method to decide whether to add instructions for queries is choosing the setting that achieves better performance on your task. In all cases, the documents/passages do not need to add the instruction.

Evaluation

baai-general-embedding models achieve state-of-the-art performance on both MTEB and C-MTEB leaderboard! For more details and evaluation tools see our scripts.

  • MTEB:
Model NameDimensionSequence LengthAverage (56)Retrieval (15)Clustering (11)Pair Classification (3)Reranking (4)STS (10)Summarization (1)Classification (12)
BAAI/bge-large-en-v1.5102451264.2354.2946.0887.1260.0383.1131.6175.97
BAAI/bge-base-en-v1.576851263.5553.2545.7786.5558.8682.431.0775.53
BAAI/bge-small-en-v1.538451262.1751.6843.8284.9258.3681.5930.1274.14
bge-large-en102451263.9853.946.9885.859.4881.5632.0676.21
bge-base-en76851263.3653.046.3285.8658.781.8429.2775.27
gte-large102451263.1352.2246.8485.0059.1383.3531.6673.33
gte-base76851262.3951.1446.284.5758.6182.331.1773.01
e5-large-v2102451262.2550.5644.4986.0356.6182.0530.1975.24
bge-small-en38451262.1151.8244.3183.7857.9780.7230.5374.37
instructor-xl76851261.7949.2644.7486.6257.2983.0632.3261.79
e5-base-v276851261.550.2943.8085.7355.9181.0530.2873.84
gte-small38451261.3649.4644.8983.5457.782.0730.4272.31
text-embedding-ada-0021536819260.9949.2545.984.8956.3280.9730.870.93
e5-small-v238451259.9349.0439.9284.6754.3280.3931.1672.94
sentence-t5-xxl76851259.5142.2443.7285.0656.4282.6330.0873.42
all-mpnet-base-v276851457.7843.8143.6983.0459.3680.2827.4965.07
sgpt-bloom-7b1-msmarco4096204857.5948.2238.9381.955.6577.7433.666.19
  • C-MTEB:
    We create the benchmark C-MTEB for Chinese text embedding which consists of 31 datasets from 6 tasks. Please refer to C_MTEB for a detailed introduction.
ModelEmbedding dimensionAvgRetrievalSTSPairClassificationClassificationRerankingClustering
BAAI/bge-large-zh-v1.5102464.5370.4656.2581.669.1365.8448.99
BAAI/bge-base-zh-v1.576863.1369.4953.7279.7568.0765.3947.53
BAAI/bge-small-zh-v1.551257.8261.7749.1170.4163.9660.9244.18
BAAI/bge-large-zh102464.2071.5354.9878.9468.3265.1148.39
bge-large-zh-noinstruct102463.5370.555376.7768.5864.9150.01
BAAI/bge-base-zh76862.9669.5354.1277.567.0764.9147.63
multilingual-e5-large102458.7963.6648.4469.8967.3456.0048.23
BAAI/bge-small-zh51258.2763.0749.4570.3563.6461.4845.09
m3e-base76857.1056.9150.4763.9967.5259.3447.68
m3e-large102457.0554.7550.4264.368.259.6648.88
multilingual-e5-base76855.4861.6346.4967.0765.3554.3540.68
multilingual-e5-small38455.3859.9545.2766.4565.8553.8645.26
text-embedding-ada-002(OpenAI)153653.0252.043.3569.5664.3154.2845.68
luotuo102449.3744.442.7866.626149.2544.39
text2vec-base76847.6338.7943.4167.4162.1949.4537.66
text2vec-large102447.3641.9444.9770.8660.6649.1630.02
  • Reranking: See C_MTEB for evaluation script.
ModelT2RerankingT2RerankingZh2En*T2RerankingEn2Zh*MMarcoRerankingCMedQAv1CMedQAv2Avg
text2vec-base-multilingual64.6662.9462.5114.3748.4648.650.26
multilingual-e5-small65.6260.9456.4129.9167.2666.5457.78
multilingual-e5-large64.5561.6154.2828.667.4267.9257.4
multilingual-e5-base64.2162.1354.6829.566.2366.9857.29
m3e-base66.0362.7456.0717.5177.0576.7659.36
m3e-large66.1362.7256.116.4677.7678.2759.57
bge-base-zh-v1.566.4963.2557.0229.7480.4784.8863.64
bge-large-zh-v1.565.7463.3957.0328.7483.4585.4463.97
BAAI/bge-reranker-base67.2863.9560.4535.4681.2684.165.42
BAAI/bge-reranker-large67.664.0361.4437.1682.1584.1866.09

* : T2RerankingZh2En and T2RerankingEn2Zh are cross-language retrieval tasks

Train

BAAI Embedding

We pre-train the models using retromae and train them on large-scale pairs data using contrastive learning. You can fine-tune the embedding model on your data following our examples. We also provide a pre-train example. Note that the goal of pre-training is to reconstruct the text, and the pre-trained model cannot be used for similarity calculation directly, it needs to be fine-tuned. More training details for bge see baai_general_embedding.

BGE Reranker

Cross-encoder will perform full-attention over the input pair, which is more accurate than embedding model (i.e., bi-encoder) but more time-consuming than embedding model. Therefore, it can be used to re-rank the top-k documents returned by embedding model. We train the cross-encoder on a multilingual pair data, The data format is the same as embedding model, so you can fine-tune it easily following our example. More details please refer to ./FlagEmbedding/reranker/README.md

Contact

If you have any question or suggestion related to this project, feel free to open an issue or pull request. You also can email Shitao Xiao(stxiao@baai.ac.cn) and Zheng Liu(liuzheng@baai.ac.cn).

Citation

If you find this repository useful, please consider giving a star :star: and citation

@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 is licensed under the MIT License. The released models can be used for commercial purposes free of charge.