\n\n\n\n Come impostare il monitoraggio con Weights & Biases (Passo dopo Passo) - BotSec \n

Come impostare il monitoraggio con Weights & Biases (Passo dopo Passo)

📖 11 min read2,003 wordsUpdated Apr 4, 2026

Come Configurare il Monitoraggio con Weights & Biases (Passo dopo Passo)

Se stai gestendo esperimenti di machine learning e stai ancora registrando tutto su fogli di calcolo o file di testo sparsi, ti stai perdendo qualcosa di importante: la configurazione del monitoraggio di weights & biases ti farà risparmiare decine di ore dolorose e notti insonni a combattere con dati sugli esperimenti disorganizzati.

Ciò che Costruirai e Perché È Importante

Stiamo configurando il monitoraggio di weights & biases per tracciare, visualizzare e fare debug delle esecuzioni di training di machine learning in modo efficiente: niente più metriche perse o indovinare quali iperparametri hanno fatto impennare il tuo modello.

Prerequisiti

  • Python 3.8+ (Weights & Biases è piuttosto tollerante, ma attieniti alla versione 3.8 o successiva per compatibilità)
  • pip installato, preferibilmente versione 23.0+ (gli aggiornamenti spesso risolvono bug con le dipendenze dei pacchetti)
  • Crea un account gratuito su Weights & Biases su https://wandb.ai
  • Familiarità di base con script di training per il machine learning (funzionano TensorFlow, PyTorch o sklearn)
  • Conoscenza degli strumenti della riga di comando (il CLI di weights & biases è un must)

Configurazione Passo per Passo

Passo 1: Installa il Pacchetto Python di Weights & Biases

pip install wandb

Questo è l’unico pacchetto necessario per monitorare le tue esecuzioni ML. Si integra nel tuo codice e ti offre dashboard in tempo reale, tracciamento delle metriche e gestione degli artefatti.

Perché? Perché il client wandb gestisce automaticamente tutto ciò che riguarda l’upload, la sincronizzazione e il collegamento con il server. Questo ti risparmia il mal di testa della registrazione manuale.

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

pip install --upgrade pip setuptools

Passo 2: Accedi al Tuo Account Wandb

wandb login

Questo comando richiede la tua API key. Vai alle impostazioni del tuo account su https://wandb.ai/settings e copia la tua API key. Incollala quando il CLI lo richiede.

Perché? Devi autenticare il tuo strumento CLI con il tuo progetto cloud in modo che le tue esecuzioni siano collegate al tuo account utente e ai progetti.

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

Passo 3: Inizializza Wandb nel Tuo Script di Training

import wandb

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

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

Inserire questo frammento all’inizio del tuo ciclo principale di training consente a wandb di catturare tutto all’interno di quell’esecuzione.

Perché? Il passaggio di inizializzazione crea un nuovo oggetto di esecuzione sul lato server, permettendoti di registrare metriche e artefatti in tempo reale. Senza di esso, 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 possono fallire silenziosamente. Controlla sempre questo.

Passo 4: Registra Metriche e Iperparametri Durante il Training

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

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

Perché? Registrare 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 registrazioni abbastanza frequentemente, il che porta a dati di esecuzione incompleti se il tuo lavoro si interrompe. Assicurati che wandb.log() venga chiamato dopo ogni aggiornamento significativo (di solito ogni epoca o batch).

Passo 5: Salva Artefatti del Modello per il Tracciamento delle Versioni

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

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

Gli artefatti di Wandb ti consentono di tracciare le versioni di modelli, dataset o altri output. Questo mantiene il tuo training riproducibile e debuggabile.

Perché? Gli artefatti abilitano flussi di lavoro collaborativi e integrazioni con CI/CD. Puoi confrontare modelli e persino tornare a checkpoint precedenti facilmente.

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

Passo 6: Visualizza i Risultati nella Dashboard di Wandb

Apri https://wandb.ai e naviga verso il tuo progetto. Vedrai grafici in tempo reale che si aggiornano con le tue metriche registrate, iperparametri e artefatti.

Perché? La visualizzazione è la funzionalità fondamentale che rende il monitoraggio di weights & biases davvero valido: vedere le tendenze delle tue metriche ti aiuta a comprendere il comportamento del modello in tempo reale.

Attenzione: Se le tue metriche non appaiono, controlla che il tuo wandb.init() abbia il nome del progetto corretto e che tu sia collegato al giusto account (ente). Inoltre, verifica che la tua rete consenta connessioni cloud (a volte i firewall aziendali bloccano questo).

Passo 7: Integrazione Avanzata – Automatizza le Esecuzioni di Wandb con CI/CD

# Esempio di frammento di workflow di GitHub Actions

name: Esegui il Training e Registra su W&B

on: [push]

jobs:
 train:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v2
 - name: Configura Python
 uses: actions/setup-python@v2
 with:
 python-version: 3.9
 - name: Installa dipendenze
 run: pip install wandb torch
 - name: Accedi a Wandb
 run: echo ${{ secrets.WANDB_API_KEY }} | wandb login
 - name: Esegui lo script di training
 run: python train.py

