YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
mm-llm-coder-lite-v1
๐ Overview
mm-llm-coder-lite-v1 is a specialized Large Language Model (LLM) fine-tuned for Myanmar (Burmese) language understanding, code generation, and conversational tasks. The model is based on Microsoft's phi-2 and fine-tuned using Low-Rank Adaptation (LoRA) technique.
Key Features
- ๐ Myanmar Language Support: Specialized in Burmese/Myanmar language processing
- ๐ป Code Generation: Supports Python, JavaScript, and other programming languages
- ๐ฌ Conversational AI: Can engage in natural dialogue in Myanmar language
- โก Lightweight: Optimized for efficient inference with LoRA
๐๏ธ Architecture
| Component | Details |
|---|---|
| Base Model | microsoft/phi-2 |
| Fine-tuning Method | LoRA (Low-Rank Adaptation) |
| Training Framework | Hugging Face Transformers + PEFT + TRL |
| Language | Burmese (Myanmar) |
| Parameters | ~2.7B total (trainable: ~2.6M) |
๐ Training Details
| Parameter | Value |
|---|---|
| Base Model | microsoft/phi-2 |
| Training Epochs | 3 |
| Learning Rate | 2e-4 |
| LoRA Rank (r) | 16 |
| LoRA Alpha | 32 |
| LoRA Dropout | 0.05 |
| Max Length | 512 |
| Batch Size | 4 |
| Gradient Accumulation | 4 |
๐ Dataset
Trained on amkyawdev/myanmar-llm-data:
| Tag | Description | Percentage |
|---|---|---|
| coding | Programming conversations | 90% |
| translation | English-Myanmar translation | 1% |
| general | General knowledge Q&A | 1% |
| greeting | Burmese greetings | 1% |
Dataset Statistics
- Train: ~20,327 samples
- Test: ~17,155 samples
- Validation: ~17,071 samples
๐ Quick Start
Installation
pip install torch transformers peft accelerate datasets
Basic Inference
from transformers import AutoModelForCausalLM, AutoTokenizer
# Load model and tokenizer
model_name = "amkyawdev/mm-llm-coder-lite-v1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto"
)
# Set pad token
tokenizer.pad_token = tokenizer.eos_token
# Generate response
input_text = """System: แแแบแแแบ แแผแแบแแฌแ
แฌแแปแฝแแบแธแแปแแบแแฑแฌ AI แกแแฐแกแแฎแแฑแธแแฐแแผแ
แบแแแบแ
User: Python แแฒแท Fibonacci แ
แฎแธแแฎแธแแฏแแบแแฒแท function แแฑแธแแฑแธแแซแ
Assistant:"""
inputs = tokenizer(input_text, return_tensors="pt", truncation=True, max_length=512)
inputs = {k: v.to(model.device) for k, v in inputs.items()}
outputs = model.generate(
**inputs,
max_new_tokens=256,
temperature=0.7,
top_p=0.95,
do_sample=True
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
Using Pipeline
from transformers import pipeline
pipe = pipeline(
"text-generation",
model="amkyawdev/mm-llm-coder-lite-v1",
tokenizer="amkyawdev/mm-llm-coder-lite-v1",
device_map="auto",
torch_dtype=torch.float16
)
prompt = """System: แแแบแแแบ แแผแแบแแฌแ
แฌแแปแฝแแบแธแแปแแบแแฑแฌ AI แกแแฐแกแแฎแแฑแธแแฐแแผแ
แบแแแบแ
User: แแญแฏแแบแธแ แแฑแแฑแฌแแบแธแแฌแธแ
Assistant:"""
result = pipe(prompt, max_new_tokens=128, temperature=0.7)
print(result[0]['generated_text'])
๐ Prompt Template
This model uses the following prompt format:
System: <system_prompt>
User: <user_message>
Assistant: <assistant_response><eos>
Example Prompt
System: แแแบแแแบ แแผแแบแแฌแ
แฌแแปแฝแแบแธแแปแแบแแฑแฌ AI แกแแฐแกแแฎแแฑแธแแฐแแผแ
แบแแแบแ
User: แแแบแนแแแฌแแซแ
Assistant: แแแบแนแแแฌแแซแแพแแบแธแ แแแทแบแกแฌแธ แแฐแแฎแแซแแแบแ<eos>
๐ฅ๏ธ Deployment
GGUF Conversion (for LM Studio / Ollama)
# Install required packages
# pip install transformers peft accelerate sentencepiece
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Load model
model_name = "amkyawdev/mm-llm-coder-lite-v1"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="cpu",
low_cpu_mem_usage=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Merge LoRA weights (if using PEFT)
# Note: This model uses LoRA adapters
# Save merged model
output_dir = "./mm-llm-merged"
model.save_merged(output_dir)
tokenizer.save_pretrained(output_dir)
# Convert to GGUF using llama.cpp
# Follow: https://github.com/ggerganov/llama.cpp/tree/master/convert
Ollama Deployment
# Create Modelfile
FROM ./mm-llm-coder-lite-v1
PARAMETER temperature 0.7
PARAMETER top_p 0.95
PARAMETER top_k 40
TEMPLATE """System: {{ .System }}
User: {{ .Prompt }}
Assistant: {{ .Response }}<eos>"""
# Create model in Ollama
ollama create mm-llm-coder -f Modelfile
# Run
ollama run mm-llm-coder
๐ Evaluation
Myanmar Code Evaluation
# Example evaluation for Myanmar code generation
myanmar_prompts = [
"Python แแฒแท list แแญแฏ sort แแฏแแบแแแบแธแแฑแธแแซแ",
"JavaScript แแฒแท function แแฑแธแแฑแธแแซแ",
"แแผแแบแแฌ Unicode แแญแฏ Zawgyi แแผแฑแฌแแบแธแแฒแท code แแฑแธแแซแ",
]
# Run generation and evaluate
def evaluate_model(prompts):
results = []
for prompt in prompts:
# Generate code
output = generate(prompt)
results.append({
"prompt": prompt,
"generated": output,
"success": check_syntax(output)
})
return results
# Calculate pass rate
success_rate = sum(1 for r in results if r["success"]) / len(results)
print(f"Success Rate: {success_rate * 100:.2f}%")
Benchmark Adaptation
For Myanmar-specific evaluation, consider:
- Translating MBPP/MathEval prompts to Myanmar
- Creating Myanmar coding benchmarks
- Using BLEU/ROUGE for translation quality
๐ Requirements
torch>=2.0.0
transformers>=4.35.0
peft>=0.7.0
trl>=0.7.0
accelerate>=0.25.0
datasets>=2.14.0
๐ง Configuration
from transformers import TrainingArguments
training_args = TrainingArguments(
output_dir="./mm-llm-output",
num_train_epochs=3,
per_device_train_batch_size=4,
learning_rate=2e-4,
fp16=True,
save_steps=500,
eval_steps=500,
save_total_limit=2,
)
๐ License
This project is licensed under the MIT License.
See LICENSE for details.
๐ค Author
Amkyaw Dev
- GitHub: @amkyawdev
- Hugging Face: amkyawdev
๐ Acknowledgments
- Microsoft for the phi-2 model
- Hugging Face for Transformers and PEFT
- The Myanmar NLP community
Made with โค๏ธ for Myanmar AI Community
- Downloads last month
- 105
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support