--- language: - th - en license: gemma library_name: transformers base_model: google/gemma-4-E4B tags: - legal - thai - continued-pretraining - cpt - law - gemma - causal-lm datasets: - open-law-data-thailand/soc-ratchakitcha - open-law-data-thailand/ThaiLaw - open-law-data-thailand/WangchanX-Legal-ThaiCCL-RAG - wikimedia/wikipedia pipeline_tag: text-generation --- # Thai Legal Gemma 4B — CPT Checkpoint **Thai-Legal-Gemma-4B-CPT** คือ [Gemma-4-E4B](https://huggingface.co/google/gemma-4-E4B) ที่ผ่านกระบวนการ **Continued Pre-Training (CPT)** บนชุดข้อมูลกฎหมายไทยขนาดใหญ่ เพื่อปลูกฝังความเข้าใจระดับรากฐานด้านภาษาและโครงสร้างของกฎหมายไทย > **หมายเหตุ:** นี่คือ **CPT Checkpoint** ระหว่างการเทรน (In-Progress) ยังไม่ใช่โมเดลสมบูรณ์พร้อมใช้งาน โมเดลนี้ยังไม่ได้ผ่านกระบวนการ Instruction Fine-tuning (SFT) หรือ Alignment (RLHF) ดังนั้นจึงไม่เหมาะสำหรับการนำไปใช้งานในระบบที่ต้องการความแม่นยำสูงในทันที --- ## ภาพรวมโครงการ | รายการ | รายละเอียด | |--------|-----------| | **Base Model** | `google/gemma-4-E4B` | | **วิธีการเทรน** | Full Continued Pre-Training (CPT) | | **จุดประสงค์** | สร้าง Legal Foundation Model ภาษาไทย | | **Context Length** | 8,192 tokens | | **Precision** | bfloat16 | | **Hardware** | NVIDIA H200 (141 GB VRAM) | | **Optimizer** | AdamW Fused | | **สถานะ** | กำลังเทรน (In Progress) | --- ## ชุดข้อมูลที่ใช้เทรน โมเดลนี้เทรนด้วยการผสมข้อมูลหลายประเภทในสัดส่วน (Mix Ratio) ที่ออกแบบมาเพื่อเน้นกฎหมายไทยเป็นหลัก: | ประเภทข้อมูล | สัดส่วน | แหล่งที่มา | |------------|--------|-----------| | **กฎหมายไทย** | 70% | ราชกิจจานุเบกษา (soc-ratchakitcha) 2011–2025, ThaiLaw, WangchanX-Legal-ThaiCCL-RAG | | **ภาษาไทยทั่วไป** | 15% | Thai Wikipedia | | **ภาษาอังกฤษ** | 10% | C4 English (subset) | | **โค้ด** | 3% | The Stack (Python/SQL/Markdown) | | **กฎหมายอังกฤษ** | 2% | pile-of-law | ### แหล่งข้อมูลกฎหมายไทย - **ราชกิจจานุเบกษา (2011–2025):** ~145,912 ฉบับ จาก `open-law-data-thailand/soc-ratchakitcha` ครอบคลุมพระราชบัญญัติ, กฎกระทรวง, ระเบียบ, ประกาศทั่วไป - **ThaiLaw:** 42,755 บทความ ประมวลกฎหมายแพ่งและพาณิชย์, อาญา, วิธีพิจารณาความ - **WangchanX-Legal-ThaiCCL-RAG:** 8,211 คู่ถาม-ตอบเชิงกฎหมาย (ใช้เป็น Corpus ไม่ใช่ SFT) --- ## รายละเอียดการเทรน ``` Training Objective : Next-Token Prediction (CLM) Sequence Length : 8,192 tokens (Packed, no padding) Batch Size : 1 (effective 256 via gradient accumulation) Gradient Accum. : 256 steps Optimizer : AdamW (adamw_torch_fused) Learning Rate : 2e-5 (with warmup) Precision : bf16 Gradient Checkpointing: True KV Cache : Disabled (use_cache=False) Hub Strategy : all_checkpoints (auto-save every 5 steps) ``` --- ## วิธีใช้งาน ### โหลดโมเดลปกติ (สำหรับเครื่องที่มี VRAM เพียงพอ ≥ 18 GB) ```python import torch from transformers import AutoModelForCausalLM, AutoTokenizer model_id = "Phonsiri/Thai-Legal-Gemma-4B-CPT" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="auto", ) prompt = "ตามประมวลกฎหมายแพ่งและพาณิชย์ การกู้ยืมเงินเกินกว่าสองพันบาทขึ้นไป" inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model.generate( **inputs, max_new_tokens=300, temperature=0.3, top_p=0.9, repetition_penalty=1.1, do_sample=True, ) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` ### โหลดแบบ 4-bit (สำหรับ Colab / GPU แรม ≤ 16 GB) ```python import torch from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig model_id = "Phonsiri/Thai-Legal-Gemma-4B-CPT" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.bfloat16, ), device_map="auto", ) ``` --- ## ความคืบหน้าการเทรน โมเดลนี้กำลังเทรนต่อเนื่อง Checkpoint จะถูก Push ขึ้น Hub โดยอัตโนมัติทุก 5 steps | Metric | ค่าล่าสุด | |--------|---------| | Training Loss | ~1.55–1.59 (early stage) | | Grad Norm | ~200–800 (normalizing) | | Learning Rate | กำลัง warmup ขึ้น | > Loss ในช่วงแรกของ CPT ที่ค่า ~1.5 ถือว่าปกติและเป็นสัญญาณที่ดีครับ โมเดลกำลังปรับตัวเข้ากับโครงสร้างภาษากฎหมายไทย --- ## แผนการพัฒนา (Roadmap) ``` [] Phase 1: Data Pipeline — ราชกิจจาฯ OCR + Wikipedia + Legal Datasets [] Phase 2: CPT Training — Full pre-training บน H200 (กำลังดำเนินการ) [ ] Phase 3: SFT — ถาม-ตอบกฎหมาย แบบ Instruction Following [ ] Phase 4: GRPO/RLHF — Legal Reasoning (IRAC Framework) [ ] Phase 5: RAG Integration — เชื่อมต่อฐานข้อมูลกฎหมายแบบ Real-time ``` --- ## ข้อจำกัดและคำเตือน - โมเดลนี้**ไม่ใช่**คำแนะนำทางกฎหมายอย่างเป็นทางการ ห้ามนำไปใช้ทดแทนการปรึกษาทนายความจริงๆ - ในช่วง CPT โมเดลอาจสร้างข้อความที่มีข้อผิดพลาดทางกฎหมายได้ (Hallucination) - ยังไม่ผ่าน Safety Alignment — ไม่เหมาะสำหรับ Production ในทันที --- ## License โมเดลนี้ใช้ Base Model จาก Google Gemma ซึ่งอยู่ภายใต้ [Gemma Terms of Use](https://ai.google.dev/gemma/terms) ชุดข้อมูลราชกิจจานุเบกษาอยู่ภายใต้ [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) --- ## ขอบคุณ - [Open Law Data Thailand](https://huggingface.co/open-law-data-thailand) — สำหรับชุดข้อมูลราชกิจจานุเบกษาและกฎหมายไทยคุณภาพสูง - [Google DeepMind](https://huggingface.co/google) — สำหรับ Gemma Base Model - [iApp Technology](https://iapp.co.th) — สำหรับ OCR ราชกิจจานุเบกษา