🧠 microDAC
Logo di microDAC
ℹ️ Informazioni sul modello
Autore: Mattimax
Organizzazione: M.INC
Pagina GitHub: microDAC
Licenza: GPL-3.0
Descrizione:
microDAC è un modello linguistico compatto di tipo Decoder-only , con circa 40 milioni di parametri , progettato per la generazione di testo in italiano .
È un’evoluzione di PicoDAC, con maggiore profondità architetturale e un contesto più ampio, mantenendo leggerezza e velocità d’esecuzione.
Pensato per chatbot, agenti vocali e applicazioni embedded , è ottimizzato per risposte fluide, coerenti e naturali, con training supervisionato per evitare la ripetizione dei prompt.
⚙️ Caratteristiche tecniche
Architettura: Transformer Decoder-only (GPT2-like)
Parametri totali: ~40 milioni
Vocabolario: 32.000 token
Lunghezza massima del contesto: 2048 token
Dimensione embedding: 512
Numero di layer: 16
Teste di attenzione: 8
Feed-Forward (FFN): 2048 (GELU-new)
Attivazione: GELU (new)
Precisione: FP16 / BF16
Gradient checkpointing: ✅ Attivo
🗣️ Tokenizer
Tipo: Byte-Pair Encoding (BPE)
Addestramento: da zero su microDAC_dataset.jsonl
Token speciali:
<|user|> → inizio turno utente
<|assistant|> → risposta del modello
<|sep|> → fine turno
<|pad|>, <|bos|>, <|eos|> → padding e delimitatori
Il tokenizer è salvato in tokenizer_microDAC/ e viene ricreato automaticamente se non presente.
🎯 Obiettivo di training
Il modello è addestrato per generare esclusivamente le risposte dell’assistente , mascherando i token dell’utente.
Schema di masking:
1 <|user|> ... <|sep|> → label = -100
2 <|assistant|> ... <|sep|> → label = token_id
🧩 Parametri di training
Parametro Valore
Epochs 2
Batch per device 8
Gradient accumulation 4
Learning rate 3e-4
Weight decay 0.01
Scheduler Cosine
Warmup ratio 0.05
Max grad norm 1.0
Precision FP16 / BF16
Optimizer AdamW (torch)
Checkpointing ogni 2000 step
Resume automatico ✅
Save best model ✅
⚠️ Avvertenze e limitazioni
microDAC è un modello sperimentale, soggetto a miglioramenti futuri.
Le prestazioni su conversazioni complesse o troppo lunghe possono degradare.
Non adatto a contenuti sensibili o critici.
🚀 Uso previsto
Chatbot leggeri e assistenti in lingua italiana
Prototipi embedded o mobile
Fine-tuning personalizzati su dataset specifici
Nota: mantenere input sotto i 2 000 token per risultati ottimali.
🧰 Installazione
pip install transformers torch
🧪 Esempio di utilizzo in Python
1 from transformers import AutoModelForCausalLM , AutoTokenizer
2 import torch
3
4 tokenizer = AutoTokenizer . from_pretrained ( "Mattimax/microDAC" )
5 model = AutoModelForCausalLM . from_pretrained ( "Mattimax/microDAC" ) . to ( "cuda" )
6
7 prompt = "<|user|> Ciao, come stai oggi?<|assistant|>"
8 inputs = tokenizer ( prompt , return_tensors = "pt" ) . to ( "cuda" )
9
10 outputs = model . generate ( ** inputs , max_new_tokens = 100 , temperature = 0.7 )
11 print ( tokenizer . decode ( outputs [ 0 ] , skip_special_tokens = True ) )
🔗 Integrazione consigliata
Applicazioni mobile o embedded: basso consumo e rapidità.
Sperimentazione NLP: ottimo punto di partenza per LoRA o adattamenti leggeri.
Dataset sintetici: utile per generare coppie domanda-risposta.