188 lines
5.7 KiB
Markdown
188 lines
5.7 KiB
Markdown
|
|
---
|
||
|
|
base_model: google/gemma-3-1b-it
|
||
|
|
language:
|
||
|
|
- en
|
||
|
|
- lg
|
||
|
|
library_name: transformers
|
||
|
|
license: gemma
|
||
|
|
tags:
|
||
|
|
- luganda
|
||
|
|
- translation
|
||
|
|
- conversational
|
||
|
|
- gemma
|
||
|
|
- gemma3
|
||
|
|
- fine-tuned
|
||
|
|
pipeline_tag: text-generation
|
||
|
|
---
|
||
|
|
|
||
|
|
# Ganda Gemma 1B
|
||
|
|
|
||
|
|
A fine-tuned Gemma 3 1B instruction model specialized for **English-to-Luganda translation and Luganda conversational AI**. The model accepts input in both English and Luganda but outputs responses exclusively in Luganda.
|
||
|
|
|
||
|
|
## 📊 Translation Performance
|
||
|
|
|
||
|
|

|
||
|
|
|
||
|
|
### Model Comparison
|
||
|
|
|
||
|
|
| Model | Parameters | BLEU | chrF++ | Efficiency* |
|
||
|
|
|-------|------------|------|--------|-----------|
|
||
|
|
| Gemma 3 4B | 4B | 1.1 | 20.05 | 0.28 |
|
||
|
|
| Gemma 3 27B | 27B | 3.65 | 31.37 | 0.14 |
|
||
|
|
| GPT-5 Mini | N/A | 5.14 | 36.55 | N/A |
|
||
|
|
| **Ganda Gemma 1B** | **1B** | **6.99** | **40.32** | **6.99** |
|
||
|
|
| Gemini 2.0 Flash | Large | 7.94 | 43.38 | N/A |
|
||
|
|
|
||
|
|
|
||
|
|
*Efficiency = BLEU Score ÷ Parameters (in billions)
|
||
|
|
|
||
|
|
### Key Performance Insights
|
||
|
|
|
||
|
|
🎯 **Efficiency Leader**: Achieves 6.99 BLEU per billion parameters (highest efficiency ratio)
|
||
|
|
🚀 **Size Advantage**: Outperforms Gemma 3 4B (4x larger) by 535% on BLEU score
|
||
|
|
💎 **Competitive Quality**: Achieves similar performance to GPT-5 Mini with known 1B parameter count
|
||
|
|
⚡ **Practical Deployment**: Runs efficiently on consumer hardware while maintaining quality
|
||
|
|
|
||
|
|
### Evaluation Details
|
||
|
|
|
||
|
|
- **Dataset**: FLORES-200 English→Luganda (1,012 translation pairs)
|
||
|
|
- **Metrics**: BLEU (bilingual evaluation understudy) and chrF++ (character F-score)
|
||
|
|
- **Evaluation**: Zero-shot translation performance
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
## 🚀 Quick Start
|
||
|
|
|
||
|
|
```python
|
||
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||
|
|
|
||
|
|
# Load model and tokenizer
|
||
|
|
model = AutoModelForCausalLM.from_pretrained("CraneAILabs/ganda-gemma-1b")
|
||
|
|
tokenizer = AutoTokenizer.from_pretrained("CraneAILabs/ganda-gemma-1b")
|
||
|
|
|
||
|
|
# Translate to Luganda
|
||
|
|
prompt = "Translate to Luganda: Hello, how are you today?"
|
||
|
|
inputs = tokenizer(prompt, return_tensors="pt")
|
||
|
|
outputs = model.generate(**inputs, max_length=100, temperature=0.3)
|
||
|
|
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
||
|
|
print(response)
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🌍 Language Capabilities
|
||
|
|
|
||
|
|
- **Input Languages**: English + Luganda
|
||
|
|
- **Output Language**: Luganda only
|
||
|
|
- **Primary Focus**: English-to-Luganda translation and Luganda conversation
|
||
|
|
|
||
|
|
## 🎯 Capabilities
|
||
|
|
|
||
|
|
- **Translation**: English-to-Luganda translation
|
||
|
|
- **Conversational AI**: Natural dialogue in Luganda
|
||
|
|
- **Summarization**: Text summarization in Luganda
|
||
|
|
- **Writing**: Creative and informational writing in Luganda
|
||
|
|
- **Question Answering**: General knowledge responses in Luganda
|
||
|
|
|
||
|
|
## 💻 Usage Examples
|
||
|
|
|
||
|
|
### Basic Translation
|
||
|
|
|
||
|
|
```python
|
||
|
|
import torch
|
||
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||
|
|
|
||
|
|
model = AutoModelForCausalLM.from_pretrained("CraneAILabs/ganda-gemma-1b")
|
||
|
|
tokenizer = AutoTokenizer.from_pretrained("CraneAILabs/ganda-gemma-1b")
|
||
|
|
|
||
|
|
# English to Luganda translation
|
||
|
|
prompt = "Translate to Luganda: Welcome to our school"
|
||
|
|
inputs = tokenizer(prompt, return_tensors="pt")
|
||
|
|
|
||
|
|
with torch.no_grad():
|
||
|
|
outputs = model.generate(
|
||
|
|
**inputs,
|
||
|
|
max_length=100,
|
||
|
|
temperature=0.3,
|
||
|
|
do_sample=True,
|
||
|
|
pad_token_id=tokenizer.eos_token_id
|
||
|
|
)
|
||
|
|
|
||
|
|
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
||
|
|
print(response)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Luganda Conversation
|
||
|
|
|
||
|
|
```python
|
||
|
|
# Direct Luganda conversation
|
||
|
|
prompt = "Oli otya! Osobola okuntuyamba leero?"
|
||
|
|
inputs = tokenizer(prompt, return_tensors="pt")
|
||
|
|
outputs = model.generate(**inputs, max_length=100, temperature=0.3)
|
||
|
|
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
||
|
|
print(response)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Using the Pipeline
|
||
|
|
|
||
|
|
```python
|
||
|
|
from transformers import pipeline
|
||
|
|
|
||
|
|
# Create a text generation pipeline
|
||
|
|
generator = pipeline(
|
||
|
|
"text-generation",
|
||
|
|
model="CraneAILabs/ganda-gemma-1b",
|
||
|
|
tokenizer="CraneAILabs/ganda-gemma-1b",
|
||
|
|
device=0 if torch.cuda.is_available() else -1
|
||
|
|
)
|
||
|
|
|
||
|
|
# Generate Luganda text
|
||
|
|
result = generator(
|
||
|
|
"Translate to Luganda: Welcome to our school",
|
||
|
|
max_length=100,
|
||
|
|
temperature=0.3,
|
||
|
|
do_sample=True
|
||
|
|
)
|
||
|
|
print(result[0]['generated_text'])
|
||
|
|
```
|
||
|
|
|
||
|
|
### Ollama Usage
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Run with different quantizations
|
||
|
|
ollama run crane-ai-labs/ganda-gemma-1b:q4-k-m # Recommended balance
|
||
|
|
ollama run crane-ai-labs/ganda-gemma-1b:q8-0 # Higher quality
|
||
|
|
ollama run crane-ai-labs/ganda-gemma-1b:q4-k-s # Smaller size
|
||
|
|
ollama run crane-ai-labs/ganda-gemma-1b:f16 # Original quality
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🚀 GGUF Advantages
|
||
|
|
|
||
|
|
- **Fast CPU Inference**: Optimized for CPU-only environments
|
||
|
|
- **Memory Efficient**: Multiple quantization levels available
|
||
|
|
- **Easy Integration**: Works with llama.cpp, Ollama, and other GGUF-compatible tools
|
||
|
|
- **Cross-Platform**: Supports Windows, macOS, and Linux
|
||
|
|
|
||
|
|
## 📦 Available Quantizations
|
||
|
|
|
||
|
|
| Quantization | File Size | Memory Usage | Quality | Use Case |
|
||
|
|
|-------------|-----------|--------------|---------|----------|
|
||
|
|
| F16 | ~2.0GB | ~3.5GB | Best | GPU inference |
|
||
|
|
| Q8_0 | ~1.1GB | ~2.0GB | High | High-end CPU |
|
||
|
|
| Q4_K_M | ~600MB | ~1.2GB | Good | **Recommended** |
|
||
|
|
| Q4_K_S | ~550MB | ~1.1GB | Decent | Low memory |
|
||
|
|
| Q4_0 | ~550MB | ~1.0GB | Basic | Very low memory |
|
||
|
|
|
||
|
|
## 🔗 Related Models
|
||
|
|
|
||
|
|
- **Original Model**: [CraneAILabs/ganda-gemma-1b](https://huggingface.co/CraneAILabs/ganda-gemma-1b) - Full precision HuggingFace model
|
||
|
|
- **Mobile (LiteRT)**: [CraneAILabs/ganda-gemma-1b-litert](https://huggingface.co/CraneAILabs/ganda-gemma-1b-litert) - Optimized for Android/iOS
|
||
|
|
|
||
|
|
## 📄 License
|
||
|
|
|
||
|
|
This model is released under the [Gemma Terms of Use](https://ai.google.dev/gemma/terms). Please review the terms before use.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Built with ❤️ by Crane AI Labs**
|
||
|
|
|
||
|
|
*Ganda Gemma - Your helpful Luganda AI companion, optimized for CPU!*
|