GPT-Thai-Think 🤖
A Thai-centric GPT-2 model with thinking and reasoning capabilities! This model can engage in conversations and solve problems while showing its step-by-step reasoning process.
🌟 Key Features
- Thai Language Support: Optimized for Thai text processing
- Thinking Capabilities: Shows step-by-step reasoning with
<think>tags - Conversational AI: Handles instruction-response conversations
- Mathematical Reasoning: Solves math problems with calculation steps
- Bilingual: Supports both Thai and English
📊 Model Details
- Model Size: 8.1M parameters
- Architecture: GPT-2 with 4 layers, 256 embedding dimension
- Vocabulary: 19,000 tokens (Thai-optimized)
- Training Data:
- 10,029 Thai conversation pairs
- 25,000 reasoning examples from HelpingAI dataset
- Training: 3 epochs with final loss 2.4
🚀 Usage
Basic Usage
from transformers import GPT2LMHeadModel, GPT2Tokenizer
model = GPT2LMHeadModel.from_pretrained("your-username/gpt-thai-think")
tokenizer = GPT2Tokenizer.from_pretrained("your-username/gpt-thai-think")
# Generate text
prompt = "คำสั่ง: สวัสดีครับ
คำตอบ:"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_length=100)
response = tokenizer.decode(outputs[0])
With Thinking
# The model shows reasoning steps
prompt = "Question: What is 15% of 200?
"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_length=150)
response = tokenizer.decode(outputs[0])
# Response includes <think> tags with reasoning steps
💡 Example Outputs
Math Problem
Question: If a train travels 120 km in 2 hours, what is its average speed?
<think>
To find average speed, I need to divide distance by time.
Distance = 120 km, Time = 2 hours
Speed = Distance ÷ Time = 120 km ÷ 2 hours = 60 km/h
</think>
Final Answer: 60 km/h
Thai Conversation
คำสั่ง: สวัสดีครับ
คำตอบ: สวัสดีครับ ยินดีที่ได้คุยกันครับ
🏗️ Architecture
- Base Model: GPT-2 Small
- Embeddings: 256 dimensions
- Layers: 4 transformer blocks
- Attention Heads: 4
- Vocabulary: SentencePiece with Thai optimization
- Special Tokens:
<s>: Start of sequence</s>: End of sequence<pad>: Padding token<unk>: Unknown token<mask>: Mask token
📚 Training Data
Primary Datasets
- Thai Conversations: 10,029 instruction-response pairs
- Reasoning Examples: 25,000 problems with step-by-step solutions
- HelpingAI Dataset: Intermediate thinking patterns
Data Format
คำสั่ง: [instruction]
คำตอบ: [response with optional <think> reasoning]
🎯 Capabilities
✅ Conversational Thai: Natural Thai conversations ✅ Mathematical Reasoning: Step-by-step calculations ✅ Logic Problems: Deductive reasoning ✅ Word Problems: Problem decomposition ✅ Instruction Following: Structured responses ✅ Thinking Process: Visible reasoning steps
🔧 Technical Specifications
- Framework: PyTorch + Transformers
- Tokenizer: SentencePiece
- Precision: FP32
- Max Sequence: 512 tokens
- Training Time: ~2 hours on CPU
- GPU Memory: ~500MB
📈 Performance
- Perplexity: 3.45 (good for limited training data)
- Thai Understanding: Excellent
- Reasoning Quality: Good step-by-step explanations
- Response Coherence: High for conversational tasks
🤝 Contributing
This model is open-source! Feel free to:
- Fine-tune on domain-specific data
- Add more languages
- Improve reasoning capabilities
- Share your results
📄 License
Apache 2.0 License - see LICENSE file for details.
🙏 Acknowledgments
- HelpingAI for the Intermediate-Thinking-130k dataset
- Hugging Face for the transformers library
- Thai NLP Community for language resources
Built with ❤️ for the Thai AI community