Instructions to use rinaldiden/ilsocio-brain with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use rinaldiden/ilsocio-brain with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir ilsocio-brain rinaldiden/ilsocio-brain
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
ilsocio-brain โ il modello locale (L1 โ L8) + storico training
โญโญ MODELLO DEFINITIVO (l'ultimo, il top) โ innesto_L1L8/
Il Socio locale end-to-end, validato. Non รจ un singolo file di pesi: รจ una pipeline in 3 pezzi, perchรฉ il principio รจ che il modello NON dice il fisco โ estrae i fatti e ri-verbalizza, i numeri/verdetti li mette il codice deterministico.
messaggio โ [L1] estrae i fatti โ [deterministico L2โL7] verdetto + norma + numeri โ [L8] risposta calda e fedele
- L1 ยท estrazione โ i 13 fatti ostativi (JSON si/no/non_detto). Estrattore validato: acc_classe 75.2%, CONFIDENTLY_WRONG = 0 sul golden held-out.
- Deterministico (L2โL7) โ verifica, schema firmato, lookup ATECO, verdetto a 2 lenti, DEFER fail-closed, calcoli. Ogni numero/norma dal codice, mai dai pesi.
- L8 ยท risposta โ base Qwen2.5-3B-8bit + persona ยซil Socioยป: verbalizza il verdetto fedele e caldo, senza inventare. Chiacchiere โ tono da persona.
Sicurezza (la cosa che conta): mai un falso "puoi aprire tranquillo" su un caso ostativo.
๐ Il flusso completo, cosa fa ogni passaggio โ innesto_L1L8/PERCORSO_L1_L8.md
๐ ๏ธ Il runner end-to-end โ innesto_L1L8/socio_locale.py ยท โถ๏ธ python innesto_L1L8/socio_locale.py --chat
โ
La validazione โ innesto_L1L8/test/valida_L1.py
Nota: la lezione chiave โ L1 (estrazione) si addestra benissimo; L8 (risposta) NO (su un instruct forte il fine-tune rompe). Perciรฒ il definitivo = L1 addestrato + deterministico + L8 base guidato, non un mega fine-tune. Le prove in
innesto_L1L8/train/.
Storico training precedente (esperimenti conversazionali v1.2 โ v1.8)
Combo conversazionale migliore dei giri precedenti: lora_estrazione_v1.7/finale +
lora_conversazione_v1.6/finale. Le v1.8 erano esperimenti sul dataset pulito.
Archivio di tutti i training del progetto ilsocio-brain. Serve come storico versionato: ogni cartella รจ uno stato salvato del lavoro, per non perdere nessun adapter/modello.
Base model: mlx-community/Qwen2.5-3B-Instruct-4bit.
Contenuto
| cartella | cosa contiene |
|---|---|
lora_conversazione/ |
modello fuso HF โ task conversazione |
lora_conversazione_v1.2/ |
modello fuso HF โ task conversazione, v1.2 |
lora_conversazione_mlx/ |
adapter MLX โ conversazione (checkpoint + finale) |
lora_conversazione_mlx_v1.2/ |
adapter MLX โ conversazione, v1.2 |
lora_estrazione/ |
modello fuso HF โ task estrazione |
lora_estrazione_v1.2/ |
modello fuso HF โ task estrazione, v1.2 |
lora_estrazione_mlx/ |
adapter MLX โ estrazione (checkpoint + finale) |
lora_estrazione_mlx_v1.2/ |
adapter MLX โ estrazione, v1.2 |
mlx_dati_conversazione/ |
dati di training MLX โ conversazione |
mlx_dati_estrazione/ |
dati di training MLX โ estrazione |
router_intento.joblib |
classificatore router intento |
lora_estrazione_v1.5/ ยท lora_estrazione_mlx_v1.5/ |
estrazione v1.5 (fuso HF + adapter MLX) |
lora_conversazione_v1.5/ ยท lora_conversazione_mlx_v1.5/ |
conversazione v1.5 (fuso HF + adapter MLX) |
mlx_dati_*_v1.5/ |
dati di training MLX v1.5 |
lora_conversazione_v1.6/ ยท lora_conversazione_mlx_v1.6/ |
conversazione v1.6 (fuso HF + adapter MLX) |
lora_estrazione_v1.6/ ยท lora_estrazione_mlx_v1.6/ |
estrazione v1.6 (fuso HF + adapter MLX) |
mlx_dati_*_v1.6/ |
dati di training MLX v1.6 |
lora_estrazione_v1.7/ ยท lora_estrazione_mlx_v1.7/ |
estrazione v1.7 (fuso HF + adapter MLX) |
mlx_dati_estrazione_v1.7/ |
dati di training MLX estrazione v1.7 |
lora_*_v1.8/ ยท lora_*_v1.8_900/ |
estrazione+conversazione v1.8 a 400 / 900 iter (dataset pulito) |
lora_conversazione_v1.8_2400/ |
conversazione a 2400 iter, dataset pulito (overfit) |
lora_conversazione_v1.8_curati/ |
conversazione a 2000 iter CON curati (controprova impalcatura) |
Versioni
- 1.4.0 (cartelle senza suffisso
_v1.x): stato "fedelta' al detto in estrazione". - 1.5.0 (cartelle
_v1.5): router cablato a runtime (estrazione solo su DATO, prodotto.md solo su PRODOTTO), hard-negatives in estrazione, upsample delle conversazioni A multi-turno, e split del dataset per conversazione (niente piu' leakage di turni fra train e val). Base e iperparametri invariati (Qwen2.5-3B-4bit, iters 400, batch 1, 16 layer, lr 1e-4). - 1.6.0 (cartelle
_v1.6): due migliorie, 800 iters.- conversazione: esempi cold-start (saluti/chiacchiera a contesto vuoto, upsampled x4) contro il pivot forzato sul forfettario e le biografie inventate.
- estrazione: positivi mirati
nuova_attivita('voglio aprire una piva' -> true), generati su piu' contesti (a freddo e dopo un saluto) perche' reggano nella chat vera; nessuna over-estrazione (un mestiere non attivanuova_attivita). Combo runtime consigliata:lora_estrazione_v1.6/finale+lora_conversazione_v1.6/finale.
- 1.7.0 (solo estrazione,
_v1.7). Nato da uno stress test di ~50 turni. Due fronti: (a) router (router.py, codice) esteso a eta'/residenza/'mettermi in proprio'/revisioni โ prima li mandava in CHIACCHIERA e i dati si perdevano; (b) estrazione con scenari a scheda/storico realistici: mestiere dichiarato a meta' conversazione (prima lo perdeva) e contraddizioni (fatturato/eta'/ mestiere rivisti) col campocontraddizionipopolato. Riequilibrata con negativi vago->vuoto per non over-estrarre. La conversazione resta v1.6. Combo runtime consigliata:lora_estrazione_v1.7/finale+lora_conversazione_v1.6/finale. - 1.8 (cartelle
_v1.8*): primo giro sul dataset della fabbrica (313 conversazioni vere, generate e passate da gate+valutatore), senza i ~172 esempi curati a mano (esclusi di default conbuild_dataset.py, servono--con-curati). Esperimento di attribuzione. Varianti:_v1.8= 400 iter ยท_v1.8_900= 900 iter (estrazione + conversazione)_v1.8_2400= conversazione a 2400 iter (2 epoche)_v1.8_curati= conversazione a 2000 iter CON i curati (controprova) Esito: sul dataset pulito il conversazionale non regge a nessun numero di iter (0.34 / 0.77 / 2.03 epoche: tutte incoerenti, piu' iter = overfit). Con i curati a ~1.5 epoche torna coerente (livello ~v1.6). Conclusione: i curati erano impalcatura (soprattutto i cold-start drillati), non un limite del 3B. La fabbrica a 313 conversazioni da sola non basta ancora; il miglior modello utilizzabile resta la combo v1.7 estrazione + v1.6 conversazione. Difetto noto categoria E: l'assistente recita la scheda prodotto come slogan invece di rispondere alla paura (ITALIANO_FINTO) โ viene dal registro delle conversazioni E.
Note
- Repo privato: solo l'autore vi accede.
- Gli adapter MLX si allenano con
mlx_lm.lorasu baseQwen2.5-3B-Instruct-4bit.
Quantized