Logo VRAMfarm VRAMfarm
IT
Registrati

12 novembre 2026 · Team VRAMfarm

Spostare dataset su un server GPU e ritorno: Hugging Face, rclone, rsync, scp

Dati che scorrono da un bucket cloud e da un portatile verso un server GPU e risultati che tornano indietro: come spostare dataset su un server GPU

Caricare un dataset da 80 GB da casa con una connessione da 40 Mbit/s richiede circa quattro ore e mezza, e se un server GPU è già acceso, le paghi tutte. Gli stessi 80 GB scaricati da Hugging Face o da un bucket S3 su una macchina con un collegamento da 1 Gbit/s richiedono 15–20 minuti. La regola quindi è semplice: i dati devono viaggiare dal cloud al server, non dal tuo portatile, e il caricamento lento, se ti serve, va fatto una volta sola, senza una GPU in attesa.

Scegli la strada in base a dove sono i dati adesso

Dove sono i dati Strumento Cosa limita la velocità
Hugging Face (pubblico, privato o ad accesso limitato) hf download La connessione della macchina
S3, Cloudflare R2, Backblaze B2, Google Cloud Storage rclone copy La connessione della macchina, la regione del bucket
Google Drive, Dropbox, OneDrive rclone copy I limiti del servizio stesso, spesso più bassi
Un link diretto wget o curl Il server di origine
Il tuo computer, pochi GB scp o il caricamento di Jupyter La velocità di upload di casa tua
Il tuo computer, molti GB o molti file rsync, oppure prima su un bucket La velocità di upload di casa tua

Le velocità di download e upload di ogni macchina sono indicate prima dell’avvio, in Mbit/s, e il catalogo può ordinarle e filtrarle. Per stimare basta una divisione: 100 GB sono 800 gigabit, quindi a 1.000 Mbit/s servono circa 13 minuti a piena velocità, 15–25 minuti nella pratica. Con un upload domestico da 40 Mbit/s, gli stessi 100 GB richiedono cinque ore e mezza.

Se i tuoi dati stanno solo sul tuo computer e li userai più di una volta, caricali una volta sola su un dataset privato di Hugging Face o su un tuo bucket, di notte, senza nessuna GPU accesa. Da lì in poi ogni server li scarica alla velocità del data center.

Hugging Face: dataset e modelli

Il comando hf arriva con il pacchetto huggingface_hub:

pip install -U huggingface_hub
hf auth login                      # solo per repo privati o ad accesso limitato; incolla un token di lettura
hf download <user>/<dataset> --repo-type dataset --local-dir /workspace/data

Aggiungi --include "train/*.parquet" per scaricare solo una parte di un repo. Le versioni recenti di huggingface_hub scaricano da sole in molti blocchi paralleli i file archiviati sullo storage Xet di Hugging Face, quindi un solo hf download di solito satura un collegamento veloce. Scaricare con un token evita anche i limiti più severi sulle richieste anonime.

Dove finiscono i file conta per la sessione successiva. Tutto ciò che sta in /workspace si può salvare con Salva e ferma; tutto ciò che sta in ~/.cache/huggingface sparisce dopo lo stop. Se vuoi la cache di Hugging Face nella cartella salvata, imposta export HF_HOME=/workspace/hf prima di scaricare. Se non la vuoi (dati pubblici che puoi riscaricare in pochi minuti), lasciala fuori e non paghi storage.

Per rimandare indietro i risultati, lo stesso strumento fa l’upload:

hf upload <user>/<results-repo> /workspace/outputs --repo-type dataset --private

Usa un token di scrittura per questo, e revocalo quando il progetto è finito.

rclone da S3, R2 o Google Drive

rclone parla con quasi tutti i servizi di storage. Installalo sul server (lo script di installazione richiede unzip, che spesso manca nelle immagini ridotte):

apt-get update && apt-get install -y unzip curl
curl https://rclone.org/install.sh | bash

Per uno storage compatibile con S3 puoi saltare il file di configurazione e passare le impostazioni come variabili d’ambiente, così le tue chiavi restano fuori da /workspace. Il nome del remote nelle variabili (qui S3) diventa s3: nel comando:

