\n\n\n\n Comment configurare il monitoraggio con Weights & Biases (passo dopo passo) - BotSec \n

Comment configurare il monitoraggio con Weights & Biases (passo dopo passo)

📖 11 min read2,014 wordsUpdated Apr 4, 2026

Come configurare il monitoraggio con Weights & Biases (passo dopo passo)

Se gestisci esperimenti di apprendimento automatico e registri ancora tutto in fogli di calcolo o file di testo sparsi, ti manca seriamente qualcosa: la configurazione del monitoraggio di weights & biases ti farà risparmiare decine di ore dolorose e notti insonni a combattere con dati sperimentali disorganizzati.

Cosa costruirai e perché è importante

Stiamo impostando il monitoraggio di weights & biases per tenere traccia, visualizzare e fare debugging delle sessioni di addestramento di apprendimento automatico in modo efficace: niente più metriche perse o supposizioni sugli iperparametri che hanno fatto aumentare il tuo modello.

Requisiti

  • Python 3.8+ (Weights & Biases è abbastanza tollerante, ma rimani su 3.8 o una versione successiva per la compatibilità)
  • pip installato, preferibilmente versione 23.0+ (gli aggiornamenti risolvono spesso i bug relativi alle dipendenze dei pacchetti)
  • Crea un account Weights & Biases gratuito su https://wandb.ai
  • Conoscenza di base degli script di addestramento in apprendimento automatico (TensorFlow, PyTorch o sklearn funzionano)
  • Conoscenza degli strumenti da linea di comando (il CLI di weights & biases è indispensabile)

Configurazione passo dopo passo

Passo 1: Installare il pacchetto Python Weights & Biases

pip install wandb

Questo è l’unico pacchetto di cui hai bisogno per monitorare le tue sessioni di apprendimento automatico. Si integra nel tuo codice e ti offre dashboard in tempo reale, monitoraggio delle metriche e gestione degli artefatti.

Perché? Perché il client di wandb gestisce tutto ciò che riguarda il download, la sincronizzazione e il legame con il server automaticamente. Questo ti evita il fastidio della registrazione manuale.

Trappole comuni: Se ricevi un conflitto di versione o un problema di dipendenza fallito, aggiorna pip e setuptools:

pip install --upgrade pip setuptools

Passo 2: Accedi al tuo account Wandb

wandb login

Questo comando ti chiederà la tua chiave API. Vai nelle impostazioni del tuo account su https://wandb.ai/settings e copia la tua chiave API. Incollala quando il CLI te lo chiede.

Perché? Devi autenticare il tuo strumento CLI con il tuo progetto cloud affinché le tue sessioni siano collegate al tuo account utente e ai tuoi progetti.

Attenzione: Se incolli accidentalmente spazi bianchi o premi invio troppo presto, wandb rifiuterà la tua chiave e mostrerà un errore criptico riguardo al fallimento dell’autenticazione.

Passo 3: Inizializza Wandb nel tuo script di addestramento

import wandb

# Iniziare una nuova sessione
wandb.init(project="my-ml-project", entity="your-username")

# Esempio: Registrare gli iperparametri
config = wandb.config
config.learning_rate = 0.001
config.batch_size = 32

Inserire questo frammento all’inizio del tuo ciclo principale di addestramento permette a wandb di catturare tutto ciò che accade in questa sessione.

Perché? Il passaggio di inizializzazione crea un nuovo oggetto di sessione sul server, permettendoti di registrare metriche e artefatti in tempo reale. Senza questo, non vedrai alcun dato nel tuo spazio di lavoro.

Errore comune: Se dimentichi di chiamare wandb.init(), le tue chiamate a wandb.log() non faranno nulla e potrebbe fallire silenziosamente. Assicurati sempre di controllare questo.

Passo 4: Registrare le metriche e gli iperparametri durante l’addestramento

for epoch in range(num_epochs):
 # Addestra il tuo modello qui
 train_loss = compute_train_loss()
 val_loss = compute_val_loss()
 
 # Registrare le metriche in wandb
 wandb.log({
 "epoch": epoch,
 "train_loss": train_loss,
 "val_loss": val_loss
 })

Questo frammento deve trovarsi all’interno del tuo ciclo principale di addestramento. wandb.log() invia i dati al server in modo asincrono.

Perché? La registrazione ti consente di monitorare le prestazioni del modello passo dopo passo. Puoi individuare l’overfitting o i plateau e regolare gli iperparametri di conseguenza.

Errore tipico: Non inviare i log abbastanza frequentemente, il che porta a dati di sessione incompleti se il tuo compito fallisce. Assicurati che wandb.log() venga chiamato dopo ogni aggiornamento significativo (di solito dopo ogni epoca o batch).

Passo 5: Registrare gli artefatti dei modelli per il monitoraggio delle versioni

# Registrare il checkpoint del tuo modello localmente
torch.save(model.state_dict(), "model.pt")

# Caricare il checkpoint come artefatto in wandb
artifact = wandb.Artifact('model', type='model')
artifact.add_file("model.pt")
wandb.log_artifact(artifact)

