# 📦 Pakiet Transportowy Modelu MicroPLLM (~109M)

Pakiet zawiera wszystkie niezbędne pliki wag, tokenizera, skryptów inferencyjnych oraz aplikację mobilną na system Android.

## 📁 Zawartość paczki:
1. `micro_pl_lm_f16.gguf` (~254 MB) — model binarny w ustandaryzowanym formacie **GGUF (FP16)** z metadanymi i tokenizerem.
2. `micro_pl_lm_weights.pt` (~413 MB) — czyste wagi PyTorch `state_dict` do bezpośredniego załadowania w Pythonie.
3. `micro_pl_lm_traced.pt` (~430 MB) — model skompilowany w **TorchScript** (`torch.jit`), nie wymaga kodu źródłowego modelu.
4. `pl_bpe_32k.model` (~776 KB) — tokenizer SentencePiece BPE (32,000 tokenów, język polski).
5. `pl_bpe_32k.vocab` — słownik tokenizera w czytelnym formacie tekstowym.
6. `model.py` — definicja architektury modelu w PyTorch (RoPE, 16 bloków, tied lm_head).
7. `micro_pl_lm_config.json` — pełna specyfikacja hiperparametrów i architektury w formacie JSON.
8. `MicroPLLM.apk` (~37 KB) — aplikacja na system Android do łączenia się i generowania tekstu.
9. `run_inference.py` — gotowy, samodzielny skrypt CLI do testowej generacji tekstu na CPU lub GPU.

---

## 🚀 Jak uruchomić w Pythonie:

Wymagane biblioteki: `torch`, `sentencepiece`.

```bash
python run_inference.py "Polska to kraj"
python run_inference.py --prompt "Czym jest sztuczna inteligencja?" --temp 0.7 --max_tokens 120
```

---

## 📱 Aplikacja Android (MicroPLLM.apk):
Zainstaluj plik `MicroPLLM.apk` na dowolnym telefonie z Androidem. Aplikacja oferuje:
- Mobilny czat z modelem i metrykami prędkości (tok/s, ms).
- Konfigurację parametrów (temperatura, Top-P, Top-K, max tokens).
- Dynamiczne pobieranie checkpointów i wag bezpośrednio do pamięci urządzenia.

---

## 🧠 Specyfikacja Architektury:
- **Parametry:** 108,846,336 (~109M)
- **Warstwy:** 16 bloków (pre-norm + rezyduły)
- **Atencja:** 8 głowic, d_mlp=512, RoPE (Rotary Position Embeddings)
- **Wymiary:** d_model=768, d_mlp=512 (4-warstwowe lejki MLP)
- **Tokenizer:** SentencePiece BPE 32,000 tokenów
