SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2

This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L6-v2 on the synthetic-esco-skill-sentences dataset. It maps inputs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, classification, clustering, and more.

Model Details

Model Description

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': 384, 'pooling_mode': 'mean', 'include_prompt': True})
  (2): Normalize({'module_input_name': 'sentence_embedding', 'module_output_name': 'sentence_embedding'})
)

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 = [
    'looking for experienced animal hunters to join our team',
    'animal hunting',
    'electrical engineering',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000,  0.8278, -0.1120],
#         [ 0.8278,  1.0000, -0.1666],
#         [-0.1120, -0.1666,  1.0000]])

Training Details

Training Dataset

synthetic-esco-skill-sentences

  • Dataset: synthetic-esco-skill-sentences at 09fc487
  • Size: 110,608 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 100 samples:
    anchor positive
    type string string
    modality text text
    details
    • min: 11 tokens
    • mean: 19.69 tokens
    • max: 30 tokens
    • min: 3 tokens
    • mean: 6.53 tokens
    • max: 15 tokens
  • Samples:
    anchor positive
    Applicants should be skilled in examining legislative drafts for legal compliance and accuracy. examine legislative drafts
    Candidate must have knowledge in photographic film processing, including monitoring chemical baths. monitor film development baths
    we are looking for an experienced meat grinder to join our team grind meat
  • 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
    }
    

Evaluation Dataset

synthetic-esco-skill-sentences

  • Dataset: synthetic-esco-skill-sentences at 09fc487
  • Size: 27,652 evaluation samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 100 samples:
    anchor positive
    type string string
    modality text text
    details
    • min: 11 tokens
    • mean: 19.55 tokens
    • max: 34 tokens
    • min: 3 tokens
    • mean: 5.96 tokens
    • max: 10 tokens
  • Samples:
    anchor positive
    the position requires attention to detail and strong organizational skills in order to maintain accurate records of security incidents. document security incidents in the store
    We need someone with experience in export logistics to lead our transportation team coordinate export transportation activities
    The ideal candidate will have experience in developing food policy that meets the social objectives of our company. develop food policy
  • 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: 128
  • num_train_epochs: 50
  • learning_rate: 0.0001
  • weight_decay: 0.01
  • per_device_eval_batch_size: 128
  • dataloader_pin_memory: False

All Hyperparameters

Click to expand
  • per_device_train_batch_size: 128
  • num_train_epochs: 50
  • max_steps: -1
  • learning_rate: 0.0001
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: None
  • warmup_steps: 0
  • optim: adamw_torch_fused
  • optim_args: None
  • weight_decay: 0.01
  • 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: 128
  • 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: False
  • 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: False
  • dataloader_persistent_workers: False
  • dataloader_prefetch_factor: None
  • dataloader_multiprocessing_context: None
  • dataloader_in_order: True
  • 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
  • local_rank: -1
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}
  • warmup_ratio: None

Training Logs

Epoch Step Training Loss Validation Loss
0.1156 100 - 0.2757
0.2312 200 - 0.2636
0.3468 300 - 0.2548
0.4624 400 - 0.2484
0.5780 500 0.2929 0.2452
0.6936 600 - 0.2387
0.8092 700 - 0.2291
0.9249 800 - 0.2355
1.0405 900 - 0.2288
1.1561 1000 0.2378 0.2275
1.2717 1100 - 0.2263
1.3873 1200 - 0.2282
1.5029 1300 - 0.2228
1.6185 1400 - 0.2199
1.7341 1500 0.1797 0.2235
1.8497 1600 - 0.2181
1.9653 1700 - 0.2214
2.0809 1800 - 0.2164
2.1965 1900 - 0.2150
2.3121 2000 0.1466 0.2133
2.4277 2100 - 0.2122
2.5434 2200 - 0.2117
2.6590 2300 - 0.2118
2.7746 2400 - 0.2113
2.8902 2500 0.1352 0.2097
3.0058 2600 - 0.2075
3.1214 2700 - 0.2110
3.2370 2800 - 0.2114
3.3526 2900 - 0.2170
3.4682 3000 0.1012 0.2143
3.5838 3100 - 0.2110

Training Time

  • Training: 20.9 minutes
  • Evaluation: 13.3 minutes
  • Total: 34.2 minutes

Framework Versions

  • Python: 3.14.7
  • Sentence Transformers: 6.2.0
  • Transformers: 5.22.0
  • PyTorch: 2.15.0
  • Accelerate: 1.15.0
  • Datasets: 5.1.0
  • Tokenizers: 0.23.3

Additional Resources

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},
}
Downloads last month
5
Safetensors
Model size
22.7M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for blackmlengineer/skill-extractor-v0.1

Dataset used to train blackmlengineer/skill-extractor-v0.1

Papers for blackmlengineer/skill-extractor-v0.1