1. BGE模型概述:中文通用Embedding的破局者
在自然语言处理领域,文本表示学习一直是核心基础技术。传统Embedding模型往往局限于特定任务,而北京智源研究院开源的BGE(BAAI General Embedding)模型通过创新的三阶段训练策略,成功构建了中文世界的首个通用文本嵌入基础模型。这个采用BERT-like架构的模型,在检索(retrieval)、聚类(clustering)、语义相似度(STS)等多样化任务上均达到SOTA水平,其large版本甚至在多项指标上超越了OpenAI的Ada-002。
关键突破:BGE首次实现了单一模型对中文多场景Embedding需求的全面覆盖,其开源特性允许开发者基于业务需求进行二次微调。
模型提供三个规格版本:Small(24M参数)、Base(102M参数)和Large(326M参数)。实测表明,即使是参数量最小的Small版本,在中文C-MTEB基准测试中的综合表现也优于多数同体量模型。这种可扩展的架构设计,让使用者能根据计算资源与延迟要求灵活选型。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心架构设计:RetroMAE预训练范式
2.1 编码器架构选择
BGE基于BERT架构进行改良,采用多层Transformer编码器。与原始BERT的主要差异在于:
- 移除下一句预测(NSP)任务,专注句子级表征
- 最后一层CLS token的hidden state作为全局表征输出
- 隐藏层维度调整为更适合密集检索任务的768/1024/1280(对应S/B/L版本)
python复制# 典型使用示例(HuggingFace实现)
from transformers import AutoModel
model = AutoModel.from_pretrained('BAAI/bge-large-zh')
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
embedding = outputs.last_hidden_state[:,0] # 取CLS位置向量
2.2 RetroMAE预训练机制
预训练阶段采用RetroMAE(Retrospective Masked Auto-E
