Downloads · 30 days
20
22% of all-time downloads
AhmedBarka/qwen3-embedding-0.6b-arabic-ecom-phase2
qwen3-embedding-0.6b-arabic-ecom-phase2 is a sentence similarity model from AhmedBarka. Use it when you need a score for how close two texts are. It is set up for sentence-transformers. The card lists the license as apache-2.0.
A LoRA fine-tune of Qwen/Qwen3-Embedding-0.6B, merged, for dense retrieval over Arabic e-commerce product names. It is the second of two fine-tuning phases and is the dense component of a system built for the PrestoAI…
Downloads · 30 days
20
22% of all-time downloads
All-time downloads
93
Public
Parameters
596M
1.2 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors1.2 GB · 99%
From the Hugging Face model README
A LoRA fine-tune of Qwen/Qwen3-Embedding-0.6B,
merged, for dense retrieval over Arabic e-commerce product names. It is the
second of two fine-tuning phases and is the dense component of a system built
for the PrestoAI Arabic E-Commerce Search challenge.
Qwen3Model, hidden size 1024, bfloat16.
This is the one thing worth knowing before using this checkpoint.
config_sentence_transformers.json declares a query instruction prompt, and
default_prompt_name is null, so model.encode(texts) applies no prompt. For
this checkpoint that default is correct and should be left alone. It was
fine-tuned in the no-prompt regime and adapted to it, so re-adding the
instruction at inference costs accuracy:
| checkpoint | prompt | dev nDCG@10 | short queries (<=2 tokens) |
|---|---|---|---|
| this one | none | 0.4968 | 0.3812 |
| this one | query | 0.4807 | 0.3608 |
base prestoai/qwen3-embedding-0.6b-arabic-ecom | none | 0.4291 | 0.2730 |
base prestoai/qwen3-embedding-0.6b-arabic-ecom | query | 0.4620 | 0.3414 |
The base checkpoint wants the opposite: it gains +0.068 on short queries from the prompt it declares but never applies by default. The two checkpoints therefore take opposite settings, and getting it backwards is silent, because nothing raises and the output still looks plausible.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("AhmedBarka/qwen3-embedding-0.6b-arabic-ecom-phase2")
model.max_seq_length = 128
# No prompt, for both queries and documents.
q = model.encode(["شاي احمر"], normalize_embeddings=True)
d = model.encode(["شاي احمر - تونسي"], normalize_embeddings=True)
Measured on the challenge's pooled benchmark, this model's top-50 has slightly better recall of judged-positive products than the lexical search engine's top-50 (0.6613 against 0.6557). It genuinely finds the right products.
It is a worse orderer than the lexical engine wherever that engine matched strongly, and using it to reorder strong lexical matches measurably loses score. In the system it was built for it is confined to generating candidates the lexical engine missed, and to supplying similarity features to a learned ranker. That placement, rather than the model's own strength, is what made it useful.
Trained on the challenge's own training pairs, which are published as
prestoai/arabic-ecom-data.
A second training phase over phase 1 was worth +0.011 dev nDCG while recall@10
stayed flat (0.4271 to 0.4274), so this checkpoint is close to saturated for
this data.
Full method, measurements and the failures behind them: https://github.com/ahmedbarka8/AI-Arabic-E-Commerce-Search-