File size: 3,723 Bytes
458ca70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
---
license: mit
datasets:
- Mattimax/TinyChat-ITA
language:
- it
library_name: transformers.js
tags:
- DAC
- M.INC.
- conversational
---

# 🇮🇹 MINC01/ITA-Mini-60M

**MINC01/ITA-Mini-60M** è un modello linguistico causale da circa **60 milioni di parametri**, ottimizzato per la **conversazione in lingua italiana**.  
Il modello è stato addestrato su un dataset proprietario di dialoghi istruzione-risposta, con l’obiettivo di offrire buone capacità conversazionali in un formato leggero e facilmente distribuibile.

---

## 📌 Panoramica

- Modello: Decoder-only (stile LLaMA)
- Parametri: ~60M  
- Lingua principale: Italiano  
- Task principale: Chat / Istruzioni / Generazione testo  
- Contesto massimo: 512 token  
- Addestramento: Supervised Fine-Tuning (SFT)

---

## 🎯 Use Cases Previsti

- Chatbot in lingua italiana  
- Assistenti locali / embedded  
- Prototipi di agenti conversazionali  
- Dataset labeling / data augmentation  
- Esperimenti di ricerca su modelli piccoli  

Non è progettato per:

- Ragionamento complesso multi-step  
- Applicazioni mission-critical  
- Produzione di contenuti ad alta affidabilità  

---

## 🧠 Architettura

- Transformer decoder-only  
- Causal Language Model  
- Embedding e blocchi compatibili con ecosistema LLaMA  
- Addestramento con masking delle parti prompt (solo risposta contribuisce alla loss)

---

## 📚 Dataset

- Proprietario  
- ~30.000 esempi  
- Struttura: coppie **input → response**  
- Dominio: conversazionale generale  
- Lingua: italiano  

### Pulizia applicata

- Rimozione esempi vuoti  
- Parsing JSON validato  
- Scarto sequenze sopra la lunghezza massima  

---

## 🏗️ Template Conversazionale

```

<|user|>
{testo_utente}
<|assistant|>
{risposta_modello}</s>

````

Il modello è sensibile a questo formato.

---

## ⚙️ Procedura di Training (Sintesi)

- Fine-tuning supervisionato
- Mixed Precision (AMP)
- Gradient Accumulation
- Gradient Checkpointing
- AdamW optimizer
- Cosine learning rate schedule con warmup

### Parametri principali

| Parametro | Valore |
|----------|-------|
| Batch size | 8 |
| Gradient accumulation | 4 |
| Learning rate | 2e-5 |
| Epochs | 2 |
| Weight decay | 0.05 |
| Warmup ratio | 0.1 |
| Max grad norm | 1.0 |
| Validation split | 5% |

---

## 📈 Valutazione

- Metica: Cross-Entropy Loss su validation set  
- Non sono stati eseguiti benchmark standard (es. MMLU, HELM, etc.)

Il modello è stato validato esclusivamente tramite loss e test qualitativi manuali.

---

## 🧪 Limitazioni Note

- Possibili allucinazioni  
- Conoscenza limitata  
- Sensibile al prompt  
- Ragionamento debole  
- Possibili bias presenti nel dataset proprietario  

---

## ⚠️ Considerazioni Etiche

Il modello:

- Può generare informazioni errate  
- Non deve essere usato come fonte autorevole  
- Non ha filtri di sicurezza avanzati  

Responsabilità d’uso interamente a carico dell’utente.

---

## 🚀 Come Usare

```python
from transformers import AutoTokenizer, AutoModelForCausalLM

tok = AutoTokenizer.from_pretrained("MINC01/ITA-Mini-60M")
model = AutoModelForCausalLM.from_pretrained("MINC01/ITA-Mini-60M")

prompt = "<|user|>\nScrivi una poesia sul mare.\n<|assistant|>\n"
inputs = tok(prompt, return_tensors="pt")

out = model.generate(**inputs, max_new_tokens=200)
print(tok.decode(out[0], skip_special_tokens=True))
````

---

## 🔁 Prompting Tips

* Usare sempre il template
* Istruzioni brevi e chiare
* Una richiesta per volta
* Evitare contesti troppo lunghi

---

## 👤 Autore

MINC01

---

## 📌 Citazione

```
@misc{minc01_ita_mini_60m,
  title = {MINC01/ITA-Mini-60M},
  author = {MINC01},
  year = {2026},
  publisher = {HuggingFace}
}
```