yoriis's picture
Add new CrossEncoder model
b0c82e2 verified
metadata
tags:
  - sentence-transformers
  - cross-encoder
  - reranker
  - generated_from_trainer
  - dataset_size:14287
  - loss:BinaryCrossEntropyLoss
base_model: yoriis/GTE-tydi-tafseer-quqa-haqa
pipeline_tag: text-ranking
library_name: sentence-transformers
metrics:
  - accuracy
  - accuracy_threshold
  - f1
  - f1_threshold
  - precision
  - recall
  - average_precision
model-index:
  - name: CrossEncoder based on yoriis/GTE-tydi-tafseer-quqa-haqa
    results:
      - task:
          type: cross-encoder-classification
          name: Cross Encoder Classification
        dataset:
          name: eval
          type: eval
        metrics:
          - type: accuracy
            value: 0.97544080604534
            name: Accuracy
          - type: accuracy_threshold
            value: 0.02913171425461769
            name: Accuracy Threshold
          - type: f1
            value: 0.8446215139442231
            name: F1
          - type: f1_threshold
            value: 0.02913171425461769
            name: F1 Threshold
          - type: precision
            value: 0.828125
            name: Precision
          - type: recall
            value: 0.8617886178861789
            name: Recall
          - type: average_precision
            value: 0.8740056534530515
            name: Average Precision

CrossEncoder based on yoriis/GTE-tydi-tafseer-quqa-haqa

This is a Cross Encoder model finetuned from yoriis/GTE-tydi-tafseer-quqa-haqa using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.

Model Details

Model Description

Model Sources

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 CrossEncoder

