1. Conserva il messaggio e il contesto prima di rilanciare
Smetti di aggiungere attività alla coda. Annota il testo esatto dell'errore, il file o la domanda coinvolti, il numero di elementi elaborati insieme e la fase raggiunta. Il modello si stava caricando, il calcolo procedeva o l'output era in fase di scrittura? Conserva le impostazioni in una nota e i risultati già completati nella loro cartella.
Una schermata bloccata o un'applicazione chiusa senza spiegazione non basta a identificare la causa. Recupera il suo log quando esiste. Un'interruzione di connessione, un input non valido e una memoria satura possono produrre sintomi simili nell'interfaccia. Se il software non specifica nulla, scrivi «causa non determinata» e prepara un test minimo invece di inventare una diagnosi.
2. Distingui memoria della GPU, memoria di sistema e spazio su disco
La memoria della GPU serve agli elementi del calcolo sulla scheda. La RAM del server e lo storage rispondono ad altre esigenze. Le capacità indicate nelle schede GPU BriefGPU non descrivono la RAM o il disco effettivamente disponibili. Verifica la risorsa menzionata dal messaggio e le informazioni del tuo ambiente.
In Python, MemoryError indica un fallimento di allocazione della memoria; questo nome da solo non indica una mancanza di VRAM. Il codice ENOSPC corrisponde a una mancanza di spazio sul dispositivo interessato. Questi riferimenti orientano la ricerca, ma il log dell'applicazione resta necessario per individuare l'operazione.
| Osservazione | Primo controllo | Cosa una GPU più grande non risolve da sola |
|---|---|---|
| Messaggio CUDA out of memory durante il calcolo | Memoria della scheda utilizzata, altre attività e dimensione del gruppo | Un'incompatibilità del software o un file corrotto |
| MemoryError durante la lettura dei file | Memoria del processo, quantità di dati caricati in RAM | Il caricamento di tutta la cartella nella memoria di sistema |
| No space left on device durante un export | Spazio ed eventuale quota della cartella di output o temporanea | Un disco pieno o un limite di storage |
| Applicazione chiusa senza messaggio utilizzabile | Log, fase raggiunta e test su una singola voce | Una causa ancora sconosciuta |
3. Torna a una singola voce e a un solo lavoro attivo
Verifica prima i processi che hai avviato tu stesso. Un'anteprima, una vecchia sessione o un secondo strumento possono essere ancora in esecuzione. Chiudi correttamente le attività diventate inutili dopo averne conservato lo stato. Non terminare un processo che non riconosci e non riavviare tutto l'ambiente per guadagnare qualche minuto di diagnosi.
Riprendi la voce che ha fallito, da sola, senza ridurne la qualità. Se passa isolatamente ma fallisce in gruppo, il numero di elementi simultanei diventa una pista. Riduci ad esempio un gruppo da quattro a due, poi a uno se necessario. Il numero di file della cartella resta identico; cambia solo la quantità elaborata contemporaneamente.
Alcuni strumenti offrono un'elaborazione sequenziale per limitare i picchi di memoria. Diffusers documenta in particolare la suddivisione della decodifica di un gruppo di immagini. Questa possibilità dipende dalla pipeline utilizzata: consulta le sue opzioni prima di attivare un'impostazione trovata per un altro modello.
4. Riduci il carico senza perdere il risultato richiesto
Se una singola voce fallisce, esamina le sue dimensioni o la sua lunghezza. Per un'immagine, passare da 2.048 × 2.048 a 1.024 × 1.024 divide il numero di pixel per quattro. Questo non garantisce una memoria totale divisa per quattro: il modello e gli altri elementi mantengono le proprie esigenze. Una riduzione è accettabile solo se l'output conserva i dettagli necessari.
Per un assistente, distingui i documenti forniti, la domanda e la risposta generata. La cache di generazione può consumare più memoria con un contesto lungo; i meccanismi esatti dipendono dal modello. Prova una richiesta più breve o una sola richiesta alla volta. Non rimuovere il passaggio che contiene la risposta per poi concludere che il problema è risolto.
Conserva sempre l'input originale. Assegna un nome alla variante di prova e scrivi cosa cambia. Se lo strumento propone una suddivisione in tile o il trasferimento di alcuni elementi nella RAM, consulta la sua documentazione e controlla le giunzioni, la qualità e il tempo osservato. Un'opzione che risparmia VRAM può spostare il collo di bottiglia altrove.
5. Non confondere memoria riservata e memoria utile
Con PyTorch, la memoria riservata dall'allocatore e quella occupata dai tensori sono due misure diverse. Svuotare la cache inutilizzata non libera i tensori ancora attivi. Un comando di pulizia non trasforma quindi un carico troppo grande in un carico compatibile.
Se un riavvio pulito della tua applicazione aiuta, riprova poi lo stesso piccolo caso e annota il risultato. Un successo dopo il riavvio non dimostra da solo che una perdita di memoria sia stata risolta. Se l'utilizzo aumenta a ogni passaggio identico, conserva questa osservazione e consulta la documentazione o l'assistenza del software prima di accumulare riavvii.
Esempio: isolare il problema in una cartella di dodici immagini
Ecco uno scenario illustrativo, senza misurazioni hardware. Una freelance prepara dodici immagini, di cui due con grandi dimensioni e testo sottile. L'elaborazione a gruppi di quattro fallisce. Conserva il messaggio, poi prova una delle immagini grandi da sola, alla qualità iniziale. La tabella mostra come interpretare possibili osservazioni.
In questo scenario, adotta i gruppi di due solo dopo aver controllato insieme le due immagini grandi e alcune immagini ordinarie. Verifica il testo e i contorni nei file esportati. Non generalizza questo risultato a tutte le dimensioni di immagine, a tutti i modelli né a un altro software.
| Prova dello scenario | Osservazione ipotetica | Decisione locale |
|---|---|---|
| Quattro immagini simultanee | Errore di memoria | Conservare l'errore e ridurre il gruppo |
| Una grande immagine, stesse impostazioni | Output completo e accettabile | La qualità target può passare su questo caso isolato |
| Due grandi immagini insieme | Output completi e accettabili | Testare questo gruppo su una breve sequenza |
| Immagine ridotta fortemente | Calcolo terminato, testo illeggibile | Scartare questa riduzione nonostante il successo tecnico |
Quando un'altra capacità diventa una pista giustificata
Confronta un'altra scheda quando la mancanza di memoria GPU è identificata, il caso indispensabile fallisce da solo e le riduzioni compatibili con la tua qualità non bastano. Conserva il software, la versione, i parametri e l'input interessati: questo dossier rende il prossimo test comparabile. Non permette di dedurre esattamente quanti GB in più saranno sufficienti.
Un errore al caricamento del modello può anche limitare l'utilità di ridurre il gruppo: una parte importante del carico esiste prima del primo input. Le opzioni di precisione o di quantizzazione cambiano le condizioni di esecuzione e a volte i risultati; richiedono un test separato. Aggiungere lotti non unifica automaticamente la memoria di più schede.
Concludi con una diagnosi utilizzabile
La tua nota finale si compone di cinque elementi: messaggio e fase, risorsa sospetta, input conservato, impostazione che passa o fallisce, controllo di qualità effettuato. Aggiungi ciò che resta sconosciuto. Se nessun piccolo caso funziona, interrompi la ripetizione del lotto completo e chiedi aiuto con queste informazioni.
Non eliminare i tuoi unici originali per liberare disco, non abbassare più parametri insieme e non considerare un output parziale come un successo. Riserva del tempo per salvare i risultati validi. La diagnosi deve ridurre l'incertezza; non deve trasformarsi in una sessione interminabile di regolazioni.