GISTEmbed: Guided In-sample Selection of Training Negatives for Text Embedding Fine-tuning
Paper
•
2402.16829
•
Published
This is a sentence-transformers model finetuned from BAAI/bge-small-en-v1.5. 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.
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': True}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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("SamagraDataGov/embedding_finetuned")
# Run inference
sentences = [
'What should be done before sowing pigeonpea in fields where it is being sown for the first time after a long time?',
"'y Firstly, Treat 1kg seeds with a mixture of 2 grams of thiram and one gram of carbendazim or 4 grams of Trichoderma + 1 gram of carboxyne or carbendazim. Before planting, treat each seed with a unique Rhizobium culture of pigeon pea. A packet of this culture has to be sprinkled over 10 kg of seeds, then mix it lightly with hands, so that a light layer is formed on the seeds. Sow this seed immediately. There is a possibility of the death of culture organisms from strong sunlight. In fields where pigeonpea is being sown for the first time after a long time, it must use culture.'",
"'Organic farming is one of the several approaches found to meet the objectives of sustainable agriculture. Organic farming is often associated directly with, \\'Sustainable farming.\\' However, ‘organic farming’ and ‘sustainable farming’, policy and ethics-wise are t wo different terms. Many techniques used in organic farming like inter-cropping, mulching and integration of crops and livestock are not alien to various agriculture systems including the traditional agriculture practiced in old countries like India. However, organic farming is based on various laws and certification programmes, which prohibit the use of almost all synthetic inputs, and health of the soil is recognized as the central theme of the method. Organic products are grown under a system of agriculture without the use of chemical fertilizers and pesticides with an environmentally and socially responsible approach. This is a method of farming that works at'",
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
val_evaluatorInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.468 |
| cosine_accuracy@5 | 0.9092 |
| cosine_accuracy@10 | 0.9604 |
| cosine_precision@1 | 0.468 |
| cosine_precision@5 | 0.1818 |
| cosine_precision@10 | 0.096 |
| cosine_recall@1 | 0.468 |
| cosine_recall@5 | 0.9092 |
| cosine_recall@10 | 0.9604 |
| cosine_ndcg@5 | 0.7079 |
| cosine_ndcg@10 | 0.7245 |
| cosine_ndcg@100 | 0.7327 |
| cosine_mrr@5 | 0.6405 |
| cosine_mrr@10 | 0.6473 |
| cosine_mrr@100 | 0.6492 |
| cosine_map@100 | 0.6492 |
| dot_accuracy@1 | 0.4668 |
| dot_accuracy@5 | 0.9092 |
| dot_accuracy@10 | 0.9604 |
| dot_precision@1 | 0.4668 |
| dot_precision@5 | 0.1818 |
| dot_precision@10 | 0.096 |
| dot_recall@1 | 0.4668 |
| dot_recall@5 | 0.9092 |
| dot_recall@10 | 0.9604 |
| dot_ndcg@5 | 0.7075 |
| dot_ndcg@10 | 0.7241 |
| dot_ndcg@100 | 0.7322 |
| dot_mrr@5 | 0.6398 |
| dot_mrr@10 | 0.6467 |
| dot_mrr@100 | 0.6486 |
| dot_map@100 | 0.6486 |
eval_strategy: stepsgradient_accumulation_steps: 4learning_rate: 1e-05weight_decay: 0.01num_train_epochs: 1.0warmup_ratio: 0.1load_best_model_at_end: Trueoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 8per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 4eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 1e-05weight_decay: 0.01adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 1.0max_steps: -1lr_scheduler_type: linearlr_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: Falsefp16: 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: Trueignore_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: Falseeval_use_gather_object: Falsebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportional| Epoch | Step | Training Loss | loss | val_evaluator_dot_map@100 |
|---|---|---|---|---|
| 0.0682 | 15 | 0.6463 | 0.3498 | 0.6152 |
| 0.1364 | 30 | 0.3071 | 0.1975 | 0.6212 |
| 0.2045 | 45 | 0.2023 | 0.1576 | 0.6248 |
| 0.2727 | 60 | 0.1457 | 0.1357 | 0.6321 |
| 0.3409 | 75 | 0.2456 | 0.1228 | 0.6370 |
| 0.4091 | 90 | 0.1407 | 0.1130 | 0.6365 |
| 0.4773 | 105 | 0.1727 | 0.1042 | 0.6393 |
| 0.5455 | 120 | 0.1311 | 0.0975 | 0.6428 |
| 0.6136 | 135 | 0.13 | 0.0910 | 0.6433 |
| 0.6818 | 150 | 0.0919 | 0.0872 | 0.6466 |
| 0.75 | 165 | 0.1587 | 0.0851 | 0.6490 |
| 0.8182 | 180 | 0.1098 | 0.0834 | 0.6481 |
| 0.8864 | 195 | 0.1013 | 0.0824 | 0.6461 |
| 0.9545 | 210 | 0.1144 | 0.082 | 0.6486 |
| 1.0 | 220 | - | 0.0820 | 0.6486 |
@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{solatorio2024gistembed,
title={GISTEmbed: Guided In-sample Selection of Training Negatives for Text Embedding Fine-tuning},
author={Aivin V. Solatorio},
year={2024},
eprint={2402.16829},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
Base model
BAAI/bge-small-en-v1.5