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
Dettagli in AdamW e Ottimizzazione
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
Dettagli in Vocabolario, Embedding e Parametri
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