Gli artefatti wandb ti permettono di monitorare le versioni dei modelli, dei dataset o di altri risultati. Questo rende il tuo addestramento riproducibile e facile da fare debugging.

Perché? Gli artefatti facilitano i flussi di lavoro collaborativi e l’integrazione con l’integrazione continua/la consegna continua. Puoi confrontare i modelli e persino tornare facilmente a checkpoint precedenti.

Attenzione: Dimenticare di chiamare wandb.log_artifact() significa che i tuoi file registrati non appariranno nella dashboard del progetto. Inoltre, artefatti di grandi dimensioni potrebbero fallire silenziosamente se vengono raggiunti i limiti di archiviazione—controlla i limiti di utilizzo del tuo progetto.

Passo 6: Visualizzare i risultati nella dashboard di Wandb

Apri https://wandb.ai e naviga fino al tuo progetto. Vedrai grafici in tempo reale aggiornarsi con le tue metriche, iperparametri e artefatti registrati.

Perché? La visualizzazione è la funzionalità chiave che rende davvero preziosa l’impostazione del monitoraggio tramite weights & biases: vedere le tendenze delle tue metriche ti aiuta a comprendere il comportamento del modello in tempo reale.

Attenzione: Se le tue metriche non appaiono, verifica che il tuo wandb.init() abbia il nome del progetto corretto e che tu sia connesso al giusto account (entità). Controlla anche che la tua connessione di rete consenta le connessioni cloud (a volte, i firewall aziendali bloccano questo).

Passo 7: Integrazione avanzata – Automatizzare le esecuzioni Wandb con CI/CD

# Estratto di un workflow GitHub Actions

name: Eseguire l'addestramento e registrare su W&B

on: [push]

jobs:
 train:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v2
 - name: Configurare Python
 uses: actions/setup-python@v2
 with:
 python-version: 3.9
 - name: Installare le dipendenze
 run: pip install wandb torch
 - name: Connessione a Wandb
 run: echo ${{ secrets.WANDB_API_KEY }} | wandb login
 - name: Eseguire lo script di addestramento
 run: python train.py

Questo script mostra un workflow CI automatizzato con GitHub che esegue il tuo addestramento e spinge automaticamente i risultati verso wandb.

Perché? I team di livello produzione hanno bisogno di un monitoraggio che si integri nei pipeline—le esecuzioni manuali sono noiose e soggette a errori.

Problemi potenziali: Devi mantenere la tua chiave API Wandb al sicuro come variabile d’ambiente segreta (non impegnerla mai). Dimenticare questo significa che i compiti CI falliranno silenziosamente l’autenticazione.

Le trappole di cui nessuno ti parla

  • Quote e limiti: Il tuo livello gratuito di Wandb ti consente di registrare circa qualche migliaio di sessioni al mese prima di raggiungere i limiti di larghezza di banda o di archiviazione degli artefatti. Se esegui 10K+ epoche o grandi set di dati, aspettati una riduzione della velocità. Non riceverai avvisi espliciti immediatamente; controlla semplicemente il tuo quota di progetto.

    Soluzione: Pulisci regolarmente le vecchie sessioni e archivia i grandi artefatti all’esterno.

  • Latenza tra la registrazione e l’aggiornamento del dashboard: Wandb carica in modo asincrono, quindi a volte le tue ultime metriche appaiono qualche secondo in ritardo, il che è frustrante se stai eseguendo il debug a un livello di granularità del batch.

    Soluzione: Aggiungi `wandb.log(…, commit=True)` per inviare dati a punti critici.

  • Incoerenze nell’ambiente: Wandb monitora le versioni dei pacchetti nel tuo ambiente Python. Se il tuo codice viene eseguito in un ambiente Docker o remoto senza elenchi di pacchetti esatti (requirements.txt), la tua esperienza potrebbe non essere riproducibile nonostante le metriche registrate.
    Soluzione: Fissa e registra sempre le versioni dei pacchetti.
  • Problemi di rete in ambienti ristretti: I server aziendali e accademici spesso bloccano per impostazione predefinita i download di telemetria di Wandb, causando silenziosi fallimenti o sospensioni indefinite.
    Soluzione: Usa la modalità offline locale (`wandb.init(mode=”offline”)`) e sincronizza in seguito, oppure aggiungi domini alla lista bianca sui firewall.
  • Registrazione di troppe dati: Registrare ogni metrica di batch può gonfiare le tue sessioni e rallentare l’interfaccia utente. Usa statistiche di sintesi o campiona a intervalli.
    Soluzione: Registra a livello di epoca o ogni N batch, non ogni batch.

Esempio completo di codice funzionante

import wandb
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset

# Dataset fittizio
X = torch.randn(100, 10)
y = torch.randint(0, 2, (100,))

dataset = TensorDataset(X, y)
loader = DataLoader(dataset, batch_size=16, shuffle=True)

# Classificatore binario semplice
class SimpleModel(nn.Module):
 def __init__(self):
 super().__init__()
 self.fc = nn.Linear(10, 2)
 def forward(self, x):
 return self.fc(x)

