🚀 indoSBERT-large
indoSBERT-large 是一个基于 sentence-transformers 的模型,它能够将句子和段落映射到 256 维的密集向量空间,可用于聚类或语义搜索等任务。该模型是对 https://huggingface.co/indobenchmark/indobert-large-p1
进行修改,并借鉴 SBERT(Reimers 等人,2019)的孪生网络方案进行微调得到的。它使用机器翻译为印尼语的 STS 数据集(2012 - 2016)进行微调,能够为印尼语句子提供有意义的语义句嵌入。
🚀 快速开始
当你安装了 sentence-transformers 后,使用这个模型就变得很简单:
pip install -U sentence-transformers
然后你可以像这样使用该模型:
from sentence_transformers import SentenceTransformer
sentences = ["Komposer favorit saya adalah Joe Hisaishi", "Sapo tahu enak banget"]
model = SentenceTransformer('denaya/indoSBERT-large')
embeddings = model.encode(sentences)
print(embeddings)
✨ 主要特性
- 语义映射:将句子和段落映射到 256 维的密集向量空间。
- 多任务适用:可用于聚类、语义搜索等任务。
- 印尼语适配:针对印尼语进行微调,能为印尼语句子提供有效的语义句嵌入。
📦 安装指南
安装 sentence-transformers:
pip install -U sentence-transformers
💻 使用示例
基础用法
from sentence_transformers import SentenceTransformer
sentences = ["Komposer favorit saya adalah Joe Hisaishi", "Sapo tahu enak banget"]
model = SentenceTransformer('denaya/indoSBERT-large')
embeddings = model.encode(sentences)
print(embeddings)
🔧 技术细节
训练参数
数据加载器
torch.utils.data.dataloader.DataLoader
,长度为 1291,参数如下:
{'batch_size': 16, 'sampler': 'torch.utils.data.sampler.RandomSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}
损失函数
sentence_transformers.losses.CosineSimilarityLoss.CosineSimilarityLoss
fit() 方法的参数
{
"epochs": 50,
"evaluation_steps": 1,
"evaluator": "sentence_transformers.evaluation.EmbeddingSimilarityEvaluator.EmbeddingSimilarityEvaluator",
"max_grad_norm": 1,
"optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
"optimizer_params": {
"lr": 2e-05
},
"scheduler": "WarmupLinear",
"steps_per_epoch": null,
"warmup_steps": 100,
"weight_decay": 0.01
}
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
(2): Dense({'in_features': 1024, 'out_features': 256, 'bias': True, 'activation_function': 'torch.nn.modules.activation.Tanh'})
)
📄 许可证
文档中未提及相关许可证信息。
📚 引用与作者
@inproceedings{reimers-2019-sentence-bert,
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2019",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/1908.10084",
}
@article{author = {Diana, Denaya},
title = {IndoSBERT: Indonesian SBERT for Semantic Textual Similarity tasks},
year = {2023},
url = {https://huggingface.co/denaya/indoSBERT-large}
}