Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use swardiantara/bert-tiny-amazon_reviews-k5-fixed-euclidean with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("swardiantara/bert-tiny-amazon_reviews-k5-fixed-euclidean")
sentences = [
"Unless you have this jam-packed full of items, the unit collapses on itself. I never held it's shape therefore, making it hard to reach my items when I needed them. The silver metal pieces on the handle fell off soon after it arrived. I must have missed the \"return by\" date as I now am stuck with it.",
"very light weight. thin metal. nice looking just not a quality piece.it was okay for a kids gift. don't see it lasting very long as it will dent easy.",
"Good quality gasket and it was packaged well. Fit great as well.",
"Fit fine - do not stay up. I haven’t washed or stretched, literally too out of bag and tried on for a bit of walking around the house and within 30 minutes they bunched down. Not sure the elastic will last either. Other than that, colors/patterns and general fabric is nice."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]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.
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})
)
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-k5-fixed-euclidean")
# Run inference
sentences = [
'Wrong size for my husband. I need to return them, unfortunately.',
"Loved this hair brush! It's now much easier to detangle my frizzy hair after I wake up in the mornings. I wish I had found out about this much earlier. Thank you!",
'These hooks work great for my boutique I have. I am able to hang scarves and different things from them including purses. They take up less space and last forever. The quality is excellent and so is the price!',
]
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.9983, 0.9977],
# [0.9983, 1.0000, 0.9985],
# [0.9977, 0.9985, 1.0000]])
text_a, text_b, and label| text_a | text_b | label | |
|---|---|---|---|
| type | string | string | list |
| modality | text | text | |
| details |
|
|
|
| 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 this a while ago, even using prime it took over a month to get here, now that I finally got it, I only receved 6 of the 12! Im a little upset. It's still funny, but would not recomend for someone who needs foam quick and in bulk like i do. |
[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. |
Had this Item for a year and it is already ripping everywhere and faded badly. I do not recommend. |
[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. |
I was so disappointed in this mascara. I really like Stila Products too, but it was just a clumpy mess on brush and hard to apply with the wand design. I had to be extra careful even just applying it because of how messy it was coming out of tube. Ended up returning it because Amazon is super great on their return policy on Prime items. |
[0.0, 0.25] |
main.OrdinalProxyContrastiveLossper_device_train_batch_size: 1024learning_rate: 1e-05load_best_model_at_end: Trueper_device_train_batch_size: 1024num_train_epochs: 3max_steps: -1learning_rate: 1e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0optim: adamw_torchoptim_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: 1.0label_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: 8prediction_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: Trueignore_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: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.1219 | 500 | 0.2609 |
| 0.2438 | 1000 | 0.0550 |
| 0.3657 | 1500 | 0.0503 |
| 0.4876 | 2000 | 0.0470 |
| 0.6095 | 2500 | 0.0458 |
| 0.7314 | 3000 | 0.0449 |
| 0.8532 | 3500 | 0.0440 |
| 0.9751 | 4000 | 0.0431 |
| 1.0 | 4102 | - |
| 1.0970 | 4500 | 0.0425 |
| 1.2189 | 5000 | 0.0422 |
| 1.3408 | 5500 | 0.0417 |
| 1.4627 | 6000 | 0.0411 |
| 1.5846 | 6500 | 0.0408 |
| 1.7065 | 7000 | 0.0405 |
| 1.8284 | 7500 | 0.0405 |
| 1.9503 | 8000 | 0.0405 |
| 2.0 | 8204 | - |
| 2.0722 | 8500 | 0.0402 |
| 2.1941 | 9000 | 0.0401 |
| 2.3159 | 9500 | 0.0400 |
| 2.4378 | 10000 | 0.0399 |
| 2.5597 | 10500 | 0.0395 |
| 2.6816 | 11000 | 0.0396 |
| 2.8035 | 11500 | 0.0396 |
| 2.9254 | 12000 | 0.0398 |
| 3.0 | 12306 | - |
@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",
}
Base model
google/bert_uncased_L-2_H-128_A-2