Model Details
Architecture
Table with columns: Parameter, Value| Parameter | Value |
|---|
| Architecture | LLaMA (decoder-only) |
| Parameters | 66,268,416 |
| Hidden size | 768 |
| Intermediate size | 2,304 |
| Num layers | 7 |
| Num attention heads | 12 |
| Num KV heads | 12 |
| Max sequence length | 1,024 |
| Vocabulary size | 16,384 |
| Position encoding | RoPE (θ=10000.0) |
| Activation | SwiGLU |
| Normalization | Pre-RMSNorm |
| Weight tying | Yes (embedding ↔ lm_head) |
| Precision | bf16 |
Training Data
Table with columns: #, Dataset, Domain, Max examples| # | Dataset | Domain | Max examples |
|---|
| 1 | FineWeb-Edu (sample-10BT) | Educational web text | 60,000 |
| 2 | FineWeb (sample-10BT) | General web text | 60,000 |
| 3 | OpenWebMath | Mathematical text |
Training Hyperparameters
Table with columns: Parameter, Value| Parameter | Value |
|---|
| Hardware | 96GB GPU |
| Optimizer | AdamW 8-bit (bitsandbytes) |
| Learning rate | 2e-4 |
| Batch size | 128 |
| Warmup steps | 500 |
| Weight decay | 0.01 |
| Save interval | 500 steps |
| Checkpoint upload | Auto (instant to HF) |
Tokenizer
- Type: BPE (Byte-Level)
- Vocabulary: 16,384 tokens
- Pre-tokenizer: ByteLevel (no prefix space)
- Special tokens: , , ,
- Trained from scratch on the training corpus
Usage
from transformers import pipeline
pipe = pipeline("text-generation", model="pinkelephantlimited/pink-elephant-66m")
output = pipe("Photosynthesis is the process by which", max_new_tokens=80)[0]["generated_text"]
print(output)
Training Philosophy
This model was trained entirely from scratch on permissively licensed data. No fine-tuning, no transfer learning — 100% original weights.
License
MIT
Real-World Applications
🎓 Educational Assistant
from transformers import pipeline
pipe = pipeline("text-generation", model="pinkelephantlimited/pink-elephant-66m")
pipe("The water cycle consists of three main stages:", max_new_tokens=80)
✏️ Writing Assistant
pipe("In conclusion, the key factors that led to", max_new_tokens=60)
💻 Code Snippet Generator
pipe("def fibonacci(n):", max_new_tokens=60)
Why 66M? 768-dimensional hidden size with 7 layers — deeper and wider than 55M, giving noticeably better quality while remaining CPU-friendly.