GPU per la ricerca ML · Pagamento crypto senza KYC
IteraGPU
Metodo · Tracciabilità degli esperimenti

Ritrovare la prova dietro ogni risultato.

Un esperimento ML è tracciabile quando puoi collegare una conclusione alle esecuzioni, ai dati e ai file che la giustificano. Assegna un identificatore a ogni tentativo, conserva un manifest effettivo e associa le metriche alle predizioni valutate. Lo scopo non è accumulare log: una rilettura della cartella deve permettere di ritrovare cosa è stato fatto, cosa è fallito e perché è stata scelta una variante.

01 /

Distinguere campagna, configurazione ed esecuzione

Una campagna porta una domanda, ad esempio confrontare una baseline con un adattamento. Una configurazione descrive le scelte tecniche. Un run è un tentativo di esecuzione di quella configurazione, con un seed, un inizio, una fine e uno stato. Due tentativi identici mantengono quindi due identificatori, anche se il secondo sostituisce una prova interrotta.

Aggiungi un identificatore di valutazione quando lo stesso artefatto viene valutato su più set o con una nuova metrica. Questo evita di confondere un nuovo modello con una nuova lettura del modello esistente. Collega il tentativo di ripresa a quello che lo ha preceduto e al checkpoint caricato.

Anche MLflow organizza il monitoraggio attorno a run, parametri, metriche e artefatti. Questa distinzione è utile anche in una semplice cartella di file. Puoi applicarla con il tuo strumento abituale; nessuna piattaforma di tracciamento specifica è necessaria per iniziare.

Fonti tecniche: MLflow — run, parametri, metriche e artefatti

02 /

Scrivere il manifest effettivamente eseguito

Conserva i parametri risolti dopo l'applicazione dei valori predefiniti e degli argomenti di avvio. Il file di configurazione originale può omettere un batch predefinito o un'opzione modificata in fase di esecuzione. Registra ciò che è stato effettivamente utilizzato, con una copia del codice o una revisione immutabile e lo stato delle modifiche non salvate.

Il manifest collega anche versioni del modello e del tokenizer, ambiente software, GPU effettivamente utilizzata, precisione, dati, seed e definizione delle metriche. Descrive la prova, senza diventare un tutorial di installazione. Annota le unità: secondi, byte, token, punti o proporzione da 0 a 1 secondo la misura.

All'avvio, lo stato è in corso; alla fine, diventa completato, fallito o interrotto secondo quanto hai constatato. Non completare a posteriori una versione dimenticata con quella attualmente installata. Segna l'informazione come sconosciuta e limita la conclusione che ne dipende.

Il manifest minimo di una prova utilizzabile
BloccoElementi da conservareDomanda risolta
Identitàcampaign_id, config_id, run_id, eventuale parent_run_idQuale tentativo produce questo risultato?
Codice e modelloRevisioni esatte, modifiche locali, modello di base e tokenizerQuale calcolo è stato realmente avviato?
DatiVersione, split, preprocessamento, identificatori e ordine rilevanteSu quali input?
ParametriValori effettivi, seed e unitàCon quali impostazioni?
ValutazioneArtefatto valutato, metrica/versione, soglia e popolazioneCosa significa il punteggio?
ChiusuraStato, errore, file prodotti e decisioneLa prova è utilizzabile?
03 /

Identificare i dati oltre un nome di cartella

Un percorso come donnees/final non indica una versione stabile. Conserva l'inventario dei file o degli esempi, gli split e la procedura di trasformazione. Se correggi delle label o filtri delle righe, crea una nuova versione e mantieni la relazione con la precedente. Il vecchio punteggio deve continuare a puntare ai suoi vecchi dati.

Hugging Face Datasets associa dei fingerprint allo stato di un dataset e alle sue trasformazioni per gestire la cache. Questo meccanismo è utile, ma occorre conservare anche l'origine dei dati e il preprocessamento. Una trasformazione non hashable può ad esempio portare a un fingerprint casuale: l'identificatore di cache non sostituisce da solo la tua cartella di provenienza.

Per gli artefatti congelati, aggiungi dimensione e impronta del file. Un digest SHA-256 calcolato prima e dopo una copia permette di verificare che i byte corrispondano al riferimento conservato. Non prova né la qualità delle label, né i diritti d'uso, né l'assenza di leakage tra gli split.

Fonti tecniche: Hugging Face Datasets — fingerprint e trasformazioni · Python 3.14 — impronte di file con hashlib

04 /

Collegare metriche, predizioni e artefatti

Una riga di metrica dovrebbe identificare il run, l'artefatto valutato, il set di valutazione, la versione della metrica e il suo perimetro. Specifica se il valore riguarda un checkpoint intermedio, il modello finale o un sottogruppo. Una curva non basta se non si sa più quale file corrisponde al punto scelto.

Conserva le predizioni con il loro identificatore di input, il loro stato e le informazioni necessarie alla valutazione. I riferimenti attesi possono restare in un file separato versionato. Per un output strutturato, distingui risultato grezzo, risultato analizzato e verdetto: correggere il parsing non deve sovrascrivere l'output iniziale.