export RCLONE_CONFIG_S3_TYPE=s3
export RCLONE_CONFIG_S3_PROVIDER=AWS
export RCLONE_CONFIG_S3_REGION=eu-central-1
export RCLONE_CONFIG_S3_ACCESS_KEY_ID=...
export RCLONE_CONFIG_S3_SECRET_ACCESS_KEY=...

rclone copy s3:my-bucket/dataset /workspace/data --transfers 16 --progress

Per Cloudflare R2 o Backblaze B2, imposta PROVIDER a Cloudflare o Other e aggiungi RCLONE_CONFIG_S3_ENDPOINT con l’endpoint del tuo account. --transfers 16 copia 16 file alla volta, e aiuta molto con tanti file di medie dimensioni. I risultati tornano indietro allo stesso modo:

rclone copy /workspace/outputs s3:my-bucket/runs/2026-11-12 --progress

Google Drive richiede un accesso dal browser, e il server non ha un browser. Lancia rclone config, aggiungi un remote di tipo drive, scegli lo scope in sola lettura se devi solo scaricare e rispondi n quando ti chiede della configurazione automatica. rclone stampa un comando rclone authorize "drive" .... Eseguilo sul tuo computer (con rclone installato anche lì), accedi e incolla sul server il token che stampa. Drive è più lento di un bucket e ha quote giornaliere di download, quindi per trasferimenti grandi o ripetuti un bucket è la casa migliore.

Dai al server la chiave più ristretta che funziona: sola lettura, un solo bucket, eliminata a fine progetto. I motivi li trovi in i miei dati sono al sicuro su una GPU a noleggio?.

Dal tuo computer: scp, rsync e il caricamento di Jupyter

scp copia i file usando la stessa chiave SSH con cui accedi. Prendi la porta da I miei server:

scp -P 31001 data.tar root@vramfarm.com:/workspace/
scp -P 31001 root@vramfarm.com:/workspace/outputs.tar .

rsync è meglio per tutto ciò che è grande: mostra l’avanzamento, salta i file già presenti e, quando la connessione cade, rilanciare lo stesso comando riprende da dove si era fermato. Le immagini dei server non lo includono sempre, quindi prima installalo lì:

# sul server
apt-get update && apt-get install -y rsync

# sul tuo computer (Mac, Linux o WSL)
rsync -avP -e "ssh -p 31001" ./data/ root@vramfarm.com:/workspace/data/
rsync -avP -e "ssh -p 31001" root@vramfarm.com:/workspace/outputs/ ./outputs/

Su Windows, scp funziona in PowerShell e rsync gira dentro WSL; la guida SSH per Windows li copre entrambi, più WinSCP se preferisci una finestra.

Il caricamento di Jupyter (trascinare i file nel file browser) è il più facile e va bene per script, notebook, una LoRA o qualche centinaio di megabyte di immagini. Con diversi gigabyte diventa fragile: la scheda del browser deve restare aperta, un caricamento interrotto riparte da zero, e trascinare 10.000 file in una volta è lento. Il download funziona con tasto destro → Download, un file alla volta, quindi prima comprimi la cartella in un archivio.

Impacchetta, e comprimi solo ciò che si riduce

Tanti file piccoli sono la cosa più lenta che puoi spostare. Un milione di immagini da 100 KB si copiano molto più lentamente di un solo archivio da 100 GB, perché ogni file costa un andata e ritorno. Impacchettali prima, oppure tieni fin dall’inizio il dataset in shard (tar, Parquet, WebDataset):

tar cf images.tar images/           # nessuna compressione: i JPEG non si riducono
tar czf logs.tgz logs/              # testo, CSV e JSON si riducono da 3 a 10 volte

Immagini, video, audio, pesi dei modelli e Parquet sono già compressi, quindi gzip costa solo tempo di CPU. Il testo si comprime bene. Se zstd è installato (apt-get install -y zstd), tar --zstd -cf data.tar.zst data/ comprime ed estrae diverse volte più in fretta di gzip con dimensioni simili.

Estrai mentre scarichi quando l’archivio sta dietro un URL, così non occupa mai due volte lo spazio su disco:

