SentenceTransformer based on google/bert_uncased_L-2_H-128_A-2

This is a sentence-transformers model finetuned from google/bert_uncased_L-2_H-128_A-2. It maps sentences & paragraphs to a 128-dimensional dense vector space and can be used for retrieval.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: google/bert_uncased_L-2_H-128_A-2
  • Maximum Sequence Length: 128 tokens
  • Output Dimensionality: 128 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': 128, '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("swardiantara/bert-tiny-amazon_reviews-k1-fixed-euclidean")
# Run inference
sentences = [
    'I’ve purchased and used this filter several times and have never had any issues-until recently. This last one I received has been horrible! I installed and made sure it was locked into place. Ran about a gallon of water through and the water smells! and tastes like dirt/chemical! The water however is crystal clear but just horrible. I’m so disappointed considering I drink water constantly and was relying on what I thought was a quality product that had been consistent until now.',
    'I ordered two of these. One came broken. It was packaged okay, so I believe it was broken due to the mail carrier tossing it onto my porch. The one that did not break, I love. It looks nice on my counter and serves its purpose. Updated review: Ok so the salt cellar that did not break during shipping pretty much shattered at the lightest touch after 3 weeks on my counter. I can no longer recommend this item, clearly they are not very durable at all.',
    'Seems to protect well, feels nice, just wish it would stick a bit better. The first one would not stay applied. Kept peeling from the top no matter what I did. I figured it could be my error, so I removed and cleaned the screen very well with additional alcohol wipes. The second one has been on a few days, but is starting to peel from a different spot. I love the feel of the protector otherwise.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 128]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.9991, 0.9986],
#         [0.9991, 1.0000, 0.9976],
#         [0.9986, 0.9976, 1.0000]])

Training Details

Training Dataset

Unnamed Dataset

  • Size: 1,000,010 training samples
  • Columns: text_a, text_b, and label
  • Approximate statistics based on the first 100 samples:
    text_a text_b label
    type string string list
    modality text text
    details
    • min: 10 tokens
    • mean: 37.29 tokens
    • max: 128 tokens
    • min: 48 tokens
    • mean: 80.31 tokens
    • max: 101 tokens
    • size: 2 elements
  • Samples:
    text_a text_b label
    Arrived broken. Manufacturer defect. Two of the legs of the base were not completely formed, so there was no way to insert the casters. I unpackaged the entire chair and hardware before noticing this. So, I'll spend twice the amount of time boxing up the whole useless thing and send it back with a 1-star review of part of a chair I never got to sit in. I will go so far as to include a picture of what their injection molding and quality assurance process missed though. I will be hesitant to buy again. It makes me wonder if there aren't missing structures and supports that don't impede the assembly process. I ordered two of these. One came broken. It was packaged okay, so I believe it was broken due to the mail carrier tossing it onto my porch. The one that did not break, I love. It looks nice on my counter and serves its purpose. Updated review: Ok so the salt cellar that did not break during shipping pretty much shattered at the lightest touch after 3 weeks on my counter. I can no longer recommend this item, clearly they are not very durable at all. [1.0, 0.0]
    Arrived broken. Manufacturer defect. Two of the legs of the base were not completely formed, so there was no way to insert the casters. I unpackaged the entire chair and hardware before noticing this. So, I'll spend twice the amount of time boxing up the whole useless thing and send it back with a 1-star review of part of a chair I never got to sit in. I will go so far as to include a picture of what their injection molding and quality assurance process missed though. I will be hesitant to buy again. It makes me wonder if there aren't missing structures and supports that don't impede the assembly process. Seems to protect well, feels nice, just wish it would stick a bit better. The first one would not stay applied. Kept peeling from the top no matter what I did. I figured it could be my error, so I removed and cleaned the screen very well with additional alcohol wipes. The second one has been on a few days, but is starting to peel from a different spot. I love the feel of the protector otherwise. [0.0, 0.25]
    Arrived broken. Manufacturer defect. Two of the legs of the base were not completely formed, so there was no way to insert the casters. I unpackaged the entire chair and hardware before noticing this. So, I'll spend twice the amount of time boxing up the whole useless thing and send it back with a 1-star review of part of a chair I never got to sit in. I will go so far as to include a picture of what their injection molding and quality assurance process missed though. I will be hesitant to buy again. It makes me wonder if there aren't missing structures and supports that don't impede the assembly process. For the price these are ok. They look nice. The fact is though after working a 9 hour day, I'm in pain. I'm not sure why, but the fit seems fine. Maybe it's the material? Feels like I wore a sandpaper strap around my ribcage. My husband opened the package and took all the tags off, so it isn't worth trying to return. :-( [0.0, 0.5]
  • Loss: main.OrdinalProxyContrastiveLoss

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 1024
  • num_train_epochs: 10
  • learning_rate: 2e-05
  • load_best_model_at_end: True

All Hyperparameters

Click to expand
  • per_device_train_batch_size: 1024
  • num_train_epochs: 10
  • max_steps: -1
  • learning_rate: 2e-05
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: None
  • warmup_steps: 0
  • optim: adamw_torch
  • 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: False
  • 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: 8
  • 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: None
  • fsdp_config: None
  • 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
0.5118 500 0.6163
1.0 977 -
1.0235 1000 0.1562
1.5353 1500 0.1447
2.0 1954 -
2.0471 2000 0.1396
2.5589 2500 0.1360
3.0 2931 -
3.0706 3000 0.1336
3.5824 3500 0.1318
4.0 3908 -
4.0942 4000 0.1301
4.6059 4500 0.1291
5.0 4885 -
5.1177 5000 0.1282
5.6295 5500 0.1271
6.0 5862 -
6.1412 6000 0.1267
6.6530 6500 0.1261
7.0 6839 -
7.1648 7000 0.1256
7.6766 7500 0.1251
8.0 7816 -
8.1883 8000 0.1247
8.7001 8500 0.1243
9.0 8793 -
9.2119 9000 0.1242
9.7236 9500 0.1241
10.0 9770 -
  • The bold row denotes the saved checkpoint.

Training Time

  • Training: 34.7 minutes
  • Evaluation: 30.5 seconds
  • Total: 35.2 minutes

Framework Versions

  • Python: 3.12.4
  • Sentence Transformers: 5.5.1
  • Transformers: 5.11.0
  • PyTorch: 2.5.1+cu121
  • Accelerate: 1.13.0
  • Datasets: 2.21.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",
}
Downloads last month
24
Safetensors
Model size
4.39M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for swardiantara/bert-tiny-amazon_reviews-k1-fixed-euclidean

Finetuned
(120)
this model

Paper for swardiantara/bert-tiny-amazon_reviews-k1-fixed-euclidean