--- license: mit datasets: - e-palmisano/italian_dataset_mix language: - it base_model: - GroNLP/gpt2-small-italian library_name: transformers tags: - DAC - DATA-AI - data-ai new_version: Mattimax/DACMini-IT --- [![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/DACMini/resolve/main/DACMini_Logo/DACMini_Logo.png) # Mattimax/DACMini - **Autore:** [Mattimax](https://huggingface.co/Mattimax) - **Organizzazione:** [M.INC](https://huggingface.co/MINC01) - **Licenza:** MIT --- ## Descrizione **DACMini** è un modello di linguaggio compatto progettato per chat in lingua italiana. Basato su una architettura **Transformer** derivata da *GroNLP/gpt2-small-italian*, è ottimizzato per essere rapido, leggero e facilmente distribuibile su dispositivi a risorse limitate. Fa parte della collezione [**Little_DAC (DATA-AI Chat)**](https://huggingface.co/collections/Mattimax/little-dac-collection-68e11d19a5949d08e672b312), ed è **l’ultimo e più grande modello** della serie, pensato per offrire un compromesso ideale tra efficienza e qualità linguistica. > Questo modello è un **esperimento** e rimane in fase di sviluppo: le prestazioni possono risultare inferiori rispetto a modelli di dimensioni maggiori, ma è ottimizzato per velocità e compattezza. --- ## Dataset di addestramento Il modello è stato addestrato su un mix di dataset italiani provenienti da [e-palmisano/italian_dataset_mix](https://huggingface.co/datasets/e-palmisano/italian_dataset_mix), composto da coppie *user-assistant* strutturate in formato conversazionale. L’obiettivo è stato l’apprendimento di turni di dialogo naturali e coerenti in italiano. --- ## Obiettivo Allenare un modello linguistico leggero e performante per **chatbot in lingua italiana**, con particolare attenzione a: - riduzione della latenza di generazione; - supporto per prompt in formato *chat* (`<|user|>`, `<|assistant|>`); - mantenimento di risposte naturali e grammaticalmente corrette in contesti brevi. --- ## Caratteristiche tecniche * **Architettura:** GPT-2 Small (italian adaptation) * **Dimensione del vocabolario:** ~50.000 token * **Lunghezza massima del contesto:** 512 token * **Numero di strati (layers):** 12 * **Numero di teste di attenzione:** 12 * **Dimensione embedding:** 768 * **Quantizzazione:** supportata (8-bit / 4-bit opzionale con `bitsandbytes`) --- ## Avvertenze e limitazioni * Modello **sperimentale**: può produrre errori logici o risposte non pertinenti. * Non addestrato per temi sensibili o contenuti specialistici. * Prestazioni limitate su testi lunghi o conversazioni multi-turno. * Non progettato per usi commerciali senza ulteriore validazione. --- ## Uso previsto * Chatbot sperimentali in lingua italiana. * Applicazioni leggere o offline dove la dimensione del modello è critica. * Test e prototipazione di pipeline NLP o dataset sintetici. > **Consigliato:** input brevi, contesti semplici e prompt formattati correttamente. --- ## Esempio d’uso (Inferenza) ```python from transformers import AutoTokenizer, AutoModelForCausalLM import torch # Carica modello e tokenizer model_name = "Mattimax/DACMini" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) model.eval() def chat_inference(prompt, max_new_tokens=150, temperature=0.7, top_p=0.9): formatted_prompt = f"<|user|> {prompt.strip()} <|assistant|>" inputs = tokenizer(formatted_prompt, return_tensors="pt") with torch.no_grad(): output = model.generate( **inputs, max_new_tokens=max_new_tokens, temperature=temperature, top_p=top_p, do_sample=True, pad_token_id=tokenizer.pad_token_id or tokenizer.eos_token_id ) generated_text = tokenizer.decode(output[0], skip_special_tokens=True) response = generated_text.split("<|assistant|>")[-1].strip() return response # Esempio interattivo if __name__ == "__main__": while True: user_input = input("👤 Utente: ") if user_input.lower() in ["exit", "quit"]: break print("🤖 Assistant:", chat_inference(user_input), "\n") ```` --- ## Integrazione consigliata * **Applicazioni mobile o embedded** → basso consumo di RAM e CPU. * **Sperimentazione NLP** → utile per test di prompt, fine-tuning mirato o creazione di dati sintetici. * **Pipeline leggere di dialogo** → compatibile con `transformers` e `bitsandbytes` per quantizzazione. --- ## Riferimenti * Dataset: [italian-dataset-mini](https://huggingface.co/datasets/ruslanmv/italian-dataset-mini) * Autore: [Mattimax](https://huggingface.co/Mattimax) * Organizzazione: [M.INC](https://huggingface.co/MINC01) * Collezione: [Little_DAC Collection](https://huggingface.co/collections/Mattimax/little-dac-collection-68e11d19a5949d08e672b312) ## Citazione Se utilizzi **Mattimax/DACMini** in un progetto, un articolo o qualsiasi lavoro, ti chiediamo gentilmente di citarlo usando il file `CITATION.bib` incluso nel repository: ```bibtex @misc{mattimax2025dacmini, title = {{Mattimax/DACMini}: Un modello di linguaggio open source}, author = {Mattimax}, howpublished = {\url{https://huggingface.co/Mattimax/DACMini}}, year = {2025}, note = {License: MIT. Se usi questo modello, per favore citane la fonte originale.} } ```