File size: 4,920 Bytes
86f0932
 
 
 
 
 
 
 
 
 
 
 
d2279d0
86f0932
d2279d0
 
86f0932
d2279d0
 
5ed0fd6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d2279d0
86f0932
d2279d0
 
 
 
86f0932
d2279d0
86f0932
d2279d0
86f0932
d2279d0
 
 
 
 
 
 
86f0932
d2279d0
 
86f0932
d2279d0
86f0932
d2279d0
86f0932
d2279d0
 
 
 
 
 
 
 
 
 
 
 
 
86f0932
d2279d0
 
 
 
 
86f0932
d2279d0
86f0932
d2279d0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
---
base_model: mistralai/Mistral-7B-Instruct-v0.3
library_name: transformers
model_name: mistral-bloom-finetune
tags:
- generated_from_trainer
- trl
- sft
licence: license
---


# 🤖 Thai-HomeworkGen — โมเดลสร้าง/แก้โจทย์คณิตศาสตร์ภาษาไทย

**Thai-HomeworkGen** เป็นโมเดลภาษาไทยขนาด 7B ที่ถูก fine-tune ด้วยเทคนิค **Supervised Fine-tuning (SFT)**  
โดยใช้ไลบรารี [`trl`](https://github.com/huggingface/trl) ร่วมกับ **QLoRA** บนฐาน [mistralai/Mistral-7B-Instruct-v0.3](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.3)

---

## 🧪 ตัวอย่างการใช้งาน

```python
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
import torch

tokenizer = AutoTokenizer.from_pretrained("UpMath/Thai-HomeworkGen-7.2B-v1")
model = AutoModelForCausalLM.from_pretrained("UpMath/Thai-HomeworkGen-7.2B-v1",device_map="auto")

generator = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    device_map="auto",
    max_new_tokens=2048,
    do_sample=True,
    temperature=0.7,
    pad_token_id=tokenizer.eos_token_id
)

prompt = """
  ระดับ Bloom: "วิเคราะห์" # หรือ ["วิเคราะห์", "จดจำ"]
  ระดับชั้น: 'มัธยมศึกษาปีที่ 4'
  โปรดสร้างโจทย์ พร้อมวิธีทำและคำตอบ:
"""

result = generator(prompt)[0]['generated_text']
print(result)
```

---

## 🎯 จุดประสงค์ของโมเดล

- ✅ สร้างโจทย์คณิตศาสตร์ใหม่ในรูปแบบภาษาไทย
- ✅ แสดงวิธีทำและคำตอบที่ชัดเจน
- ✅ รองรับระดับความคิดตามแนวทาง **Bloom’s Taxonomy**
- ✅ ออกแบบมาเพื่อใช้ในบริบทการศึกษา การสอน และการวัดผล reasoning

---

## 🧠 ข้อมูลการฝึก (Training Details)

- **Base Model:** `mistralai/Mistral-7B-Instruct-v0.3`
- **Library:** [`trl`](https://github.com/huggingface/trl) (`SFTTrainer`)
- **Adapter:** QLoRA (`peft`)
- **Batch Size:** 2 × 4 (gradient_accumulation)
- **Epochs:** 3
- **Sequence Length:** 1024
- **Dataset:** Thai Math Dataset (~32K examples, translated + aligned)

โมเดลถูกฝึกด้วย QLoRA โดยใช้เทคนิค **low-rank adapter (LoRA)** ร่วมกับ quantization 4-bit  
เพื่อให้สามารถฝึกบน GPU ขนาดกลาง เช่น A100 หรือ Colab Pro ได้อย่างมีประสิทธิภาพ

---

## 📦 Dataset ที่ใช้

ชื่อชุดข้อมูล: **Thai-HomeworkGen-32K**
เนื้อหา: โจทย์คณิตศาสตร์ภาษาไทยระดับมัธยมปลาย พร้อมวิธีทำ คำตอบ และระดับ Bloom Taxonomy
ต้นฉบับแปลจากชุดข้อมูลภาษาอังกฤษ
1. [MathQA (allenai)](https://huggingface.co/datasets/allenai/math_qa)  
2. [MATH-500 (HuggingFaceH4)](https://huggingface.co/datasets/HuggingFaceH4/MATH-500)  
3. [MATH-Algebra](https://huggingface.co/datasets/themanas021/MATH-Algebra)  
4. [math-mixture: mix_intermediate_algebra97_algebra01_prealgebra00](https://huggingface.co/datasets/andrewsiah/math-mixture-mix_intermediate_algebra97_algebra01_prealgebra00)  
5. [math-mixture: mix_algebra76_prealgebra12_number_theory08](https://huggingface.co/datasets/andrewsiah/math-mixture-mix_algebra76_prealgebra12_number_theory08)  
6. [Math-algebra (datafreak)](https://huggingface.co/datasets/datafreak/Math-algebra)  
7. [MATH Dataset (Hendrycks et al.)](https://github.com/hendrycks/math/)  
8. [GSM8K (openai)](https://huggingface.co/datasets/openai/gsm8k)  
9. [Math QSA Dataset (Kaggle)](https://www.kaggle.com/datasets/awsaf49/math-qsa-dataset)  
10. [AQuA (DeepMind)](https://github.com/google-deepmind/AQuA)

ชุดข้อมูลถูกแปลและจัดโครงสร้างโดยใช้ LLM (Gemma 2 27B) พร้อมตรวจสอบโดยผู้เชี่ยวชาญจาก สวทช.

👉 [ดูรายละเอียดของ Dataset](https://huggingface.co/datasets/UpMath/Thai-HomeworkGen-32K)

---

## การอ้างอิง

หากคุณใช้งานโมเดลนี้ สามารถให้เครดิตโปรเจกต์นี้ได้ด้วย