license: apache-2.0
pipeline_tag: sentence-similarity
inference: false
tags:
- sentence-transformers
- feature-extraction
- sentence-similarity
- mteb
language: en
datasets:
- s2orc
- flax-sentence-embeddings/stackexchange_title_body_jsonl
- flax-sentence-embeddings/stackexchange_titlebody_best_voted_answer_jsonl
- flax-sentence-embeddings/stackexchange_title_best_voted_answer_jsonl
- flax-sentence-embeddings/stackexchange_titlebody_best_and_down_voted_answer_jsonl
- sentence-transformers/reddit-title-body
- msmarco
- gooaq
- yahoo_answers_topics
- code_search_net
- search_qa
- eli5
- snli
- multi_nli
- wikihow
- natural_questions
- trivia_qa
- embedding-data/sentence-compression
- embedding-data/flickr30k-captions
- embedding-data/altlex
- embedding-data/simple-wiki
- embedding-data/QQP
- embedding-data/SPECTER
- embedding-data/PAQ_pairs
- embedding-data/WikiAnswers
- sentence-transformers/embedding-training-data
model-index:
- name: lodestone-base-4096-v1
results:
- task:
type: Classification
dataset:
type: mteb/amazon_counterfactual
name: MTEB AmazonCounterfactualClassification (en)
config: en
split: test
revision: e8379541af4e31359cca9fbcf4b00f2671dba205
metrics:
- type: accuracy
value: 69.7313432835821
- type: ap
value: 31.618259511417733
- type: f1
value: 63.30313825394228
(后续内容因长度限制无法完整展示,完整翻译需分批处理)
lodestone-base-4096-v1
Hum-Works/lodestone-base-4096-v1。Griffin McCauley、Will Fortin、Dylan DiGioia 2023年发布。
这款由Hum开发的新sentence-transformers模型,能够将长句和段落映射到768维稠密向量空间,适用于聚类或语义搜索等任务。
摘要
为推进Hum提升人类知识可及性与互联性的使命,本模型作为项目的一部分开发,旨在通过融合FlashAttention、线性偏置注意力(ALiBi)和门控线性单元(GLU)等 Transformer 架构创新,将句子嵌入模型的输入序列长度扩展至4096。这些改进由MosaicML团队在预训练模型mosaic-bert-base-seqlen-2048
中实现,技术细节详见模型卡片。
本项目的微调流程参考了Flax-sentence-embeddings团队的方法(如all-mpnet-base-v2等模型),但引入了创新的数据加载、批量采样和模型检查点技术,以优化内存分配与存储效率。
结合成熟的微调实践与Transformer架构革新,lodestone-base-4096-v1
在标准文本嵌入评估中表现优异,同时支持4096 tokens的长序列输入,并保持轻量级设计,可在GPU或CPU上运行。
使用方法
安装支持远程代码的sentence-transformers分支后即可使用:
pip install git+https://github.com/Hum-Works/sentence-transformers.git
pip install einops
示例代码:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('Hum-Works/lodestone-base-4096-v1', trust_remote_code=True, revision='v1.0.0')
sentences = ["这是一个示例句子", "每个句子将被转换"]
embeddings = model.encode(sentences)
print(embeddings)
注:若已安装OpenAI/Triton的FlashAttention实现,模型将自动调用该高性能版本。兼容性详见Triton GitHub。
背景
本项目通过自监督对比学习目标,在近15亿句对数据集上微调预训练的mosaic-bert-base-seqlen-2048
模型。模型需从随机负例中识别出真实句对。
用途
作为长文本编码器,输出向量可用于信息检索、聚类或句子相似度计算。
训练流程
预训练
采用mosaic-bert-base-seqlen-2048
,详见其模型卡片。
微调
使用对比学习目标:计算批次内所有句对的点积,通过交叉熵损失优化真实配对。
超参数
- 硬件:NVIDIA A10G GPU(ml.g5.4xlarge实例)
- 训练步数:140万步
- 批次大小:16
- 学习率:2e-5(AdamW优化器)
- 序列长度:2048 tokens(训练时)→ 4096 tokens(推理时,通过ALiBi外推实现)
完整脚本见仓库:Training.py
。
模型架构
融合FlashAttention、ALiBi和GLU技术,支持4096 tokens输入(训练时2048,通过ALiBi外推加倍)。
完整架构:
SentenceTransformer(
(0): Transformer({'max_seq_length': 4096, 'do_lower_case': False})
(1): Pooling({'pooling_mode_mean_tokens': True})
(2): Normalize()
)
训练数据
整合多源数据集,总句对近15亿条,加权采样构成训练集。主要数据包括:
- Reddit评论(7.26亿)
- S2ORC学术引用(2.52亿摘要对)
- 亚马逊评论(0.88亿标题-评论对)
- WikiAnswers重复问题(0.77亿)
- PAQ问答对(0.64亿)
- 完整清单见模型卡片
总训练量:1,492,453,113句对
复现
详见仓库Replication.txt
,包含库修改、数据加载与训练步骤。
局限性
- 受GPU内存限制,批次大小较小(16),可能影响收敛效率
- 训练数据未完全覆盖4096 tokens长文本,长文本表现或需进一步微调
- 部分数据(如Reddit)未过滤偏见内容,需注意潜在偏差
(后续评估指标翻译略,按相同模式处理)