Files
Thai-dialogue-translate_emo…/README.md
ModelHub XC 6e91c74ba3 初始化项目,由ModelHub XC社区提供模型
Model: manotham/Thai-dialogue-translate_emotion_mdpov2_ckp269
Source: Original Platform
2026-06-18 17:33:16 +08:00

164 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
base_model: manotham/Thai-dialogue-translate_emotion
tags:
- text-generation
- transformers
- unsloth
- qwen3
- translation
- emotion-control
- dpo
license: apache-2.0
language:
- en
- th
---
# 🎭 Thai Dialogue Emotion-Aware Translator
A Qwen3-based fine-tuned model specialized for translating English dialogue into natural Thai while preserving emotional tone and cinematic style.
This model was trained using Unsloth and further optimized with DPO (Direct Preference Optimization) to improve translation naturalness and emotion alignment.
---
# 🚀 Highlights
* **Developer:** manotham
* **Base Model:** Qwen3
* **Training Framework:** Unsloth + HuggingFace TRL
* **Optimization:** Post-DPO alignment
* **Task:** English → Thai dialogue translation
* **Special Feature:** Emotion-controlled translation
Supported emotions include:
* sadness
* anger
* contempt
* frustration
* joy
* neutral
* gratitude
* love
and more following `tabularisai/multilingual-emotion-classification`.
The model is especially suitable for:
* Games
* Visual novels
* Cinematic dialogue
* Storytelling
* Fantasy / Anime-style conversations
---
# 🛠 Usage
```python
from unsloth import FastLanguageModel
import torch
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="manotham/Thai-dialogue-translate_emotion_mdpov2_ckp269",
max_seq_length=1024,
load_in_4bit=True,
)
FastLanguageModel.for_inference(model)
def translate_with_emotion(text, emotion):
messages = [
{
"role": "user",
"content": f"Translate this English sentence into natural Thai.\n[Emotion: {emotion}]\n{text}"
}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt"
).to("cuda")
with torch.inference_mode():
outputs = model.generate(
inputs,
max_new_tokens=128,
)
return tokenizer.decode(
outputs[0][inputs.shape[-1]:],
skip_special_tokens=True
)
print(
translate_with_emotion(
"I found you in this broken world.",
"joy"
)
)
```
---
# 📌 Example Outputs
## Sadness
**English**
> I dont want to save this world anymore… I just want to stay by your side until the end.
**Thai**
> ฉันไม่อยากช่วยโลกใบนี้อีกแล้ว ฉันแค่อยากอยู่ข้างๆ เธอจนถึงท้ายที่สุดเท่านั้น
---
## Anger
**English**
> If justice only chooses the strong, then Ill become the monster this world fears most.
**Thai**
> ถ้าความยุติธรรมเลือกคนที่แข็งแกร่งเท่านั้น ฉันก็จะกลายเป็นสัตว์ประหลาดที่โลกนี้กลัวที่สุด
---
## Contempt
**English**
> This is your so-called hero? Ive seen weaker NPCs in a beginner dungeon.
**Thai**
> นี่คือฮีโร่ที่พวกแกอ้างถึงงั้นเหรอ? ข้าเคยเห็น NPC ที่อ่อนแอกว่านี้ในดันเจี้ยนระดับมือใหม่เลยนะ
---
# ⚠ Limitations
* The model is optimized for dialogue-style translation, not formal documents.
* Some outputs may become overly dramatic depending on the emotion tag.
* Performance may vary for highly technical or domain-specific content.
* The model may occasionally overfit to fantasy/anime dialogue style.
---
# 📚 Training Notes
* Fine-tuned using LoRA with Unsloth
* Preference alignment using DPO
* Quantization-friendly for low VRAM GPUs
* Optimized and tested on consumer GPUs