\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)

📖 10 min read1,997 wordsUpdated Apr 4, 2026

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

Se gestisci esperimenti di machine learning e continui a registrare tutto su fogli di calcolo o file di testo sparsi, stai seriamente perdendo un’opportunità—il 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 tracciare, visualizzare e fare debug delle sessioni di addestramento del machine learning in modo efficiente—niente più metriche perse o congetture su quali iperparametri abbiano fatto impennare il tuo modello.

Requisiti

  • Python 3.8+ (Weights & Biases è abbastanza permissivo, ma attieniti alla versione 3.8 o successiva per la 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 gli script di addestramento del machine learning (funzionano TensorFlow, PyTorch o sklearn)
  • Familiarità con gli strumenti da linea di comando (il CLI di weights & biases è indispensabile)

Configurazione Passo dopo Passo

Passo 1: Installa il Pacchetto Python di Weights & Biases

pip install wandb

Questo è l’unico pacchetto di cui hai bisogno per monitorare le tue esecuzioni di ML. Si integra con la tua base di codice e ti offre dashboard in tempo reale, tracciamento delle metriche e gestione degli artefatti.

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

Problemi comuni: Se riscontri 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 richiede la tua API key. Vai alle 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 esecuzioni siano collegate al tuo account utente e ai progetti.

Attenzione: Se incolli accidentalmente spazi bianchi o premi invio prima del dovuto, 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

# Inizia 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

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

Perché? Il passo 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 potrebbero fallire silenziosamente. Controlla sempre questo.

Passo 4: Registra Metriche e 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()
 
 # Registra le metriche su wandb
 wandb.log({
 "epoch": epoch,
 "train_loss": train_loss,
 "val_loss": val_loss
 })

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

Perché? Registrare ti consente di tracciare le prestazioni del modello passo dopo passo. Puoi individuare overfitting o 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 va in crash. 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 checkpoint del tuo 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 permettono di tracciare le versioni di modelli, dataset o altri output. Questo mantiene il tuo addestramento riproducibile e debugabile.

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

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

Passo 6: Visualizza i Risultati nel Dashboard di Wandb

Apri https://wandb.ai e naviga al tuo progetto. Vedrai grafici dal vivo che si aggiornano con le tue metriche, iperparametri e artefatti registrati.

Perché? La visualizzazione è la caratteristica principale che rende il monitoraggio impostato da weights & biases davvero prezioso—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 loggato con l’account giusto (entità). Verifica anche 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 Addestramento e Registra su W&B

on: [push]

jobs:
 train:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v2
 - name: Imposta 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 addestramento
 run: python train.py

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

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

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

Le Insidie di Cui Nessuno Ti Parla

  • Quote e Limiti: Il tuo livello gratuito su Wandb ti consente di registrare circa alcune migliaia di esecuzioni al mese prima di raggiungere i limiti di larghezza di banda o archiviazione degli artefatti. Se esegui 10K+ epoche o dataset di grandi dimensioni, aspettati di subire limitazioni. Non riceverai avvisi espliciti immediatamente; controlla semplicemente la quota del tuo progetto.

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

  • Latente tra la registrazione e l’aggiornamento del dashboard: Wandb carica in modo asincrono, quindi a volte le tue metriche più recenti 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 nell’ambiente: 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 sempre e registra le versioni dei pacchetti.
  • Problemi di rete in ambienti restrittivi: I server aziendali e accademici spesso bloccano i caricamenti della telemetria di Wandb per impostazione predefinita, causando fallimenti silenziosi o attese indefinite.
    Soluzione: Usa la modalità offline locale (`wandb.init(mode=”offline”)`) e sincronizza in seguito, oppure sblocca i domini sui firewall.
  • Registrazione di troppi dati: Registrare ogni singola metrica di batch può gonfiare le tue esecuzioni 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

# Dummy dataset
X = torch.randn(100, 10)
y = torch.randint(0, 2, (100,))

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

# Simple binary classifier
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)

# Initialize wandb run
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"Epoch {epoch+1}, Loss: {avg_loss:.4f}")
 wandb.log({"epoch": epoch + 1, "loss": avg_loss})

# Save and upload model artifact
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 impostati correttamente weights & biases con monitoraggio e registrazione, ti consiglio di aggiungere wandb Sweeps per automatizzare la ricerca degli iperparametri. È molto meglio che eseguire manualmente gli script per ogni combinazione di parametri e ti consente di concentrarti sui risultati invece di esperimenti complicati.

FAQ

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

A: Assolutamente. Wandb supporta TensorFlow, Keras, Hugging Face Transformers, sklearn—puoi nominare qualsiasi cosa. 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 al sicuro le credenziali sensibili quando uso wandb nelle pipeline CI?

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

Q: È possibile eseguire il logging di wandb offline e sincronizzarlo successivamente?

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

Dati del Progetto e delle Esplorazioni di Wandb a Colpo d’Occhio

Per capire perché il monitoraggio di weights & biases sia superiore alla registrazione tradizionale su fogli di calcolo, ecco una tabella rapida che confronta il tracciamento manuale con il monitoraggio di wandb attraverso metriche chiave:

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

Raccomandazioni Personalizzate per Diverse Personae di Sviluppatori

Se sei un hobbista che lavora da solo su modelli piccoli nel tuo laptop, inizia configurando wandb localmente con la modalità offline attivata così non ti preoccupi dei problemi di rete. L’interfaccia e il logging 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 esecuzioni di wandb con i repository Git del tuo team e con l’infrastruttura cloud. Automatizza il tuo logging e gli artefatti—fidami, nessuno desidera richiedere un altro esportazione CSV.

Per gli ingegneri ML che costruiscono pipeline di produzione, inserisci sweeps di wandb e automazione CI/CD presto nel tuo processo. Vorrai uno stato degli esperimenti consistente, opzioni di rollback e monitoraggio integrato nei cicli di rilascio per evitare di dover risolvere problemi 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

Related Sites

AgntzenBotclawAgntboxAgntkit
Scroll to Top