# Download from the ๐Ÿค— Hub
model = CrossEncoder("yoriis/GTE-tydi-tafseer-quqa-haqa-task-70")
# Get scores for pairs of texts
pairs = [
    ['ุฃูŠู† ูŠู‚ุน ุงู„ุฌูˆุฏูŠุŸ', '[PASSAGE_NOT_FOUND]'],
    ['ู…ุง ู‡ูŠ ุงู„ุขูŠุงุช ุงู„ุชูŠ ุชุชุญุฏุซ ุนู† ู…ูˆุถูˆุน ุงู„ูˆุตูŠุฉ ููŠ ุณูˆุฑุฉ ุงู„ู…ุงุฆุฏุฉุŸ', 'ูˆู„ู…ุง ุฌุงุกู‡ู… ูƒุชุงุจ ู…ู† ุนู†ุฏ ุงู„ู„ู‡ ู…ุตุฏู‚ ู„ู…ุง ู…ุนู‡ู… ูˆูƒุงู†ูˆุง ู…ู† ู‚ุจู„ ูŠุณุชูุชุญูˆู† ุนู„ู‰ ุงู„ุฐูŠู† ูƒูุฑูˆุง ูู„ู…ุง ุฌุงุกู‡ู… ู…ุง ุนุฑููˆุง ูƒูุฑูˆุง ุจู‡ ูู„ุนู†ุฉ ุงู„ู„ู‡ ุนู„ู‰ ุงู„ูƒุงูุฑูŠู†. ุจุฆุณู…ุง ุงุดุชุฑูˆุง ุจู‡ ุฃู†ูุณู‡ู… ุฃู† ูŠูƒูุฑูˆุง ุจู…ุง ุฃู†ุฒู„ ุงู„ู„ู‡ ุจุบูŠุง ุฃู† ูŠู†ุฒู„ ุงู„ู„ู‡ ู…ู† ูุถู„ู‡ ุนู„ู‰ ู…ู† ูŠุดุงุก ู…ู† ุนุจุงุฏู‡ ูุจุงุกูˆุง ุจุบุถุจ ุนู„ู‰ ุบุถุจ ูˆู„ู„ูƒุงูุฑูŠู† ุนุฐุงุจ ู…ู‡ูŠู†.'],
    ['ู‡ู„ ูˆุฑุฏ ููŠ ุงู„ู‚ุฑุขู† ุฅุดุงุฑุฉ ู„ุตูˆุช ุฐูŠ ุชุฃุซูŠุฑ ุฅูŠุฌุงุจูŠ ุนู„ู‰ ุฌุณู… ุงู„ุฅู†ุณุงู†ุŸ', 'ูˆุงู„ู…ุคู…ู†ูˆู† ูˆุงู„ู…ุคู…ู†ุงุช ุจุนุถู‡ู… ุฃูˆู„ูŠุงุก ุจุนุถ ูŠุฃู…ุฑูˆู† ุจุงู„ู…ุนุฑูˆู ูˆูŠู†ู‡ูˆู† ุนู† ุงู„ู…ู†ูƒุฑ ูˆูŠู‚ูŠู…ูˆู† ุงู„ุตู„ุงุฉ ูˆูŠุคุชูˆู† ุงู„ุฒูƒุงุฉ ูˆูŠุทูŠุนูˆู† ุงู„ู„ู‡ ูˆุฑุณูˆู„ู‡ ุฃูˆู„ุฆูƒ ุณูŠุฑุญู…ู‡ู… ุงู„ู„ู‡ ุฅู† ุงู„ู„ู‡ ุนุฒูŠุฒ ุญูƒูŠู…. ูˆุนุฏ ุงู„ู„ู‡ ุงู„ู…ุคู…ู†ูŠู† ูˆุงู„ู…ุคู…ู†ุงุช ุฌู†ุงุช ุชุฌุฑูŠ ู…ู† ุชุญุชู‡ุง ุงู„ุฃู†ู‡ุงุฑ ุฎุงู„ุฏูŠู† ููŠู‡ุง ูˆู…ุณุงูƒู† ุทูŠุจุฉ ููŠ ุฌู†ุงุช ุนุฏู† ูˆุฑุถูˆุงู† ู…ู† ุงู„ู„ู‡ ุฃูƒุจุฑ ุฐู„ูƒ ู‡ูˆ ุงู„ููˆุฒ ุงู„ุนุธูŠู….'],
    ['ูƒู… ูุชุฑุฉ ุฑุถุงุนุฉ ุงู„ู…ูˆู„ูˆุฏุŸ', '[PASSAGE_NOT_FOUND]'],
    ['ู…ุง ู‡ูŠ ุงู„ุขูŠุงุช ุงู„ุชูŠ ุชุชุญุฏุซ ุนู† ู…ูˆุถูˆุน ุงู„ูˆุตูŠุฉ ููŠ ุณูˆุฑุฉ ุงู„ู…ุงุฆุฏุฉุŸ', '[PASSAGE_NOT_FOUND]'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)

# Or rank different texts based on similarity to a single text
ranks = model.rank(
    'ุฃูŠู† ูŠู‚ุน ุงู„ุฌูˆุฏูŠุŸ',
    [
        '[PASSAGE_NOT_FOUND]',
        'ูˆู„ู…ุง ุฌุงุกู‡ู… ูƒุชุงุจ ู…ู† ุนู†ุฏ ุงู„ู„ู‡ ู…ุตุฏู‚ ู„ู…ุง ู…ุนู‡ู… ูˆูƒุงู†ูˆุง ู…ู† ู‚ุจู„ ูŠุณุชูุชุญูˆู† ุนู„ู‰ ุงู„ุฐูŠู† ูƒูุฑูˆุง ูู„ู…ุง ุฌุงุกู‡ู… ู…ุง ุนุฑููˆุง ูƒูุฑูˆุง ุจู‡ ูู„ุนู†ุฉ ุงู„ู„ู‡ ุนู„ู‰ ุงู„ูƒุงูุฑูŠู†. ุจุฆุณู…ุง ุงุดุชุฑูˆุง ุจู‡ ุฃู†ูุณู‡ู… ุฃู† ูŠูƒูุฑูˆุง ุจู…ุง ุฃู†ุฒู„ ุงู„ู„ู‡ ุจุบูŠุง ุฃู† ูŠู†ุฒู„ ุงู„ู„ู‡ ู…ู† ูุถู„ู‡ ุนู„ู‰ ู…ู† ูŠุดุงุก ู…ู† ุนุจุงุฏู‡ ูุจุงุกูˆุง ุจุบุถุจ ุนู„ู‰ ุบุถุจ ูˆู„ู„ูƒุงูุฑูŠู† ุนุฐุงุจ ู…ู‡ูŠู†.',
        'ูˆุงู„ู…ุคู…ู†ูˆู† ูˆุงู„ู…ุคู…ู†ุงุช ุจุนุถู‡ู… ุฃูˆู„ูŠุงุก ุจุนุถ ูŠุฃู…ุฑูˆู† ุจุงู„ู…ุนุฑูˆู ูˆูŠู†ู‡ูˆู† ุนู† ุงู„ู…ู†ูƒุฑ ูˆูŠู‚ูŠู…ูˆู† ุงู„ุตู„ุงุฉ ูˆูŠุคุชูˆู† ุงู„ุฒูƒุงุฉ ูˆูŠุทูŠุนูˆู† ุงู„ู„ู‡ ูˆุฑุณูˆู„ู‡ ุฃูˆู„ุฆูƒ ุณูŠุฑุญู…ู‡ู… ุงู„ู„ู‡ ุฅู† ุงู„ู„ู‡ ุนุฒูŠุฒ ุญูƒูŠู…. ูˆุนุฏ ุงู„ู„ู‡ ุงู„ู…ุคู…ู†ูŠู† ูˆุงู„ู…ุคู…ู†ุงุช ุฌู†ุงุช ุชุฌุฑูŠ ู…ู† ุชุญุชู‡ุง ุงู„ุฃู†ู‡ุงุฑ ุฎุงู„ุฏูŠู† ููŠู‡ุง ูˆู…ุณุงูƒู† ุทูŠุจุฉ ููŠ ุฌู†ุงุช ุนุฏู† ูˆุฑุถูˆุงู† ู…ู† ุงู„ู„ู‡ ุฃูƒุจุฑ ุฐู„ูƒ ู‡ูˆ ุงู„ููˆุฒ ุงู„ุนุธูŠู….',
        '[PASSAGE_NOT_FOUND]',
        '[PASSAGE_NOT_FOUND]',
    ]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]

Evaluation

Metrics

Cross Encoder Classification

Metric Value
accuracy 0.9754
accuracy_threshold 0.0291
f1 0.8446
f1_threshold 0.0291
precision 0.8281
recall 0.8618
average_precision 0.874

Training Details

Training Dataset

Unnamed Dataset

  • Size: 14,287 training samples
  • Columns: sentence_0, sentence_1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence_0 sentence_1 label
    type string string float
    details
    • min: 11 characters
    • mean: 39.93 characters
    • max: 201 characters
    • min: 19 characters
    • mean: 215.57 characters
    • max: 912 characters
    • min: 0.0
    • mean: 0.07
    • max: 1.0
  • Samples:
    sentence_0 sentence_1 label
    ุฃูŠู† ูŠู‚ุน ุงู„ุฌูˆุฏูŠุŸ [PASSAGE_NOT_FOUND] 0.0
    ู…ุง ู‡ูŠ ุงู„ุขูŠุงุช ุงู„ุชูŠ ุชุชุญุฏุซ ุนู† ู…ูˆุถูˆุน ุงู„ูˆุตูŠุฉ ููŠ ุณูˆุฑุฉ ุงู„ู…ุงุฆุฏุฉุŸ ูˆู„ู…ุง ุฌุงุกู‡ู… ูƒุชุงุจ ู…ู† ุนู†ุฏ ุงู„ู„ู‡ ู…ุตุฏู‚ ู„ู…ุง ู…ุนู‡ู… ูˆูƒุงู†ูˆุง ู…ู† ู‚ุจู„ ูŠุณุชูุชุญูˆู† ุนู„ู‰ ุงู„ุฐูŠู† ูƒูุฑูˆุง ูู„ู…ุง ุฌุงุกู‡ู… ู…ุง ุนุฑููˆุง ูƒูุฑูˆุง ุจู‡ ูู„ุนู†ุฉ ุงู„ู„ู‡ ุนู„ู‰ ุงู„ูƒุงูุฑูŠู†. ุจุฆุณู…ุง ุงุดุชุฑูˆุง ุจู‡ ุฃู†ูุณู‡ู… ุฃู† ูŠูƒูุฑูˆุง ุจู…ุง ุฃู†ุฒู„ ุงู„ู„ู‡ ุจุบูŠุง ุฃู† ูŠู†ุฒู„ ุงู„ู„ู‡ ู…ู† ูุถู„ู‡ ุนู„ู‰ ู…ู† ูŠุดุงุก ู…ู† ุนุจุงุฏู‡ ูุจุงุกูˆุง ุจุบุถุจ ุนู„ู‰ ุบุถุจ ูˆู„ู„ูƒุงูุฑูŠู† ุนุฐุงุจ ู…ู‡ูŠู†. 0.0
    ู‡ู„ ูˆุฑุฏ ููŠ ุงู„ู‚ุฑุขู† ุฅุดุงุฑุฉ ู„ุตูˆุช ุฐูŠ ุชุฃุซูŠุฑ ุฅูŠุฌุงุจูŠ ุนู„ู‰ ุฌุณู… ุงู„ุฅู†ุณุงู†ุŸ ูˆุงู„ู…ุคู…ู†ูˆู† ูˆุงู„ู…ุคู…ู†ุงุช ุจุนุถู‡ู… ุฃูˆู„ูŠุงุก ุจุนุถ ูŠุฃู…ุฑูˆู† ุจุงู„ู…ุนุฑูˆู ูˆูŠู†ู‡ูˆู† ุนู† ุงู„ู…ู†ูƒุฑ ูˆูŠู‚ูŠู…ูˆู† ุงู„ุตู„ุงุฉ ูˆูŠุคุชูˆู† ุงู„ุฒูƒุงุฉ ูˆูŠุทูŠุนูˆู† ุงู„ู„ู‡ ูˆุฑุณูˆู„ู‡ ุฃูˆู„ุฆูƒ ุณูŠุฑุญู…ู‡ู… ุงู„ู„ู‡ ุฅู† ุงู„ู„ู‡ ุนุฒูŠุฒ ุญูƒูŠู…. ูˆุนุฏ ุงู„ู„ู‡ ุงู„ู…ุคู…ู†ูŠู† ูˆุงู„ู…ุคู…ู†ุงุช ุฌู†ุงุช ุชุฌุฑูŠ ู…ู† ุชุญุชู‡ุง ุงู„ุฃู†ู‡ุงุฑ ุฎุงู„ุฏูŠู† ููŠู‡ุง ูˆู…ุณุงูƒู† ุทูŠุจุฉ ููŠ ุฌู†ุงุช ุนุฏู† ูˆุฑุถูˆุงู† ู…ู† ุงู„ู„ู‡ ุฃูƒุจุฑ ุฐู„ูƒ ู‡ูˆ ุงู„ููˆุฒ ุงู„ุนุธูŠู…. 0.0
  • Loss: BinaryCrossEntropyLoss with these parameters:
    {
        "activation_fn": "torch.nn.modules.linear.Identity",
        "pos_weight": null
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • num_train_epochs: 4
  • fp16: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 8
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1
  • num_train_epochs: 4
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: True
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • hub_revision: None
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss eval_average_precision
0.2800 500 0.1616 0.8419
0.5599 1000 0.1487 0.8512
0.8399 1500 0.1337 0.8641
1.0 1786 - 0.8671
1.1198 2000 0.1151 0.8723
1.3998 2500 0.0972 0.8755
1.6797 3000 0.1107 0.8740
1.9597 3500 0.1032 0.8744
2.0 3572 - 0.8741
2.2396 4000 0.0859 0.8730
2.5196 4500 0.0987 0.8751
2.7996 5000 0.0845 0.8752
3.0 5358 - 0.8745
3.0795 5500 0.0981 0.8738
3.3595 6000 0.0937 0.8727
3.6394 6500 0.0688 0.8732
3.9194 7000 0.0796 0.8740
4.0 7144 - 0.8740

Framework Versions

  • Python: 3.11.13
  • Sentence Transformers: 5.0.0
  • Transformers: 4.55.0
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.9.0
  • Datasets: 4.0.0
  • Tokenizers: 0.21.4

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",
}