☰
train-sentence-transformers - base_model_selection
2026/10/3 17:37:48 网站建设 项目流程

基座模型选择

排行榜每几个月就会轮换;不要相信任何硬编码的"最佳"选择。实时发现当前选项——同时运行两种排序,因为"下载最多"展示的是经过验证的选项,而"趋势"展示的是可能还没有下载量的近期 SOTA。

发现命令

[BI](双编码器):

hf models list--filtersentence-transformers--sortdownloads--limit20hf models list--filtersentence-transformers--sorttrending--limit20

[CE](交叉编码器):

hf models list--filtersentence-transformers--filtertext-ranking--sortdownloads--limit20hf models list--filtersentence-transformers--filtertext-ranking--sorttrending--limit20

[SPARSE](稀疏编码器):

hf models list--filtersentence-transformers--filtersparse-encoder--sortdownloads--limit20hf models list--filtersentence-transformers--filtersparse-encoder--sorttrending--limit20

可选的语言缩小(任何类型):添加--filter <language-code>。并非所有多语言模型都会为每种语言打标签,所以没有匹配并不代表模型不能处理该语言——去掉过滤器重新运行进行比较。

hf models card<id>--text# 确认维度、max_seq_length、许可证、语言

在投入数小时的运行之前,交叉核对 MTEB 排行榜(选择相关标签页)。

[BI] 双编码器

从现有检索器继续训练优于全新开始 + 100k–500k 对数据。截至 2026-Q2 的常见命名空间(请对照发现命令验证——领域在轮换):

  • 英文编码器检索器:sentence-transformers/all-*(MiniLM-L6-v2、mpnet-base-v2 仍是 Hub 上下载最多的模型)、BAAI/bge-*-en-v1.5、nomic-ai/nomic-embed-text-v1.5、mixedbread-ai/mxbai-embed-large-v1、Alibaba-NLP/gte-*、Snowflake/snowflake-arctic-embed-*、jinaai/jina-embeddings-v5-text-small/-nano、microsoft/harrier-oss-v1-270m/-0.6b。
  • 多语言编码器检索器:sentence-transformers/paraphrase-multilingual-*、intfloat/multilingual-e5-*、ibm-granite/granite-embedding-*-multilingual-r2、google/embeddinggemma-300m、voyageai/voyage-4-nano。
  • 长文档(8k+):nomic-ai/modernbert-embed-*、answerdotai/ModernBERT-large。
  • 解码器 LLM 检索器(多语言;需要最后 token 池化):Qwen/Qwen3-Embedding-*(0.6B / 4B / 8B)、Qwen/Qwen3-VL-Embedding-*(多模态)、codefuse-ai/F2LLM-v2-*。
  • 全新开始英文(≥500k 对 + 领域契合的理由):microsoft/mpnet-base、answerdotai/ModernBERT-base、google-bert/bert-base-uncased、jhu-clsp/ettin-encoder-*(17m / 32m / 68m / 150m / 400m / 1b —— 配对的 ModernBERT 编码器系列)。
  • 全新开始多语言:FacebookAI/xlm-roberta-base(仅 MLM,需要对比训练)、microsoft/mdeberta-v3-base、jhu-clsp/mmBERT-base/-small。
  • CPU / 小占用(StaticEmbedding):StaticEmbedding(tokenizer, embedding_dim=...)。模型大小 =vocab_size × dim × 4 字节—— 选择小词汇量的分词器,否则会得到巨型模型:30k 词汇量的bert-base-uncased× 128 维 ≈ 15 MB;250k 词汇量的paraphrase-multilingual-MiniLM-L12-v2× 256 维 ≈ 256 MB。随机初始化需要 100 万+ 对数据;在 ~10 万对以下时,热启动(StaticEmbedding.from_distillation(...))有帮助。

架构变体(编码器 / 解码器 / 静态 / Router)、池化规则、以及解码器 vs 编码器的设置路径:见model_architectures.md。

ModernBERT 家族基座默认max_seq_length=8192。这会为 8192 token 的序列分配激活内存,无论你的数据长度如何,并会悄然把 Windows VRAM 推向"共享内存"溢出。在加载任何 ModernBERT / mmBERT / Ettin / gte-modernbert / nomic-modernbert 基座后,显式设置model.max_seq_length = 256(文档则为 512),除非你确实需要长上下文。

