humanizerth-thai-12B-Q8_0-MLX
High-Fidelity Thai Text Humanization Model for Apple Silicon (MLX 8-bit)
humanizerth-thai-12B-Q8_0-MLX is a specialized 8-bit quantized MLX model for Thai text humanization. It removes artificial, overly-formal, and robotic "AI-sounding" patterns generated by LLMs (such as ChatGPT, Claude, and Gemini) and restores natural, conversational Thai phrasing while guaranteeing 100% retention of factual data, numbers, entities, dates, and pricing.
This model is a fused, standalone checkpoint fine-tuned on top of jialinyyzz/humanizer (which is built upon google/gemma-4-12B) using 10,000 clean, authentic, pre-LLM human Thai text pairs (from Wongnai restaurant reviews, Pantip forums, and Wisesight social media datasets).
⚡ Looking for an ultra-compact version? Check out chantra/humanizerth-thai-12B-Q4_0-MLX (~6.3 GB, runs smoothly on 8 GB & 16 GB Macs at ~45–55 tok/s).
🚀 Key Highlights & Capabilities
- Strips AI Boilerplate & Formal Cruft: Eliminates repetitive Thai AI patterns like "ในส่วนของประเด็นข้อมูลและรายละเอียดที่กล่าวถึงนั้น...", "จากการประเมินคุณภาพของสถานประกอบการแห่งนี้ พบว่า...", "ซึ่งเกี่ยวข้องกับ...", "ในด้านของ...", and "ตามรายละเอียดที่ระบุไว้ข้างต้น".
- Context-Aware Vocabulary Transformation:
Naturally replaces stiff, bureaucratic phrasing with everyday Thai terms:
- "สถานประกอบการคาเฟ่" ➡️ "ร้านคาเฟ่"
- "นั่งปฏิบัติงานนอกสถานที่" ➡️ "นั่งทำงาน"
- "ประยุกต์ใช้" ➡️ "ใช้"
- "มีความจำเป็นอย่างยิ่งที่จะต้อง" ➡️ "ต้อง"
- "เป็นอย่างยิ่ง" ➡️ "มาก / มากทีเดียว"
- 100% Hard Fact Retention: Preserves all prices, discounts, numbers, formulas, entity names, and specifications with zero factual drift or hallucination.
- Optimized for Apple Silicon:
Native 8-bit quantization (
q_bits=8,q_group_size=64), footprint ~11.8 GB on disk, runs at blistering speed (~32-40 tokens/sec) with low memory overhead on M-series chips (M1/M2/M3/M4/M5).
📊 Benchmark & Evaluation Results
1. 8-bit Full Benchmark (751 Held-out Test Drafts)
Evaluated across 751 held-out test drafts and a 100-sample head-to-head comparison against the upstream Base Humanizer model:
| Evaluation Metric | Base Humanizer (Zero-Shot) | humanizerth (Fine-Tuned 8-bit) | Status |
|---|---|---|---|
| Ref Token Jaccard (Similarity to Human) | 48.50% | 94.36% (+45.86% absolute) | 🟢 100% Win Rate |
| Median Verbatim Reuse (Lower is better) | 0.0820 | 0.0320 (-61% relative) | 🟢 Passed (< 0.22 target) |
| Hard Fact Recall Mean | 100.0% | 100.0% (751 / 751) | 🟢 Zero Fact Loss |
| Paragraph Retention | 99.70% | 99.90% | 🟢 Format Preserved |
| Foreign / CJK Token Leakage | 0 / 751 | 0 / 751 | 🟢 Clean Thai Output |
| Overall humanizerth Score | 0.8520 | 0.9934 | 🟢 Production Ready |
Performance Across Thai Genres (8-bit Full Test)
- Pantip QA (Forums / Financial / General Discussions): Fact Recall
1.000| Median Reuse0.025| Score0.991 - Wisesight Sentiment (Social Media / Comments): Fact Recall
1.000| Median Reuse0.025| Score0.989 - Wongnai Reviews (Food & Lifestyle): Fact Recall
1.000| Median Reuse0.041| Score0.999
2. ⚡ Comparison: 8-bit vs. 4-bit vs. Base Humanizer (100 Test Samples Benchmark)
| Attribute / Metric | Base Humanizer (Zero-Shot) | humanizerth (8-bit Q8_0) 🏆 | humanizerth (4-bit Q4_0) ⚡ |
|---|---|---|---|
| Hugging Face Hub | jialinyyzz/humanizer |
chantra/humanizerth-thai-12B-Q8_0-MLX |
chantra/humanizerth-thai-12B-Q4_0-MLX |
| Model Size on Disk | ~24.0 GB (BF16) | ~11.8 GB | ~6.3 GB ⚡ |
| Peak RAM Usage | ~26 GB | ~14–16 GB | ~7–9 GB |
| Target Hardware | 32 GB+ Mac | 18 GB / 36 GB / 48 GB Mac | 8 GB / 16 GB / 24 GB Mac |
| Generation Speed | ~22 tok/s | ~32–40 tok/s | ~45–55 tok/s |
| Hard Fact Recall (100 Samples) | 100.0% | 100.0% (100/100) | 100.0% (100/100) |
| Median Verbatim AI Reuse (Lower is better) | 0.0820 | 0.0350 (< 0.22 target) | 0.0550 (< 0.22 target) |
| Mean Verbatim AI Reuse (Lower is better) | 0.1114 | 0.0813 | 0.0813 |
| High Reuse Outliers (> 0.50) | 0.0% | 0.0% (0 / 100) | 0.0% (0 / 100) |
| Paragraph Retention | 99.70% | 100.0% | 98.23% |
| Language Purity (CJK Leakage) | 0 / 100 | 0 / 100 (0%) | 0 / 100 (0%) |
| Overall humanizerth Score | 0.9921 | 0.9911 | 0.9959 |
💻 Quickstart with MLX
1. Installation
Ensure you have mlx-lm installed on macOS:
pip install -U mlx-lm
2. Basic Inference (Python)
from mlx_lm import load, generate
model_id = "chantra/humanizerth-thai-12B-Q8_0-MLX"
model, tokenizer = load(model_id)
ai_draft = """
จากการประเมินคุณภาพของอาหารและการให้บริการของสถานประกอบการแห่งนี้ พบว่า
สถานประกอบการคาเฟ่เปิดใหม่ย่านอารีย์แห่งนี้ มีเอกลักษณ์ที่โดดเด่นเป็นอย่างยิ่ง
โดยเฉพาะอย่างยิ่งในส่วนของเมนูมัทฉะลาเต้เกรดพิธีการ ซึ่งมีราคาจำหน่ายอยู่ที่แก้วละ 160 บาท
มีรสชาติที่กลมกล่อมและไม่หวานจนเกินไป นอกจากนี้ ในส่วนของบรรยากาศภายในสถานประกอบการ
ถือได้ว่ามีความเงียบสงบและเหมาะสมเป็นอย่างยิ่งสำหรับการนั่งปฏิบัติงานนอกสถานที่ ตามรายละเอียดที่ระบุไว้ข้างต้น
"""
instruction = (
"Rewrite the text below so it reads like a person wrote it, not a language model.\n\n"
"Reorganize it as you see fit. Vary sentence length on purpose. Cut hedging,\n"
"throat-clearing, and any sentence that only announces what comes next.\n"
"Prefer the concrete word over the abstract one. It is fine to sound uneven.\n\n"
"Every fact, number, unit, date, name and quotation must survive unchanged.\n\n"
)
prompt = f"{instruction}{ai_draft.strip()}\n\n### Rewritten:\n\n"
output = generate(model, tokenizer, prompt=prompt, max_tokens=512)
print(output)
# Output:
# ร้านคาเฟ่เปิดใหม่ย่านอารีย์ มีเอกลักษณ์ที่โดดเด่นมาก เมนูมัทฉะลาเต้เกรดพิธีการ ราคาจำหน่ายอยู่ที่แก้วละ 160 บาท
# อร่อยและไม่หวานจนเกินไป นอกจากนี้ บรรยากาศภายในร้าน มีความเงียบสงบและเหมาะมากสำหรับการนั่งทำงานนอกสถานที่ครับ
🎨 Persona Steering via Prefix Priming
Because this model is a plain-text completion model anchored to ### Rewritten:\n\n, you can effortlessly steer the tone into Gen Z / Teenager / Content Creator style by priming the completion with an opening phrase:
prefix = "ทุกคนนน คือปังมากกกก "
prompt_with_prime = prompt + prefix
output = prefix + generate(model, tokenizer, prompt=prompt_with_prime, max_tokens=512)
print(output)
# Output:
# ทุกคนนน คือปังมากกกก ‼️ ร้านคาเฟ่เปิดใหม่ย่านอารีย์แห่งนี้ มีเอกลักษณ์ที่โดดเด่นมากค่ะ
# โดยเฉพาะอย่างยิ่งเมนูมัทฉะลาเต้เกรดพิธีการ ที่ราคาจำหน่ายอยู่ที่แก้วละ 160 บาท อร่อยกลมกล่อมและไม่หวานจนเกินไปค่ะ
# นอกจากนี้ บรรยากาศภายในร้าน ถือได้ว่ามีความเงียบสงบและเหมาะสมมากสำหรับการนั่งทำงานนอกสถานที่เลยค่ะ
Common Prefix Primers for Creators:
- Food & Cafe:
"ทุกคนนน คือปังมากกกก " - Travel:
"ทริปนี้คือปังไม่ไหวววว ค่าาา " - Tech Review:
"แกรรร บอกเลยว่าโคตรปังงง " - Finance:
"อันนี้คือดีย์งามมมม ค้าบบบ " - Skincare:
"เตือนแล้วนะแกรรร คือเริ่ดเลยยย แต่ "
🛠️ Model Architecture & Training Details
- Base Architecture: Gemma-4-12B (
mlx_lm.models.gemma4) - Upstream Checkpoint:
jialinyyzz/humanizer - Quantization: 8-bit weights (
q_bits: 8,q_group_size: 64) - Fine-Tuning Method: MLX QLoRA (Rank 16, Alpha 32.0, Dropout 0.05, 32.78M trainable parameters / 0.275%)
- Context Length: 4096 tokens
- Training Budget: 4,250 steps (1 full epoch over 8,498 training pairs)
- Target Data: 100% Authentic Human Thai Corpora (Zero synthetic LLM-generated targets)
- Hardware: Apple M5 Pro (48 GB Unified Memory)
📜 Citation & Credits
If you use this model or methodology, please cite the upstream humanizer and Gemma-4 papers:
@misc{humanizerth2026,
author = {Chantra / Thanawit},
title = {humanizerth-thai-12B-Q8_0-MLX: Faithful Thai Text Humanization on Apple Silicon},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/chantra/humanizerth-thai-12B-Q8_0-MLX}}
}
- Upstream Humanizer: jialinyyzz/humanizer
- Base Architecture: Google Gemma-4
- Framework: MLX by Apple Machine Learning Research