@mcptoolshop/backpropagate 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.es.md +51 -54
- package/README.fr.md +5 -8
- package/README.hi.md +5 -8
- package/README.it.md +58 -61
- package/README.ja.md +73 -76
- package/README.md +5 -8
- package/README.pt-BR.md +5 -8
- package/README.zh.md +5 -8
- package/bin/backpropagate.js +1 -1
- package/package.json +2 -2
package/README.it.md
CHANGED
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
<a href="https://mcp-tool-shop-org.github.io/backpropagate/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
15
15
|
</p>
|
|
16
16
|
|
|
17
|
-
**Messa a punto di
|
|
17
|
+
**Messa a punto di LLM senza interfaccia utente in 3 righe. Impostazioni predefinite intelligenti, dimensionamento automatico dei batch in base alla VRAM, addestramento SLAO multi-sessione e esportazione GGUF con un solo clic per Ollama.**
|
|
18
18
|
|
|
19
|
-
*SLAO è Single LoRA Continual Learning via Asymmetric Merging: una tecnica di
|
|
19
|
+
*SLAO è Single LoRA Continual Learning via Asymmetric Merging: una tecnica di unione tra sessioni di addestramento che previene la perdita di informazioni durante le sessioni di messa a punto prolungate (articolo: [https://arxiv.org/abs/2512.23017]).*
|
|
20
20
|
|
|
21
21
|
*Addestra modelli linguistici di grandi dimensioni con 3 righe di codice. Esportali su Ollama con un'altra riga.*
|
|
22
22
|
|
|
@@ -34,9 +34,9 @@ trainer.train("examples/quickstart.jsonl", steps=10)
|
|
|
34
34
|
trainer.export("gguf", quantization="q4_k_m") # Ready for Ollama
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
Il repository include un piccolo file `examples/quickstart.jsonl` (5 esempi in formato ShareGPT) in modo che lo snippet
|
|
37
|
+
Il repository include un piccolo file `examples/quickstart.jsonl` (5 esempi in formato ShareGPT) in modo che lo snippet precedente possa essere eseguito completamente su un'installazione pulita. Per il tuo addestramento, consulta la sezione [Formato del dataset](#dataset-format) sottostante.
|
|
38
38
|
|
|
39
|
-
### Percorso senza codice: Interfaccia
|
|
39
|
+
### Percorso senza codice: Interfaccia web
|
|
40
40
|
|
|
41
41
|
Preferisci un'interfaccia utente anziché una REPL Python? Installa gli extra necessari ed esegui:
|
|
42
42
|
|
|
@@ -45,36 +45,36 @@ pip install backpropagate[standard]
|
|
|
45
45
|
backprop ui --port 7862
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
L'interfaccia Reflex (Radix UI) ti consente di
|
|
48
|
+
L'interfaccia Reflex (Radix UI) ti consente di puntare a un file JSONL, selezionare un modello, addestrare e esportare: non è richiesta alcuna conoscenza di Python. L'interfaccia utente è progettata per funzionare principalmente in locale; per l'accesso tramite internet, consulta la sezione [Interfaccia web](#web-ui) sottostante per il contratto di sicurezza `--share` + `--auth` e le opzioni di tunneling supportate (Cloudflare Tunnel, ngrok).
|
|
49
49
|
|
|
50
50
|
## Formato del dataset
|
|
51
51
|
|
|
52
|
-
Il tuo file di addestramento
|
|
52
|
+
Il tuo file di addestramento JSONL dovrebbe contenere un esempio per riga. Il formato più semplice è la chat ShareGPT:
|
|
53
53
|
|
|
54
54
|
```jsonl
|
|
55
55
|
{"conversations": [{"from": "human", "value": "What is Python?"}, {"from": "gpt", "value": "A programming language."}]}
|
|
56
56
|
{"conversations": [{"from": "human", "value": "Explain recursion."}, {"from": "gpt", "value": "A function that calls itself."}]}
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Sono supportati anche i formati Alpaca (`instruction`/`output`), OpenAI chat (`messages`) e testo semplice. Consulta
|
|
59
|
+
Sono supportati anche i formati Alpaca (`instruction`/`output`), OpenAI chat (`messages`) e testo semplice. Consulta `examples/quickstart.jsonl` per un punto di partenza.
|
|
60
60
|
|
|
61
|
-
## Perché propagare
|
|
61
|
+
## Perché propagare il gradiente?
|
|
62
62
|
|
|
63
63
|
| Problema | Soluzione |
|
|
64
64
|
|---------|----------|
|
|
65
65
|
| La messa a punto è complessa | 3 righe: caricamento, addestramento, salvataggio |
|
|
66
66
|
| Windows è un incubo | Supporto completo per Windows |
|
|
67
|
-
| La gestione della VRAM è difficile |
|
|
68
|
-
| L'esportazione del modello è
|
|
67
|
+
| La gestione della VRAM è difficile | Dimensionamento automatico dei batch, monitoraggio della GPU |
|
|
68
|
+
| L'esportazione del modello è complicata | Esportazione GGUF con un solo clic + registrazione automatica con Ollama |
|
|
69
69
|
| Le sessioni di addestramento prolungate causano la perdita di informazioni | Addestramento SLAO multi-sessione |
|
|
70
70
|
|
|
71
71
|
## Caratteristiche principali
|
|
72
72
|
|
|
73
|
-
- **Senza interfaccia
|
|
73
|
+
- **Senza interfaccia utente per design**: Progettato per pipeline CI/CD, flussi di lavoro automatizzati ed esecuzione programmatica.
|
|
74
74
|
- **Impostazioni predefinite intelligenti**: Configura automaticamente gli iperparametri ottimali in base all'hardware e al dataset.
|
|
75
75
|
- **Addestramento SLAO multi-sessione**: Strategie di addestramento avanzate per prevenire la perdita di informazioni durante le sessioni di addestramento prolungate.
|
|
76
76
|
- **Supporto completo per Windows**: Testato e ottimizzato per gli ambienti Windows, evitando i problemi comuni di PyTorch/CUDA.
|
|
77
|
-
- **Esportazione
|
|
77
|
+
- **Esportazione semplice**: Esportazione con un solo clic nel formato GGUF e registrazione automatica con Ollama.
|
|
78
78
|
- **Architettura modulare**: Installa solo le dipendenze necessarie (ad esempio, `[unsloth]`, `[ui]`, `[export]`).
|
|
79
79
|
|
|
80
80
|
## Installazione
|
|
@@ -89,12 +89,11 @@ pip install backpropagate[full] # Everything
|
|
|
89
89
|
|
|
90
90
|
| Extra | Descrizione | Dipendenze |
|
|
91
91
|
|-------|-------------|--------------|
|
|
92
|
-
| `unsloth` | Addestramento 2 volte più veloce, 50% in meno
|
|
93
|
-
| `ui` | Interfaccia
|
|
92
|
+
| `unsloth` | Addestramento 2 volte più veloce, 50% di VRAM in meno | unsloth |
|
|
93
|
+
| `ui` | Interfaccia web Reflex (Radix UI) | reflex>=0.9.2, fastapi>=0.115 |
|
|
94
94
|
| `validation` | Validazione della configurazione Pydantic | pydantic, pydantic-settings |
|
|
95
95
|
| `export` | Esportazione GGUF per Ollama | llama-cpp-python |
|
|
96
96
|
| `monitoring` | WandB + monitoraggio del sistema (integrato automaticamente nel trainer dalla versione 1.1.0) | wandb, psutil |
|
|
97
|
-
| `observability` | Tracciamento OpenTelemetry | opentelemetry-api, opentelemetry-sdk |
|
|
98
97
|
| `logging` | Logging strutturato | structlog |
|
|
99
98
|
| `security` | Autenticazione JWT + generazione di token | PyJWT, cryptography |
|
|
100
99
|
| `production` | unsloth + ui + validation + logging + security | (bundle) |
|
|
@@ -103,20 +102,20 @@ pip install backpropagate[full] # Everything
|
|
|
103
102
|
|
|
104
103
|
### Prerequisiti della piattaforma
|
|
105
104
|
|
|
106
|
-
Backpropagate gestisce le
|
|
105
|
+
Backpropagate gestisce le peculiarità del runtime (multiprocessing, xformers su RTX 40/50, worker del dataloader su Windows). Non gestisce i problemi di installazione specifici della piattaforma: risolvili prima.
|
|
107
106
|
|
|
108
|
-
- **Versione del toolkit CUDA.** PyTorch viene
|
|
109
|
-
- **Windows.** Sono necessari Visual Studio Build Tools (C++) e CMake per l'
|
|
110
|
-
- **macOS.** L'addestramento con GPU **non è supportato**; non è disponibile CUDA. È possibile installare Backpropagate per eseguire l'inferenza su un file GGUF
|
|
111
|
-
- **Linux.** La maggior parte delle distribuzioni funziona immediatamente. Se
|
|
107
|
+
- **Versione del toolkit CUDA.** PyTorch viene distribuito in base alla versione di CUDA; scegliere la versione sbagliata installa silenziosamente solo la versione per CPU. Utilizzare lo strumento di selezione all'indirizzo <https://pytorch.org/get-started/locally/> per ottenere il comando `pip install torch ...` corretto per il proprio driver. Eseguire `nvidia-smi` per visualizzare la versione del driver/CUDA.
|
|
108
|
+
- **Windows.** Sono necessari Visual Studio Build Tools (C++) e CMake per l'estensione `[export]` (la compilazione di `llama-cpp-python` avviene dal codice sorgente). La versione per Windows di `bitsandbytes` è ora disponibile nativamente (>= 0.43); le guide precedenti che menzionano `bitsandbytes-windows` sono obsolete.
|
|
109
|
+
- **macOS.** L'addestramento con GPU **non è supportato**; non è disponibile CUDA. È possibile installare Backpropagate per eseguire l'inferenza su un file GGUF tramite Ollama, ma `trainer.train()` genera l'errore `DEP_GPU_NOT_AVAILABLE`. Utilizzare una macchina con GPU per l'addestramento.
|
|
110
|
+
- **Linux.** La maggior parte delle distribuzioni funziona immediatamente. Se si utilizza la versione binaria distribuita tramite PyPI, si noti che la versione per Linux utilizza solo la versione per CPU di torch (per rimanere al di sotto del limite di 2 GB per gli asset di rilascio di GitHub); installare prima la versione CUDA corrispondente da pytorch.org.
|
|
112
111
|
|
|
113
|
-
Per la risoluzione dei problemi di installazione,
|
|
112
|
+
Per la risoluzione dei problemi di installazione, consultare [la pagina della guida alla risoluzione dei problemi](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/).
|
|
114
113
|
|
|
115
114
|
## Configurazione
|
|
116
115
|
|
|
117
|
-
Tutte le impostazioni possono essere sovrascritte tramite variabili d'ambiente utilizzando il prefisso `BACKPROPAGATE_` (ad esempio, `BACKPROPAGATE_LOG_LEVEL=debug`). Un file `.env` nella directory principale del progetto viene caricato automaticamente quando viene
|
|
116
|
+
Tutte le impostazioni possono essere sovrascritte tramite variabili d'ambiente utilizzando il prefisso `BACKPROPAGATE_` (ad esempio, `BACKPROPAGATE_LOG_LEVEL=debug`). Un file `.env` nella directory principale del progetto viene caricato automaticamente quando viene installata l'estensione `[validation]`.
|
|
118
117
|
|
|
119
|
-
Impostazioni comuni (
|
|
118
|
+
Impostazioni comuni (vedere [il riferimento completo alle variabili d'ambiente](https://mcp-tool-shop-org.github.io/backpropagate/handbook/env-vars/) per tutte le opzioni):
|
|
120
119
|
|
|
121
120
|
| Variabile | Valore predefinito | Note |
|
|
122
121
|
|----------|---------|-------|
|
|
@@ -124,8 +123,8 @@ Impostazioni comuni (consultate [il riferimento completo delle variabili d'ambie
|
|
|
124
123
|
| `BACKPROPAGATE_LOG_JSON` | auto | Forza i log in formato JSON (`true`) o nella console (`false`) |
|
|
125
124
|
| `BACKPROPAGATE_LOG_FILE` | non impostato | Percorso per salvare i log |
|
|
126
125
|
| `BACKPROPAGATE_DEFER_FEATURE_DETECTION` | non impostato | Salta il rilevamento delle dipendenze opzionali all'avvio per un avvio più rapido della CLI |
|
|
127
|
-
| `BACKPROPAGATE_SECURITY__REQUIRE_AUTH_FOR_SHARE` | `true` |
|
|
128
|
-
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | Directory di base per tutte le scritture del
|
|
126
|
+
| `BACKPROPAGATE_SECURITY__REQUIRE_AUTH_FOR_SHARE` | `true` | Se impostato su `true`, rifiuta `backprop ui --share` senza l'opzione `--auth` |
|
|
127
|
+
| `BACKPROPAGATE_UI__OUTPUT_DIR` | `~/.backpropagate/ui-outputs` | Directory di base per tutte le scritture del file system dell'interfaccia utente; con convalida della whitelist |
|
|
129
128
|
| `BACKPROPAGATE_MODEL__NAME` | `Qwen/Qwen2.5-7B-Instruct` | Modello predefinito |
|
|
130
129
|
| `BACKPROPAGATE_TRAINING__LEARNING_RATE` | `2e-4` | Learning rate (tasso di apprendimento) |
|
|
131
130
|
| `BACKPROPAGATE_LORA__R` | `16` | LoRA rank (grado di LoRA) |
|
|
@@ -145,9 +144,9 @@ trainer.save("./my-model")
|
|
|
145
144
|
trainer.export("gguf", quantization="q4_k_m")
|
|
146
145
|
```
|
|
147
146
|
|
|
148
|
-
`Qwen/Qwen2.5-7B-Instruct` è il valore predefinito; questo è il valore che `Trainer()` restituisce quando viene chiamato senza un argomento del modello (vedere [`config.py`](backpropagate/config.py) `ModelConfig.name`). Gli esempi precedenti utilizzavano `unsloth/Qwen2.5-7B-Instruct-bnb-4bit`
|
|
147
|
+
`Qwen/Qwen2.5-7B-Instruct` è il valore predefinito; questo è il valore che `Trainer()` restituisce quando viene chiamato senza un argomento del modello (vedere [`config.py`](backpropagate/config.py) `ModelConfig.name`). Gli esempi precedenti utilizzavano `unsloth/Qwen2.5-7B-Instruct-bnb-4bit` (versione quantizzata), ma siamo passati ai pesi ufficiali di Qwen per una maggiore affidabilità ([CHANGELOG v1.1.0](CHANGELOG.md#110---2026-05-21)). Entrambi i modelli funzionano.
|
|
149
148
|
|
|
150
|
-
### Addestramento
|
|
149
|
+
### Addestramento multi-run SLAO
|
|
151
150
|
|
|
152
151
|
```python
|
|
153
152
|
from backpropagate import Trainer
|
|
@@ -191,11 +190,11 @@ backprop resume <run-id> # v1.1.0: resume a crashed multi
|
|
|
191
190
|
backprop push ./output/lora --repo me/my-model # v1.1.0: push adapter to HF Hub
|
|
192
191
|
```
|
|
193
192
|
|
|
194
|
-
|
|
193
|
+
Consultare [il riferimento della CLI](https://mcp-tool-shop-org.github.io/backpropagate/handbook/cli-reference/) per tutti i sottocomandi e i flag, oppure eseguire `backprop <sottocomando> --help`.
|
|
195
194
|
|
|
196
195
|
### Ripresa da checkpoint (v1.1.0)
|
|
197
196
|
|
|
198
|
-
Un
|
|
197
|
+
Un addestramento multi-run di 5 iterazioni che si interrompe all'iterazione 4 può ora essere ripreso. Ogni sessione di addestramento multi-run scrive il suo `run_id` sia in `run_history.json` che nel manifest del checkpoint su disco, quindi per riprendere da dove si era interrotto, è sufficiente un comando:
|
|
199
198
|
|
|
200
199
|
```bash
|
|
201
200
|
backprop resume <run-id> # picks up the in-progress session
|
|
@@ -203,13 +202,13 @@ backprop multi-run --data ... --resume <run-id> # explicit form
|
|
|
203
202
|
backprop train --data ... --resume <run-id> # single-run resume (continues run_id)
|
|
204
203
|
```
|
|
205
204
|
|
|
206
|
-
Il comportamento predefinito di `backprop multi-run` (senza `--resume`) rileva automaticamente
|
|
205
|
+
Il comportamento predefinito di `backprop multi-run` (senza `--resume`) rileva automaticamente una sessione in corso per la stessa directory di output e la continua. Per forzare l'avvio di una nuova sessione, utilizzare `resume_from="off"` (API Python) oppure omettere `--resume` e specificare una nuova directory di output.
|
|
207
206
|
|
|
208
|
-
Quando una multi-run viene ripresa,
|
|
207
|
+
Quando una sessione multi-run viene ripresa, il checkpoint più recente per quell'ID di esecuzione viene caricato nel modello, lo stato di fusione SLAO viene ripristinato dalla directory `slao/` accanto al checkpoint e il ciclo di esecuzione continua da `last_completed_run + 1`. Lo stato della voce nella cronologia viene riportato a `running`, quindi `backprop list-runs --status running` mostra la sessione attiva.
|
|
209
208
|
|
|
210
|
-
###
|
|
209
|
+
### Monitoraggio degli esperimenti (v1.1.0)
|
|
211
210
|
|
|
212
|
-
`Trainer` rileva automaticamente i
|
|
211
|
+
`Trainer` rileva automaticamente i sistemi di monitoraggio degli esperimenti installati (`wandb`, `tensorboard`, `mlflow`) e li integra con i parametri di training di `transformers`. Il valore predefinito `report_to="auto"` utilizza qualsiasi sistema importabile:
|
|
213
212
|
|
|
214
213
|
```bash
|
|
215
214
|
pip install backpropagate[monitoring] # installs wandb + psutil
|
|
@@ -217,11 +216,11 @@ wandb login # one-time
|
|
|
217
216
|
backprop train --data my_data.jsonl # W&B run gets the same run_id prefix as the on-disk history
|
|
218
217
|
```
|
|
219
218
|
|
|
220
|
-
Per disabilitare esplicitamente
|
|
219
|
+
Per disabilitare esplicitamente queste funzionalità, utilizzare `Trainer(report_to=["wandb"])`, `Trainer(report_to=["tensorboard"])` oppure `Trainer(report_to="none")`. Per MLflow, installare `pip install mlflow`; per TensorBoard, installare `pip install tensorboard`. Il nome dell'esecuzione W&B è `backprop-<run_id_prefix>`, consentendo agli operatori di effettuare ricerche in W&B, nei log e in `run_history.json` utilizzando lo stesso identificatore.
|
|
221
220
|
|
|
222
221
|
### Cronologia dell'addestramento
|
|
223
222
|
|
|
224
|
-
Ogni invocazione di `backprop train` e `backprop multi-run` registra una riga in `<output>/run_history.json`
|
|
223
|
+
Ogni invocazione di `backprop train` e `backprop multi-run` registra una riga in `<output>/run_history.json` contenente l'ID dell'esecuzione, il modello, il dataset, gli iperparametri, lo stato, la perdita finale, la cronologia delle perdite e, per le esecuzioni multi-run, la cronologia della fusione SLAO. Per visualizzare le esecuzioni recenti, utilizzare:
|
|
225
224
|
|
|
226
225
|
```bash
|
|
227
226
|
backprop list-runs # most recent 20 runs, all statuses
|
|
@@ -230,40 +229,38 @@ backprop list-runs --json --limit 100 # machine-readable
|
|
|
230
229
|
backprop show-run abcd1234 # detail view (partial run_id ok)
|
|
231
230
|
```
|
|
232
231
|
|
|
233
|
-
La cronologia delle esecuzioni viene mantenuta
|
|
232
|
+
La cronologia delle esecuzioni viene mantenuta tra i processi: la scheda "Runs" nell'interfaccia web è una visualizzazione separata in memoria; la cronologia salvata su disco è la fonte di verità per `list-runs` / `show-run` / `resume`.
|
|
234
233
|
|
|
235
234
|
### Interfaccia web
|
|
236
235
|
|
|
237
|
-
|
|
236
|
+
Per avviare l'interfaccia Reflex localmente:
|
|
238
237
|
|
|
239
238
|
```bash
|
|
240
239
|
backprop ui --port 7862
|
|
241
240
|
```
|
|
242
241
|
|
|
243
|
-
Per
|
|
242
|
+
Per rendere disponibile un URL accessibile da Internet, è necessario associare `--share` a `--auth`:
|
|
244
243
|
|
|
245
244
|
```bash
|
|
246
245
|
backprop ui --share --auth alice:hunter2
|
|
247
246
|
```
|
|
248
247
|
|
|
249
|
-
`backprop ui --share` senza `--auth`
|
|
248
|
+
L'esecuzione del comando `backprop ui --share` senza l'opzione `--auth` genera un codice di errore `1` e il messaggio di errore strutturato `[RUNTIME_UI_AUTH_NOT_ENFORCED]`. La motivazione è che l'opzione `--share` rende disponibile un URL pubblico a cui chiunque su Internet può accedere, e senza autenticazione, ciò significa che chiunque può controllare il vostro processo di addestramento. Non è possibile disabilitare questa funzionalità; se non desiderate impostare le credenziali, utilizzate invece il port forwarding tramite SSH: `ssh -L 7860:localhost:7860 <host>`, quindi accedete a `http://localhost:7860` localmente. Consultare il documento [handbook/security.md](site/src/content/docs/handbook/security.md) per una descrizione completa del modello di rischio.
|
|
250
249
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
Le scritture sul file system dall'interfaccia utente sono limitate a una singola directory:
|
|
250
|
+
Le operazioni di scrittura sul file system dall'interfaccia utente sono limitate a una singola directory:
|
|
254
251
|
|
|
255
252
|
- Predefinito: `~/.backpropagate/ui-outputs`
|
|
256
253
|
- Override: `BACKPROPAGATE_UI__OUTPUT_DIR=/path/you/own`
|
|
257
|
-
- L'override è **validato tramite una lista di esclusione**: i percorsi di sistema/credenziali (`/etc`, `/var`, `~/.ssh`, `~/.aws`, `C:\Windows\System32`, ecc.) vengono rifiutati con `[UI_OUTPUT_DIR_FORBIDDEN]`.
|
|
254
|
+
- L'override è **validato tramite una lista di esclusione**: i percorsi di sistema/credenziali (`/etc`, `/var`, `~/.ssh`, `~/.aws`, `C:\Windows\System32`, ecc.) vengono rifiutati con l'errore `[UI_OUTPUT_DIR_FORBIDDEN]`.
|
|
258
255
|
|
|
259
256
|
## Supporto per Windows
|
|
260
257
|
|
|
261
258
|
Backpropagate è progettato per funzionare su Windows senza modifiche:
|
|
262
259
|
|
|
263
|
-
- Pre-tokenizzazione per evitare
|
|
260
|
+
- Pre-tokenizzazione per evitare arresti anomali dovuti all'elaborazione parallela
|
|
264
261
|
- Disabilitazione automatica di xformers per le serie RTX 40/50
|
|
265
262
|
- Impostazioni del dataloader sicure
|
|
266
|
-
- Testato su RTX 5080 (16GB
|
|
263
|
+
- Testato su RTX 5080 (16GB VRAM)
|
|
267
264
|
|
|
268
265
|
## Modelli predefiniti
|
|
269
266
|
|
|
@@ -272,7 +269,7 @@ Backpropagate è progettato per funzionare su Windows senza modifiche:
|
|
|
272
269
|
| Qwen 2.5 7B | ~12GB | Media | Ottima |
|
|
273
270
|
| Qwen 2.5 3B | ~8GB | Veloce | Buona |
|
|
274
271
|
| Llama 3.2 3B | ~8GB | Veloce | Buona |
|
|
275
|
-
| Llama 3.2 1B | ~6GB |
|
|
272
|
+
| Llama 3.2 1B | ~6GB | Più veloce | Base |
|
|
276
273
|
| Mistral 7B | ~12GB | Media | Buona |
|
|
277
274
|
|
|
278
275
|
## Architettura
|
|
@@ -299,36 +296,36 @@ backpropagate/
|
|
|
299
296
|
│ ├── chrome.py # Header / LeftNav / SideRail / Footer
|
|
300
297
|
│ ├── pages/ # Train / Multi-Run / Export / Dataset
|
|
301
298
|
│ └── components/ # Bp* primitives (status pill, sparkline, event log…)
|
|
302
|
-
|
|
303
|
-
├── ui_gradio_legacy.py # DEPRECATED — preserved as v1.0 reference; removed in v1.2
|
|
304
|
-
└── theme_gradio_legacy.py # DEPRECATED — same
|
|
299
|
+
└── ui_security.py # Rate limiting, CSRF, file validation (framework-agnostic)
|
|
305
300
|
```
|
|
306
301
|
|
|
302
|
+
L'implementazione di Gradio v1.0 (`ui_gradio_legacy.py` + `theme_gradio_legacy.py`) è stata mantenuta fino alla versione v1.1.x come riferimento ed è stata rimossa nella versione v1.2.0.
|
|
303
|
+
|
|
307
304
|
## Risoluzione dei problemi
|
|
308
305
|
|
|
309
|
-
Un breve
|
|
306
|
+
Un breve elenco dei problemi più comuni riscontrati all'avvio. L'indice completo è disponibile nella [pagina della guida alla risoluzione dei problemi](https://mcp-tool-shop-org.github.io/backpropagate/handbook/troubleshooting/); ogni codice riportato di seguito è documentato nella sezione [codici di errore](https://mcp-tool-shop-org.github.io/backpropagate/handbook/error-codes/).
|
|
310
307
|
|
|
311
308
|
| Sintomo | Codice | Soluzione |
|
|
312
309
|
|---------|------|-----|
|
|
313
310
|
| La GPU esaurisce la memoria durante l'addestramento. | `RUNTIME_GPU_OOM` | Il meccanismo di ripristino automatico OOM (B-002) riduce automaticamente la dimensione del batch fino a 3 volte. Per disabilitarlo: `Trainer(oom_recovery=False)`. Per forzare una dimensione inferiore: `--batch-size 1`. |
|
|
314
|
-
| Il servizio HF Hub restituisce un errore 401 / "modello non trovato". | `DEP_MODEL_LOAD_FAILED` | Eseguire `huggingface-cli login` e riprovare. In caso di errori di battitura, copiare l'ID esatto da <https://huggingface.co/models>. |
|
|
311
|
+
| Il servizio HF Hub restituisce un errore 401 / "modello non trovato". | `DEP_MODEL_LOAD_FAILED` | Eseguire il comando `huggingface-cli login` e riprovare. In caso di errori di battitura, copiare l'ID esatto da <https://huggingface.co/models>. |
|
|
315
312
|
| Errore nel nome del modello. | `INPUT_VALIDATION_FAILED` o `DEP_MODEL_LOAD_FAILED`. | Verificare l'identificatore `org/name` su <https://huggingface.co/models>. |
|
|
316
|
-
|
|
|
317
|
-
| Disco pieno durante il salvataggio del checkpoint. | `STATE_CHECKPOINT_INVALID` | In caso di crash,
|
|
318
|
-
| L'addestramento viene interrotto/annullato a causa del surriscaldamento della GPU. | `RUNTIME_GPU_TEMPERATURE_CRITICAL` | B-003: il monitor si interrompe quando
|
|
319
|
-
| `backprop ui --share`
|
|
320
|
-
| "Sovrapposizione" di esecuzioni multiple durante la validazione. | `CONFIG_INVALID` (
|
|
313
|
+
| Rifiuto della connessione `register_with_ollama`. | `DEP_OLLAMA_REGISTRATION_FAILED` | Avviare il demone: `ollama serve`. Installare da <https://ollama.com>. Operazione riprovabile. |
|
|
314
|
+
| Disco pieno durante il salvataggio del checkpoint. | `STATE_CHECKPOINT_INVALID` | In caso di crash, vengono creati file `.partial`. È sicuro eliminarli. Il checkpoint precedente e valido è intatto. |
|
|
315
|
+
| L'addestramento viene interrotto/annullato a causa del surriscaldamento della GPU. | `RUNTIME_GPU_TEMPERATURE_CRITICAL` | B-003: il monitor si interrompe quando viene superata la soglia di temperatura NVML; riprende automaticamente quando la GPU si raffredda. Migliorare il flusso d'aria o ridurre il carico sostenuto. |
|
|
316
|
+
| Richiesta di `backprop ui --share` rifiutata. | `INPUT_AUTH_REQUIRED` | Passare l'argomento `--auth user:password` oppure impostare `BACKPROPAGATE_SECURITY__REQUIRE_AUTH_FOR_SHARE=false` per disabilitare la funzione (con un avviso). |
|
|
317
|
+
| "Sovrapposizione" di esecuzioni multiple durante la validazione. | `CONFIG_INVALID` (backend Stage A B-001). | Ridurre il valore di `--samples` al di sotto della dimensione del pool di addestramento, aumentare le dimensioni del dataset o disabilitare la validazione. |
|
|
321
318
|
| Esportazione GGUF non riuscita al primo tentativo. | `RUNTIME_GGUF_EXPORT_FAILED` | Eseguire `pip install backpropagate[export]`; su Windows è necessario anche Visual C++ Build Tools + CMake. |
|
|
322
319
|
|
|
323
320
|
## Segnalazione di bug
|
|
324
321
|
|
|
325
|
-
Quando si verifica un errore, Backpropagate stampa una riga `run_started run_id=<uuid>` all'avvio e associa lo stesso ID ai manifest dei checkpoint, alla cronologia
|
|
322
|
+
Quando si verifica un errore, Backpropagate stampa una riga `run_started run_id=<uuid>` all'avvio e associa lo stesso ID ai manifest dei checkpoint, alla cronologia delle unioni SLAO e alle righe del log strutturato. Includere l'`run_id` in qualsiasi segnalazione di bug: questo consente all'amministratore di correlare ogni riga del log, ogni checkpoint e ogni unione per quella specifica esecuzione.
|
|
326
323
|
|
|
327
324
|
Una segnalazione di bug efficace include:
|
|
328
325
|
|
|
329
326
|
1. **`run_id`** — l'UUID stampato all'avvio (disponibile anche come `TrainingRun.run_id` e `RunResult.run_id`).
|
|
330
|
-
2. **Il codice di errore** — la riga `[CODE_NAME]: message`
|
|
331
|
-
3. **La riga di comando
|
|
327
|
+
2. **Il codice di errore** — la riga `[CODE_NAME]: message` nella sezione stderr; consultare la [sezione codici di errore](https://mcp-tool-shop-org.github.io/backpropagate/handbook/error-codes/) per l'elenco completo.
|
|
328
|
+
3. **La riga di comando, opportunamente oscurata.** Nella modalità non dettagliata, la sezione stderr viene oscurata automaticamente (i token Bearer, `sk-*`, `hf_*`, le chiavi AWS, le coppie `password=/token=/api_key=` vengono rimosse); è quindi sicuro copiarla. Per ottenere il traceback completo e non oscurato, eseguire nuovamente il comando con l'opzione `--verbose`, ma esaminare il contenuto prima di pubblicarlo.
|
|
332
329
|
4. **Versioni di Python / PyTorch, modello della GPU, sistema operativo.** Il comando `backprop info` stampa tutte queste informazioni in un'unica volta.
|
|
333
330
|
|
|
334
331
|
## Privacy
|
|
@@ -339,12 +336,12 @@ Tutto l'addestramento avviene localmente sulla GPU. Backpropagate non effettua r
|
|
|
339
336
|
|
|
340
337
|
| Categoria | Punteggio | Note |
|
|
341
338
|
|----------|-------|-------|
|
|
342
|
-
| A. Sicurezza | 6/8 | SECURITY.md, modello affidabile, nessuna informazione sensibile/telemetria, safe_path().
|
|
339
|
+
| A. Sicurezza | 6/8 | SECURITY.md, modello affidabile, nessuna informazione sensibile/telemetria, safe_path(). Elementi MCP esclusi. |
|
|
343
340
|
| B. Gestione degli errori | 5/7 | Struttura delle eccezioni (`codice`/`messaggio`/`suggerimento`/`causa`/`riprovabile`) tramite il registro ERROR_CODES; codici di uscita della CLI: 0/1/2/3; nessuna traccia dello stack non elaborata senza l'opzione `--verbose`; correlazione `run_id`; output di errore standard oscurato; controllo di accesso con `--share`+`--auth`. MCP/desktop/vscode esclusi. |
|
|
344
341
|
| C. Documentazione per gli operatori | 4/7 | README, CHANGELOG, LICENZA, --help. Logging/MCP/funzionalità complesse esclusi. |
|
|
345
342
|
| D. Igiene del rilascio | 6/9 | verify.sh, versione=tag, 5 scanner nell'integrazione continua, dependabot, python_requires, build pulito. |
|
|
346
343
|
| E. Identità | 4/4 | Logo, traduzioni, pagina di destinazione, metadati. |
|
|
347
|
-
| **Total** | **25/31** | 14 elementi esclusi con motivazione · `shipcheck audit` supera il 100% · Data dell'audit: 2026-05-21 (la riga B è stata riclassificata dopo la fase B
|
|
344
|
+
| **Total** | **25/31** | 14 elementi esclusi con motivazione · `shipcheck audit` supera il 100% · Data dell'audit: 2026-05-21 (la riga B è stata riclassificata dopo la fase B + il lavoro sui codici di uscita della CLI). |
|
|
348
345
|
|
|
349
346
|
Storia del design e a cosa corrisponde ogni elemento: vedere [ROADMAP.md](ROADMAP.md) — tutti gli elementi delle settimane 1-4 sono inclusi nella versione 1.1.0.
|
|
350
347
|
|