GISTEmbed: Guided In-sample Selection of Training Negatives for Text Embedding Fine-tuning
Paper • 2402.16829 • Published • 1
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
from sentence_transformers import SentenceTransformer model = SentenceTransformer("SamagraDataGov/embedding_finetuned") sentences = [ "How will the performance of CBBOs be assessed in the third and fourth year?", "' (iv) In third and fourth year, performance of the CBBOs will be assessed based on - (a) issuing Share Certificates to each member in third year, if any; (b) audited Financial Statements for FPOs for second year and third year in due time and filing as required; (c) MoU and vendor registration as per Business Plan with Marketing Agencies/Institutional Buyers; (d) trading/uploading of produce in e-NAM/other sources, if any; (e) second tranche equity grant to FPOs, if any; and (f) second tranche of credit guarantee facility, if any . (v) In the fifth year, performance of the CBBOs will be assessed based on (a) audited Statements of accounts of FPO and filing it; (b) 100% of agri-business plan executed and value chain developed; (c) revenue model showing financial growth in last 3 consecutive years; (d) detailed project completion Report; and (e) third tranche of credit guarantee facility if any.'", "'5. Tussock caterpillar, Notolopus (=Orygyia) postica , Lymantriidae, Lepidoptera Symptom of damage: Defoliation. Nature of damage: Caterpillars of the moth feed on the leaves. Egg: Eggs are laid in clusters on the leaves and covered over with hairs. Larva: Caterpillars are gregarious in young stages. Full grown larva possess a brown head, a pair of long pencil of hairs projecting forwardly from the prothorax, yellowish tuft of hairs arising from the lateral side of the first two abdominal segment and long brownish hairs arising from 8 th abdominal segment. Pupa: Pupation takes place in silken cocoon. Adult: Small adult with yellowish brown wings. Female moth is wingless. Presence of bipectinate antenna.'", "'The Kisan Credit Card (KCC) scheme was introduced in 1998 for issue of Kisan Credit Cards to farmers on the basis of their holdings for uniform adoption by the banks so that farmers may use them to readily purchase agriculture inputs such as seeds, fertilizers, pesticides etc. and draw cash for their production needs. The scheme was further extended for the investment credit requirement of farmers viz. allied and non-farm activities in the year 2004. The scheme was further revisited in 2012 by a working Group under the Chairmanship of Shri T. M. Bhasin, CMD, Indian Bank with a view to simplify the scheme and facilitate issue of Electronic Kisan Credit Cards. The scheme provides broad guidelines to banks for operationalizing the KCC scheme. Implementing banks will have the discretion to adopt the same to suit institution/location specific requirements.'" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4]