[CE] 交叉编码器

在大多数领域,从现有重排器继续训练优于全新开始 + 100k–500k 对数据;默认这样做,除非你有充分理由不这么做。截至 2026-Q2 的常见命名空间:

  • 英文编码器重排器:cross-encoder/ms-marco-*、BAAI/bge-reranker-*、mixedbread-ai/mxbai-rerank-*-v1/-v2、Alibaba-NLP/gte-reranker-modernbert-*、ibm-granite/granite-embedding-reranker-english-*。
  • 多语言编码器重排器:cross-encoder/mmarco-*、BAAI/bge-reranker-v2-m3、Alibaba-NLP/gte-multilingual-reranker-*、ibm-granite/granite-embedding-reranker-multilingual-*。
  • 解码器 LLM 重排器(多语言;num_labels=1的 last-token 风格打分):Qwen/Qwen3-Reranker-*(0.6B / 4B / 8B)、Qwen/Qwen3-VL-Reranker-*(多模态)。
  • 全新开始:microsoft/MiniLM-L12-H384-uncased、answerdotai/ModernBERT-base/-large、jhu-clsp/ettin-encoder-*、FacebookAI/xlm-roberta-base(多语言)、microsoft/mdeberta-v3-base(多语言)、jhu-clsp/mmBERT-base/-small(多语言)。分类交叉编码器需传入num_labels >= 2。

纯编码器基座仍是延迟效率高的默认选择(在小参数规模下,双向注意力非常适合重排用例),但当延迟/内存预算允许时,解码器 LLM 重排器现在在 MTEB Reranking 榜单顶部具有竞争力。

最小数据集:生产环境需要 50 万+ 条带标签的(query, passage, label)元组;在领域数据上继续训练需要 1 万–10 万条带标签的对。低资源语言可能少于 1 万条带标签的对;在这种情况下,依靠多语言基座的预训练并接受更嘈杂的信号。

"小"多语言模型约为 1 亿+ 参数,不像英文小模型那样是 17M-50M。mMiniLMv2-L12-H384(约 117M)大致是可用的多语言重排器的小型端。

[SPARSE] 稀疏编码器(SPLADE)

SPLADE 需要 fill-mask /AutoModelForMaskedLM兼容的检查点。纯编码器 MLM 模型开箱即用;解码器 LLM 不行。

  • 从现有 SPLADE 继续——英文:naver/splade-*(规范系列)、opensearch-project/opensearch-neural-sparse-encoding-*(包括-doc-v2-distill、-doc-v3-distill/-doc-v3-gte)、prithivida/Splade_PP_en_v*、ibm-granite/granite-embedding-30m-sparse。
  • 从现有 SPLADE 继续——多语言:opensearch-project/opensearch-neural-sparse-encoding-multilingual-v1。
  • 全新开始英文(≥50 万对):任何带 MLM 头的编码器——distilbert/distilbert-base-uncased、google-bert/bert-base-uncased。没有 MLM 的纯AutoModel检查点不行。发现 MLM 基座:hf models list --filter fill-mask --sort downloads --limit 20。
  • 全新开始多语言:FacebookAI/xlm-roberta-base(有 MLM 头)。其他多语言 MLM 基座:添加--filter <language-code>。

最小数据集:具有竞争力的 SPLADE 需要 50 万+ 三元组(带挖掘的困难负样本);在现有 SPLADE 上进行领域适配需要 5 万+ 三元组。

跨领域提示

  • 非英文检索起点(当语言标签返回 0 个结果时):查看intfloat/multilingual_e5_train_data获取平行对数据;通过sentence-transformers/miracl镜像获取多语言检索用的 MIRACL;通过unicamp-dl/mmarco获取 mMARCO(14 种语言,parquet 后端)。
  • 避免基于脚本的数据集加载器。datasets >= 4会以RuntimeError: Dataset scripts are no longer supported拒绝它们。寻找 parquet 后端的镜像(例如用sentence-transformers/miracl而不是miracl/miracl)。
  • hf datasets sql需要 DuckDB(pip install duckdb)。没有它,就回退到python -c "from datasets import load_dataset; ds = load_dataset('<id>', ...); print(ds.column_names, ds[0])"。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询