Qwen3-Embedding-4B-Shqip
Kushtrim/Qwen3-Embedding-4B-Shqip is a finetuned Albanian-focused embedding model based on unsloth/Qwen3-Embedding-4B, optimized for semantic search / retrieval over Albanian text.
What’s new vs the base model
- Finetuned on Albanian newspaper-style content (Bujku) using topic → passage pairs.
- Intended to improve retrieval quality for Albanian queries and documents.
Model details
- Type: embedding model (not a chat / generative model)
- Base model:
unsloth/Qwen3-Embedding-4B - Primary language: Albanian (
sq)
Intended use
Use this model to embed:
- Queries (short text, questions, topics)
- Documents / passages (longer text, articles, chunks)
Then compute cosine similarity or dot-product for:
- semantic search
- RAG retrieval
- clustering / deduplication
How it was trained (high level)
- Base:
unsloth/Qwen3-Embedding-4B - Training framework: Unsloth (sentence embedding finetuning workflow)
- Dataset:
Kushtrim/bujku_topics_pairs - Training pairs used: 156,660 (anchor → positive)
- Objective:
MultipleNegativesRankingLoss(in-batch negatives) - Training pairs:
anchor: topic string (topics[])positive: correspondingfull_text
- Filtering:
- removed very short topics / very short texts during dataset creation
- during finetuning, examples were filtered to keep only rows where
positivefits the chosen training context length (max_seq_length)
- Finetuning method: LoRA adapters (feature-extraction task)
Training configuration (practical)
This model was trained with settings typical for embedding finetuning:
max_seq_length: 512- learning rate: 2e-5
- trained for a small number of epochs (step-based trainer; epochs converted to steps)
- batch size was tuned on an A100 80GB to maximize throughput while avoiding OOM
Model files in this repo
This Hugging Face repo may contain multiple artifacts:
- Merged weights (recommended for
from_pretrained(...)): uploaded to the repo root after merging LoRA into the base weights. - GGUF variants (for llama.cpp / Ollama): typically under
gguf/<quantization>/(e.g.gguf/q8_0/,gguf/q4_k_m/,gguf/f16/).
Usage
Sentence-Transformers (recommended)
from sentence_transformers import SentenceTransformer
import torch
model = SentenceTransformer("Kushtrim/Qwen3-Embedding-4B-Shqip", trust_remote_code=True)
queries = [
"Çfarë raportohet për ofensivën e shtatorit mbi Drenicë dhe pasojat ndaj popullsisë civile?",
]
docs = [
"""Agjencia AFP bën të ditur nga selia e NATO-s në Bruksel se kjo organizatë ushtarake ka shprehur shqetësimin e saj gjithnjë e më të madh në lidhje me keqësimin e situatës në Kosovë. Kjo agjenci citon një burim të NATO-s të ketë thënë se shqetësimi i tyre është shtuar javëve të fundit "për shkak të keqësimit të gjendjes në Kosovë, shtimit të dhunës si dhe shenjave të ekstremizmit nga të gjitha palët." Kjo agjenci citon burimet nga Brukseli se NATO-ja është duke përcjellë gjendjen në Kosovë me shumë vëmendje. Ndërkaq, agjencia Rojter citon burime të kësaj Aleance e cila i ka bërë thirrje Milosheviqit që menjëherë të fillojë dialogun me shqiptarët në përpjekjet për të gjetur një zgjidhje. Nëse vazhdon të keqësohet situata në Kosovë, jo vetëm që do të pengohet kthimi i Beogradit në bashkësinë ndërkombëtare, por njëherësh rrezikohet të hapet një konflikt në një zonë shumë të paqëndrueshme. (RIPRESS)""",
"""Pas dyzet e sa vjetësh shqiptarët diskutojnë për çështjet politike dhe për problemet shqiptare Dr. Ibrahim Rugova, kryetar i Lidhjes Demokratike të Kosovës, dr. Ali Aliu, anëtar i kryesisë, gjatë qëndrimit në Zvicër, ku morën pejsë edhe në mbledhjen e zgjeruar të Degës së LDK-së dhe të Këshillit për Ndihma për Kosovë në Zvicër, patën rast të takohen me dr. Gramoz Pashkon, njërin nga liderët e Partisë Demokratike të Shqipërisë, me të cilin zhvilluan biseda rreth përvojave dhe bashkëpunimit të dy partive. Ata së bashku i bënë një vizitë edhe shkrimtarit tonë me famë botërore, Ismail Kadaresë, në Paris. Me të kthyer nga Parisi, pas bisedave dhe takimeve me dr. Gramoz Pashkon dhe shkrimtarin Ismail Kadare, me dr. Ibrahim Rugovën bëmë një intervistë, me ç'rast Rugova iu përgjegj pyetjeve që kanë të bëjnë me rëndësinë e këtyre takimeve. PYETJE: Zotëri Rugova, si kryetar i Lidhjes Demokratike të Kosovës, duke u angazhuar për zgjidhjen e çështjes së Kosovës, gjatë këtyre viteve keni kontaktuar me personalitete të larta pothuaj nga mbarë bota, por jo edhe me përfaqësues zyrtarë të Shqipërisë. Si e shpjegoni këtë fakt? PËRGJEGJE: Kjo mund të shpjegohet fare thjeshtë. Izolimi dhe ai Muri i Berlinit që ekzistonte mes shqiptarëve, pra, nuk ka lejuar që të kemi kontakte me përfaqësuesit e Shqipërisë. Natyrisht kanë ndikuar edhe çështje e faktorë të tjerë. Por, mendoj se tash e tutje këto kontakte do të vazhdojnë. E, po ashtu, bota ishte e interesuar për ne dhe ne i shfrytëzuam ato kontakte, që i patëm dhe që i bëmë deri tashti. PYETJE: Ç'mund të thoni për takimin tuaj me dr. Gramoz Pashkon, njërin nga liderët e Partisë Demokratike të Shqipërisë? PËRGJEGJE: Ishte një takim me interes si për Partinë Demokratike të Shqipërisë, po ashtu edhe për Lidhjes Demokratike të Kosovës. Për herë të parë u takuam, kështu, pas dyzet e sa vjetësh: shqiptarët që diskutojnë për çështjet politike dhe për problemet shqiptare. Në biseda, siç e dini, ishte edhe dr. Ali Aliu nga ana e Kryesisë së LDK-së. Ne u morëm vesh që ta vazhdojmë bashkëpunimin dhe për çështjet e përgjithshme shqiptare të vendosim së bashku. Dr. Ibrahim Rugova PYETJE: Ju, së bashku, vizituat edhe shkrimtarin Ismail Kadare në Paris? PËRGJEGJE: Po. I bëmë një vizitë edhe shkrimtarit Ismail Kadare në Paris. Patëm një takim me të dhe zhvilluam biseda. Ky ishte një çast i rëndësishëm, që së bashku i bëmë një vizitë shkrimtarit tonë. Natyrisht, njohëm edhe pikëpamjet e tij për momentin aktual në Shqipëri, në Kosovë dhe për proceset e ndryshme demokratike shqiptare e evropiane. PYETJE: Ç'duhet të bëjnë partitë opozitare të Kosovës dhe të Shqipërisë që t'i zgjidhin çështjet shqiptare? PËRGJEGJE: Së pari duhet të bashkëpunojnë; janë hapat e parë, sepse deri para pak kohësh nuk kishte parti të tjera në Shqipëri, përveç Partisë së Punës. Natyrisht, ta vazhdojmë bashkëpunimin, të merremi vesh për çështje të përgjithshme dhe të reagojmë sipas zhvillimit të situatës. T'i kemi edhe qëndrimet konkrete që duhet t'i marrim në të ardhshmen, duke u nisur nga momentet edhe situatat politike që i kemi, që vijnë dhe që do të na imponohen. Bisedoi: Mehmet EMERLLAHU""",
"""REPORTERI YNË NË DRENICË U vranë Azemi e Shote Galica të ditëve tona Me ofensivën e shtatorit mbi Drenicë, ushtria e policia serbe nëpër pyje, duke u maskuar edhe me uniformë të UÇK-së, masakruan civilë shqiptarë, që ditën kritike largoheshin nga shtëpitë e tyre ose ishin strehuar në male Mursel Hajdari me të shoqen pranë shtëpisë rrënojë në Dobrashec Të premten, më 26 shtator ushtria serbe kishte ndërmarrë një ofensivë të fuqishme mbi Poklek të Vjetër e Vasilevë të komunës së Gllogocit, kurse në këtë rreth ishin gjetur edhe Korrotica e Epërme dhe Dobrosheci. Sulmet ishin të forta dhe me të gjitha llojet e armëve që kishte armata serbe. Në atë periudhë kohore, banorët e këtyre fshatrave shumica kanë qenë nëpër shtëpi, kurse në Vasilevë ishin edhe 298 refugjatë të fshatrave tjera, pos 698 banorëve, sa i ka ky fshat. Sulmet nga distanca vinin prej drejtimeve Poklek i Ri, Ferronikel, dhe kodrina e quajtur \"Rrezja\". Banorët në atë periudhë kohore kishin filluar të largoheshin nga rreziqet, pjesëtarët e UÇK-së dhe populli në atë fshat nuk bënë rezistencë, sepse frikësoheshin nga masakrimet e vrasjet e popullsisë në përmasa. Pavarësisht pse nuk pat rezistencë ushtria serbe vazhdoi të zbatojë skenarin për djegie, vrasje dhe plaçkitje. Ajo në male vendosi grupet kriminale të cilat masakronin popullsinë civile, e cila asokohe bënte përpjekje të largohej nga zonat e luftimeve. Meqë ato ditë kishte luftime gati në të gjitha fshatrat e komunave Gllogove e Skënderaj, të tilla grupe kriminele ushtria serbe kishte vendosur edhe në bjeshkën e Qyqavicës, në fshatin Dobrashec, në malet e Krojkovës, të Abrisë. Dhe gjatë luftimeve 4-5 ditëshe u bënë masakrat në malet ndërmjet Korroticës dhe Vasilevës, në Dobrashec e Gllanasellë (ku u vranë njerëzit në shtëpi të vet), në malet e Qyqavicës u masakruan 14 banorë të fshatit Galicë, në Abri të Epërme u masakruan 18 gra e fëmijë dhe të moshuar, sikur edhe në Krojkovë ku u vranë tetë shqiptarë. Edhe në fshatin Krojkovë një grup i ushtrisë serbe kishte veshur rrobat e UÇK-së dhe kishte vrarë qytetarët civilë, të cilët bënin përpjekje të strehoheshin në pyllin e Kosmaqit. Masakrat dhe vrasjet e qytetarëve civilë, bashkë me djegiet dhe shkatërrimet e shtëpive e të pasurisë, që janë në funksion të spastrimit etnik, ndjekjes së popullsisë, frikësimit dhe të krijimit të psikozës kolektive për ikje nga vatrat, ishin strategji e ushtrisë serbe në ofensivën e shtatorit, mbi fshatrat e Drenicës. Ta zëmë banorët të Poklekut të Vjetër të cilët u vunë në përpjekje për t'u larguar nga shtëpitë e qe humbën jetën janë Sadri Muqolli, i cili u masakrua, Naim Muqolli, i vrarë, kurse janë plagosur edhe fëmijët Fatmir F. Muqolli dhe Bislim F. Bucolli. Këta fëmijë në largim e sipër janë plagosur nga snajperët serbë. Pas këtyre pasojave në njerëz, në këtë fshat janë vrarë mbi 30 krerë kafshë, kurse janë djegur mbi 80 shtëpi. Në fshatin Vasilevë, prej 68 shtëpive janë djegur e dëmtuar 60 prej tyre, kurse Zeqir Berishën, ushtria serbe e ka zënë në shtëpi, e ka rrahur e maltretuar deri në alivanosje dhe së fundi ia ka djegur shtëpinë. Nga kjo shihet se 98 për qind e banorëve të këtij fshati sot nuk kanë ku të kthehen. Ndërsa, në fshatin Dobrashec sulmi pat filluar më 23 shtator, ku janë goditur shtëpitë e fshatit, kurse më së keqi kanë pësuar lagjet Hajdaraj, Shishani dhe Avdyli, ku janë rrënuar gati tërësisht shtëpitë. Gjatë sulmeve pesëditëshe janë goditur dhe shkatërruar gati tërësisht lagjet Mehani e Lladrovci të Gllanasellës dhe shumë shtëpi në këtë fshat, pastaj Godanci dhe Gradica. Banorët e Dobrashecit dhe refugjatët që kishin qenë të strehuar në këtë fshat për tetë ditë me radhë kanë qëndruar në lugun e thellë të këtij fshati, pa ujë e ushqime, duke u përballur edhe motin me shi. Më pas ushtria serbe banorët i ka ndjekur edhe nga ky lug duke ua djegur edhe kasollet prej najloni, traktorët dhe veturat që i kishin marrë me vete. Zaten, kudo në male, në rrugë, rrugica dhe në fushat të Drenicës sot gjenë traktorë, vetura të djegura e kafshë të vrara. Pas dëmeve materiale, ka pasur edhe viktima në njerëz. Në Dobroshec janë vrarë Rifat Fejza(45), Nezir Avdyli (45) dhe Hasan Maloku (65), të gjithë civilë. Luftime të ashpra dhe rezistencë, pos në Dobrashec, ka pasur edhe në zonën e Gllanaselles, Gradicës dhe të Godancit. Në afërsi të shkollës fillore \"Rilindja\" të Dobrashecit, duke rrezistuar ballë për ballë me forcat pushtuese, është vrarë Fehmi Lladrovci me gruan e tij Xhevën, të cilët ishin Azemi dhe Shote Galica e ditëve tona. Pozicioni i ushtrisë serbe dhe i makinerisë së saj të rëndë dhe ai ku qëndroi e rezistoi çifti Lladrovci nuk ishin më larg se 300 metra. Vdekja e tyre po përcillet me dhembje e pikëllim të madh, sepse konsiderohet si njëra ndër humbjet më të mëdha, pas vëllezërve Jashari. Tok me ta në istikam është vrarë edhe një vajzë me emrin Fatime (Hetemi) nga Shala, e cila shquhej për trimëri të rrallë. Ndërsa të tjerët që u vranë gjatë luftimeve në Gllanasellë ishin civilë. Fjala është për Hamit Lladrovcin (65) i cili u vra në shtëpi të tij sepse nuk deshi të largohej nga pragu i vet, Hafize Lluganin (70), Bashkim Krasniqin (20), Miftar Korrumelin (60). . Nga të dhënat shihet se ushtria serbe ka shpall luftë popullsisë civile, të cilën vazhdon ta ndjekë, ta vrasë pa dallim. Shumica e të vrarëve e të masakruarve janë gra, fëmijë e pleq. Stacionit shëndetësor në Dobrashec i mbetën vetëm oxhaqet Kjo familje e Zabelit të Poshtëm kthehet në shtëpi nga Qirezi Fotografitë dhe teksti: Zeqir BEKOLLI""",
]
q_emb = model.encode(queries, normalize_embeddings=True)
d_emb = model.encode(docs, normalize_embeddings=True)
# cosine similarity when normalized = dot product
scores = q_emb @ d_emb.T
print(scores)
# Rank documents by relevance (highest score = most relevant)
for qi, q in enumerate(queries):
# `scores` may be a NumPy array or a torch Tensor depending on your setup.
row = torch.as_tensor(scores[qi]).flatten()
ranked = torch.argsort(row, descending=True)
print("\nQuery:", q)
for rank, j in enumerate(ranked.tolist(), start=1):
print(f"{rank:>2}. doc[{j}] score={row[j].item():.4f}")
Ollama / GGUF usage
If you’re using Ollama, you can run a GGUF quantized variant (example shown for Q8_0):
- Model name (Ollama):
hf.co/Kushtrim/Qwen3-Embedding-4B-Shqip:Q8_0
Example request:
curl http://localhost:11434/api/embeddings \
-H 'Content-Type: application/json' \
-d '{"model":"hf.co/Kushtrim/Qwen3-Embedding-4B-Shqip:Q8_0","prompt":"Përshëndetje"}'
Tips for best results
- Chunking (often helpful): for long articles, you’ll often get better retrieval by splitting into smaller passages (choose chunk size based on your retrieval unit and
max_seq_length), embedding each passage, and retrieving at passage-level. For very short documents or when you always retrieve whole articles, chunking may not help. - Normalize embeddings if you plan to use cosine similarity (or dot-product on normalized vectors).
- Use consistent preprocessing for both queries and documents (same casing/cleanup).
Limitations
- Trained primarily on one domain/source (news-style OCR text); performance may vary on other domains.
- OCR artifacts may exist in training data; robust retrieval usually benefits from chunking and cleanup.
- This is an embedding model, not a generative chat model.
Citation
If you use this model in academic work, please cite the base Qwen3 embedding model and this finetuned variant.
- Downloads last month
- 4
Model tree for Kushtrim/Qwen3-Embedding-4B-Shqip
Dataset used to train Kushtrim/Qwen3-Embedding-4B-Shqip
Collection including Kushtrim/Qwen3-Embedding-4B-Shqip
Collection
15 items
•
Updated
•
5