MLflow permette di collegare metriche a modelli e a dati. Con i file, applica lo stesso principio tramite identificatori espliciti. Mantieni un inventario leggibile degli artefatti: pesi o adattatore, parametri di generazione, output, report di valutazione e nota di decisione. Non dare per scontato che uno screenshot sostituisca questi file.

Fonti tecniche: MLflow — collegare metriche, modelli e set di dati

05 /

Esempio: sei run e un duplicato che nasconde una mancanza

Consideriamo un esempio di classificazione con due configurazioni e tre seed. Produce sei run previsti. Ognuno deve predire gli stessi 300 identificatori di valutazione: la cartella completa attende quindi 6 × 300 = 1 800 coppie uniche (run_id, input_id). Questo calcolo descrive un inventario atteso, non un esperimento realmente eseguito.

Supponiamo che un file contenga 300 righe, ma che l'identificatore doc-042 sia presente due volte e doc-117 sia assente. Il totale delle righe sembra corretto; ci sono però solo 299 identificatori unici. Questo run fallisce il controllo di copertura finché l'anomalia non viene spiegata e corretta.

Se ogni run viene poi valutato sul corpus completo e sul suo sottogruppo di testi lunghi, ottieni dodici righe di metrica per una data metrica. Restano sei run, non dodici addestramenti indipendenti. La chiave di valutazione deve includere il perimetro per conservare questa distinzione.

Esempio illustrativo di controllo dell'inventario — numeri calcolati, non osservati
ControlloAttesoAnomalia illustrativa
Run2 configurazioni × 3 seed = 6Una ripartenza riceve un nuovo identificatore
Predizioni per run300 ID unici attesi300 righe ma solo 299 ID unici
Coppie run/input6 × 300 = 1 800Il conteggio globale da solo non rileva tutti i duplicati
Valutazioni6 run × 2 perimetri = 12Dodici punteggi non creano dodici run
06 /

Chiudere la cartella con una decisione leggibile

Prima di dichiarare un run terminato, controlla presenza e apertura dei file, corrispondenza degli identificatori, metriche ricalcolabili e stato di ogni errore. Un tentativo tecnicamente terminato può restare respinto per qualità insufficiente. Mantieni separati questi due stati.

La nota di decisione raccoglie la domanda, le varianti confrontate, il criterio annunciato, i risultati scelti e le ragioni dell'esclusione. Cita i run_id e i percorsi degli artefatti invece di «l'ultimo modello». Aggiungi i limiti: poche ripetizioni, sottogruppo insufficiente, versione non ritrovata o confronto diventato impossibile.

Una correzione successiva deve lasciare una traccia: nuova valutazione, nuovo report e motivo del cambiamento. Conserva la vecchia conclusione come versione storica identificata, senza lasciarla apparire come decisione attuale. Verifica infine che la copia esportata si apra dalla sua cartella di destinazione.

07 /

Evitare la raccolta inutile e le promesse di riproduzione

Raccogli i campi necessari alla prova, non tutte le variabili d'ambiente né la cronologia del terminale. Una configurazione o un URL può contenere un token; prepara una versione condivisibile senza segreti e conserva i dati che devono restare privati nella loro posizione autorizzata. Gli identificatori tecnici di prova non hanno bisogno di includere il nome di una persona.

Una cartella completa migliora la possibilità di rifare e capire un esperimento. Non garantisce un'uguaglianza numerica tra piattaforme o versioni: PyTorch documenta questi limiti di riproducibilità. Distingui ritrovare il protocollo, ricaricare l'artefatto e riprodurre esattamente i numeri.

Il carnet IteraGPU può conservare i tuoi obiettivi, parametri e decisioni, con i riferimenti utili. Non avvia i run né raccoglie automaticamente i file o la telemetria. Usalo come indice del tuo ragionamento e conserva la cartella degli artefatti nei tuoi backup.

Fonti tecniche: PyTorch 2.14 — limiti di riproducibilità tra ambienti

Domande pratiche

Un commit Git basta per ritrovare un esperimento?

Un commit identifica una versione del codice, ma non necessariamente i dati, i pesi, i parametri effettivi o le modifiche non registrate. Associalo a un manifesto e agli artefatti prodotti. Senza questi legami, due esecuzioni dello stesso commit possono corrispondere a esperimenti diversi.

Bisogna conservare tutte le predizioni?

Conserva gli output necessari per verificare le conclusioni e ricalcolare la valutazione, nei limiti dei tuoi diritti e dei vincoli di conservazione. Per un corpus di confronto circoscritto, gli identificatori e le predizioni complete rendono gli errori verificabili. Un semplice punteggio aggregato di norma non permette di ritrovare gli esempi mancanti.

Una ripresa deve riutilizzare lo stesso run_id?

Lo schema proposto assegna un nuovo identificatore a ogni tentativo e collega la ripresa al run precedente e al checkpoint caricato. Puoi raggruppare questi tentativi sotto uno stesso esperimento logico. Questa separazione rende visibili l'interruzione, i costi e i file effettivamente prodotti a ogni fase.