Pipeline de entrada
Leerlo en el Capítulo 5 · checkpoint +50 XP →
Leer, decodificar y tokenizar datos lo bastante rápido para alimentar a las GPUs: el cuello de botella después de arreglar todo lo demás.
Cuando las cuentas del modelo ya son rápidas, el lado de la CPU suele ser el límite: leer shards del almacenamiento, descomprimir, tokenizar, mezclar y armar batches.
Síntomas: la utilización de GPU sube y baja en dientes de sierra, el tiempo por paso no mejora al optimizar el modelo y los logs muestran tiempo esperando el siguiente batch.
Arreglos
- Más workers del dataloader (procesos) por rango y memoria pinned.
- Precarga: prepara el batch k+1 mientras entrena el batch k (ver CUDA streams y ejecución asíncrona).
- Tokeniza por adelantado y guarda shards binarios empaquetados. Es la mayor ganancia para el preentrenamiento de LLM.
- Asegúrate de que el sistema de archivos paralelo o el almacenamiento de objetos entregue el ancho de banda agregado: GPUs × tokens/s × bytes por token, más el tráfico de checkpoints.
La misión Feed the Beast muestra cómo el cuello de botella pasa a la carga de datos en cuanto se arregla la comunicación.
Úsalo en una misión
Relacionado
Fuentes y lecturas adicionales
- Distributed Training (T. Tsugriy) — parallelism strategies, collectives, memory
Escrito para LazyLab con nuestras propias palabras; las fuentes se citan para profundizar y verificar.