SentenceTransformer based on nreimers/TinyBERT_L-4_H-312_v2
This is a sentence-transformers model finetuned from nreimers/TinyBERT_L-4_H-312_v2. It maps sentences & paragraphs to a 312-dimensional dense vector space and can be used for retrieval.
Model Details
Model Description
- Model Type: Sentence Transformer
- Base model: nreimers/TinyBERT_L-4_H-312_v2
- Maximum Sequence Length: 512 tokens
- Output Dimensionality: 312 dimensions
- Similarity Function: Cosine Similarity
- Supported Modality: Text
Model Sources
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': 312, '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
model = SentenceTransformer("tomaarsen/TinyBERT_L-4_H-312_v2-distilled-from-stsb-roberta-base-v2-new")
sentences = [
'A black dog is drinking next to a brown and white dog that is looking at an orange ball in the lake, whilst a horse and rider passes behind.',
'There are two people running around a track in lane three and the one wearing a blue shirt with a green thing over the eyes is just barely ahead of the guy wearing an orange shirt and sunglasses.',
'the guy is dead',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
similarities = model.similarity(embeddings, embeddings)
print(similarities)
Evaluation
Metrics
Semantic Similarity
| Metric |
sts-dev |
sts-test |
| pearson_cosine |
0.8012 |
0.7444 |
| spearman_cosine |
0.8161 |
0.745 |
Knowledge Distillation
| Metric |
Value |
| negative_mse |
-50.1352 |
Training Details
Training Dataset
Unnamed Dataset
Evaluation Dataset
Unnamed Dataset
Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 64
num_train_epochs: 1
learning_rate: 0.0001
warmup_steps: 0.1
fp16: True
per_device_eval_batch_size: 64
load_best_model_at_end: True
All Hyperparameters
Click to expand
per_device_train_batch_size: 64
num_train_epochs: 1
max_steps: -1
learning_rate: 0.0001
lr_scheduler_type: linear
lr_scheduler_kwargs: None
warmup_steps: 0.1
optim: adamw_torch_fused
optim_args: None
weight_decay: 0.0
adam_beta1: 0.9
adam_beta2: 0.999
adam_epsilon: 1e-08
optim_target_modules: None
gradient_accumulation_steps: 1
average_tokens_across_devices: True
max_grad_norm: 1.0
label_smoothing_factor: 0.0
bf16: False
fp16: True
bf16_full_eval: False
fp16_full_eval: False
tf32: None
gradient_checkpointing: False
gradient_checkpointing_kwargs: None
torch_compile: False
torch_compile_backend: None
torch_compile_mode: None
use_liger_kernel: False
liger_kernel_config: None
use_cache: False
neftune_noise_alpha: None
torch_empty_cache_steps: None
auto_find_batch_size: False
log_on_each_node: True
logging_nan_inf_filter: True
include_num_input_tokens_seen: no
log_level: passive
log_level_replica: warning
disable_tqdm: False
project: huggingface
trackio_space_id: None
trackio_bucket_id: None
trackio_static_space_id: None
per_device_eval_batch_size: 64
prediction_loss_only: True
eval_on_start: False
eval_do_concat_batches: True
eval_use_gather_object: False
eval_accumulation_steps: None
include_for_metrics: []
batch_eval_metrics: False
save_only_model: False
save_on_each_node: False
enable_jit_checkpoint: False
push_to_hub: False
hub_private_repo: None
hub_model_id: None
hub_strategy: every_save
hub_always_push: False
hub_revision: None
load_best_model_at_end: True
ignore_data_skip: False
restore_callback_states_from_checkpoint: False
full_determinism: False
seed: 42
data_seed: None
use_cpu: False
accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
parallelism_config: None
dataloader_drop_last: False
dataloader_num_workers: 0
dataloader_pin_memory: True
dataloader_persistent_workers: False
dataloader_prefetch_factor: None
remove_unused_columns: True
label_names: None
train_sampling_strategy: random
length_column_name: length
ddp_find_unused_parameters: None
ddp_bucket_cap_mb: None
ddp_broadcast_buffers: False
ddp_static_graph: None
ddp_backend: None
ddp_timeout: 1800
fsdp: []
fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
deepspeed: None
debug: []
skip_memory_metrics: True
do_predict: False
resume_from_checkpoint: None
warmup_ratio: None
local_rank: -1
prompts: None
batch_sampler: batch_sampler
multi_dataset_batch_sampler: proportional
router_mapping: {}
learning_rate_mapping: {}
Training Logs
| Epoch |
Step |
Training Loss |
Validation Loss |
sts-dev_spearman_cosine |
negative_mse |
sts-test_spearman_cosine |
| 0.032 |
100 |
0.8848 |
- |
- |
- |
- |
| 0.064 |
200 |
0.8060 |
- |
- |
- |
- |
| 0.096 |
300 |
0.6912 |
- |
- |
- |
- |
| 0.128 |
400 |
0.6111 |
- |
- |
- |
- |
| 0.16 |
500 |
0.5628 |
0.6332 |
0.7578 |
-63.3232 |
- |
| 0.192 |
600 |
0.5298 |
- |
- |
- |
- |
| 0.224 |
700 |
0.5041 |
- |
- |
- |
- |
| 0.256 |
800 |
0.4870 |
- |
- |
- |
- |
| 0.288 |
900 |
0.4668 |
- |
- |
- |
- |
| 0.32 |
1000 |
0.4519 |
0.5674 |
0.7936 |
-56.7440 |
- |
| 0.352 |
1100 |
0.4383 |
- |
- |
- |
- |
| 0.384 |
1200 |
0.4281 |
- |
- |
- |
- |
| 0.416 |
1300 |
0.4182 |
- |
- |
- |
- |
| 0.448 |
1400 |
0.4106 |
- |
- |
- |
- |
| 0.48 |
1500 |
0.4058 |
0.5341 |
0.8055 |
-53.4073 |
- |
| 0.512 |
1600 |
0.3932 |
- |
- |
- |
- |
| 0.544 |
1700 |
0.3908 |
- |
- |
- |
- |
| 0.576 |
1800 |
0.3848 |
- |
- |
- |
- |
| 0.608 |
1900 |
0.3781 |
- |
- |
- |
- |
| 0.64 |
2000 |
0.3736 |
0.5161 |
0.8107 |
-51.6070 |
- |
| 0.672 |
2100 |
0.3714 |
- |
- |
- |
- |
| 0.704 |
2200 |
0.3690 |
- |
- |
- |
- |
| 0.736 |
2300 |
0.3663 |
- |
- |
- |
- |
| 0.768 |
2400 |
0.3612 |
- |
- |
- |
- |
| 0.8 |
2500 |
0.3574 |
0.5084 |
0.8150 |
-50.8375 |
- |
| 0.832 |
2600 |
0.3548 |
- |
- |
- |
- |
| 0.864 |
2700 |
0.3539 |
- |
- |
- |
- |
| 0.896 |
2800 |
0.3519 |
- |
- |
- |
- |
| 0.928 |
2900 |
0.3518 |
- |
- |
- |
- |
| 0.96 |
3000 |
0.3516 |
0.5017 |
0.8157 |
-50.1695 |
- |
| 0.992 |
3100 |
0.3487 |
- |
- |
- |
- |
| 1.0 |
3125 |
- |
0.5014 |
0.8161 |
-50.1352 |
- |
| -1 |
-1 |
- |
- |
- |
- |
0.7450 |
- The bold row denotes the saved checkpoint.
Training Time
- Training: 2.5 minutes
- Evaluation: 1.1 minutes
- Total: 3.7 minutes
Framework Versions
- Python: 3.11.6
- Sentence Transformers: 5.5.0.dev0
- Transformers: 5.6.2
- PyTorch: 2.10.0+cu128
- Accelerate: 1.13.0.dev0
- Datasets: 4.8.4
- 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",
}
MSELoss
@inproceedings{reimers-2020-multilingual-sentence-bert,
title = "Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2020",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/2004.09813",
}