curl -L "https://example.com/dataset.tar.gz" | tar xz -C /workspace/data

Controlla il disco prima di iniziare. La dimensione del disco la scegli all’avvio, e un archivio più la sua copia estratta richiedono per un po’ il doppio dello spazio. Se compare “No space left on device”:

df -h /workspace                        # quanto è pieno il disco
du -sh /workspace/* | sort -h           # cosa occupa lo spazio
rm -rf ~/.local/share/Trash/*           # i file eliminati in Jupyter finiscono prima qui

Quell’ultima riga coglie di sorpresa molte persone: i file che elimini nel file browser di Jupyter vengono spostati in una cartella cestino e continuano a occupare disco finché non la svuoti. A seconda del setup, il cestino può essere anche una cartella nascosta .Trash-0 in cima a /workspace; ls -a /workspace la mostra, e finirebbe in una cartella salvata, quindi svuota anche quella.

Quanto costa, e dove devono stare i dati

Il traffico si paga per GB in entrambe le direzioni alla tariffa della singola macchina, indicata nel catalogo prima dell’avvio. Quasi tutte le macchine costano intorno a un centesimo per GB o meno, alcune non costano niente e alcune macchine B200 e H200 costano di più. Un dataset da 100 GB in entrata e 5 GB di risultati in uscita, a un centesimo per GB, fanno circa 1,05 €.

Il costo più grande di solito è la GPU che aspetta. Venti minuti di download su una H100 costano 1,30 €; gli stessi venti minuti su una RTX 4090 costano 0,20 €. Quindi lancia il download per prima cosa, e usa l’attesa per caricare i tuoi script o controllare la configurazione.

Il dataset deve stare nella tua cartella salvata? Lo storage costa 0,03 € per GB al mese, quindi 100 GB fanno 100 × 0,03 € al mese. Anche il ripristino della cartella su un nuovo server conta come traffico, e non sempre è più veloce di Hugging Face o di un bucket in una buona regione. In pratica:

Dati Dove tenerli
Dataset pubblici e pesi dei modelli Da nessuna parte; riscaricali ogni volta
Un tuo dataset, usato ogni settimana Il tuo bucket o un repo privato di Hugging Face, oppure la cartella salvata se è piccolo
Dati che esistono solo sul tuo portatile Caricali una volta su un bucket o su Hugging Face, poi scaricali da lì
Checkpoint, LoRA, output La cartella salvata, più una copia a casa o nel tuo bucket

Il calcolo completo tra tenere e riscaricare, con i numeri, è in cosa succede ai tuoi file quando fermi una GPU.

Prima di fermare il server, lancia un ultimo rsync o rclone copy dei tuoi output, oppure clicca Salva e ferma. Il disco del server viene cancellato insieme al server, e un dataset che puoi riscaricare in 15 minuti è facile da sostituire. Una settimana di risultati no.

Domande sull’argomento

Posso montare il mio bucket S3 o Google Drive come cartella sul server?

Conta piuttosto di copiare. Montare con rclone mount richiede FUSE, che di solito i container non permettono, e fare training direttamente da un mount di rete è comunque lento. Copia i dati sul disco del server con rclone copy, addestra e ricopia indietro i risultati.

Posso ingrandire il disco dopo l'avvio?

Scegli la dimensione all'avvio, con spazio per l'archivio, i dati estratti e i tuoi output. Se finisci lo spazio, clicca Salva e ferma e avvia un nuovo server con un disco più grande: la tua cartella salvata torna su quello.

Anche il caricamento dal mio computer si paga come traffico?

Sì. Il traffico si conta in entrambe le direzioni alla tariffa della macchina, indicata prima dell'avvio e di solito intorno a un centesimo per GB o meno.

Perché il download da Hugging Face è lento?

Di solito per la connessione della macchina o per la mancanza di un token. Controlla la velocità di download indicata per la macchina prima dell'avvio (c'è un filtro apposta), accedi con un token e usa un huggingface_hub recente, che scarica molte parti dei file in parallelo.

Trova la GPU in cui entra il tuo modello

Scegli un modello e vedi la scheda più economica con VRAM sufficiente, con fatturazione al minuto in euro.