Phonsiri commited on
Commit
5d15752
·
verified ·
1 Parent(s): 13ab354

docs: Add Thai Legal Gemma model card

Browse files
Files changed (1) hide show
  1. README.md +178 -0
README.md ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - th
4
+ - en
5
+ license: gemma
6
+ library_name: transformers
7
+ base_model: google/gemma-4-E4B
8
+ tags:
9
+ - legal
10
+ - thai
11
+ - continued-pretraining
12
+ - cpt
13
+ - law
14
+ - gemma
15
+ - causal-lm
16
+ datasets:
17
+ - open-law-data-thailand/soc-ratchakitcha
18
+ - open-law-data-thailand/ThaiLaw
19
+ - open-law-data-thailand/WangchanX-Legal-ThaiCCL-RAG
20
+ - wikimedia/wikipedia
21
+ pipeline_tag: text-generation
22
+ ---
23
+
24
+ # Thai Legal Gemma 4B — CPT Checkpoint
25
+
26
+ **Thai-Legal-Gemma-4B-CPT** คือ [Gemma-4-E4B](https://huggingface.co/google/gemma-4-E4B) ที่ผ่านกระบวนการ **Continued Pre-Training (CPT)** บนชุดข้อมูลกฎหมายไทยขนาดใหญ่ เพื่อปลูกฝังความเข้าใจระดับรากฐานด้านภาษาและโครงสร้างของกฎหมายไทย
27
+
28
+ > **หมายเหตุ:** นี่คือ **CPT Checkpoint** ระหว่างการเทรน (In-Progress) ยังไม่ใช่โมเดลสมบูรณ์พร้อมใช้งาน โมเดลนี้ยังไม่ได้ผ่านกระบวนการ Instruction Fine-tuning (SFT) หรือ Alignment (RLHF) ดังนั้นจึงไม่เหมาะสำหรับการนำไปใช้งานในระบบที่ต้องการความแม่นยำสูงในทันที
29
+
30
+ ---
31
+
32
+ ## ภาพรวมโครงการ
33
+
34
+ | รายการ | รายละเอียด |
35
+ |--------|-----------|
36
+ | **Base Model** | `google/gemma-4-E4B` |
37
+ | **วิธีการเทรน** | Full Continued Pre-Training (CPT) |
38
+ | **จุดประสงค์** | สร้าง Legal Foundation Model ภาษาไทย |
39
+ | **Context Length** | 8,192 tokens |
40
+ | **Precision** | bfloat16 |
41
+ | **Hardware** | NVIDIA H200 (141 GB VRAM) |
42
+ | **Optimizer** | AdamW Fused |
43
+ | **สถานะ** | กำลังเทรน (In Progress) |
44
+
45
+ ---
46
+
47
+ ## ชุดข้อมูลที่ใช้เทรน
48
+
49
+ โมเดลนี้เทรนด้วยการผสมข้อมูลหลายประเภทในสัดส่วน (Mix Ratio) ที่ออกแบบมาเพื่อเน้นกฎหมายไทยเป็นหลัก:
50
+
51
+ | ประเภทข้อมูล | สัดส่วน | แหล่งที่มา |
52
+ |------------|--------|-----------|
53
+ | **กฎหมายไทย** | 70% | ราชกิจจานุเบกษา (soc-ratchakitcha) 2011–2025, ThaiLaw, WangchanX-Legal-ThaiCCL-RAG |
54
+ | **ภาษาไทยทั่วไป** | 15% | Thai Wikipedia |
55
+ | **ภาษาอังกฤษ** | 10% | C4 English (subset) |
56
+ | **โค้ด** | 3% | The Stack (Python/SQL/Markdown) |
57
+ | **กฎหมายอังกฤษ** | 2% | pile-of-law |
58
+
59
+ ### แหล่งข้อมูลกฎหมายไทย
60
+ - **ราชกิจจานุเบกษา (2011–2025):** ~145,912 ฉบับ จาก `open-law-data-thailand/soc-ratchakitcha` ครอบคลุมพระราชบัญญัติ, กฎกระทรวง, ระเบียบ, ประกาศทั่วไป
61
+ - **ThaiLaw:** 42,755 บทความ ประมวลกฎหมายแพ่งและพาณิชย์, อาญา, วิธีพิจารณาความ
62
+ - **WangchanX-Legal-ThaiCCL-RAG:** 8,211 คู่ถาม-ตอบเชิงกฎหมาย (ใช้เป็น Corpus ไม่ใช่ SFT)
63
+
64
+ ---
65
+
66
+ ## รายละเอียดการเทรน
67
+
68
+ ```
69
+ Training Objective : Next-Token Prediction (CLM)
70
+ Sequence Length : 8,192 tokens (Packed, no padding)
71
+ Batch Size : 1 (effective 256 via gradient accumulation)
72
+ Gradient Accum. : 256 steps
73
+ Optimizer : AdamW (adamw_torch_fused)
74
+ Learning Rate : 2e-5 (with warmup)
75
+ Precision : bf16
76
+ Gradient Checkpointing: True
77
+ KV Cache : Disabled (use_cache=False)
78
+ Hub Strategy : all_checkpoints (auto-save every 5 steps)
79
+ ```
80
+
81
+ ---
82
+
83
+ ## วิธีใช้งาน
84
+
85
+ ### โหลดโมเดลปกติ (สำหรับเครื่องที่มี VRAM เพียงพอ ≥ 18 GB)
86
+ ```python
87
+ import torch
88
+ from transformers import AutoModelForCausalLM, AutoTokenizer
89
+
90
+ model_id = "Phonsiri/Thai-Legal-Gemma-4B-CPT"
91
+
92
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
93
+ model = AutoModelForCausalLM.from_pretrained(
94
+ model_id,
95
+ torch_dtype=torch.bfloat16,
96
+ device_map="auto",
97
+ )
98
+
99
+ prompt = "ตามประมวลกฎหมายแพ่งและพาณิชย์ การกู้ยืมเงินเกินกว่าสองพันบาทขึ้นไป"
100
+ inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
101
+
102
+ outputs = model.generate(
103
+ **inputs,
104
+ max_new_tokens=300,
105
+ temperature=0.3,
106
+ top_p=0.9,
107
+ repetition_penalty=1.1,
108
+ do_sample=True,
109
+ )
110
+ print(tokenizer.decode(outputs[0], skip_special_tokens=True))
111
+ ```
112
+
113
+ ### โหลดแบบ 4-bit (สำหรับ Colab / GPU แรม ≤ 16 GB)
114
+ ```python
115
+ import torch
116
+ from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
117
+
118
+ model_id = "Phonsiri/Thai-Legal-Gemma-4B-CPT"
119
+
120
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
121
+ model = AutoModelForCausalLM.from_pretrained(
122
+ model_id,
123
+ quantization_config=BitsAndBytesConfig(
124
+ load_in_4bit=True,
125
+ bnb_4bit_compute_dtype=torch.bfloat16,
126
+ ),
127
+ device_map="auto",
128
+ )
129
+ ```
130
+
131
+ ---
132
+
133
+ ## ความคืบหน้าการเทรน
134
+
135
+ โมเดลนี้กำลังเทรนต่อเนื่อง Checkpoint จะถูก Push ขึ้น Hub โดยอัตโนมัติทุก 5 steps
136
+
137
+ | Metric | ค่าล่าสุด |
138
+ |--------|---------|
139
+ | Training Loss | ~1.55–1.59 (early stage) |
140
+ | Grad Norm | ~200–800 (normalizing) |
141
+ | Learning Rate | กำลัง warmup ขึ้น |
142
+
143
+ > Loss ในช่วงแรกของ CPT ที่ค่า ~1.5 ถือว่าปกติและเป็นสัญญาณที่ดีครับ โมเดลกำลังปรับตัวเข้ากับโครงสร้างภาษากฎหมายไทย
144
+
145
+ ---
146
+
147
+ ## แผนการพัฒนา (Roadmap)
148
+
149
+ ```
150
+ [] Phase 1: Data Pipeline — ราชกิจจาฯ OCR + Wikipedia + Legal Datasets
151
+ [] Phase 2: CPT Training — Full pre-training บน H200 (กำลังดำเนินการ)
152
+ [ ] Phase 3: SFT — ถาม-ตอบกฎหมาย แบบ Instruction Following
153
+ [ ] Phase 4: GRPO/RLHF — Legal Reasoning (IRAC Framework)
154
+ [ ] Phase 5: RAG Integration — เชื่อมต่อฐานข้อมูลกฎหมายแบบ Real-time
155
+ ```
156
+
157
+ ---
158
+
159
+ ## ข้อจำกัดและคำเตือน
160
+
161
+ - โมเดลนี้**ไม่ใช่**คำแนะนำทางกฎหมายอย่างเป็นทางการ ห้ามนำไปใช้ทดแทนการปรึกษาทนายความจริงๆ
162
+ - ในช่วง CPT โมเดลอาจสร้างข้อความที่มีข้อผิดพลาดทางกฎหมายได้ (Hallucination)
163
+ - ยังไม่ผ่าน Safety Alignment — ไม่เหมาะสำหรับ Production ในทันที
164
+
165
+ ---
166
+
167
+ ## License
168
+
169
+ โมเดลนี้ใช้ Base Model จาก Google Gemma ซึ่งอยู่ภายใต้ [Gemma Terms of Use](https://ai.google.dev/gemma/terms)
170
+ ชุดข้อมูลราชกิจจานุเบกษาอยู่ภายใต้ [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
171
+
172
+ ---
173
+
174
+ ## ขอบคุณ
175
+
176
+ - [Open Law Data Thailand](https://huggingface.co/open-law-data-thailand) — สำหรับชุดข้อมูลราชกิจจานุเบกษาและกฎหมายไทยคุณภาพสูง
177
+ - [Google DeepMind](https://huggingface.co/google) — สำหรับ Gemma Base Model
178
+ - [iApp Technology](https://iapp.co.th) — สำหรับ OCR ราชกิจจานุเบกษา