Questo script mostra un flusso di lavoro CI automatizzato con GitHub che esegue il tuo training e invia automaticamente i risultati a wandb.

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

Problemi potenziali: Devi archiviare la tua chiave API di Wandb in modo sicuro come variabile d’ambiente segreta (non mai committarla). Dimenticare ciò significa che i lavori CI falliranno silenziosamente l’autenticazione.

I Problemi di Cui Nessuno Ti Parla

  • Quote e Limiti: Il tuo piano gratuito su Wandb ti consente di registrare circa qualche migliaio di esecuzioni al mese prima di raggiungere i limiti di larghezza di banda o di archiviazione degli artefatti. Se esegui 10K+ epoche o grandi dataset, preparati a un rallentamento. Non riceverai avvisi espliciti immediatamente; controlla solo la tua quota di progetto.

    Soluzione: Pulisci regolarmente le vecchie esecuzioni e archivia gli artefatti di grandi dimensioni esternamente.

  • Latencia tra registrazione e aggiornamento della dashboard: Wandb carica in modo asincrono, quindi a volte le tue ultime metriche appaiono con qualche secondo di ritardo, il che è frustrante se stai facendo debug a livello di batch.

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

  • Incoerenze ambientali: Wandb monitora le versioni dei pacchetti del tuo ambiente Python. Se il tuo codice viene eseguito in un ambiente Docker o remoto senza elenchi di pacchetti esatti (requirements.txt), il tuo esperimento 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 i caricamenti telemetrici di Wandb per impostazione predefinita, causando errori silenziosi o attese indefinite.
    Soluzione: Usa la modalità offline locale (`wandb.init(mode=”offline”)`) e sincronizza in seguito, o autorizza i domini sui firewall.
  • Registrazione di troppi dati: Registrare ogni singola metrica di batch può gonfiare le tue esecuzioni e rallentare la tua interfaccia utente. Usa statistiche di riepilogo 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)

# Semplice classificatore binario
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)

# Inizializza la run di 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})

# Salva e carica 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’è successivo

Una volta che hai configurato weights & biases per monitorare e registrare senza problemi, ti consiglio di aggiungere wandb Sweeps per automatizzare la messa a punto degli iperparametri. È molto meglio che rieseguire manualmente gli script per ogni combinazione di parametri e ti consente di concentrarti sui risultati invece di esperimenti fastidiosi.

FAQ

Q: Posso usare weights & biases con framework diversi da PyTorch?

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

Q: Come posso mantenere sicuri le credenziali sensibili quando uso wandb nei pipeline CI?

A: Memorizza la tua chiave API di Wandb nel sistema di gestione dei segreti del tuo fornitore CI (ad es., Segreti di GitHub, variabili CI di GitLab). Non inserire mai le chiavi nel codice sorgente. Poi, usa le variabili di ambiente per fornire le chiavi durante l’esecuzione della CI, come echo $WANDB_API_KEY | wandb login.

Q: È possibile eseguire la registrazione di wandb offline e sincronizzarla in un secondo momento?

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

Progetto Wandb e dati sulla run a colpo d’occhio

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

Aspetto Registrazione manuale (Excel/CSV) Monitoraggio Weights & Biases
Visibilità in tempo reale No (devi aspettare di aprire i file) Sì (dashboard dal vivo che si aggiornano automaticamente)
Tracciamento degli iperparametri Spesso dimenticato o incoerente Automatizzato; sempre collegato alle run
Versioning degli artefatti del modello Salvataggi manuali dei file, nessun metadato Controllo delle versioni degli artefatti integrato
Collaborazione Invia file via email o condividi cartelle I team condividono progetti dal vivo con accesso basato sui ruoli
Integrazione con CI/CD Passi manuali Automatizzato tramite script e API
Limiti di archiviazione Spazio su disco locale Quote cloud e opzioni di archiviazione

Raccomandazioni personalizzate per diverse persone dello sviluppo

Se sei un hobbista solitario che affina piccoli modelli sul tuo laptop, inizia configurando wandb localmente con la modalità offline abilitata così non ti preoccupi di problemi di rete. L’interfaccia utente e la registrazione daranno ai tuoi esperimenti un senso di organizzazione che i fogli di calcolo non possono eguagliare.

Se sei un data scientist che bilancia più modelli e collaboratori, investi tempo nell’integrare le run di wandb con i repository Git del tuo team e l’infrastruttura cloud. Automatizza la tua registrazione e gli artefatti—fidati, nessuno vuole chiedere un altro esportazione CSV.

Per gli ingegneri ML che costruiscono pipeline di produzione, incorpora sweeps di wandb e automazione CI/CD all’inizio del tuo processo. Vuoi uno stato degli esperimenti coerente, opzioni di rollback e monitoraggio integrato nei cicli di rilascio per evitare buchi neri di debug settimane dopo.

Dati aggiornati al 21 marzo 2026. Fonti: Sito ufficiale di Weights & Biases, Documentazione di Weights & Biases

Articoli correlati

🕒 Published:

✍️
Written by Jake Chen

AI technology writer and researcher.

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