SentenceTransformer based on indobenchmark/indobert-base-p1
This is a sentence-transformers model finetuned from indobenchmark/indobert-base-p1. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for retrieval.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: indobenchmark/indobert-base-p1
- Maximum Sequence Length: 512 tokens
- Output Dimensionality: 768 dimensions
- Similarity Function: Cosine Similarity
- Supported Modality: Text
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'BertModel'})
(1): Pooling({'embedding_dimension': 768, 'pooling_mode': 'mean', 'include_prompt': True})
)
Usage
Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
pip install -U sentence-transformers
Then you can load this model and run inference.
from sentence_transformers import SentenceTransformer
# Download from the 🤗 Hub
model = SentenceTransformer("sentence_transformers_model_id")
# Run inference
sentences = [
'Lagipula, kepada siapakah aku memperhambakan diri? Bukankah kepada anaknya? Sebagaimana aku memperhambakan diri kepada ayahmu, demikianlah aku memperhambakan diri kepadamu."',
'Lagi pula, kepada siapakah aku akan mengabdi? Bukankah kepada anaknya? Seperti aku mengabdi kepada ayahmu, demikianlah aku akan berlaku kepadamu.”',
'Pasanglah telingamu dan datanglah kepada-Ku dengarlah supaya jiwamu akan hidup. Aku akan mengadakan perjanjian yang kekal denganmu, menurut kebaikan-Ku yang teguh kepada Daud.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.8390, 0.0139],
# [0.8390, 1.0000, 0.0512],
# [0.0139, 0.0512, 1.0000]])
Training Details
Training Dataset
Unnamed Dataset
- Size: 62,204 training samples
- Columns: sentence_0 and sentence_1
- Approximate statistics based on the first 100 samples:
sentence_0 sentence_1 type string string modality text text details min: 11 tokensmean: 32.89 tokensmax: 90 tokens min: 7 tokensmean: 32.76 tokensmax: 101 tokens - Samples:
sentence_0 sentence_1 Dan dengan berani Yesaya mengatakan: "Aku telah berkenan ditemukan mereka yang tidak mencari Aku, Aku telah menampakkan diri kepada mereka yang tidak menanyakan Aku." Kemudian Yesaya dengan berani berkata atas nama Allah, “Orang yang tidak mencari Aku akan menemukan Aku. Aku menyatakan diri-Ku kepada orang yang tidak menanyakan Aku.” Pada pergantian tahun, pada waktu raja-raja biasanya maju berperang, maka Daud menyuruh Yoab maju beserta orang-orangnya dan seluruh orang Israel. Mereka memusnahkan bani Amon dan mengepung kota Raba, sedang Daud sendiri tinggal di Yerusalem. Pada pergantian tahun, saat raja-raja keluar, Daud mengirim Yoab beserta anak buahnya dan semua orang Israel untuk memusnahkan orang Amon dan mengepung kota Raba, sedangkan Daud tinggal di Yerusalem. Sesuatu apapun yang beragi tidak boleh kamu makan; kamu makanlah roti yang tidak beragi di segala tempat kediamanmu." Kamu tidak boleh makan apa pun yang beragi. Di seluruh tempat tinggalmu, kamu harus makan roti tidak beragi.’” - Loss: MultipleNegativesRankingLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "cos_sim", "gather_across_devices": false, "directions": [ "query_to_doc" ], "partition_mode": "joint", "hardness_mode": null, "hardness_strength": 0.0 }
Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 16num_train_epochs: 5per_device_eval_batch_size: 16multi_dataset_batch_sampler: round_robin
All Hyperparameters
per_device_train_batch_size: 16num_train_epochs: 5max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: adamw_torch_fusedoptim_args: Noneweight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 1average_tokens_across_devices: Truemax_grad_norm: 1label_smoothing_factor: 0.0bf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: Nonetrackio_bucket_id: Nonetrackio_static_space_id: Noneper_device_eval_batch_size: 16prediction_loss_only: Trueeval_on_start: Falseeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Falsehub_private_repo: Nonehub_model_id: Nonehub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Falseignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedataloader_drop_last: Falsedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_static_graph: Noneddp_backend: Noneddp_timeout: 1800fsdp: Nonefsdp_config: Nonedeepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}
Training Logs
| Epoch | Step | Training Loss |
|---|---|---|
| 0.1286 | 500 | 0.0770 |
| 0.2572 | 1000 | 0.0190 |
| 0.3858 | 1500 | 0.0195 |
| 0.5144 | 2000 | 0.0209 |
| 0.6430 | 2500 | 0.0219 |
| 0.7716 | 3000 | 0.0207 |
| 0.9002 | 3500 | 0.0229 |
| 1.0288 | 4000 | 0.0174 |
| 1.1574 | 4500 | 0.0120 |
| 1.2860 | 5000 | 0.0097 |
| 1.4146 | 5500 | 0.0125 |
| 1.5432 | 6000 | 0.0115 |
| 1.6718 | 6500 | 0.0108 |
| 1.8004 | 7000 | 0.0107 |
| 1.9290 | 7500 | 0.0070 |
| 2.0576 | 8000 | 0.0046 |
| 2.1862 | 8500 | 0.0032 |
| 2.3148 | 9000 | 0.0049 |
| 2.4434 | 9500 | 0.0058 |
| 2.5720 | 10000 | 0.0040 |
| 2.7006 | 10500 | 0.0038 |
| 2.8292 | 11000 | 0.0032 |
| 2.9578 | 11500 | 0.0023 |
| 3.0864 | 12000 | 0.0029 |
| 3.2150 | 12500 | 0.0019 |
| 3.3436 | 13000 | 0.0023 |
| 3.4722 | 13500 | 0.0021 |
| 3.6008 | 14000 | 0.0017 |
| 3.7294 | 14500 | 0.0014 |
| 3.8580 | 15000 | 0.0013 |
| 3.9866 | 15500 | 0.0017 |
| 4.1152 | 16000 | 0.0016 |
| 4.2438 | 16500 | 0.0006 |
| 4.3724 | 17000 | 0.0011 |
| 4.5010 | 17500 | 0.0012 |
| 4.6296 | 18000 | 0.0010 |
| 4.7582 | 18500 | 0.0006 |
| 4.8868 | 19000 | 0.0021 |
Training Time
- Training: 2.1 hours
Framework Versions
- Python: 3.12.13
- Sentence Transformers: 5.6.0
- Transformers: 5.12.1
- PyTorch: 2.11.0+cu128
- Accelerate: 1.14.0
- Datasets: 4.0.0
- Tokenizers: 0.22.2
Citation
BibTeX
Sentence Transformers
@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",
}
MultipleNegativesRankingLoss
@misc{oord2019representationlearningcontrastivepredictive,
title={Representation Learning with Contrastive Predictive Coding},
author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
year={2019},
eprint={1807.03748},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/1807.03748},
}