--- license: gpl-3.0 language: - it library_name: transformers tags: - DAC - data-ai - DATA-AI - transformer - experimental --- # 🧠 microDAC [![HuggingFace](https://img.shields.io/badge/HuggingFace-Mattimax-brightgreen)](https://huggingface.co/Mattimax) [![M.INC](https://img.shields.io/badge/M.INC-Labs-blue)](https://huggingface.co/MINC01) ![Logo di microDAC](https://huggingface.co/Mattimax/microDAC/resolve/main/microDAC_Logo.png) --- ## ℹ️ Informazioni sul modello - **Autore:** [Mattimax](https://huggingface.co/Mattimax) - **Organizzazione:** [M.INC](https://huggingface.co/MINC01) - **Pagina GitHub:** [microDAC](https://github.com/M-INC-01/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:** ```text <|user|> ... <|sep|> → label = -100 <|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 ```bash pip install transformers torch ``` --- ## 🧪 Esempio di utilizzo in Python ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch tokenizer = AutoTokenizer.from_pretrained("Mattimax/microDAC") model = AutoModelForCausalLM.from_pretrained("Mattimax/microDAC").to("cuda") prompt = "<|user|> Ciao, come stai oggi?<|assistant|>" inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_new_tokens=100, temperature=0.7) 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.