tags:
- ColBERT
- PyLate
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- dataset_size:76474
- loss:Contrastive
base_model: rasyosef/bert-medium-amharic
pipeline_tag: sentence-similarity
library_name: PyLate
metrics:
- accuracy
model-index:
- name: PyLate model based on rasyosef/bert-medium-amharic
results:
- task:
type: col-berttriplet
name: Col BERTTriplet
dataset:
name: amharic-passage-retrieval-dataset
type: amharic-passage-retrieval-dataset
metrics:
- type: mrr@10
value: 0.806
name: Mrr@10
- type: ndcg@10
value: 0.831
name: Ndcg@10
- type: recall@10
value: 0.911
name: Recall@10
- type: recall@50
value: 0.954
name: Recall@50
- type: recall@100
value: 0.968
name: Recall@100
- type: accuracy
value: 0.975687563419342
name: Accuracy
language:
- am
datasets:
- rasyosef/amharic-passage-retrieval-dataset
ColBERT-Bert-Amharic-Medium
This is a PyLate model finetuned from rasyosef/bert-medium-amharic. It maps sentences & paragraphs to sequences of 128-dimensional dense vectors and can be used for semantic textual similarity using the MaxSim operator.
Training Code
This model was trained as part of our ACL 2025 Findings paper: Optimized Text Embedding Models and Benchmarks for Amharic Passage Retrieval.
- Models Collection: https://huggingface.co/collections/rasyosef/amharic-text-embedding-models-679cb55eae1d498e3ac5bdc5
- Code: https://github.com/kidist-amde/amharic-ir-benchmarks
Model Details
Model Description
- Model Type: PyLate model
- Base model: rasyosef/bert-medium-amharic
- Document Length: 256 tokens
- Query Length: 32 tokens
- Output Dimensionality: 128 tokens
- Similarity Function: MaxSim
Model Sources
- Documentation: PyLate Documentation
- Repository: PyLate on GitHub
- Hugging Face: PyLate models on Hugging Face
Full Model Architecture
ColBERT(
(0): Transformer({'max_seq_length': 255, 'do_lower_case': False}) with Transformer model: BertModel
(1): Dense({'in_features': 512, 'out_features': 128, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
)
Usage
First install the PyLate library:
pip install -U pylate
Retrieval
PyLate provides a streamlined interface to index and retrieve documents using ColBERT models. The index leverages the Voyager HNSW index to efficiently handle document embeddings and enable fast retrieval.
Indexing documents
First, load the ColBERT model and initialize the Voyager index, then encode and index your documents:
from pylate import indexes, models, retrieve
# Step 1: Load the ColBERT model
model = models.ColBERT(
model_name_or_path="rasyosef/colbert-bert-amharic-medium",
)
# Step 2: Initialize the Voyager index
index = indexes.Voyager(
index_folder="pylate-index",
index_name="index",
override=True, # This overwrites the existing index if any
)
# Step 3: Encode the documents
documents_ids = ["1", "2", "3", "4", "5"]
documents = [
"á áµááᜠá°á« áá¢áµá®áµá« ááááᜠášááœá áµááá á áááááµ ášáá«ááá á áá³á á©á£áá« á°á£á£áª áá¥á«áœ ááᢠáááá«áá á ááá á«á°ášáá áá³á á á¥á«á ášá ááŽááºá«á á¢áá°ááááµ áá á á¥á¥á
áá°á³á°á«áᢠá áµááᜠášá ááµ áá ááµ á¥ááá³ ááᢠá ááªá« á¥á á»áá áµáááá³á°á©á áµ áŽáááá á¥á áá ááªá« áµáááášá ááá³ á¥ážáŽ á áá á áááá®á³áá¢",
"ášá°á°ááá áá¬áµ áááá¥áᥠá áá á áá ááá á¥á³áµ ášáá¬áµ ááµá¥ á²áá á³áá·áá¡á¡ ášáá¬áµ ááµá¥ á¥á³áµá ááµ ášáá°áá á¥áááá± áᬠááá³áá 11 á°ááµ ááµá ášášá£áµ ááá³á³ á ááášá°áµá°áá áááá ášá ášá£á¢á áááªáᜠá¥á á£ááµáá£ááµ áá¶áŒ á¬á á°ááášááá¡á¡ á ááµ ášáá«ááá¥á á¥á³áµ áá ášá°á£áá á¥áááá± á ááá áá¢ášá± (áá 03) á±áá» áášá³ á°ááá¶ áá á áášá°á±á ášááá¹áµ ášá ášá£á¢á ášá áá á¥ááᜠášááá ááá³á³ á á°ášá᪠á ááªá«á á°ášá᪠ááá³á³áᜠáá³ášáµ áá¥áá á£á áážáá¡á¡",
"á ááášáá á¢áµá®áµá« ááá ááµá« áá áဠáášá³ á ááá 12 áá ááᜠáá ášá³á ášáááá¥áµ á áááááµ ááµá« á°áááµ á ááá á ášáá á áááá³ážá áážáá«ážáá áááªáᜠá ááášá±á¢ ášá£ááá áááµ ááá® ášá€áᣠášáµáá
ááµ á¥á ášáá¥á á á°á£á°á¥ á¥á«áᜠá ášá á«á£á¢á«ážá á¥ášá°ášááá á ááááážááá áá¶áŒ á¬á á°ááášááá¢",
"ášááᥠá°áá«á®áœ ááá á€áµ á á£á á¥á ášáá á®áᎠá°á¥á³á¢ ášáá á©áµ á á¶ áááµá²á«á á³á°á á¥á ášá áá« ááá ááá á€áµ á á£á ášáááµ á á¶ á®áááµ á§á«áá ášááá² áá° áááአáášáá« á€áµ áááá«ážáá á á áážá á°ááá©á¢",
"áš15 ášá°á£á á©áµ áááá¥á³áµ ášážá¥á³ á¥á á ááá á€áµ á á£ááµ áá«ášá áµáááµ ááᥠá áá ášá áµáᜠá á°á£á¥ áá á ášáá³á áá³á¡á á°ááááᢠášáá³á áá³á¡ á«ááá ášáµáá áµáᜠáááœá°á
ášáá«áµáááá áá
á°áá ááᢠáµáµáµáµ ááá«áµ áááµá á©á²á«á£ á»ááᣠá áááªá«á£ áŽá« áá®áᣠá¶ááá« á¥á ááªáµá³á áµááž á°áá
አá áµááááá¢",
]
documents_embeddings = model.encode(
documents,
batch_size=32,
is_query=False, # Ensure that it is set to False to indicate that these are documents, not queries
show_progress_bar=True,
)
# Step 4: Add document embeddings to the index by providing embeddings and corresponding ids
index.add_documents(
documents_ids=documents_ids,
documents_embeddings=documents_embeddings,
)
Note that you do not have to recreate the index and encode the documents every time. Once you have created an index and added the documents, you can re-use the index later by loading it:
# To load an index, simply instantiate it with the correct folder/name and without overriding it
index = indexes.Voyager(
index_folder="pylate-index",
index_name="index",
)
Retrieving top-k documents for queries
Once the documents are indexed, you can retrieve the top-k most relevant documents for a given set of queries. To do so, initialize the ColBERT retriever with the index you want to search in, encode the queries and then retrieve the top-k documents to get the top matches ids and relevance scores:
# Step 1: Initialize the ColBERT retriever
retriever = retrieve.ColBERT(index=index)
# Step 2: Encode the queries
queries_embeddings = model.encode(
[
"ášážá¥á³ á¥á áá ááá á€áµ á á°á¡á¥ á±á³á áá ášá°á£ááá ášáŠá áá£áªá« áááᥠááááµ á á«áá",
"ášá°á°áááá ášáá¬áµ áááá¥áá¥á ášá¥á³á° ááá« ááááµ á á áá ááá"
],
batch_size=32,
is_query=True, # # Ensure that it is set to False to indicate that these are queries
show_progress_bar=True,
)
# Step 3: Retrieve top-k documents
scores = retriever.retrieve(
queries_embeddings=queries_embeddings,
k=10, # Retrieve the top 10 matches for each query
)
Reranking
If you only want to use the ColBERT model to perform reranking on top of your first-stage retrieval pipeline without building an index, you can simply use rank function and pass the queries and documents to rerank:
from pylate import rank, models
queries = [
"ášážá¥á³ á¥á áá ááá á€áµ á á°á¡á¥ á±á³á áá ášá°á£ááá ášáŠá áá£áªá« áááᥠááááµ á á«áá",
]
documents = [
[
"á áµááᜠá°á« áá¢áµá®áµá« ááááᜠášááœá áµááá á áááááµ ášáá«ááá á áá³á á©á£áá« á°á£á£áª áá¥á«áœ ááᢠáááá«áá á ááá á«á°ášáá áá³á á á¥á«á ášá ááŽááºá«á á¢áá°ááááµ áá á á¥á¥á
áá°á³á°á«áᢠá áµááᜠášá ááµ áá ááµ á¥ááá³ ááᢠá ááªá« á¥á á»áá áµáááá³á°á©á áµ áŽáááá á¥á áá ááªá« áµáááášá ááá³ á¥ážáŽ á áá á áááá®á³áá¢",
"á ááášáá á¢áµá®áµá« ááá ááµá« áá áဠáášá³ á ááá 12 áá ááᜠáá ášá³á ášáááá¥áµ á áááááµ ááµá« á°áááµ á ááá á ášáá á áááá³ážá áážáá«ážáá áááªáᜠá ááášá±á¢ ášá£ááá áááµ ááá® ášá€áᣠášáµáá
ááµ á¥á ášáá¥á á á°á£á°á¥ á¥á«áᜠá ášá á«á£á¢á«ážá á¥ášá°ášááá á ááááážááá áá¶áŒ á¬á á°ááášááá¢",
"ášááᥠá°áá«á®áœ ááá á€áµ á á£á á¥á ášáá á®áᎠá°á¥á³á¢ ášáá á©áµ á á¶ áááµá²á«á á³á°á á¥á ášá áá« ááá ááá á€áµ á á£á ášáááµ á á¶ á®áááµ á§á«áá ášááá² áá° áááአáášáá« á€áµ áááá«ážáá á á áážá á°ááá©á¢",
"ášá°á°ááá áá¬áµ áááá¥áᥠá áá á áá ááá á¥á³áµ ášáá¬áµ ááµá¥ á²áá á³áá·áá¡á¡ ášáá¬áµ ááµá¥ á¥á³áµá ááµ ášáá°áá á¥áááá± áᬠááá³áá 11 á°ááµ ááµá ášášá£áµ ááá³á³ á ááášá°áµá°áá áááá ášá ášá£á¢á áááªáᜠá¥á á£ááµáá£ááµ áá¶áŒ á¬á á°ááášááá¡á¡ á ááµ ášáá«ááá¥á á¥á³áµ áá ášá°á£áá á¥áááá± á ááá áá¢ášá± (áá 03) á±áá» áášá³ á°ááá¶ áá á áášá°á±á ášááá¹áµ ášá ášá£á¢á ášá áá á¥ááᜠášááá ááá³á³ á á°ášá᪠á ááªá«á á°ášá᪠ááá³á³áᜠáá³ášáµ áá¥áá á£á áážáá¡á¡",
"áš15 ášá°á£á á©áµ áááá¥á³áµ ášážá¥á³ á¥á á ááá á€áµ á á£ááµ áá«ášá áµáááµ ááᥠá áá ášá áµáᜠá á°á£á¥ áá á ášáá³á áá³á¡á á°ááááᢠášáá³á áá³á¡ á«ááá ášáµáá áµáᜠáááœá°á
ášáá«áµáááá áá
á°áá ááᢠáµáµáµáµ ááá«áµ áááµá á©á²á«á£ á»ááᣠá áááªá«á£ áŽá« áá®áᣠá¶ááá« á¥á ááªáµá³á áµááž á°áá
አá áµááááá¢",
]
]
documents_ids = [
[1, 2, 3, 4, 5],
]
model = models.ColBERT(
model_name_or_path="rasyosef/colbert-bert-amharic-medium",
)
queries_embeddings = model.encode(
queries,
is_query=True,
)
documents_embeddings = model.encode(
documents,
is_query=False,
)
reranked_documents = rank.rerank(
documents_ids=documents_ids,
queries_embeddings=queries_embeddings,
documents_embeddings=documents_embeddings,
)
Evaluation
Metrics
Col BERTTriplet
- Evaluated with
pylate.evaluation.colbert_triplet.ColBERTTripletEvaluator
Metric | Value |
---|---|
accuracy | 0.9757 |
Training Details
Click to expand
Training Dataset
Unnamed Dataset
- Size: 76,474 training samples
- Columns:
query_id
,passage_id
,query
,positive
,negative_1
,negative_2
,negative_3
, andnegative_4
- Approximate statistics based on the first 1000 samples:
query_id passage_id query positive negative_1 negative_2 negative_3 negative_4 type string string string string string string string string details - min: 25 tokens
- mean: 30.17 tokens
- max: 32 tokens
- min: 25 tokens
- mean: 29.79 tokens
- max: 32 tokens
- min: 6 tokens
- mean: 16.06 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- Samples:
query_id passage_id query positive negative_1 negative_2 negative_3 negative_4 0ca6be67788e87a3c1d4719a9b75fbac
84e77970cceefd0e0f5ee539e4064239
ášáá áá áááŠáœ ááá áááá« á® ááµáá á ááá á á©ááµá® áááµáááᥠá¥ášá°á°á« ááá á°ááá
á á²áµ á á á£á£ ááµášášá 12ᣠ2013 (á€á.á¢.á²) ášáá áá áááŠáœ ááá áááá« á® ááµáá á ááá á á©ááµá® áááµáááᥠá¥ášá°á°á« ááá á°ááážá¡á¡ášáá á£á á á±áªáá á¥á áµáááµ áááªá« ááá á á¶ ááá á ášá á¥áá³ááµ ášáá áááŠáœ ááµáá á áá á á áá á±áªáµá¶áœ ášááá á áááµášá á ááášá£ášá¥ á á©ááµá® áááµáááᥠáµá«áᜠá¥ášá°á°á« áááá á°ááášááá¡á¡á áá áááµ ášáá°á ášá±áªáµáµ áá°áµ ááá©á ášá°ááá©áµ á á¶ ááá áá á ášááá á áá á á£á¶áœ á¥ášáµ áá á¥áááá¡á¡á áá á ášáá áá á°áá á ááá ášá±áªáá ááá áš98 ááášá á¥á á áá áááá±á ášáá ááááµáµ á®ááá¬áœá áášá á«áááá áášá á«áááá³áá¡á¡ášáá áá áááµá á áµá°á³á³áª á á¶ á¥ááá ááᎠá á á©áážá áá ášá áá«á³ ášá±áªáµáµ ááµá áŠáœ ááá áááá áááááá¢á°áá á²á á á á£á áᣠáááœá£ ášá°áá¥á® á¥á á°á á°á«áœ ááµá áŠáœá áá áá ááᥠá¥áá²á°ááá á¥áµá á ááá á á€ááá ááá á¢á®áááá áá á á«á á¥áµááµ áá ášáá°á áµáá» á«áá ááááá áááááá¡á¡
á á²áµ á á á£á¡- á áá«á á£á áá á¥áŽá¶áœ á³áá ášáá á³áášáá± áá áᥠáá°á áᣠáá á á á ááá£á áµáááµ ááµá°ááá á¥áá°ááᣠá°áááá¡á¡ášá¢á¬á» á ááá áááá«áµ á ááµášá ášá°áááá á€ááá¢áœá á¥á á£áá áµáááµ á á¢ááá¢áœá
áá¥ášá á áá á°ááá á á°ášáá°á áµ áá áµ ášá¢ááŽáª á£á áá á±áªáá áááµáµá á¶áá°á áá©áµ á«á³á á¥áá°ááááµá£ á áá«á á£á áá
á¥áŽá¶áœ á áááᣠá áá¥áá áµáááµá ášááá ááá ášáá«á»áá© á³áá á¥á á¥á á¥áááµ áážáá¡á¡á¥ááá á á£ááá á¥áŽá¶áœ á á áá£á¡
á°áášá£áአáá áá á°áá á£áááµá£áá áᥠáá áᥠáµáµáµá á¥á á¥áµááµ ááá á áá á«áá áµáááµ áá á ááá¡á¡áááµáŽá ááµáªá« á€á±á ášáááá ášá ááªá± á£á áá á¥áŽá¶áœ ášááášá£ášá¥ á£ášáá á á á ášááááµ áµá«áᜠá¥á«ášááá áááá
ášá áááµ áááµáµá¯á£â¹â¹áá áµáááµá á£á áá á¥áŽá±á á³áá áá á³áášááµ áá°á áá£áá á á á ááµá°ááá ááá£ááâºâºá¥áááá¡á¡ášáŠá®áá« ááá áááµá ááá° ááµá°á³áµá á á¶ áœáááµ á á¥á²á³ á á á©áážáᣠá¢á¬á» á©ááá«á á ᥠá¥áá°áááá±á£ ášá°ááá£
ášáá á ášáá áá³ ášá ááµááµá ášáá°á£á á á£á á ááááá á á¥á«áá°ááá¡á¡ á á áá áá áµá ááá á¥áá á¥áášá°áŠáœ ášá«á³ážáá á£á á
ášááá áá ášááášá£ášá¥ á á°áá°á á¢á¬á»áá â¹â¹ášá¥á ááâºâº á áá á¥á«ášá ášá á¥áá°ááá á°ááášááá¡á¡ášá¢á¬á» á áá á ášá£á á á¥ášááá á°
á áᣠáá¥á ášááá á¥ááᣠá¥áášá°áŠáœá á ááŠáœ á°á³áµá á áá«á áá áášáá©á á«áµáááá¡áµ á á¶ áœáááµá£ áááµá®á á áá á á°áá
á¥á á á°áµá³ á áá« á¥áá°áášá á á áµá³ááááá¡á¡ á¢á¬á»á ášáá® ááᜠášá¢áµá®áµá«
á±á£ á£á áá á¥áŽá¶áœ á³áá ášáá á³áášáá± áá áᥠááá°á áá ááá á á á¥á áááµá°ááá ááá á áµá¥á¥á áá°á« á¥áá°ááᣠá áµáááá ááá¡á¡
ášá¢á¬á» á ááá áááá«áµ á ...á á²áµ á á á£á£ á³á á³áµ 29ᣠ2012 (á€á.á¢.á²) ášá ážáá³á£ á»á°áᣠá ážááµá¬á£ á¶ááᣠááªá«á ááá á᪠á áá á á°á£á á©áµ ááááµá³áµ áµáá áµ ášáµáá ááµá£ á³áááµá á£á á áµáá áµ (á©ááµá®) ášááá³á°áµ á ááµ áá á¥áá²áááᥠášááµáášá« á°ááµ ááá áµ áá áááá ášá ááµ á¥ááµá á¥á á á£ááµáá£á á áµá³áááá¢ášá£ááµáá£á ášá£á á á°áá«á᪠á á¶ ááážá ááá ášá ážáá³á£ á»á°áá á ážááµá¬ ášáááášá¶áœ á áá á á©ááµá® á¥áá²áááᥠá áá«á³ áµá«áᜠáášáááážáá á áµá³áá°ááá¢á á áá á°ááµá á áá á ááá³á± ášá°á ááᜠáá«á á ááµááµ á¥áá²áááᥠášááµáášá« á°ááµá á áµááá á¥áá¶áœ ááá áµ á°á áá á ááá ááá¢áµ áá á¥áá°ááá áááá»ážáá á¢áá ááá§áá¢á áá á ááááµá³á± áµáá áµ á ááá³á°áµ á ááµááµ á¥áá²áááᥠášááá°á ášáá ášá¢áµá®áµá« á ááµá°áá ášááá³á°áµ ášááá ášá°á ááᜠáá«á á ááµ ááááá¢ášá£á áá á±áªáá áááµáŽá ášá áᥠáááááµ á³áá¬áá°á á á¶ á¥áá°áá á°á³áá á á á©áážáᥠá¢áµá®áµá« á«ááµ ášá°áá¥á®á£ ášá³áªáᣠášá£á á áá¥áµá á á á á áá»á á á±áªáá ášáááááá á«á á á ááá ááá á°ááášááá¢áááá á á áá áá áµ 8 ášááá á³ááá á¥áá³áᣠá³áªá«áá á£á áá á áá¶áœ á á©ááµá® ááá«á áááᥠáá á°áášá á¥áá°ááá á ááááá¢ášá ážáá³á£ á»á°áᣠá ážááµá¬á á¶áá á áá á á©ááµá® ááááᥠáááªá· ášá±áªáá ášáá³áááá áᢠášáá³á°á á£á»áá ášá áá«á ášáµáá«á ááááœá á ááŠáœ áá áᥠášáá«áá«áá¥á ášáá«áµá°á³áµá á¥áá°ááá áá á ááá¢á¢áµá®áµá« á á©ááµá® á ááá³á°á± ášá°á ááᜠáá«á á ááµááµ á«áµáááá á»ážá á áááµ ášááµáá á°áá«á£ ášá¥áááµá£ áጠášáá áá á¥á ášáá³ áµáááµ áááážá áá³áááá¢
á áá á ᣠá á³á 30 /2006/áá¢á/ â á ášááá± á á³á 29 áá ášáášá ášá á á-ááááµá± ášáá°áá áµ ášá¥áá®áœ á¥áášá°áŠáœá á ááŠáœ á áá áá±áªáá á¢áá±áµáµáªá á¥áµááµ ášáá°á á áµá°áá አá¥áá°ááášá ášá£á áá á±áªáá áááµáµá á á¶ á áá á á¥á±áááµá áááá¡á¡áááµáµá© á á°áá áááá³ á¢áááááœá ááášá á¥áá°ááááµá€ ášá¥áá®áœ á¥áášá°áŠáœá á ááŠáœ á£á áá á áá£á áµá£ á áááá¥á á£á áá áááŠá»ážáá á ááá á áá á°ášá á³áá á ááµášá ášáááªá±á ášá±áªáá ááá ášáá³áááá ášá᪠áááᬠáᢠáá³á°á ááá£áá¡á¡ášá¥áá®áœ á¥áášá°áŠáœá á ááŠáœ á£á áá á áá¶á»ážáá á á¥á áááášáµ ášáá«áµáœá ášá£á á ááášááµ á ášááá á¥ášá°ááᣠáááá ášááááµ áááµáµá©á€ á áá¶á¹ á°á á¥áá áááªá áµáááµ á ááµá°ááá á á©áá ášááášá ááá³ ášáá áá á²á á°ááášááá¡á¡á á°ááá á á¶áá ááá 8áá ášá¥áá®áœ á¥áášá°áŠáœá á ááŠáœ á áá áášá á© ášášáá°á á¥áµáš á³á³á áááᜠá ááá áááá á ášáá«áµáœá á á á á¥áá³áážá ášáá«á³á áá á«á á ááဠá áá á á¶áá ááá áášá á© á°áá áµá á¢áµá®áµá« á¶áá á¥áá®áœ á¥áášá°áŠáœá á ááŠáœ á áá«á³ ááá®áœá á¥áá²á«áá á¥áá°áášá³ážá á áááဠááᜠááááœá ášá¶áá ááá ááá áµ á áá«á³ ášá°ááá® ášáááµ áááᥠá¥áá²á«áá á¥áá°áá«áµáœáážá áááµáµá© áááá«ážáá ááá³ á¢áááááœá ááášá ááá§áá¡á¡
âáᬠá á³áá áµáááµ ášááášá¥ášá ášá¥áááµ á áá á á áá á ááµááµ á á°áááá á áµ áá áµ ááâ á¶áá°á áá©áµ á«á³áá£áá á³áá¡ á¥á 11/2013 á.á (á á¥ááµ) âáᬠá á³áá áµáááµ ášááášá¥ášá ášá¥áááµ á áá á á©ááµá® á ááá á ááá³á°áµ áá«á á ááµááµ á á°áááá á áµ áá áµ ááâ á²á ášá£á á á¥á á±áªáá áááµáµá á¶áá°á áá©áµ á«á³á ááá¹á¢á¶áá°á áá©áµ áᬠá á á²áµ á á£á áá áá³ á¥ášá°ášá áš á áááá ášá¥áááµ á áá áá á°ááá°á áá¢áµááµá«áá«á ášá¥ááá± á°ášá³á®áœ ášá¥áá³á á á°ášá³áœá áááááµ á áµá°áááááá¢ášá¥áááµ á áá á ááá«áœá ášááá°áµ á¥á ášáááá ááá³á á áá áá á¥áááá¢á áá áá áµ ášá¥áááµ á áá á©ááµá® á ááá á ááá³á°áµ áá«á á ááµááµ ášá°áááá á ááµ áááµ á ááá³á áá á«ááµá¢âá áᜠáᥠááá ášáááá á¢áµá®áµá«áá«á ášáá°ááµ á¥ááµ á¥á á áŠá¶á»áœáá á±ááµ á°ášáá áá€á°áášá£áá á á¥á á á¥áá áá°ášá³á áµáááµ áá»áá á áá¥áâ á áááµ á°ááášááá¢áááµáµá¯ ááá á°áá ááááá³á á áµá°áá á®ááœá á ááᣠááá á¥áá°ááá£á á á°áá£á ááá á áµáááá áá á«ááµá¢á¶áá°á áá©áµ á¥áááµá ášáá® á ááá«áœá ášá°áá«á© á á«á£á¢áᜠášáášá á© á£á ááá áá ááááá³á á áááµ á áášá á©á áµ áá áµ á áá« á¥á á áá°ááá ášááá á á£á áá á¥áŽá¶áœ ááá«ážáá á á á°ááá¢âáá£áª á«á áá á á ááááá áá áá á áµááµááá€á áá³áœá ááááœá áᥠá áááဠá¥ášá°á°áááá ášáá á«áœáá ááá«á ááá áá°ášá³á áµáááµ ááµášášá¥ áá á á á¥ááâ á¥áááá¢ášá£á á á¥á á±áªáá áááµáµá¯ á á°ááá ášáááááµ á á£á¶áœá á¥á ášáµá á¥ááµá á á£á¶áœá ááá á ááµááµ á ááᣠáá°áá á ááá£á á áááµ á°ááášááá¢âááá ááá áá á á ášáá£áá á ááµá¡ á ááá© á°áᜠá°áá£á á ááá áá...
- Loss:
pylate.losses.contrastive.Contrastive
Evaluation Dataset
Unnamed Dataset
- Size: 4,000 evaluation samples
- Columns:
query_id
,passage_id
,query
,positive
,negative_1
,negative_2
,negative_3
, andnegative_4
- Approximate statistics based on the first 1000 samples:
query_id passage_id query positive negative_1 negative_2 negative_3 negative_4 type string string string string string string string string details - min: 25 tokens
- mean: 29.29 tokens
- max: 32 tokens
- min: 25 tokens
- mean: 29.88 tokens
- max: 32 tokens
- min: 6 tokens
- mean: 15.88 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- min: 32 tokens
- mean: 32.0 tokens
- max: 32 tokens
- Samples:
query_id passage_id query positive negative_1 negative_2 negative_3 negative_4 000020ad079f13ca77c92b6fa6ebfda5
ab51b3930d461d5743e6b13b01263f91
â¹â¹ášá áá áášáášá« á á«ááµ á°ááœáŠ á¥áá° á°áá«á®áœ ááá á€áµ áááá« ášáášááá á áá°ááâºâº ááá«á á³áá« ášááµ
ášá áá áášáášá« á á«ááµ á¥áá«á á°ááœáŠ ášá á áá ášá°áá£á á ááá á«áá áµ á¢ááá á¥áá° ášá°áá«á®áœ ááá á€áµ áááá« ášáášááá á¥áá³áááᣠášáŠá áááᜠá á áá á€á³ ááŠá á¹á ááá«á á³áá« ášááµ á°ááá©á¡á¡á á áá« á¥áá«á áááá áááá¥áµ áá ášá°á á áááœá á á£á á á³á ášá°á ášá°ášá ášáá áŠáµá°ááá ášá á«ááµ áá áááá«áµ á ááµášá á á°áááá ášááááµ ááµášá (á²áááášá)ᣠâ¹â¹ášá¢áá²áª áášáášá« á á«ááµ ášášáµ ááŽáµ?âºâº á áá áááµ á¥áá³á áœáá á«áášá¡áµ ááá«á á³áá« ášáášáášá« á á«ááµ á áá£á¥á£ ááµááµá á áá ášáááá áµá á°ášá á°ááµáááá¡á¡áá°á á²á á°ááá á«ážááá ášá¢áá áŽá á á«ááµ ášá áá áášáášá« á á«ááµ áá ášáµ á¥áá°áá á áµá³áá°áᣠáááá£á á á²á£á áš30 áºá á áá áá£á á³áá®áœ á¥áá²ááá± ášá°á°ášáá áµ áááá«áµ á¥áá«á á áµá°ááœáŠá ááá áášá á¥áá°áá ááážááá¡á¡ â¹â¹áá³áá®áœá áá áá áá«á®áœ áá³áá ášá£áµ áá³á ášáá áš á¢ááá áááᥠá¥á á á²á£á ááµáááá€âºâº á áááµ ášááá¹áµ ááá«á á³áá«á£ á áášáášá« á á«ááµ á ááµá°á á°á³áµá ášáá á«ážá á¥áá á¥áášá°áŠáœ á á²áµ á á£ááµ á áááááᣠášáááá áá ášáá á°ááá áœáá³á áá« ášáá á«ážá ášá°áá á á«ááµ á á£ááµá á³áááá áµ á á«áá± á¥áá° á á²áµ áá°á«áá±á á á¥á«áá°ááá¡á¡ á áá á± á«áá°ááá±áµ ášááááµ á³áá®áœ áá áááµ ááášá á¥áá°á°ááá°á£ á á ááá© á°áá áááᜠá¥áá á°áááᜠáá áááµ ááášá á¥áá²ášáá áá°ášáá á áµá³áá°ááá¡á¡ á¢áá áŽá ááµá¥ ášá°áá ášá áášááá á áá á á°á°ášáá ášá°ááµá¶ á¥áá áµáᎠáá ášáµ ášá á«áá± ááá ášáá á© áœáá®áœá á áµá°á³á°áŠáœ áááá³ážááá á ááµá°ááá¡á¡ á á²á± ášá á«ááµ ááá£á³ áá áááá¥á³á á°ááá®ááœá ášáá«á³á«á£ ášáášáášá áááá ášááá°áá áá ...
ááááá á°á á áá ášá°ááá° áá£áªá« á áááµ áááµ áá°á¥ ááµá¥ ášááµáááᥠááŽá³ á áá áµášá áá áášáášá« á á«ááµ á á£ááµ á áµá°áá ááᜠá ááá áááá¥á³áµá á ááŽá«á áááá¥áµ ášá°á°á«á áá á áµášá£áª á á«ááµá ááá°áŠáœ á¥áá²á³á á ášááááµáážáá ášáŠá áá£áªá« á á«á«á á áááµáá ášáá á áá ááᣠášááᥠá°áá«á®áœ ááá á€áµ á áá«á³ áá»á»á«ááœá á ááµášá á áá°áá¢á áá áááá°á¥ ášááááµ ášáŠá áá£áªá« ášá³á á ááááá á°á ášá³á ááá áá£áªá« á áááµ áááµ ášáá áá°á¥ ááµá¥ á¥áá²á«áµáááá¥á á áµáá³á áµááá áááᢠášáŠá áá£áªá« á áµá°á³á°áá áá¥á¥á ášáá áµá«á ášá°á°á á áá á áá áá á áµášá£áª áááá áá áµááá ášáá°á¥ á²ááᣠá áá á áá ášáµ ášáá°á«áá ášááá áááµ á®ááœááœá£ ááá»á£ ášáá°á«áá ášááá áášáá« á€á¶áœ á áµá°á³á°áᣠášááŽá«áá ášááá á á áá ááဠáá á°áááµá ááµá á¢á®ááœá£ ášá¢áµá®áµá« á±á á¥ááµá³áµ áááµá á¥á á á£áá¥áá£á áááážá á áá á°áááá·áá¢á¥ááá á á«ááµ áá³á ááážá ášááœááážá ášáŠá áá£áªá« áááá¶áœ áœáá¥á£ á áá¶áá²á á«ááá ááá ááᜠá áá¶áá²á ášáá á á¥áááᣠáŠáá¥á ááᜠá°á«á«á¥ áááᜠááá á¥áá°ááœá ášáá á áá á á ááᜠá°á£áµ á¥á ááášáá áá áá¢áááá°á¥ ášáááá°á ášáŠá áá£áªá« á ááµ áœáᥠááá á ááµ á áá¶áá²á á«ááá á á¥áááᣠááá á ááµ ááᜠá áá¶áá²á á á¥ááá á¥á» áááá ášáá ááášáá áá áᢠá«á³ážáá ááášáášáá ášá á«á£á¢á«ážáá á°á áááµ áááµá á á á á°ááá¶ ášáŠá áá£áªá« ášáá«áá£ážá á á«á£á¢áᜠáá᪠ášááá ášáŠá áá£áªá« ášá«á á°ááœá£ ášá«ááµ ášáŠá áá£áªá« á ášáá áá áááá°á¥ á«áá°ášá°á ášáŠá áá£áªá« ááááµ á¥áµášáá áµášáµá£ áá ášáá°á á áá á ááᣠášáá á°áá³ á ášá á«á£á¢á á¥...
ášá áá áášáášá« áááµáŽá ááᥠá³á á³áµ 23 áá 2013 á.á. á á°á á áááá«á£ ášááµá ášáµá«ááµáááµ áááµáµá á°á€á³ á/á® áá áá¥áš á¥ááá á¥ááá á áá«á³ áá³á°á«á áá®ááᜠááášá«ážááᣠá¥áá²áá á áá«á¶áœ áá°áá°á³ážáá á áµá³ááá¡á¡ášáášáášá« áááµáŽá ášááá á¥ááªáµ áááá« ááá á¥áááŽá ááá«á á°áµáᬠá á«áá á á°á¡áµ áááá«á£ ááááµá á ááášá ášáááá á á£á ášáá á©áµ áááµáµá áŽá€á³á á²áášá©á£ ášááá«áµá«áá ááášá ášáá©áµ á®ááá ášáá áá¥áš áá«á€áá ášáá® áááá ášá°áá°á°á£ážáá ášááááµ áááµá°á á áá«á®áœá áá®ááᜠááááµ áá á áµááááá¡á¡ááá«á áá®áá á áá«á³ ášááááµ ášáá°á á áá«á®áœá£ á¥áá²áá áá³á°á«á áá®ááᜠááášá«ážááá áá°áá°á³ážáá ááážááᢠá áµáá«á ááá áŠáááµ ááµá á¶ ášá°ážááá ááá ášáá±á áµá ášáá°á á áá«á®á¹á ášá°á¥áá áá á«á á á°áá«áᣠá¥áá³áá³áá á áááµ á ááá³ážáá ááአáášá¥á» áµáááá¥á«ážá áááášáµ á á³áᜠáááá á áµášáµá°ááá¢ášá áá áášáášá« á á«ááµá ášááŽá«á áááµ á°ááá á°á á áá°á±áµ áááá á áá«á¶áœ ááášá«ážááᣠá¥á áááµá áµ ááá°á á«ááááµ áá°áá°á³ážáá á¥áááŽá ááá«á á°áµáᬠá ááááá¢áááá á°ááµá¶á£ážáá ášá°á£ááµ á®ááá ááá áá¥áš ááµá áᣠá®ááá á¢áá«á áá¥áš ááµá áᣠá®ááá á áá£á¬á£ á®ááá ááŸá£ á®ááá ááá á¥á©áᣠá®ááá á áœá¥áᣠá®ááá á°áµáᬠáá¥áš ááµá áᣠá®ááá á®áááµ á«áá á©á£ á®ááá á°áá á¥ááá á¥ááᣠáá°á á®ááá á¥ááá á¶áá ááᜠá áµá á«áá°ááá¹ á á«áµ á®ááááœá áááµ ášáá á áá«á®áœ áááá á³á á²á á áµášáµá°ááá¢ášá°áášá©áµ á/á® áá á á°ášá᪠ááá á¥ááá (á¶/á)ᣠá®ááá áá¥ááá± áá¥áš ááµá áᣠá®ááá áá±áœ áááµá£ á®ááá á áá á°áá ááµá áᣠ...
á á²áµ á á á£á£ á á³á 3ᣠ2013 (á€áá¢á²) ášááµáá ášá¢áµá®áµá« ášáášáášá« á á«ááµ á áášáášá« á á«ááµ áá ášá°áážáá áá á°áµ á¥áá³áµáá£á á áµá³ááá¢ášááµáá ášá¢áµá®áµá« ášáášáášá« á á«ááµ á áá«á®áœ ááá£á áááá« ášá°á¡ á²áá ááááµáµ á¥áª á«á°ášááážá ášáášáášá« á°á«ááµ áá áááá« ááá áá ááá áááážáá ááážááá¡á¡á áááµ ášáá á ááµ ášááµá ášá á«ááµ á á£ááµá ášá á³á°á áááá á«áµá³áá±áµ á áá«á®á¹ á ááá áá á ááááá á¥áá°áá ááá³á«áµá ášá¥áá£á á¥áá±á áááá«áµ áášáášá« á á«ááµ áá á¥ááµ ááážáá áá á áááá«ážá á«áµášá±áµá¡á¡ášáášáášá« á á«ááµ áááá© á²áá°á ášáášá áááᥠášáá°á£ ášá°áá ášáá°á áááá á áµá³áá°á á á á«áá± áá ášá°áááá á¥ááµ á¥á áá á¥áá³áµáá£ážáá á¡áµá á¥áµášáá°áá°áµ áµášáµ á á¥ášá áááááµ ááá áááážáá á áááá«ážá á ášááá ááá¢á á áá áá á ááá ášáááªá± áááᜠáš274 á áá á ááá«ááœá áá á áááá³ááµ áá ášáááá áµáá á± á ááµá¡á ášá ááµ ááášá á áá ášá á«ááµ á á£ááµ á¥áá³ááµ ášá¢ááŽáª áášáášá« á°á«ááµ áᜠá«áááá áášá á«áááá³áá¢
áš21 áááµ á áá ášáá á€áá á°á áááá°á¥ ášááááµ ášáŠá áá£áªá« áááµ á ááá£áµ áá³á á ááœááá áŠá áá£áªá« áááµá á áµáá ááá°áá© ááá ášáááµ áááµ áá°á£áášá áá áášáášá« á á«ááµ á á£ááµ á áµá°áá ááᜠá ááá áááá¥á³áµá á ááŽá«á áááá¥áµ ášá°á°á«á áá á áµášá£áª á á«ááµá£ áá³á á ášááœááµá ášáŠá áá£áªá« ááááµ ášáááµá ášáá áá á°á áá áááááµ áášá ᢠášáá áá ášá°áááá á ááŽá«á á á áá ááဠáá á¥á á á°áááš ášááá ášáá³á© áá ášá°ááá ášáŽááá ááááµ á£áážá ášá£ááá«áᜠá¡áµá á²ááᣠášáá á°áá± á°á áá á á áá áá áµ ášá£ááµáá» á á«ááµ áá ááááµ á¥ášá°á°ášáá áµ á¥áá°ááá ááá®áœ ááážááᢠáªááá°á á«ááá ášáá ášáá á°ááµ â¹â¹ášá¢áµá®áµá« ááŽá«áá áŽááá«á²á«á áªáá¥áá ášáŠá áá£áªá« áá¥á¥á á áá âºâº ášáá áá áªá« ášá°á°á á á²ááᣠášáŠá áá£áªá« áá¥á¥á ášá áááá ášááá¥á á°ááá áá¥á³ áááµá á á ᣠá¥áá²áá ášáááœáá ášáááŠáœá áá¥áµá á°á áááµ áááµášá á á áµááá áááá á ááááᥠášá°ášáá áááá ášá°áá± ááá¢á« á«áµáááá£áᢠá áášáá ááá°áŠáœ ášá³á áážá ášáŠá áá£áªá«áᜠášá á¥ášá°á°á¡á á°ááá áá¥á³ áááµá á á á°áá£á á¥á» ááá ášáá»áá áµá á á á«á ááá á á áµááá áá á áááá±á£ á¥áá²áá á á¥á« áá á£á áááœá á á á«á®áœ á«áá°ážáá áá³á®áœá á áááá áá áá°áááá áá¥ááµ á«áá á¥áááµ ááá á á ááµááá áá ááááá±á ášáá á°áá± ááá¢á« á áááŸáœ á«áµášá³áᢠášáá áá ááá¥á³ á áµášá£áª á á«ááµ ášááááµ ášáŠá áá£áªá« ááááµá á¥ááµá ášáá°ááá á²ááᣠášáá (áá¥á³) á áµášá£áª á á«ááµ ááááá ášáá áµááá á á«á·áᢠâ¹â¹áá á áµášá£áª áááµ ášáá°á«áá ášááá áááµ á®ááœááœá£ ášáá°á«áá ášááá áášáá« á€...
- Loss:
pylate.losses.contrastive.Contrastive
Training Hyperparameters
Non-Default Hyperparameters
eval_strategy
: stepsper_device_train_batch_size
: 32per_device_eval_batch_size
: 32learning_rate
: 1e-05num_train_epochs
: 4fp16
: True
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
: 1e-05weight_decay
: 0.0adam_beta1
: 0.9adam_beta2
: 0.999adam_epsilon
: 1e-08max_grad_norm
: 1.0num_train_epochs
: 4max_steps
: -1lr_scheduler_type
: linearlr_scheduler_kwargs
: {}warmup_ratio
: 0.0warmup_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
: Truefp16_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
: Nonehub_always_push
: Falsegradient_checkpointing
: Falsegradient_checkpointing_kwargs
: Noneinclude_inputs_for_metrics
: Falseinclude_for_metrics
: []eval_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
: Falseaverage_tokens_across_devices
: Falseprompts
: Nonebatch_sampler
: batch_samplermulti_dataset_batch_sampler
: proportional
Training Logs
Epoch | Step | Training Loss | Validation Loss | accuracy |
---|---|---|---|---|
0.4184 | 1000 | 0.5172 | - | - |
0 | 0 | - | - | 0.9665 |
0.4184 | 1000 | - | 0.3057 | - |
0.8368 | 2000 | 0.3459 | - | - |
0 | 0 | - | - | 0.9700 |
0.8368 | 2000 | - | 0.2722 | - |
1.2552 | 3000 | 0.3008 | - | - |
0 | 0 | - | - | 0.9718 |
1.2552 | 3000 | - | 0.2513 | - |
1.6736 | 4000 | 0.2641 | - | - |
0 | 0 | - | - | 0.9731 |
1.6736 | 4000 | - | 0.2383 | - |
2.0921 | 5000 | 0.2426 | - | - |
0 | 0 | - | - | 0.9733 |
2.0921 | 5000 | - | 0.2323 | - |
2.5105 | 6000 | 0.2166 | - | - |
0 | 0 | - | - | 0.9748 |
2.5105 | 6000 | - | 0.2267 | - |
2.9289 | 7000 | 0.2164 | - | - |
0 | 0 | - | - | 0.9753 |
2.9289 | 7000 | - | 0.2236 | - |
3.3473 | 8000 | 0.1931 | - | - |
0 | 0 | - | - | 0.9753 |
3.3473 | 8000 | - | 0.2208 | - |
3.7657 | 9000 | 0.1975 | - | - |
0 | 0 | - | - | 0.9756 |
3.7657 | 9000 | - | 0.2203 | - |
0 | 0 | - | - | 0.9757 |
Framework Versions
- Python: 3.11.12
- Sentence Transformers: 4.0.2
- PyLate: 1.2.0
- Transformers: 4.48.2
- PyTorch: 2.6.0+cu124
- Accelerate: 1.6.0
- Datasets: 3.6.0
- Tokenizers: 0.21.1
Citation
@inproceedings{mekonnen2025amharic,
title={Optimized Text Embedding Models and Benchmarks for Amharic Passage Retrieval},
author={Kidist Amde Mekonnen, Yosef Worku Alemneh, Maarten de Rijke },
booktitle={Findings of ACL},
year={2025}
}