File size: 9,778 Bytes
9c1f0b5 e94337e 9c1f0b5 e9dea78 9c1f0b5 f8951e3 9c1f0b5 f8951e3 9c1f0b5 f8951e3 9c1f0b5 f8951e3 9c1f0b5 f8951e3 9c1f0b5 f8951e3 9c1f0b5 f8951e3 9c1f0b5 e94337e 9c1f0b5 e94337e 9c1f0b5 e94337e 9c1f0b5 023680c e94337e 9c1f0b5 e94337e 9c1f0b5 e94337e 9c1f0b5 e94337e 9c1f0b5 023680c e94337e 9c1f0b5 e94337e 9c1f0b5 e94337e 9c1f0b5 e9dea78 9c1f0b5 e9dea78 ddb4b1b 9c1f0b5 |
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 185 186 187 188 189 190 191 192 193 194 |
---
tags:
- sentence-transformers
- cross-encoder
- reranker
- generated_from_trainer
- dataset_size:474242
- loss:CrossEntropyLoss
base_model: dbmdz/bert-base-italian-uncased
pipeline_tag: text-classification
library_name: sentence-transformers
---
# 🍳 Horeca Cucine Industriali – Modello NLI Specializzato (Italiano)
## 📌 Panoramica
Questo modello NLI (Natural Language Inference) è **il primo modello open-source specializzato esclusivamente sull’analisi semantica di schede tecniche di CUCINE INDUSTRIALI e PIANI COTTURA**.
✅ Non è un modello generalista
Il modello è in grado di stabilire se una caratteristica **è presente (entailment), assente (contradiction) o non menzionata (neutral)** nella descrizione tecnica di un prodotto.
---
## 🎯 Obiettivo del Modello
Consentire a sistemi di ricerca, Q&A o RAG di:
- Comprendere realmente le schede prodotto di cucine professionali
- Verificare se una certa caratteristica è presente o meno
- Estrarre informazioni in modo intelligente tramite logica NLI
---
## ✅ Caratteristiche Analizzate
Il modello è stato addestrato per riconoscere e validare le seguenti caratteristiche:
- Numero di zone di cottura (es. 4 fuochi, 6 fuochi, 4 piastre)
- Tipo di cottura (gas, elettrico, induzione)
- Disposizione (su forno, a banco, top)
- Dimensioni (larghezza, profondità)
- Struttura / accessori (vano forno, vano aperto, mobile chiuso, alzatina, ecc.)
---
## 💡 Perché è Unico?
| Modello | Specializzazione | Lingua | Applicazione reale |
|--------|------------------|--------|--------------------|
| GPT / Llama / generalisti | ❌ No | 🌐 Multi | ❓ Limitata |
| Classici modelli NLI | ❌ No | ❓ Spesso EN | ❌ Non capiscono il dominio tecnico |
| **QUESTO MODELLO** | ✅ SOLO cucine e piani cottura | ✅ Italiano | ✅ Pensato per industria Ho.Re.Ca |
---
## 🔧 Architettura
- **Base model:** `dbmdz/bert-base-italian-uncased`)
- **Task:** Natural Language Inference (3 classi: entailment, contradiction, neutral)
- **Linguaggio:** Italiano
- **Dominio:** Schede tecniche di cucine industriali
---
## 🧾 Formato Input / Output
Questo è un modello NLI: riceve in input **premessa + ipotesi**.
**Esempio:**
- Premessa:
`Cucina a gas 4 fuochi con vano forno statico`
- Ipotesi:
`la cucina ha un forno`
- Output:
`entailment`
---
## 🧪 Esempio d’Uso (Python)
## Usage
### Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
```bash
pip install -U sentence-transformers
```
Then you can load this model and run inference.
```python
from sentence_transformers import CrossEncoder
# Download from the 🤗 Hub
model = CrossEncoder("software-si/kitchen-it-nli")
# Get scores for pairs of texts
pairs = [
['unità di cottura dispositivo a gas, sei fuochi, con forno gas incluso,', 'la cucina è disposta su top'],
['cucina piastre quadrate incluse, posizionata su forno, piano a induzione, profondità utile 90 cm,', 'la cucina ha un forno alimentato a gas'],
['modulo cucina misure 70 cm di profondità, forno alimentato elettricamente, dispone di 6 fuochi,', 'la cucina ha un forno'],
['modulo cucina con piastre tonde, cottura elettrica, dotata di due zone di cottura, dimensione teglie di gn1/1', 'le zone cottura disponibili sono quattro'],
['piano cottura quattro zone separate, modello in versione top, piastre di forma tonda, di settanta centimetri di profondità,', 'disponibile in più varianti estetiche'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5, 3)
```
## Training Details
### Training Dataset
#### json
* Dataset: json
* Size: 474,242 training samples
* Columns: <code>premises</code>, <code>hypothesis</code>, and <code>labels</code>
* Approximate statistics based on the first 1000 samples:
| | premises | hypothesis | labels |
|:--------|:-------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------|:-------------------------------------------------------------------|
| type | string | string | int |
| details | <ul><li>min: 37 characters</li><li>mean: 101.06 characters</li><li>max: 160 characters</li></ul> | <ul><li>min: 12 characters</li><li>mean: 34.38 characters</li><li>max: 53 characters</li></ul> | <ul><li>0: ~38.30%</li><li>1: ~38.70%</li><li>2: ~23.00%</li></ul> |
* Samples:
| premises | hypothesis | labels |
|:------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------|:---------------|
| <code>cucina teglia dimensione gn1/1 versione con forno incorporato, alimentazione a induzione, piastre tonde preinstallate,</code> | <code>garantita da controlli rigorosi in fase di produzione</code> | <code>2</code> |
| <code>unità di cottura fornita di piastre tonde, sopra vano, dimensione anteriore 90 cm, configurazione a 2 zone,</code> | <code>la cucina dispone di un forno</code> | <code>0</code> |
| <code>cucina piano a gas, quattro punti cottura, dimensione teglie di gn2/1</code> | <code>la cucina ha quattro zone cottura</code> | <code>1</code> |
* Loss: [<code>CrossEntropyLoss</code>](https://sbert.net/docs/package_reference/cross_encoder/losses.html#crossentropyloss)
### Evaluation Dataset
#### json
* Dataset: json
* Size: 142,272 evaluation samples
* Columns: <code>premises</code>, <code>hypothesis</code>, and <code>labels</code>
* Approximate statistics based on the first 1000 samples:
| | premises | hypothesis | labels |
|:--------|:-------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------|:-------------------------------------------------------------------|
| type | string | string | int |
| details | <ul><li>min: 41 characters</li><li>mean: 102.64 characters</li><li>max: 149 characters</li></ul> | <ul><li>min: 12 characters</li><li>mean: 34.15 characters</li><li>max: 53 characters</li></ul> | <ul><li>0: ~38.40%</li><li>1: ~39.50%</li><li>2: ~22.10%</li></ul> |
* Samples:
| premises | hypothesis | labels |
|:---------------------------------------------------------------------------------------------------------------|:----------------------------------------------------|:---------------|
| <code>unità di cottura dispositivo a gas, sei fuochi, con forno gas incluso,</code> | <code>la cucina è disposta su top</code> | <code>0</code> |
| <code>cucina piastre quadrate incluse, posizionata su forno, piano a induzione, profondità utile 90 cm,</code> | <code>la cucina ha un forno alimentato a gas</code> | <code>0</code> |
| <code>modulo cucina misure 70 cm di profondità, forno alimentato elettricamente, dispone di 6 fuochi,</code> | <code>la cucina ha un forno</code> | <code>1</code> |
* Loss: [<code>CrossEntropyLoss</code>](https://sbert.net/docs/package_reference/cross_encoder/losses.html#crossentropyloss)
### Training Logs
| Epoch | Step | Training Loss | Validation Loss |
|:------:|:-----:|:-------------:|:---------------:|
| 0.1349 | 2000 | 0.7725 | 0.4394 |
| 0.2699 | 4000 | 0.3298 | 0.1768 |
| 0.4048 | 6000 | 0.1659 | 0.1137 |
| 0.5398 | 8000 | 0.113 | 0.0818 |
| 0.6747 | 10000 | 0.0784 | 0.0529 |
| 0.8097 | 12000 | 0.053 | 0.0391 |
| 0.9446 | 14000 | 0.0421 | 0.0328 |
### Framework Versions
- Python: 3.12.3
- Sentence Transformers: 5.1.1
- Transformers: 4.57.0
- PyTorch: 2.8.0+cu128
- Accelerate: 1.10.1
- Datasets: 4.1.1
- Tokenizers: 0.22.1
## Citation
### BibTeX
#### Sentence Transformers
```bibtex
@inproceedings{reimers-2019-sentence-bert,
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2019",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/1908.10084",
}
```
|