CoolFace
Modelpublic

anonymousresearch123/deka-qwen3-emb-0.6b-multipos-fact-anompos

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
0likes26downloads
Model Card

deka-qwen3-emb-0.6b-multipos-fact-anompos

Full fine-tune of Qwen/Qwen3-Embedding-0.6B for Thai Supreme Court (deka) case retrieval.

  • —objective: multipos
  • —document register: fact (query side trained against fact text)
  • —best epoch: 8 (early-stopped on dev R@10 = 35.75)
  • —pooling: last token (left padding) + L2 normalize
  • —lr 2e-05, batch 16, tau 0.05, max_len doc 1300 / query 256, seed 42

Test results (full corpus, clean qrels)

eval registerR@5R@10R@50R@100ndcg@10mrr
user5.249.5233.8143.815.770.0805
lawer13.8126.1959.0570.4815.510.1809
fact21.933.3364.7680.022.110.266

Usage

Queries must carry the instruction prefix used in training; documents must not.

python
from sentence_transformers import SentenceTransformer

m = SentenceTransformer("anonymousresearch123/deka-qwen3-emb-0.6b-multipos-fact-anompos")
q = m.encode(["ลูกจ้างถูกเลิกจ้างโดยไม่บอกกล่าวล่วงหน้า"], prompt_name="query")
d = m.encode(["<คำพิพากษาฎีกา ...>"])
print(m.similarity(q, d))

Plain transformers:

python
import torch, torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer

tok = AutoTokenizer.from_pretrained("anonymousresearch123/deka-qwen3-emb-0.6b-multipos-fact-anompos", padding_side="left")
net = AutoModel.from_pretrained("anonymousresearch123/deka-qwen3-emb-0.6b-multipos-fact-anompos", torch_dtype=torch.bfloat16).eval()

INSTRUCT = "Given a legal case search query, retrieve relevant prior Supreme Court cases"
texts = [f"Instruct: {INSTRUCT}\nQuery: ลูกจ้างถูกเลิกจ้าง..."]   # query side only
enc = tok(texts, padding=True, truncation=True, max_length=1300, return_tensors="pt")
with torch.no_grad():
    h = net(**enc).last_hidden_state
emb = F.normalize(h[:, -1].float(), p=2, dim=-1)

Left padding is required — pooling takes the last position.

Training data

anonymousresearch123/deka-retrieval — splits train / eval / test. training_history.json in this repo holds the full per-epoch log and config.