SentenceTransformer based on allenai/specter2_base
This model is an initial proof of concept for (yet unpublished) article on ultra-hard negative triplet generation. While the original Specter2 adapters were trained on 600k triplets, only 10k ultra-hard, self-supervised negatives were enough to outperform the Proximity adapter (85 vs 84.1 avg NDCG over Relish, NFCorpus, TREC CoVID).
Model Details
This is a sentence-transformers model finetuned from allenai/specter2_base on the json dataset. 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 Description
- Model Type: Sentence Transformer
- Base model: allenai/specter2_base
- Maximum Sequence Length: 512 tokens
- Output Dimensionality: 768 tokens
- Similarity Function: Cosine Similarity
- Training Dataset:
- json
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': 512, 'do_lower_case': False}) with Transformer model: BertModel
(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})
)
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 = [
'Six-coordinate low-spin iron(III) porphyrinate complexes',
'Molecular structures and magnetic resonance spectroscopic investigations of highly distorted six-coordinate low-spin iron(III) porphyrinate complexes. ',
'Saddle-shaped six-coordinate iron(iii) porphyrin complex with unusual intermediate-spin electronic structure. ',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Evaluation
Metrics
Triplet
- Dataset:
triplet-dev
- Evaluated with
TripletEvaluator
Metric | Value |
---|---|
cosine_accuracy | 0.606 |
dot_accuracy | 0.395 |
manhattan_accuracy | 0.603 |
euclidean_accuracy | 0.615 |
max_accuracy | 0.615 |
Training Details
Training Dataset
json
- Dataset: json
- Size: 10,053 training samples
- Columns:
anchor
,positive
, andnegative
- Approximate statistics based on the first 1000 samples:
anchor positive negative type string string string details - min: 4 tokens
- mean: 7.49 tokens
- max: 18 tokens
- min: 4 tokens
- mean: 20.08 tokens
- max: 48 tokens
- min: 4 tokens
- mean: 12.46 tokens
- max: 48 tokens
- Samples:
anchor positive negative COM-induced secretome changes in U937 monocytes
Characterization of calcium oxalate crystal-induced changes in the secretome of U937 human monocytes.
Monocytes.
Metamaterials
Sound attenuation optimization using metaporous materials tuned on exceptional points.
Metamaterials: A cat's eye for all directions.
Pediatric Parasitology
Parasitic infections among school age children 6 to 11-years-of-age in the Eastern province.
[DIALOGUE ON PEDIATRIC PARASITOLOGY].
- Loss:
MultipleNegativesRankingLoss
with these parameters:{ "scale": 20.0, "similarity_fct": "cos_sim" }
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy
: stepsper_device_train_batch_size
: 32per_device_eval_batch_size
: 32learning_rate
: 2e-05num_train_epochs
: 6lr_scheduler_type
: cosine_with_restartswarmup_ratio
: 0.1bf16
: Truebatch_sampler
: no_duplicates
All Hyperparameters
Click to expand
overwrite_output_dir
: Falsedo_predict
: Falseeval_strategy
: stepsprediction_loss_only
: Trueper_device_train_batch_size
: 32per_device_eval_batch_size
: 32per_gpu_train_batch_size
: Noneper_gpu_eval_batch_size
: Nonegradient_accumulation_steps
: 1eval_accumulation_steps
: Nonetorch_empty_cache_steps
: Nonelearning_rate
: 2e-05weight_decay
: 0.0adam_beta1
: 0.9adam_beta2
: 0.999adam_epsilon
: 1e-08max_grad_norm
: 1.0num_train_epochs
: 6max_steps
: -1lr_scheduler_type
: cosine_with_restartslr_scheduler_kwargs
: {}warmup_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
: Falseuse_ipex
: Falsebf16
: Truefp16
: Falsefp16_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
: Falsedataloader_num_workers
: 0dataloader_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}deepspeed
: Nonelabel_smoothing_factor
: 0.0optim
: adamw_torchoptim_args
: Noneadafactor
: Falsegroup_by_length
: Falselength_column_name
: lengthddp_find_unused_parameters
: Noneddp_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
: Falsehub_always_push
: Falsegradient_checkpointing
: Falsegradient_checkpointing_kwargs
: Noneinclude_inputs_for_metrics
: Falseeval_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
: Nonedispatch_batches
: Nonesplit_batches
: Noneinclude_tokens_per_second
: Falseinclude_num_input_tokens_seen
: Falseneftune_noise_alpha
: Noneoptim_target_modules
: Nonebatch_eval_metrics
: Falseeval_on_start
: Falseuse_liger_kernel
: Falseeval_use_gather_object
: Falsebatch_sampler
: no_duplicatesmulti_dataset_batch_sampler
: proportional
Training Logs
Epoch | Step | Training Loss | triplet-dev_cosine_accuracy |
---|---|---|---|
0 | 0 | - | 0.373 |
0.1667 | 1 | 3.138 | - |
0.3333 | 2 | 2.9761 | - |
0.5 | 3 | 2.7135 | - |
0.6667 | 4 | 2.5144 | - |
0.8333 | 5 | 1.9797 | - |
1.0 | 6 | 1.2683 | - |
1.1667 | 7 | 1.6058 | - |
1.3333 | 8 | 1.3236 | - |
1.5 | 9 | 1.1134 | - |
1.6667 | 10 | 1.1205 | - |
1.8333 | 11 | 0.9369 | - |
2.0 | 12 | 0.6215 | - |
2.1667 | 13 | 1.0374 | - |
2.3333 | 14 | 0.9355 | - |
2.5 | 15 | 0.7118 | - |
2.6667 | 16 | 0.7967 | - |
2.8333 | 17 | 0.5739 | - |
3.0 | 18 | 0.4515 | - |
3.1667 | 19 | 0.8018 | - |
3.3333 | 20 | 0.6557 | - |
3.5 | 21 | 0.6027 | - |
3.6667 | 22 | 0.6747 | - |
3.8333 | 23 | 0.5013 | - |
4.0 | 24 | 0.1428 | - |
4.1667 | 25 | 0.5889 | 0.596 |
4.3333 | 26 | 0.5439 | - |
4.5 | 27 | 0.4742 | - |
4.6667 | 28 | 0.5734 | - |
4.8333 | 29 | 0.3966 | - |
5.0 | 30 | 0.1793 | - |
5.1667 | 31 | 0.5408 | - |
5.3333 | 32 | 0.5174 | - |
5.5 | 33 | 0.4179 | - |
5.6667 | 34 | 0.4589 | - |
5.8333 | 35 | 0.3683 | - |
6.0 | 36 | 0.1442 | 0.606 |
Framework Versions
- Python: 3.9.19
- Sentence Transformers: 3.1.1
- Transformers: 4.45.2
- PyTorch: 2.5.0
- Accelerate: 1.0.1
- Datasets: 2.19.0
- Tokenizers: 0.20.3
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}
}
- Downloads last month
- 24,406
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social
visibility and check back later, or deploy to Inference Endpoints (dedicated)
instead.
Model tree for wwydmanski/specter2_pubmed-v0.5
Base model
allenai/specter2_baseEvaluation results
- Cosine Accuracy on triplet devself-reported0.606
- Dot Accuracy on triplet devself-reported0.395
- Manhattan Accuracy on triplet devself-reported0.603
- Euclidean Accuracy on triplet devself-reported0.615
- Max Accuracy on triplet devself-reported0.615