CoolFace
Modelpublic

Datchthana/qwen2.5-thai-toxic-cpt

sourceHugging Faceapache-2.0updated 6mo agoView on Hugging Face
0likes7downloads
Model Card

Qwen2.5-3B — Thai Toxic Tweet CPT (LoRA)

Continued Pre-Training (CPT) ของ Qwen2.5-3B ด้วย LoRA บน dataset ภาษาไทย `tmu-nlp/thai_toxicity_tweet`

หมายเหตุ: โมเดลนี้ไม่ใช่ toxicity classifier — เป็นการ adapt model ให้เรียนรู้สไตล์และรูปแบบภาษาของ Thai tweet

Source Code : https://github.com/Datchthana1/Qwen-2.5-3b-thai-toxic-cpt


การใช้งาน

python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

BASE_MODEL_ID = "Qwen/Qwen2.5-3B"
ADAPTER_REPO  = "Datchthana/qwen2.5-thai-toxic-cpt"

tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL_ID)
tokenizer.pad_token = tokenizer.eos_token

model = AutoModelForCausalLM.from_pretrained(
    BASE_MODEL_ID,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)
model = PeftModel.from_pretrained(model, ADAPTER_REPO)
model.eval()

def generate(prompt, max_new_tokens=256, temperature=0.8, top_p=0.9):
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    input_len = inputs["input_ids"].shape[1]
    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_new_tokens=max_new_tokens,
            temperature=temperature,
            top_p=top_p,
            do_sample=True,
            pad_token_id=tokenizer.eos_token_id,
            eos_token_id=tokenizer.eos_token_id,
            repetition_penalty=1.1
        )
    return tokenizer.decode(outputs[0][input_len:], skip_special_tokens=True)

print(generate("รัฐบาลชุดนี้มัน..."))
Tips: prompt ที่ค้างกลางประโยคหรือมี ... ต่อท้ายจะได้ผลดีที่สุด

Training Details

Parameterค่า
Base ModelQwen/Qwen2.5-3B
MethodQLoRA (4-bit NF4)
LoRA rank (r)16
LoRA alpha32
Target modulesq/k/v/o/gate/up/down proj
Epochs3
Learning rate5e-5
LR Schedulercosine
Effective batch size16
Max length256 tokens
Optimizerpagedadamw8bit
Frameworktransformers + peft + trl

Training Results

EpochTrain LossEval LossToken Accuracy
13.0592.86441.9%
22.7182.73744.4%
32.721—44.6%

ข้อจำกัด

  • —เป็น next token prediction เท่านั้น ไม่ใช่ chatbot และไม่ตอบคำถาม
  • —ประโยคสมบูรณ์จะได้ output ว่าง เพราะ model generate EOS ทันที
  • —dataset มีภาษาหยาบและเนื้อหา sensitive — ใช้ด้วยความระมัดระวัง