SentenceTransformer
This is a sentence-transformers model trained on the pairs and triplets datasets. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
Model Details
Model Description
- Model Type: Sentence Transformer
- Maximum Sequence Length: 8192 tokens
- Output Dimensionality: 768 dimensions
- Similarity Function: Cosine Similarity
- Training Datasets:
- pairs
- triplets
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 8192, 'do_lower_case': False, 'architecture': 'ModernBertModel'})
(1): Pooling({'word_embedding_dimension': 768, '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()
)
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 = [
'GALD0011',
'Pose unilatérale ou bilatérale de prothèse de calibrage de la cavité nasale - 1° activité chir/med',
'JDHE002 Biopsie de la vessie à la pince, par endoscopie',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.7786, 0.1076],
# [0.7786, 1.0000, 0.0230],
# [0.1076, 0.0230, 1.0000]])
Training Details
Training Datasets
pairs
- Dataset: pairs
- Size: 595,409 training samples
- Columns: anchor and positive
- Approximate statistics based on the first 1000 samples:
anchor positive type string string details min: 4 tokensmean: 19.65 tokensmax: 87 tokens min: 3 tokensmean: 43.31 tokensmax: 720 tokens - Samples:
anchor positive LEPA0024 Ostéotomie antérieure ou discectomie totale pour déformation rigide de la colonne vertébrale avec arthrodèse, sans correction instrumentale, sur 1 à 3 vertèbres, par thoracotomie - anesthésie LEPA002 Ostéotomie antérieure ou discectomie totale pour déformation rigide de la colonne vertébrale avec arthrodèse, sans correction instrumentale, sur 1 à 3 vertèbres, par thoracotomie Z11.8 Examen spécial de dépistage d'autres maladies infectieuses et parasitaires Maladies à Rickettsia FBFA003 Exérèse du thymus vestigial, par thoracotomie YYYY041 Supplément pour récupération peropératoire de sang - Loss: MultipleNegativesRankingLoss with these parameters:
{ "scale": 20.0, "similarity_fct": "cos_sim", "gather_across_devices": false }
triplets
- Dataset: triplets
- Size: 172,399 training samples
- Columns: anchor, positive, and negative
- Approximate statistics based on the first 1000 samples:
anchor positive negative type string string string details min: 6 tokensmean: 24.74 tokensmax: 73 tokens min: 4 tokensmean: 618.25 tokensmax: 1599 tokens min: 8 tokensmean: 613.92 tokensmax: 1630 tokens - Samples:
anchor positive negative Z23.5 Nécessité d'une vaccination contre le tétanos seul Le code Z23.5, qui désigne la nécessité d'une vaccination contre le tétanos seul, s'inscrit dans le cadre plus large du groupe nosologique Z23, « Nécessité d'une vaccination contre une seule maladie bactérienne ». Ce groupe inclut plusieurs codes spécifiques selon l'agent infectieux ciblé, permettant une distinction fine entre les différents besoins vaccinaux. Ainsi, Z23.5 doit être différencié de Z23.0 (nécessité d'une vaccination contre le choléra seul), Z23.1 (nécessité d'une vaccination contre la typhoïde-paratyphoïde seule [TAB]), Z23.2 (nécessité d'une vaccination contre la tuberculose [BCG]), Z23.3 (nécessité d'une vaccination contre la peste), Z23.4 (nécessité d'une vaccination contre la tularémie), Z23.6 (nécessité d'une vaccination contre la diphtérie seule), Z23.7 (nécessité d'une vaccination contre la coqueluche seule) et Z23.8 (nécessité d'une vaccination contre d'autres maladies bactériennes uniques). Chacun de ces codes correspond à une indication vaccinale spécifique et... Le code Z23.1, qui désigne la nécessité d'une vaccination contre la typhoïde-paratyphoïde seule (vaccination TAB), s'inscrit dans le cadre des actes préventifs liés à une immunisation spécifique contre une maladie bactérienne unique. Ce code appartient à la catégorie plus large Z23, « Nécessité d'une vaccination contre une seule maladie bactérienne », qui regroupe l'ensemble des situations où une vaccination ciblant une bactérie spécifique est indiquée. Pour distinguer Z23.1 des autres codes proches, il est essentiel de considérer l'agent infectieux visé par la vaccination.Parmi les codes du même groupe nosologique, Z23.6 correspond à la nécessité d'une vaccination contre la diphtérie seule, tandis que Z23.7 concerne la coqueluche, Z23.5 le tétanos, Z23.0 le choléra, Z23.2 la tuberculose (BCG), Z23.3 la peste, Z23.4 la tularémie, et Z23.8 regroupe les autres maladies bactériennes uniques non spécifiées ailleurs. Tous ces codes sont mutuellement exclusifs selon le germe ciblé, et leur... H74.3 Autres anomalies acquises des osselets Le code H74.3 désigne les anomalies acquises des osselets, notamment l’ankylose des osselets et la perte partielle des osselets. Ce diagnostic doit être distingué d’autres affections de l’oreille moyenne appartenant au même groupe nosologique ou à des catégories voisines. Ainsi, la tympanosclérose (H74.0), caractérisée par une calcification de la membrane tympanique ou des structures de l’oreille moyenne, peut présenter des similitudes cliniques mais se distingue par sa physiopathologie et ses lésions histologiques spécifiques. Une autre entité proche est le polype de l’oreille moyenne (H74.4), souvent associé à une inflammation chronique et une prolifération granulationnelle, qui doit être différencié sur la base de l’aspect endoscopique et histologique. La dissociation ou la dislocation des osselets (H74.2) représente une atteinte mécanique ou traumatique des chaînes ossiculaires, identifiable par imagerie ou exploration fonctionnelle, contrairement à l’ankylose incluse dans H74.3. U... Le code H74.4 désigne un polype de l'oreille moyenne, une affection acquise caractérisée par la formation d'une excroissance muqueuse bénigne dans la cavité tympanique, souvent secondaire à une inflammation chronique. Ce diagnostic doit être distingué de plusieurs autres affections de l'oreille moyenne classées dans le même chapitre (H74), qui regroupe les anomalies acquises de cette région.Un diagnostic différentiel proche est H74.2, correspondant à une dissociation ou une dislocation des osselets, souvent post-traumatique ou liée à une otite chronique destructive. Il faut également évoquer H74.0 (tympanosclérose), caractérisée par des dépôts de collagène hyalin dans la membrane tympanique ou la muqueuse de l'oreille moyenne, pouvant entraîner une rigidité de la chaîne ossiculaire. L’ankylose ou la perte partielle des osselets, regroupées sous le code H74.3 (autres anomalies acquises des osselets), constituent d'autres causes mécaniques de surdité de transmission à différencier du p... M79.96 Affection des tissus mous, sans précision - " Jambe " Le code CIM-10 M79.96 désigne une affection des tissus mous, non précisée, localisée à la jambe. Ce code inclut également les atteintes du péroné, du tibia et de l’articulation du genou, bien qu’il ne spécifie pas la nature exacte de la lésion. Il s’inscrit dans la catégorie plus large M79.9, qui regroupe toutes les affections des tissus mous sans précision, avec une localisation ostéoarticulaire. Cette catégorie exclut expressément la douleur psychogène des tissus mous, codée F45.4. Les subdivisions de localisation (de 0 à 9) permettent d’indiquer le siège anatomique de l’atteinte, notamment la jambe (code 6), et facilitent une codification plus précise dans le cadre du chapitre XIII du CIM-10 relatif aux affections du système ostéoarticulaire et du tissu conjonctif.Le code M79.97 correspond à la fibromyalgie, une entité clinique fréquemment associée aux douleurs diffuses ou localisées des tissus mous, également susceptible d’affecter la jambe. Bien que distincte dans sa physiopatho... Le code CIM-10 M79.92 désigne une affection des tissus mous, sans précision, localisée au bras. Ce code couvre notamment les atteintes concernant l'humérus et l'articulation du coude, et peut être utilisé de manière synonyme dans ces localisations. Pour distinguer M79.92 des autres entités diagnostiques proches, une attention particulière doit être portée à la localisation anatomique précise de la symptomatologie.En effet, M79.92 doit être différencié de M79.93, qui concerne les affections des tissus mous de l'avant-bras, incluant le radius, le cubitus et l'articulation du poignet. De même, M79.91 correspond à une atteinte de la région scapulaire, englobant la clavicule, l'omoplate, ainsi que les articulations acromioclaviculaire, scapulohumérale et sternoclaviculaire, ce qui permet d'exclure une localisation plus distale comme le bras proprement dit.Parmi les autres codes de la même catégorie, M79.95 concerne la région pelvienne et la cuisse (bassin, fémur, fesses, articulation de... - Loss: TripletLoss with these parameters:
{ "distance_metric": "TripletDistanceMetric.COSINE", "triplet_margin": 0.5 }
Training Hyperparameters
Non-Default Hyperparameters
per_device_train_batch_size: 4gradient_accumulation_steps: 16learning_rate: 2e-05weight_decay: 0.01warmup_ratio: 0.1fp16: Truedataloader_num_workers: 4ddp_find_unused_parameters: False
All Hyperparameters
overwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 4per_device_eval_batch_size: 8per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 16eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 2e-05weight_decay: 0.01adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 3max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: 0.1warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falsebf16: Falsefp16: Truefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Truedataloader_num_workers: 4dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_find_unused_parameters: Falseddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsehub_revision: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters:auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}
Training Logs
| Epoch | Step | Training Loss |
|---|---|---|
| 0.0167 | 100 | 0.9901 |
| 0.0333 | 200 | 0.698 |
| 0.0500 | 300 | 0.411 |
| 0.0667 | 400 | 0.2986 |
| 0.0834 | 500 | 0.2381 |
| 0.1000 | 600 | 0.1955 |
| 0.1167 | 700 | 0.1746 |
| 0.1334 | 800 | 0.15 |
| 0.1500 | 900 | 0.1356 |
| 0.1667 | 1000 | 0.1214 |
| 0.1834 | 1100 | 0.1179 |
| 0.2001 | 1200 | 0.1044 |
| 0.2167 | 1300 | 0.0846 |
| 0.2334 | 1400 | 0.0852 |
| 0.2501 | 1500 | 0.0736 |
| 0.2667 | 1600 | 0.068 |
| 0.2834 | 1700 | 0.0618 |
| 0.3001 | 1800 | 0.0571 |
| 0.3167 | 1900 | 0.0486 |
| 0.3334 | 2000 | 0.0551 |
| 0.3501 | 2100 | 0.0457 |
| 0.3668 | 2200 | 0.0493 |
| 0.3834 | 2300 | 0.0395 |
| 0.4001 | 2400 | 0.0421 |
| 0.4168 | 2500 | 0.0352 |
| 0.4334 | 2600 | 0.0352 |
| 0.4501 | 2700 | 0.0365 |
| 0.4668 | 2800 | 0.0352 |
| 0.4835 | 2900 | 0.0327 |
| 0.5001 | 3000 | 0.0313 |
| 0.5168 | 3100 | 0.0354 |
| 0.5335 | 3200 | 0.0298 |
| 0.5501 | 3300 | 0.0306 |
| 0.5668 | 3400 | 0.0338 |
| 0.5835 | 3500 | 0.0293 |
| 0.6002 | 3600 | 0.0269 |
| 0.6168 | 3700 | 0.0278 |
| 0.6335 | 3800 | 0.0277 |
| 0.6502 | 3900 | 0.0265 |
| 0.6668 | 4000 | 0.0302 |
| 0.6835 | 4100 | 0.0284 |
| 0.7002 | 4200 | 0.0246 |
| 0.7169 | 4300 | 0.0243 |
| 0.7335 | 4400 | 0.0267 |
| 0.7502 | 4500 | 0.0277 |
| 0.7669 | 4600 | 0.0236 |
| 0.7835 | 4700 | 0.0261 |
| 0.8002 | 4800 | 0.0252 |
| 0.8169 | 4900 | 0.025 |
| 0.8336 | 5000 | 0.0221 |
| 0.8502 | 5100 | 0.0261 |
| 0.8669 | 5200 | 0.0229 |
| 0.8836 | 5300 | 0.023 |
| 0.9002 | 5400 | 0.0211 |
| 0.9169 | 5500 | 0.0222 |
| 0.9336 | 5600 | 0.0221 |
| 0.9502 | 5700 | 0.024 |
| 0.9669 | 5800 | 0.0239 |
| 0.9836 | 5900 | 0.0208 |
| 1.0002 | 6000 | 0.0235 |
| 1.0168 | 6100 | 0.0213 |
| 1.0335 | 6200 | 0.0222 |
| 1.0502 | 6300 | 0.0207 |
| 1.0669 | 6400 | 0.0187 |
| 1.0835 | 6500 | 0.0224 |
| 1.1002 | 6600 | 0.0202 |
| 1.1169 | 6700 | 0.022 |
| 1.1335 | 6800 | 0.0183 |
| 1.1502 | 6900 | 0.0214 |
| 1.1669 | 7000 | 0.0181 |
| 1.1835 | 7100 | 0.0168 |
| 1.2002 | 7200 | 0.0167 |
| 1.2169 | 7300 | 0.0158 |
| 1.2336 | 7400 | 0.02 |
| 1.2502 | 7500 | 0.014 |
| 1.2669 | 7600 | 0.0149 |
| 1.2836 | 7700 | 0.0143 |
| 1.3002 | 7800 | 0.0158 |
| 1.3169 | 7900 | 0.0128 |
| 1.3336 | 8000 | 0.0157 |
| 1.3503 | 8100 | 0.014 |
| 1.3669 | 8200 | 0.0148 |
| 1.3836 | 8300 | 0.0128 |
| 1.4003 | 8400 | 0.0141 |
| 1.4169 | 8500 | 0.0114 |
| 1.4336 | 8600 | 0.0124 |
| 1.4503 | 8700 | 0.0128 |
| 1.4670 | 8800 | 0.0122 |
| 1.4836 | 8900 | 0.011 |
| 1.5003 | 9000 | 0.0126 |
| 1.5170 | 9100 | 0.013 |
| 1.5336 | 9200 | 0.0129 |
| 1.5503 | 9300 | 0.0122 |
| 1.5670 | 9400 | 0.012 |
| 1.5837 | 9500 | 0.0108 |
| 1.6003 | 9600 | 0.0108 |
| 1.6170 | 9700 | 0.0117 |
| 1.6337 | 9800 | 0.0122 |
| 1.6503 | 9900 | 0.0093 |
| 1.6670 | 10000 | 0.012 |
| 1.6837 | 10100 | 0.0106 |
| 1.7003 | 10200 | 0.0096 |
| 1.7170 | 10300 | 0.0095 |
| 1.7337 | 10400 | 0.0111 |
| 1.7504 | 10500 | 0.0125 |
| 1.7670 | 10600 | 0.0114 |
| 1.7837 | 10700 | 0.0105 |
| 1.8004 | 10800 | 0.0106 |
| 1.8170 | 10900 | 0.0111 |
| 1.8337 | 11000 | 0.0096 |
| 1.8504 | 11100 | 0.0111 |
| 1.8671 | 11200 | 0.0112 |
| 1.8837 | 11300 | 0.0111 |
| 1.9004 | 11400 | 0.0101 |
| 1.9171 | 11500 | 0.01 |
| 1.9337 | 11600 | 0.009 |
| 1.9504 | 11700 | 0.011 |
| 1.9671 | 11800 | 0.011 |
| 1.9838 | 11900 | 0.0093 |
| 2.0003 | 12000 | 0.0113 |
| 2.0170 | 12100 | 0.0091 |
| 2.0337 | 12200 | 0.0106 |
| 2.0503 | 12300 | 0.0092 |
| 2.0670 | 12400 | 0.0091 |
| 2.0837 | 12500 | 0.0105 |
| 2.1004 | 12600 | 0.0096 |
| 2.1170 | 12700 | 0.011 |
| 2.1337 | 12800 | 0.0093 |
| 2.1504 | 12900 | 0.0105 |
| 2.1670 | 13000 | 0.0088 |
| 2.1837 | 13100 | 0.0089 |
| 2.2004 | 13200 | 0.0092 |
| 2.2171 | 13300 | 0.0079 |
| 2.2337 | 13400 | 0.0095 |
| 2.2504 | 13500 | 0.0075 |
| 2.2671 | 13600 | 0.0083 |
| 2.2837 | 13700 | 0.0074 |
| 2.3004 | 13800 | 0.0083 |
| 2.3171 | 13900 | 0.0075 |
| 2.3338 | 14000 | 0.0089 |
| 2.3504 | 14100 | 0.0083 |
| 2.3671 | 14200 | 0.0084 |
| 2.3838 | 14300 | 0.0073 |
| 2.4004 | 14400 | 0.0085 |
| 2.4171 | 14500 | 0.0064 |
| 2.4338 | 14600 | 0.0073 |
| 2.4505 | 14700 | 0.0081 |
| 2.4671 | 14800 | 0.0067 |
| 2.4838 | 14900 | 0.0066 |
| 2.5005 | 15000 | 0.0077 |
| 2.5171 | 15100 | 0.0079 |
| 2.5338 | 15200 | 0.0082 |
| 2.5505 | 15300 | 0.0075 |
| 2.5671 | 15400 | 0.0074 |
| 2.5838 | 15500 | 0.0063 |
| 2.6005 | 15600 | 0.0064 |
| 2.6172 | 15700 | 0.0072 |
| 2.6338 | 15800 | 0.0082 |
| 2.6505 | 15900 | 0.0051 |
| 2.6672 | 16000 | 0.0083 |
| 2.6838 | 16100 | 0.0063 |
| 2.7005 | 16200 | 0.0058 |
| 2.7172 | 16300 | 0.0058 |
| 2.7339 | 16400 | 0.0072 |
| 2.7505 | 16500 | 0.008 |
| 2.7672 | 16600 | 0.0072 |
| 2.7839 | 16700 | 0.0065 |
| 2.8005 | 16800 | 0.0062 |
| 2.8172 | 16900 | 0.0069 |
| 2.8339 | 17000 | 0.0061 |
| 2.8506 | 17100 | 0.0067 |
| 2.8672 | 17200 | 0.0074 |
| 2.8839 | 17300 | 0.0077 |
| 2.9006 | 17400 | 0.0068 |
| 2.9172 | 17500 | 0.0069 |
| 2.9339 | 17600 | 0.006 |
| 2.9506 | 17700 | 0.008 |
| 2.9673 | 17800 | 0.0067 |
| 2.9839 | 17900 | 0.0061 |
Framework Versions
- Python: 3.12.12
- Sentence Transformers: 5.2.0
- Transformers: 4.57.6
- PyTorch: 2.9.1+cu128
- Accelerate: 1.12.0
- Datasets: 4.5.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",
}
MultipleNegativesRankingLoss
@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}
}
TripletLoss
@misc{hermans2017defense,
title={In Defense of the Triplet Loss for Person Re-Identification},
author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
year={2017},
eprint={1703.07737},
archivePrefix={arXiv},
primaryClass={cs.CV}
}