Downloads · 30 days
11
6% of all-time downloads
malenaduroux/career-matching-minilm
career-matching-minilm is a sentence similarity model from malenaduroux. Use it when you need a score for how close two texts are. It is set up for sentence-transformers.
This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L6-v2 on a pre-processed version of the ESCO dataset. It maps sentences & paragraphs to a 384-dimensional dense vector space and ca…
Downloads · 30 days
11
6% of all-time downloads
All-time downloads
188
Public
Parameters
22.7M
90.9 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors90.9 MB · 99%
From the Hugging Face model README
This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L6-v2 on a pre-processed version of the ESCO dataset. It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more. It was fine-tuned for a career-matching service. The relevant service can be found here.
SentenceTransformer(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False, 'architecture': 'BertModel'})
(1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
(2): Normalize()
)
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("malenaduroux/career-matching-minilm")
# Run inference
sentences = [
'Occupation: dairy processing technician. Description: Dairy processing technicians supervise and coordinate production processes, operations, and maintenance workers in milk, cheese, ice cream and/or other dairy production plants. They assist food technologists in improving processes, developing new food products and establishing procedures and standards for production and packaging.',
'check quality of products on the production line',
'coordinate events',
]
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.5273, 0.2572],
# [0.5273, 1.0000, 0.1089],
# [0.2572, 0.1089, 1.0000]])
<!--
### Direct Usage (Transformers)
<details><summary>Click to see the direct usage in Transformers</summary>
</details>
-->
<!--
### Downstream Usage (Sentence Transformers)
You can finetune this model on your own dataset.
<details><summary>Click to expand</summary>
</details>
-->
<!--
### Out-of-Scope Use
*List how the model may foreseeably be misused and address what users ought not to do with the model.*
-->
<!--
## Bias, Risks and Limitations
*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
-->
<!--
### Recommendations
*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
-->
See the relevant project repo for the preprocessing of the ESCO dataset.
Dataset: csv
Size: 102,100 training samples
Columns: <code>occupation_text</code> and <code>paired_text</code>
Approximate statistics based on the first 1000 samples:
| occupation_text | paired_text | |
|---|---|---|
| type | string | string |
| details | <ul><li>min: 17 tokens</li><li>mean: 65.16 tokens</li><li>max: 157 tokens</li></ul> | <ul><li>min: 3 tokens</li><li>mean: 5.93 tokens</li><li>max: 15 tokens</li></ul> |
Samples:
| occupation_text | paired_text |
|---|---|
| <code>Occupation: cyber incident responder. Description: Cyber incident responders monitor and assess cybersecurity state systems, analysing, evaluating, and mitigating the impact of cybersecurity incidents. Moreover, they identify malicious actors and cyber incidents root causes. According to the organisation’s Incident Response Plan, they restore systems and process functionalities to an operational state, collecting evidence and documenting actions taken.</code> | <code>ensure proper document management</code> |
| <code>Occupation: cider master. Description: Cider masters envision the manufacturing process of cider. They ensure brewing quality and follow one of several brewing processes. They modify existing brewing formulas and processing techniques in order to develop new cider products and cider-based beverages.</code> | <code>mashing process</code> |
| <code>Occupation: microelectronics designer. Description: Microelectronics designers focus on developing and designing microelectronic systems, from the top packaging level down to the integrated circuit level. Their knowledge incorporates system-level understanding with analogue and digital circuit knowledge, with integrating the technology processes and an overall outlook in microelectronic sensor basics. They work with other engineers, material science specialists and researchers, to enable innovations and continuous development of already existing devices.</code> | <code>micromechanics</code> |
Loss: <code>MultipleNegativesRankingLoss</code> with these parameters:
{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
| occupation_text | paired_text | |
|---|---|---|
| type | string | string |
| details | <ul><li>min: 17 tokens</li><li>mean: 64.79 tokens</li><li>max: 146 tokens</li></ul> | <ul><li>min: 3 tokens</li><li>mean: 5.88 tokens</li><li>max: 14 tokens</li></ul> |
| occupation_text | paired_text |
|---|---|
| <code>Occupation: environmental technician. Description: Environmental technicians investigate sources of pollution and aid in the development of pollution prevention and environment protection plans. They take samples of soil, water or other materials and perform tests to analyse the pollution level and identify its source.</code> | <code>pollution prevention</code> |
| <code>Occupation: head of workshop. Description: Heads of workshop coordinate specialised workshops that construct, build, prepare, adapt and maintain elements used on stage. Their work is based on artistic vision, schedules and overall production documentation. They liaise with the designers involved in the production, the production team and other services of the organisation.</code> | <code>lead a team</code> |
| <code>Occupation: embedded systems security engineer. Description: Embedded systems security engineers advise and implement solutions to control access to data and programs in embedded and connected systems. They help ensuring the safe operation of products with embedded systems and connected devices by being responsible for the protection and security of the related systems and design, plan and execute security measures accordingly. Embedded systems security engineers help to keep attackers at bay by implementing safeguards that prevent intrusions and breaches.</code> | <code>keep up with the latest information systems solutions</code> |
{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
per_device_train_batch_size: 128num_train_epochs: 4warmup_steps: 0.1eval_strategy: epochper_device_eval_batch_size: 128warmup_ratio: 0.1per_device_train_batch_size: 128num_train_epochs: 4max_steps: -1learning_rate: 5e-05lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0.1optim: 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: 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: trackioeval_strategy: epochper_device_eval_batch_size: 128prediction_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_backend: Noneddp_timeout: 1800fsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}deepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: 0.1local_rank: -1prompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | Validation Loss |
|---|---|---|---|
| 0.1253 | 100 | 3.7079 | - |
| 0.2506 | 200 | 3.1439 | - |
| 0.3759 | 300 | 2.9574 | - |
| 0.5013 | 400 | 2.7816 | - |
| 0.6266 | 500 | 2.6868 | - |
| 0.7519 | 600 | 2.6155 | - |
| 0.8772 | 700 | 2.5687 | - |
| 1.0 | 798 | - | 2.4039 |
| 1.0025 | 800 | 2.5352 | - |
| 1.1278 | 900 | 2.3664 | - |
| 1.2531 | 1000 | 2.3722 | - |
| 1.3784 | 1100 | 2.3393 | - |
| 1.5038 | 1200 | 2.3849 | - |
| 1.6291 | 1300 | 2.3143 | - |
| 1.7544 | 1400 | 2.2917 | - |
| 1.8797 | 1500 | 2.2745 | - |
| 2.0 | 1596 | - | 2.2169 |
| 2.0050 | 1600 | 2.2869 | - |
| 2.1303 | 1700 | 2.1637 | - |
| 2.2556 | 1800 | 2.1560 | - |
| 2.3810 | 1900 | 2.1477 | - |
| 2.5063 | 2000 | 2.1251 | - |
| 2.6316 | 2100 | 2.1370 | - |
| 2.7569 | 2200 | 2.1368 | - |
| 2.8822 | 2300 | 2.1285 | - |
| 3.0 | 2394 | - | 2.1466 |
| 3.0075 | 2400 | 2.1083 | - |
| 3.1328 | 2500 | 2.0592 | - |
| 3.2581 | 2600 | 2.0629 | - |
| 3.3835 | 2700 | 2.0372 | - |
| 3.5088 | 2800 | 2.0446 | - |
| 3.6341 | 2900 | 2.0444 | - |
| 3.7594 | 3000 | 2.0192 | - |
| 3.8847 | 3100 | 2.0139 | - |
| 4.0 | 3192 | - | 2.1218 |
@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",
}
@misc{henderson2017efficient,
title={Efficient Natural Language Response Suggestion for Smart Reply},
author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
year={2017},
eprint={1705.00652},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
<!--
## Glossary
*Clearly define terms in order to be accessible across audiences.*
-->
<!--
## Model Card Authors
*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
-->
<!--
## Model Card Contact
*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
-->