model = SimpleModel()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# Inizializzare l'esecuzione wandb
wandb.init(project="my-ml-project", entity="your-username")
wandb.config.update({
 "epochs": 5,
 "batch_size": 16,
 "learning_rate": 0.001,
})

for epoch in range(wandb.config.epochs):
 running_loss = 0.0
 for inputs, labels in loader:
 optimizer.zero_grad()
 outputs = model(inputs)
 loss = criterion(outputs, labels)
 loss.backward()
 optimizer.step()
 running_loss += loss.item()
 avg_loss = running_loss / len(loader)

 print(f"Epoca {epoch+1}, Perdita : {avg_loss:.4f}")
 wandb.log({"epoch": epoch + 1, "loss": avg_loss})

# Salvare e caricare l'artefatto del modello
torch.save(model.state_dict(), "model.pt")
artifact = wandb.Artifact('simple-model', type='model')
artifact.add_file("model.pt")
wandb.log_artifact(artifact)

wandb.finish()

Cosa fare dopo

Una volta configurati i tuoi pesi & bias per monitorare e registrare in modo efficace, ti consiglio di aggiungere wandb Sweeps per automatizzare l’ottimizzazione degli iperparametri. È molto meglio che rilanciare manualmente script per ogni combinazione di parametri e ti permette di concentrarti sui risultati invece che su esperimenti delicati.

FAQ

Q: Posso usare weights & biases con altri framework oltre a PyTorch?

A: Assolutamente. Wandb supporta TensorFlow, Keras, Hugging Face Transformers, sklearn, chiamalo come vuoi. Fondamentalmente avvolge il tuo ciclo di addestramento e registra i dati. Devi solo inserire chiamate simili a wandb.init() e wandb.log() nei punti giusti.

Q: Come proteggere le credenziali sensibili quando si utilizza wandb in pipeline CI?

A: Tieni la tua chiave API Wandb nel sistema di gestione dei segreti del tuo fornitore CI (ad esempio, GitHub Secrets, variabili CI GitLab). Non codificare mai chiavi nel codice sorgente. Poi, utilizza variabili di ambiente per fornire chiavi durante l’esecuzione CI, come echo $WANDB_API_KEY | wandb login.

Q: È possibile eseguire la registrazione wandb offline e sincronizzare in seguito?

A: Sì. Puoi inizializzare wandb con wandb.init(mode="offline"), che memorizza i log localmente. Più tardi, esegui wandb sync per caricare i dati delle esecuzioni passate quando l’accesso alla rete viene ripristinato. Questo è utile per ambienti isolati.

Progetto e dati di esecuzione Wandb a colpo d’occhio

Per capire perché configurare weights & biases per il monitoraggio supera la registrazione tradizionale in fogli di calcolo, ecco una tabella rapida che confronta il monitoraggio manuale tipico con il monitoraggio wandb su metriche chiave:

Aspetto Registrazione manuale (Excel/CSV) Monitoraggio dei Pesi & Biasi
Visibilità in tempo reale No (deve aspettare l’apertura dei file) Sì (dashboard in tempo reale che si aggiornano automaticamente)
Monitoraggio degli iperparametri Spesso dimenticato o incoerente Automatizzato; sempre collegato alle esecuzioni
Versionamento degli artefatti di modello Backup manuali di file, nessuna metadato Controllo di versione degli artefatti integrato
Collaborazione Inviare file via email o condividere cartelle I team condividono progetti in tempo reale con accesso basato su ruoli
Integrazione con CI/CD Passi manuali Automatizzato tramite script e API
Limiti di archiviazione Spazio disco locale Quote cloud e opzioni di archiviazione

Raccomandazioni personalizzate per diversi profili di sviluppatori

Se sei un hobbyista solitario con modelli piccoli sul tuo computer portatile, inizia a configurare wandb localmente con la modalità offline attivata per non preoccuparti di problemi di rete. L’interfaccia utente e la registrazione daranno ai tuoi esperimenti un senso di organizzazione che nessun foglio di calcolo può eguagliare.

Se sei un data scientist che bilancia più modelli e collaboratori, investi tempo per integrare le esecuzioni wandb con i repository Git del tuo team e l’infrastruttura cloud. Automatizza la tua registrazione e i tuoi artefatti – fidati, nessuno vuole chiedere una nuova esportazione CSV.

Per gli ingegneri ML che costruiscono pipeline di produzione, integra gli sweeps wandb e l’automazione CI/CD fin dall’inizio del tuo processo. Vorrai uno stato di esperienza costante, opzioni di ripristino e un monitoraggio integrato nei cicli di pubblicazione per evitare di dover eseguire il debug di buchi neri settimane dopo.

Dati a partire dal 21 marzo 2026. Fonti: Sito Ufficiale Pesi & Biasi, Documentazione Pesi & Biasi

Articoli Correlati

🕒 Published:

✍️
Written by Jake Chen

AI technology writer and researcher.

Learn more →
Browse Topics: AI Security | compliance | guardrails | safety | security

Related Sites

AgntaiAidebugAgntkitBotclaw
Scroll to Top