SLM · Sviluppo

Piano di sviluppo

11 fasi dalla architettura di base al deployment edge — stato corrente e componenti da aggiungere.

Avanzamento · 10 di 11 fasi completate
01 Architettura Completato
Scaled dot-product attention, causal mask, Multi-Head Attention, Feed-Forward (GELU), positional encoding sinusoidale, LayerNorm pre-norm, residual connections, weight tying.
attention.py transformer.py model.py
02 Training loop Completato
AdamW con warmup lineare + cosine decay, gradient clipping, sliding-window dataset, checkpoint automatico, flag --resume per continued pre-training.
train.py AdamW LR schedule checkpoint
03 Tokenizer Completato
Tre backend: char-level (default), BPE tiktoken (cl100k_base), SentencePiece BPE con training opzionale. Token cache su disco — encoding eseguito una sola volta, riusato ad ogni restart.
train.py char-level tiktoken SPM · 16k token cache
04 Generazione di base Completato
Greedy decoding (argmax), flag --generate "testo" per inferenza da checkpoint, campione generato automaticamente ogni N step durante training per monitorare qualità.
train.py greedy decoding --generate
05 Sampling avanzato Completato
Temperatura (T) per controllare l'entropia dell'output, top-k per limitare il campionamento ai k candidati più probabili, top-p (nucleus) per adattare dinamicamente la finestra di campionamento, repetition penalty per evitare loop.
train.py temperatura top-k top-p rep. penalty
Concetti introdotti in Come funziona una LLM — §5. Eseguito dopo Run #5 (corpus Chinchilla-optimal in preparazione) per esplorare i parametri su output di qualità migliore.
06 Valutazione quantitativa Completato
Loop di valutazione su validation set separato, calcolo della perplexity (= exp(loss_val)), loss curves su training e validation, confronto automatico tra checkpoint.
eval.py perplexity loss curve val split
07 Efficienza del training Completato
Gradient accumulation per simulare batch più grandi senza aumentare la RAM. BF16 mixed precision per dimezzare la memoria dei pesi mantenendo la stabilità numerica. Prerequisito per scalare a seq_len 512+ su 24 GB.
train.py grad. accum. BF16 amp
08 Inference ottimizzata Completato
KV-cache: riuso delle chiavi e dei valori già calcolati nei token precedenti, riduce la complessità per token da O(n²) a O(n). Streaming token-by-token. Batch inference per più prompt in parallelo.
model.py inference.py KV-cache streaming
09 Fine-tuning supervisionato Completato
Loop SFT su dataset instruction-following in formato prompt→risposta. Fine-tuning sul corpus narrativo personale per adattare il modello alla voce dell'autore. Prerequisito per il writing assistant.
finetune.py SFT instruction dataset corpus letterario
10 LoRA — Low-Rank Adaptation Completato
Frozen base model + adapter trainabili a basso rango (A·B matrici). lora.py implementato e integrato in train_sft.py. LoRA v2: 21 intent calendario, 4200 esempi, val loss 0.0293 (PPL ≈ 1.0) su RTX 4090. Adapter 1.6 MB vs 175 MB checkpoint completo. Export GGUF Q8_0 e deployment su llama-server con UI chat.
lora.py train_sft.py --lora rank=8, alpha=16 393k param trainabili llama-server
11 Multimodale — YOLO v3 + LM Pianificata
Pipeline vision + language: immagine → YOLO v3 (object detection) → lista oggetti rilevati → SLM (descrizione in linguaggio naturale). Il LM riceve descrizione strutturata dal detector, non l'immagine diretta. Training: LoRA+SFT su coppie (lista oggetti → testo descrittivo). Nuovo territorio: CNN, feature maps, anchor boxes, multi-scale detection.
yolo.py detect.py YOLO v3 Darknet-53 multimodal pipeline