DACMini / README.md
Mattimax's picture
Update README.md
f4f04df verified
---
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.}
}
```