ArtificialGuyBR

Home / Blog / Training LoRAs

RunPod vs Vast.ai para entrenamiento LoRA en GPUs alquiladas

Elige la instancia GPU en la nube correcta, compara plantillas y mantén los costes bajos.

5 sources cited Training LoRAs

TL;DR

  • RunPod: L40S a $0.99/hr con plantillas One-Click ComfyUI — ideal para principiantes, flujos creativos.
  • Vast.ai: H100 a ~$3/hr con plantillas Musubi-Tuner y PyTorch — mejor para entrenamiento a gran escala.
  • Disco contenedor vs Disco volumen: El disco contenedor (260 GB) es significativamente más barato que el almacenamiento en volumen en RunPod.

RunPod vs Vast.ai para entrenamiento LoRA en GPUs alquiladas

Alquilar GPUs en la nube ha transformado el ajuste fino de modelos de IA. Donde antes necesitabas una tarjeta gráfica de $3,000 inactiva el 90% del tiempo, ahora puedes acceder al mismo silicio por menos de un dólar la hora. Esta guía compara las dos plataformas más populares y muestra cómo elegir instancias, configurar plantillas, mover conjuntos de datos y mantener los costes bajo control.

Elegir tu plataforma

La decisión se reduce a una compensación: facilidad de uso vs control.

El L40S de RunPod a $0.99/hr proporciona plantillas One-Click preconfiguradas para flujos creativos. Los H100 de Vast.ai a ~$3/hr ofrecen máxima flexibilidad para usuarios técnicos que necesitan control total sobre su entorno de entrenamiento.

CaracterísticaRunPodVast.ai
Precio GPU de entrada$0.99/hr (L40S) [1]~$0.50–$3/hr (varía) [3]
Sistema de plantillasPlantillas One-Click ComfyUI [2]Plantilla PyTorch (Vast)
Configuración de almacenamientoOpciones disco contenedor + volumenConfiguración manual
Transferencia de datosHerramienta CLI runpodctl [4]Transferencia manual
Mejor paraPrincipiantes, flujos creativosUsuarios experimentados, entrenamiento grande

Fuente: https://www.runpod.io/pricing, https://console.runpod.io/hub/template/one-click-comfyui-wan2-1-wan-2-2-cuda-12-8?id=758dsjwiqz

Para más contexto sobre selección de infraestructura, ver elección de instancias GPU para entrenamiento IA y estrategias de reducción de costes GPU en la nube.

Configuraciones verificadas de un vistazo

ConfiguraciónValorFuente
Tarifa horaria L40S$0.99/hrhttps://www.runpod.io/pricing
VRAM L40S48 GBhttps://www.runpod.io/pricing
RAM L40S94 GBhttps://www.runpod.io/pricing
vCPUs L40S16https://www.runpod.io/pricing
Disco contenedor recomendado260 GBhttps://console.runpod.io/hub/template/one-click-comfyui-wan2-1-wan-2-2-cuda-12-8?id=758dsjwiqz
Etiqueta PyTorch Vast.ai2.7.0-cuda-12.8.1-py310-22.04https://github.com/kohya-ss/musubi-tuner
Dependencias PyTorchtorch==2.7.0, torchvision==0.22.0, xformers==0.0.30https://civitai.com/articles/17385
Nombre archivo modelowan2.1_t2v_14B_fp8_e4m3fn.safetensorshttps://github.com/kohya-ss/musubi-tuner/blob/main/docs/wan.md
Ruta dataset en workspace/workspace/musubi-tuner/dataset/https://github.com/kohya-ss/musubi-tuner
runpodctlCLI open-source (GitHub)https://docs.runpod.io/runpodctl/overview
Tamaño dataset LoRAExactamente 18 imágeneshttps://civitai.com/articles/17385
Extensión caption.txthttps://github.com/kohya-ss/musubi-tuner/blob/main/docs/wan.md

Configurar RunPod para flujos WAN2.1

RunPod reduce la complejidad de configuración mediante plantillas preconstruidas. Para trabajo LoRA WAN2.1:

Pasos clave de configuración

  1. Selección de plantilla: Usar One Click - ComfyUI Wan2.1 - Wan 2.2 - CUDA 12.8 template [2]
  2. Configuración de disco: Establecer Disco Contenedor a 260 GB, Disco Volumen a 0 GB [2]
  3. Variables de plantilla: Configurar download_wan22, civitai_token, y LORAS_IDS_TO_DOWNLOAD antes de desplegar
  4. Post-despliegue: Tras aparecer "ComfyUI is up", subir un script de configuración y ejecutar bash install_basics_clean_25_10_10.sh [2]. Usar install-sage.sh como respaldo si falta SageAttention [2].

Ver también comparativa de precios almacenamiento RunPod para detalles de Disco contenedor vs Volumen.

Configurar Vast.ai para entrenamiento LoRA

Vast.ai requiere configuración manual pero proporciona máximo control:

