Downloads · 30 days
122
33% of all-time downloads
Sayansantra/pytho25M
pytho25M is a text generation model from Sayansantra. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Pytho 25M (Sayansantra/pytho25M) is an ultra-compact ~25 Million parameter language model designed specifically for Python code generation and instruction following. Pytho 25M delivers fast, syntactically valid Python…
Downloads · 30 days
122
33% of all-time downloads
All-time downloads
371
Public
Parameters
25.1M
119 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors100 MB · 84%
From the Hugging Face model README
Pytho 25M (Sayansantra/pytho25M) is an ultra-compact ~25 Million parameter language model designed specifically for Python code generation and instruction following. Pytho 25M delivers fast, syntactically valid Python code snippets while using under 30 MB of RAM.
Available in both unquantized PyTorch Safetensors and 4-bit quantized GGUF format.
| Property | Value |
|---|---|
| Model Name | Pytho 25M (Sayansantra/pytho25M) |
| Parameters | 25.10 Million (25,103,232) |
| Architecture | Llama-2 Causal LM |
| Layers | 14 Hidden Layers |
Hidden Size (d_model) | 384 |
Intermediate Size (mlp) | 1024 |
| Attention Heads | 6 (Grouped-Query Attention w/ 2 KV Heads) |
| Vocabulary Size | 8,000 (Custom Byte-Level BPE) |
| Max Context Length | 512 Tokens |
| Special Tokens | <s>, <pad>, </s>, <unk>, `< |
| PyTorch Size | 95.77 MB (FP32 Safetensors) |
| GGUF Q4_K_M Size | 17.71 MB |
Empirical evaluation comparing Pytho 25M against open-source micro models under 150M parameters on Python coding tasks and instruction adherence:
| Metric / Evaluation Criterion | 🚀 Pytho 25M | 📖 TinyStories-28M/33M | 🔬 Pythia-14M/70M | 🛠️ DistilGPT2 (88M) | ⚡ SmolLM-135M |
|---|---|---|---|---|---|
Python Syntax Accuracy (ast.parse) | 100.0% 🏆 | 0.0% (Fails) | 12.5% (Rambles) | 25.0% (Web noise) | 75.0% |
| **Instruction Following (`< | user | >->< | assistant | >`)** | 100.0% 🏆 |
| Quantized GGUF Model Size | 17.71 MB 🏆 | ~112.0 MB | ~280.0 MB | ~352.0 MB | ~540.0 MB |
| RAM Footprint (GGUF) | < 30 MB 🏆 | ~140 MB | ~310 MB | ~400 MB | ~600 MB |
| CPU Generation Speed | > 200 t/s 🏆 | ~85 t/s | ~65 t/s | ~45 t/s | ~30 t/s |
| Parameter Efficiency Ratio (Code Score / RAM) | 3.33 🏆 | 0.00 | 0.04 | 0.06 | 0.12 |
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "Sayansantra/pytho25M"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float32)
prompt = "<|system|>\nYou are an expert Python coding assistant.</s>\n<|user|>\nWrite a python function to check if a number is prime.</s>\n<|assistant|>\n"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=60,
do_sample=True,
temperature=0.7,
pad_token_id=tokenizer.eos_token_id
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
llama-cpp-pythonfrom llama_cpp import Llama
llm = Llama.from_pretrained(
repo_id="Sayansantra/pytho25M",
filename="pytho25m_Q4_K_M.gguf",
verbose=False
)
prompt = "<|system|>\nYou are an expert Python coding assistant.</s>\n<|user|>\nWrite a python function to reverse a string.</s>\n<|assistant|>\n"
response = llm(prompt, max_tokens=50)
print(response["choices"][0]["text"])
Developed by Sayan Santra. Released under the Apache 2.0 License.