German_Semantic_STS_V2 项目介绍
German_Semantic_STS_V2 是一个专门为德语语义用例设计的嵌入模型。该项目由Aaron Chibb开发,旨在将德语句子和段落映射到1024维的密集向量空间中,可用于聚类或语义搜索等任务。
模型特点
- 基于sentence-transformers框架开发
- 使用gBERT-large作为基础模型
- 在多个德语数据集上进行了微调
- 在德语语义相似度任务上表现优异
性能评估
在德语STS基准测试中,German_Semantic_STS_V2模型的Spearman相关系数达到0.8626,超过了包括xlm-r-distilroberta-base-paraphrase-v1、roberta-large-nli-stsb-mean-tokens等在内的多个知名模型。
使用方法
该模型可以通过sentence-transformers或HuggingFace Transformers库轻松使用。使用sentence-transformers时,只需几行代码即可获得句子嵌入:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('aari1995/German_Semantic_STS_V2')
embeddings = model.encode(sentences)
使用HuggingFace Transformers时,需要手动进行平均池化操作:
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained('aari1995/German_Semantic_STS_V2')
model = AutoModel.from_pretrained('aari1995/German_Semantic_STS_V2')
# 进行tokenization和模型推理
# 应用平均池化获得句子嵌入
模型架构
German_Semantic_STS_V2使用了以下架构:
- Transformer层:基于BertModel,最大序列长度为512
- 池化层:使用平均池化方法
训练细节
模型训练使用了以下参数:
- 批次大小:4
- 损失函数:对比损失(Contrastive Loss)
- 优化器:AdamW,学习率为5e-06
- 训练轮数:4
- 评估步骤:每500步
- 预热步骤:576
应用场景
German_Semantic_STS_V2模型可应用于多个自然语言处理任务,包括但不限于:
- 语义相似度计算
- 文本聚类
- 信息检索
- 问答系统
- 文本分类
致谢
项目开发过程中得到了多方支持:
- deepset提供了gBERT-large基础模型
- Philip May负责数据集的翻译和相关讨论
- Aaron Chibb进行了模型的微调
German_Semantic_STS_V2为德语自然语言处理任务提供了强大的语义表示工具,有望在多个领域发挥重要作用。