Pasos de configuración

  1. Selección de plantilla: Elegir PyTorch (Vast) con etiqueta 2.7.0-cuda-12.8.1-py310-22.04 [3]
  2. Almacenamiento: Asignar 200 GB para dataset, modelos y archivos de caché
  3. Dependencias: Instalar Musubi-Tuner y PyTorch con xformers

Dependencias

Instalar la pila exacta de PyTorch verificada por la referencia comunitaria:

pip install torch==2.7.0 torchvision==0.22.0 xformers==0.0.30 --index-url https://download.pytorch.org/whl/cu128

Fuente: https://civitai.com/articles/17385

Preparación del dataset

El tamaño óptimo de dataset LoRA es exactamente 18 imágenes — sin excepciones. Esto proporciona diversidad suficiente sin sobreentrenamiento.

Configuración del dataset

[general]
resolution = [960, 960]
caption_extension = ".txt"
batch_size = 1
enable_bucket = true
bucket_no_upscale = false
num_repeats = 1

Trampas comunes:

  • La generación de captions con ChatGPT a veces numeración incorrecta de archivos — verificar manualmente el emparejamiento
  • Sujetos 3D renderizados necesitan referencias reales suplementarias (fotos cosplay, resultados img2img)

Por qué importan estos ajustes

Por qué se recomiendan 18 imágenes. Este número específico se determinó mediante experimentación — proporciona suficiente diversidad para aprendizaje LoRA efectivo mientras es manejable para el coste computacional del entrenamiento. Fuente: "1. Dataset\n\n18 images. Always. No exceptions." (https://civitai.com/articles/17385)

Por qué se requiere xformers. xformers es una librería de optimización de memoria que permite a PyTorch usar mecanismos de atención especializados más eficientes en memoria que la atención estándar de PyTorch. Fuente: "Supports xformers (training and inference) and Sage attention (inference only)" (https://civitai.com/articles/17385)

Para mejores prácticas de generación de captions, ver preparación de datasets para entrenamiento LoRA.

Entrenamiento y gestión de costes

Pre-caché para eficiencia

Antes del entrenamiento, ejecutar estos dos pasos críticos:

python src/musubi_tuner/wan_cache_latents.py --dataset_config /workspace/musubi-tuner/dataset/dataset.toml --vae /workspace/musubi-tuner/models/vae/split_files/vae/wan_2.1_vae.safetensors
python src/musubi_tuner/wan_cache_text_encoder_outputs.py --dataset_config /workspace/musubi-tuner/dataset/dataset.toml --t5 /workspace/musubi-tuner/models/text_encoders/models_t5_umt5-xxl-enc-bf16.pth

Comando de entrenamiento (verificado desde referencia comunitaria):

accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 src/musubi_tuner/wan_train_network.py --task t2v-14B --dit models/diffusion_models/split_files/diffusion_models/wan2.1_t2v_14B_fp8_e4m3fn.safetensors --vae models/vae/split_files/vae/wan_2.1_vae.safetensors --t5 models/text_encoders/models_t5_umt5-xxl-enc-bf16.pth --dataset_config /workspace/musubi-tuner/dataset/dataset.toml --xformers --mixed_precision bf16 --fp8_base --optimizer_type adamw --learning_rate 3e-4 --gradient_checkpointing --gradient_accumulation_steps 1 --max_data_loader_n_workers 2 --network_module networks.lora_wan --network_dim 32 --network_alpha 32 --timestep_sampling shift --discrete_flow_shift 1.0 --max_train_epochs 100 --save_every_n_epochs 100 --seed 5 --optimizer…

Estrategias de ahorro:

  1. Disco contenedor sobre Disco volumen (almacenamiento local es mucho más barato)
  2. Eliminar modelos no usados (Wan Animate, InfiniteTalk)
  3. Monitorizar duración entrenamiento (pre-caché previene sobrecarga de carga de datos)
  4. Apagar pods inmediatamente (la facturación es continua)
  5. Usar runpodctl para transferencia (runpodctl send /ComfyUI/output/)

Qué disco pagar

Las plantillas comunitarias dicen poner todo en Disco Contenedor porque es "muy barato" (notas plantilla RunPod). Ese consejo es correcto por la razón equivocada, y la razón cambia lo que debes hacer entre sesiones. Aquí está el precio real:

Tipo almacenamientoPod en ejecuciónPod detenidoPersistenciaFuente
Disco contenedor$0.10/GB/mesNo se cobraBorrado al detener el PodPrecios RunPod
Disco volumen$0.10/GB/mes$0.20/GB/mesMantenido hasta borrar el PodPrecios RunPod
Volumen red$0.07/GB/mes$0.07/GB/mesPermanente, portable entre PodsPrecios RunPod

Mientras el Pod se ejecuta, disco contenedor y volumen cuestan lo mismo — $0.10/GB/mes cada uno. El disco contenedor no es más barato por dónde vive; es gratis mientras el Pod está detenido porque se borra al detenerse. No pagas por almacenamiento que ya no tienes.

Eso hace la compensación concreta. Un disco contenedor de 260 GB cuesta unos $26/mes en ejecución y nada detenido, pero re-descargas cada modelo en cada sesión nueva. Los mismos 260 GB como disco volumen cuestan $52/mes inactivos. Como volumen de red son $18/mes, siempre disponibles, y portables a otro Pod — la opción más barata para modelos que reutilizas, y la que el consejo comunitario omite.

Reparto práctico: modelos y LoRAs que reutilizas en volumen de red, salida scratch e imagen contenedor en disco contenedor, y disco volumen solo cuando necesitas persistencia atada a un Pod específico.

Por qué el pre-caché es esencial para entrenamiento

El pre-caché convierte datos a formatos GPU-amigables antes de que empiece el entrenamiento, reduciendo la sobrecarga de carga de datos en tiempo real durante el proceso de entrenamiento computacionalmente costoso. Fuente: "Pre-caching is almost the same as in HunyuanVideo, but some options may differ. See HunyuanVideo documentation and --help for details."

Para detalles completos de configuración Musubi-Tuner, ver guía entrenamiento Musubi-Tuner.

Common Errors and Fixes

SíntomaCausaSoluciónFuente
SageAttention ausente en plantillaPlantillas ComfyUI oficiales pueden no incluir SageAttentionEjecutar script install-sage.sh o instalar manualmentehttps://civitai.com/articles/20234
Archivos caption mal numeradosGeneración caption ChatGPT a veces numeración incorrecta .txtCorregir manualmente numeración tras generación captionhttps://civitai.com/articles/17385
Sujetos 3D aprenden malFaltan referencias realesAñadir fotos cosplay, resultados img2imghttps://civitai.com/articles/17385
Out-of-memoryVRAM insuficiente para entrenamiento 960×960Activar --fp8_base --gradient_checkpointing, reducir --network_dim de 32, o usar L40S (48 GB VRAM)https://github.com/kohya-ss/musubi-tuner/blob/main/docs/wan.md

Corrections to Common Advice

Afirmación comúnQué es realmente ciertoFuente
Versión plantilla VastAI es release PyTorch fijo oficialLa fuente afirma que esta versión exacta coincide con release PyTorch oficial, pero página precios Vast.ai muestra precios dinámicos basados en marketplace, no fijados a versiones específicasEtiqueta Versión: 2.7.0-cuda-12.8.1-py310-22.04 (https://github.com/kohya-ss/musubi-tuner)
L40S es "mejor relación velocidad/coste"Precios RunPod confirman L40S a $0.99/hr, una de las opciones más baratas, pero "mejor valor" no es una afirmación en la fuente"L40S\n\n48 GB VRAM\n\n94 GB RAM\n\n16\n\nvCPUs\n\n$0.99/hr" (https://www.runpod.io/pricing)

Preguntas frecuentes (FAQ)

¿Cuál es la GPU mínima? Musubi-Tuner recomienda 24 GB VRAM. El L40S de RunPod proporciona 48 GB a $0.99/hr — suficiente para Wan2.1.

¿Puede RunPod manejar entrenamiento? Sí. Las plantillas de RunPod incluyen ComfyUI y soporte WAN2.1, haciendo el entrenamiento sencillo. Sin embargo, Vast.ai ofrece más control del entorno.

Estimaciones tiempo entrenamiento:

  • H100 (100-epoch): 2–8 horas a 960×960
  • L40S: Aproximadamente 3–5× más lento que H100
  • El tiempo real varía con I/O red y configuración

Persistencia Disco Contenedor: Preservado entre paradas/reinicios de pod pero puede no sobrevivir migración a hardware diferente. Respaldar activos críticos en volumen o almacenamiento local.

Transferencia archivos: Instalar runpodctl localmente y usar runpodctl send /ComfyUI/output/ para creación automática de zip y enlaces descarga.

Precios Vast.ai: Precios marketplace fluctúan según oferta, ubicación y fiabilidad host. Revisar catálogos precios en vivo antes de compromisos largos.

Sobre Musubi-Tuner: Framework open-source soportando Wan, Hunyuan y otras arquitecturas. Proporciona control parámetros granular y optimización memoria mediante block swap y fp8. Referencia comunitaria para entrenamiento LoRA WAN2.1 [5].

¿Cómo transfiero archivos entre mi máquina local y un pod RunPod? Instalar runpodctl en tu máquina local, configurarlo con tu API key, luego usar runpodctl send para crear un bundle zip y enlace descarga. runpodctl es una herramienta de línea de comandos open-source para gestionar recursos RunPod desde tu máquina local. Fuente: https://docs.runpod.io/runpodctl/install-runpodctl

¿Qué dependencias Python se requieren? Instalar torch==2.7.0, torchvision==0.22.0, y xformers==0.0.30 con el índice rueda CUDA 12.8. Fuente: https://civitai.com/articles/17385