---
language:
- am
license: mit
tags:
- sentence-transformers
- cross-encoder
- generated_from_trainer
- dataset_size:491752
- loss:BinaryCrossEntropyLoss
base_model: rasyosef/roberta-medium-amharic
pipeline_tag: text-ranking
library_name: sentence-transformers
metrics:
- map
- mrr@10
- ndcg@10
model-index:
- name: roberta-amharic-reranker-medium
results:
- task:
type: cross-encoder-reranking
name: Cross Encoder Reranking
dataset:
name: amh passage retrieval dev
type: amh-passage-retrieval-dev
metrics:
- type: mrr@10
value: 0.805
name: Mrr@10
- type: ndcg@10
value: 0.835
name: Ndcg@10
datasets:
- rasyosef/Amharic-Passage-Retrieval-Dataset-V2
---
# reranker-amharic-medium
This is a [Cross Encoder](https://www.sbert.net/docs/cross_encoder/usage/usage.html) model finetuned from [rasyosef/roberta-medium-amharic](https://huggingface.co/rasyosef/roberta-medium-amharic) using the [sentence-transformers](https://www.SBERT.net) library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.
## Model Details
### Model Description
- **Model Type:** Cross Encoder
- **Base model:** [rasyosef/roberta-medium-amharic](https://huggingface.co/rasyosef/roberta-medium-amharic)
- **Maximum Sequence Length:** 510 tokens
- **Number of Output Labels:** 1 label
- **Language:** am
- **License:** mit
### Model Sources
- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Documentation:** [Cross Encoder Documentation](https://www.sbert.net/docs/cross_encoder/usage/usage.html)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Cross Encoders on Hugging Face](https://huggingface.co/models?library=sentence-transformers&other=cross-encoder)
## Usage
### Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
```bash
pip install -U sentence-transformers
```
Then you can load this model and run inference.
```python
from sentence_transformers import CrossEncoder
# Download from the đ¤ Hub
model = CrossEncoder("rasyosef/reranker-amharic-medium")
# Get scores for pairs of texts
pairs = [
['ááá áá ፠á áááá á á¨á˘áľáŽáľáŤ áĄá áá á¨á°áá¨á á áá°á', 'á¨á˘áľáŽáľáŤ ááá á¨áá áááᏠááá á¨ááá áá° áá á¨ááá áĄá ááá á á áá áá á¨áá°á ááĽá¨áľ ááľáĽ ááĽáˇáᢠá áá
á¨á°ááłá á¨á˘áľáŽáľáŤ áĄáá áťá áŁááĽááŁáá á¨áᎠá¨ááááŤáłá¸á áá áĄá ááŞáá˝á á ááŤážá˝ áŤá¨áášáľá áĄá á ááĽááľ áá° ááá áá ፠áĽáá˛áŤáᥠáĽáŞ áĽáŤáá¨áĄ áá á˘'],
['ááá áá ፠á áááá á á¨á˘áľáŽáľáŤ áĄá áá á¨á°áá¨á á áá°á', 'á¨áťááá ááŹááłááľ á ááááá á¨áľáŤáá áá áŁá°á¨ááľ ááŁá¤ áľáŠá¨áłá¸á á áááą áááŤáľ ááŤá¨á áááŤáľ á¨á°áá ᨠááĽá¨áľ áĽá á¨áááľ áŚáááľ á áá á¨á°á¨ááá áááááľá ááľáá á áá áᢠá¨áá˛á áá á°áá ᢠááááą á ááŤáľ áľááłáá áá á˘áŽáááŤá á áááł á¨á
á áá á¨ááááá á ááááľá áá áἠáá áá¨á áá áá á áľáŠá¨áłá¸áá˘']
]
scores = model.predict(pairs)
print(scores.shape)
# (2,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'ááá áá ፠á áááá á á¨á˘áľáŽáľáŤ áĄá áá á¨á°áá¨á á áá°á',
[
'á¨á˘áľáŽáľáŤ ááá á¨áá áááᏠááá á¨ááá áá° áá á¨ááá áĄá ááá á á áá áá á¨áá°á ááĽá¨áľ ááľáĽ ááĽáˇáᢠá áá
á¨á°ááłá á¨á˘áľáŽáľáŤ áĄáá áťá áŁááĽááŁáá á¨áᎠá¨ááááŤáłá¸á áá áĄá ááŞáá˝á á ááŤážá˝ áŤá¨áášáľá áĄá á ááĽááľ áá° ááá áá ፠áĽáá˛áŤáᥠáĽáŞ áĽáŤáá¨áĄ áá á˘',
'á¨áťááá ááŹááłááľ á ááááá á¨áľáŤáá áá áŁá°á¨ááľ ááŁá¤ áľáŠá¨áłá¸á á áááą áááŤáľ ááŤá¨á áááŤáľ á¨á°áá ᨠááĽá¨áľ áĽá á¨áááľ áŚáááľ á áá á¨á°á¨ááá áááááľá ááľáá á áá áᢠá¨áá˛á áá á°áá ᢠááááą á ááŤáľ áľááłáá áá á˘áŽáááŤá á áááł á¨á
á áá á¨ááááá á ááááľá áá áἠáá áá¨á áá áá á áľáŠá¨áłá¸áá˘',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
```
## Evaluation
### Metrics
#### Cross Encoder Reranking
* Dataset: `amh-passage-retrieval-dev`
* Evaluated with [CrossEncoderRerankingEvaluator](https://sbert.net/docs/package_reference/cross_encoder/evaluation.html#sentence_transformers.cross_encoder.evaluation.CrossEncoderRerankingEvaluator) with these parameters:
```json
{
"at_k": 10
}
```
| Metric | Value |
|:------------|:-----------|
| mrr@10 | 0.805 |
| **ndcg@10** | **0.835** |
## Training Details
### Training Dataset
#### Unnamed Dataset
* Size: 491,752 training samples
* Columns: query, passage, and label
* Approximate statistics based on the first 1000 samples:
| | query | passage | label |
|:--------|:-----------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------|:------------------------------------------------|
| type | string | string | int |
| details | - min: 2 characters
- mean: 49.94 characters
- max: 283 characters
| - min: 126 characters
- mean: 1418.88 characters
- max: 8678 characters
| |
* Samples:
| query | passage | label |
|:------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------|
| á áŁáᣠáŚá¨á áĽá áá ááá˝ á¨á°á¨á°á°áá á¨á áá á áá ᣠááá¨áá¨á á°á¨á᪠á ááŽáááá˝ áá° áľááŤá áá°ááŤá | á á˛áľ á á ᣠᣠáłá
áłáľ 27 ᣠ2012 (á¤á ᢠá˛) á¨ááá á á
áá áááľáľá áşáá á ᤠá ááŤá¨ááá ááľáŤá
ááá á¨ááľáá áĽá
áľ áĽááłáá¸á á áľáá ááášá˘á á
áá áááľáľáŠ á á áŤáŁá˘á á¨ááááłááą á¨ááá ááá¨áŚá˝á á°á
áááľ ááá¨ááἠá áľááŤá ááá á¨ááľáá áĽá
áľ áĽááłáá¸á ááá¸ááá˘áŁááá áá ááá áá° ááŤá¨ááá ááľáŤá
á¨áŚá ááá¨áŚá˝á áĽá áá á ááŽáááá˝á áĽáá°ááľáá áááť áá áá˘á¨áááŞáą áá¨áá¨áŤ áááľá´áá áá á ááŽááááš á á°áŤáá á¨áá¨áááš áĽá áá áá° áľááŤá áĽáá°ááŤáá áááżáá˘á¨áŤá˛áľ áá áá á°áá á¨áŚá ááá¨áŚá˝á áá° áľááŤá á áááłá
áłáá áĽááá˘á¨á áá á¨áśáŞáŽ áĽá
áľ á ááŤá¨ááá ááľáŤá
á¨áŁá
á ááá á¨ááááłááą á¨ááá ááá¨áŚá˝á á¨áĽááľ ááá¨áá¨áá á°á
áááłá¸áá ááá¨ááἠáŤáá áá á°áĽááá˘á ᤠá ááááŤá¸á á ááŤá¨ááá ááľáŤá
áŤáá áá
áłá áááł áĽááłáłá°áŁá¸á á á
á°áἠáááŤáľá á ááľááá ááĽá¨áľá áĽáá˛áŤáľáááą áĽáŞ á á
áá ááá˘á ááŞáŤ áŁááá ááἠá¨á˘áŤá áĽááŤá á áĽáŽáľ áἠá áŁá ááá á ááĽá á áŁááłáľ á ááŽááá áá¨á፠á¨áá°áá˝ á áá á ááŤá¨ááá ááľáŤá
ááĽá¨áľ áááˇáá˘á˘áŤá áá ááŞáŤ áĽááá á¨áŁáľ á ááá ááá˝ áĽá°áŁáá áľáľáἠá¨á ááŞáŤá ááŹááłááľ áśáááľ áľáŤááá á ááŞáŤ á¨á¨á áĽááá áĽáá°ááľááľáľ á áľá áá
áááá˘áááጠáŹáá°ááľ | 0 |
| ááŁáą áááŤá¸á áŁáá°á¨ááá á¨áá
á áŤá áá˛áŤ áá¨ááá˝ áá á áá ááą á¨ááŁáĽ áŁá
á ááááąá á¨áĽáá
áŁáŤ á¨á°á áááŞáḠá°áááŠáĄáĄ | áŁáá áłáᥠáááŚáľ 21/2012 á.á (á áĽááľ) á¨áŽáŽá áŤáá¨áľ áá¨áá˝á á¨áľáá
ááľ á°áááľ á°ááŞááťá¸áá áĽáá˛á áľá á áľááľáˇá¸áááĄáĄá°ááŞáášá á¨áľáá
ááľ áá áłá¸á ááľá°ááá á ááłá á°á
ááá á¨á¨á á˘ááá áľááá¨áá˝á áááᤠá ááá á á¨ááľ áá° áááŤá ááľá áĽá¨áá¨áŠáľ áŤá á ááĄáĄáá° á°áá á¸á áá á á¨á¸áľ áá¨áł áŁáááá áľ áá
áľ áŤáááá¸á á¨á°ááŤáŠ á¨áááŞáą á á
áŁáŤáá˝ áá° á¤á°á°áŚáťá¸á á¨á°áááą á°ááŞáá˝ áĽáá¸áá á áŁáĽáá á áá°áááĄááĄáĄ á°ááŞááš áá
áĽá¨á°á°áĄ áľááŽáŽá áŤáá¨áľ áá¨áá˝á á¨ááŤáááľá áĽáŤáłáá áááĄáĄá°á᪠ááá ááá á ááááł áśáś áŠáá¨áá˛á˛ á¨áŚáľá°á áááľ á¨ááá áááľ áĽá áĽá á°ááŁáŚáľ áľáá
ááľ ááá á°á᪠áááĄáĄ ááá áá° áľáááľ ááŹá á¨á°ááá° áá ááᎠá¨á°ááŤáŠ á¨áááá áá´áá˝á á áá áá áľááŽáŽá áŤáá¨áľ áá¨áá˝á á
áľá áá¨áá¨á á¨ááááĽáľ áĽá á¨á¤á áŁáááŤáá˝ á¨ááᥠáááĽááśá˝á áá
áĽá¨á°á°áĄ áĽáŤáľáááá áááĄáĄ á¨áááᤠáá áŤáá á âáá áá˛áŤâᣠá áá ፠áĽá á°áá˝ á áá°áŁá°áĄáŁá¸á áŚáłáá˝ á ááááľ á¨áá°ááš áá áĽáá°áá áŠá á°áááŻááĄáĄ á¨áááᤠáá ፠áá ááá á°áá á¨áá
áááľ á°ááŤá á°á᪠áĽáá°ááá áá á áĽááłá á˝ááá áĽá¨á ፠áááá á á ááŁáŁáĄ áĽá¨á°á áá áĽáá°ááá áááżááĄáĄáááá áŤáááááá á°á᪠á áĽááá ááĽá¨áŞáłá á ááááł áśáś áŠáá¨áá˛á˛ áŚáľá°á áááľ á¨áá á°á᪠áááĄáĄ á
áĽá¨á°á°áĄ ááŽáŽá áŤáá¨áľ áá¨áá˝á áĽááłáááἠá°áá áá°ááᣠá áá ፠áá á¨áá¨áłá áá˛á áá°á
áĽá á¨á°á ááá˘áŤá áá፠á áŤáŁá˘áá˝ áĽá
áĽáá˛áłá ᥠá¨ááľá¨á ááᎠá¨áá¨áá˝áá á
áľá áá¨áá¨á áááĽááśá˝ á áľáá˝ áá፠(áááłááŚ) á°á á
áá áĽáŤáľá°ááá áĽáá°áá á°áááŻááĄáĄ á°ááŞááš á ááŤá°áááľ á¨á
áľááł áááᤠááľá¨á ፠áĽ... | 0 |
| á áłá á¨á°á ᨠá˘áľáŽáľáŤ áĄá â ááĽáł á¨á
áá áľáááľ | â79Ⲡá á˛áľ áá°áá°á ááá!á¨ááłá á á˛áłá áĄá á á¸ááááľ á°á ááááĄáĄ á˛áł á áľáť áá áŤááá á¨á ááááľ á˛áŤá¨áĽá áááľáŽ á ááłá áŤááá 100% áŞáŽááľá á áľá áĽáááĄáĄá°á¨á᪠á°áá â 4 á°ááá˘áŤ áŤááľ88Ⲡáłáá á áá á á˛áľ áá°á áá á á°áŤá  áĽááľ á˘áŤ áŤááľ á°ááááˇááĄáĄ á áááłáá áá áá áĽááá á ááľááá áľáááľ á áááá á˘áŤ á°ááááˇááĄáĄ84Ⲡáłáá á áá á¨áááá á¨á°áťááá áłáľ á áááŁáŠ áááś ááĽááľ ááŁá áľáĄáĄ á¨ááŤáľáá á ááŁá !á¨á°áŤáḠááἠâ á˛áłá áĄá81Ⲡá á¨á¨áľ á á˛áą ááĽáś ááááľ Â ááááľ ááĽáˇááĄáĄá¨á°áŤáá˝ ááἠâ ááááł áľáťÂ á ááá áŁá°á ááĽáś á áĽáąáá°ááľ á á ááĽáˇááĄáĄáááá!!! á˛áłá áĄá79Ⲡá á˛áľ áá°á á¨á¤áŞá ááŤááł á¨á°áťáá¨ááľá áłáľ á áááŁáŠ áááś áá° ááĽááľ á ááá¨á á˛áłáá á᪠á áľááááĄáĄ77Ⲡá ááĽá
ááᎠá¨áááľ á á፠áĽáአááŹáľ áááŹáľ á ááᎠá¨ááłá áłáľ ááĽááľ ááŁáĄáĄ
á¨á°áŤáá˝ ááἠâ ááááł áľáťÂ 71Ⲡá´ááľáŽáľ ááááť ááĽá áłáá á áá ááĽáˇááĄáĄ
á¨á°áŤáá˝ ááἠâ á˛áłá áĄá71Ⲡá áá°áá
á°áľáᏠá ááłáľ ááĽáś ááŞá áłá ááĽáˇááĄáĄ65Ⲡá áľáá á¨ááľáá á¨á°áťáá¨áá áłáľ á¤áŞá ááŤáł á áááŁáŠ áááś á¨áᥠá ááłá áááśá áłááĄáĄ á˛áłá áĄá áŤá ááĽáŽ á ááĽááľ áá áááááĄáĄ63Ⲡá¨á፠ááľáá áá°á áá áŤáťááá áłáľ á á˛áľ áá°á á áááŁáŠ áááś á¨ááĄá á ááłá áłáŽ ááĽáˇááĄáĄá¨á°áŤáá˝ ááἠâ ááááł áľáť  60Ⲡá ááá¤á á°ážá ááĽáś ááłá á áŞáś ááĽáˇááĄáĄ53Ⲡá ááá áŁá°á á¨á፠ááľáá áŤáťáá¨áá áłáľ á ááĽá
ááᎠá ááŁá á˛áŁá á áᥠá ááľ á°á°á°ááĄáĄ á¨ááŤáľáá á ááŁá!á¨á°áŤáá˝ ááἠâ á˛áłá
46ⲠááŠá á á°á ááĽáś á¤áŞá ááŤááł ááĽáˇááĄáĄ
á°ááá¨!
ááá°áá á ááá˝ á¨á¨ááł... | 0 |
* Loss: [BinaryCrossEntropyLoss](https://sbert.net/docs/package_reference/cross_encoder/losses.html#binarycrossentropyloss) with these parameters:
```json
{
"activation_fn": "torch.nn.modules.linear.Identity",
"pos_weight": 7
}
```
### Training Hyperparameters
#### Non-Default Hyperparameters
- `eval_strategy`: epoch
- `per_device_train_batch_size`: 64
- `per_device_eval_batch_size`: 64
- `learning_rate`: 4e-05
- `num_train_epochs`: 4
- `lr_scheduler_type`: cosine
- `warmup_ratio`: 0.05
- `fp16`: True
- `dataloader_num_workers`: 2
- `load_best_model_at_end`: True
- `batch_sampler`: no_duplicates
#### All Hyperparameters
Click to expand
- `overwrite_output_dir`: False
- `do_predict`: False
- `eval_strategy`: epoch
- `prediction_loss_only`: True
- `per_device_train_batch_size`: 64
- `per_device_eval_batch_size`: 64
- `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`: 4e-05
- `weight_decay`: 0.0
- `adam_beta1`: 0.9
- `adam_beta2`: 0.999
- `adam_epsilon`: 1e-08
- `max_grad_norm`: 1.0
- `num_train_epochs`: 4
- `max_steps`: -1
- `lr_scheduler_type`: cosine
- `lr_scheduler_kwargs`: {}
- `warmup_ratio`: 0.05
- `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`: 2
- `dataloader_prefetch_factor`: None
- `past_index`: -1
- `disable_tqdm`: False
- `remove_unused_columns`: True
- `label_names`: None
- `load_best_model_at_end`: True
- `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
- `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
- `eval_use_gather_object`: False
- `average_tokens_across_devices`: False
- `prompts`: None
- `batch_sampler`: no_duplicates
- `multi_dataset_batch_sampler`: proportional
### Training Logs
| Epoch | Step | Training Loss | amh-passage-retrieval-dev_ndcg@10 |
|:-------:|:---------:|:-------------:|:---------------------------------:|
| -1 | -1 | - | 0.0898 |
| 1.0 | 7684 | 0.4048 | 0.8289 |
| 2.0 | 15368 | 0.2366 | 0.8546 |
| 3.0 | 23052 | 0.1588 | 0.8353 |
| **4.0** | **30736** | **0.1024** | **0.8551** |
| -1 | -1 | - | 0.8579 |
* The bold row denotes the saved checkpoint.
### Framework Versions
- Python: 3.11.13
- Sentence Transformers: 4.1.0
- Transformers: 4.52.4
- PyTorch: 2.6.0+cu124
- Accelerate: 1.7.0
- Datasets: 3.6.0
- Tokenizers: 0.21.1
## Citation