Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Descarga de activación
Cuando los puntos de control de activación y el paralelismo de canalización están activados y el número de microlotes es superior a uno, la descarga de activación es una característica adicional que puede reducir aún más el uso de memoria. La activación y la descarga mueven de forma asíncrona las activaciones con puntos de control correspondientes a sus microlotes que no se están ejecutando actualmente en el. CPU Justo antes de que se GPU necesiten las activaciones para el paso hacia atrás del microlote, esta funcionalidad recupera previamente las activaciones descargadas del. CPU
nota
Esta función está disponible en la biblioteca de paralelismo de modelos, versión PyTorch 1.6.0 y versiones posteriores SageMaker .
Cómo utilizar la descarga de activación
Utilice la descarga de activación para reducir el uso de memoria cuando el número de microlotes sea superior a 1 y el punto de control de activación esté activado (consulte Puntos de control de activación). Si no se utiliza el punto de control de activación, la descarga de activación no tiene ningún efecto. Si se utiliza con un solo microlote, no ahorra memoria.
Para utilizar la descarga de activación, establezca "offload_activations": True
en la configuración modelparallel
.
La descarga de activaciones mueve las activaciones de los puntos de control de los módulos a asíncronas. nn.Sequential
CPU La transferencia de datos a través del enlace se superpone con el cálculo. PCIe GPU La descarga se produce inmediatamente, tan pronto como se calcula el paso hacia adelante de una capa determinada con puntos de control. Las activaciones se vuelven a cargar GPU poco antes de que se necesiten para la transferencia hacia atrás de un microlote concreto. La GPU transferencia CPU - se superpone de manera similar con el cálculo.
Para ajustar la antelación con la que se vuelven a cargar las activacionesGPU, puede utilizar el parámetro de configuración "activation_loading_horizon"
(el valor predeterminado es 4, debe ser int
mayor que 0). Un horizonte de carga de activaciones más amplio haría que las activaciones se cargaran de nuevo en la GPU anterior. Si el horizonte es demasiado amplio, es posible que disminuya el impacto de la descarga de la activación en el ahorro de memoria. Si el horizonte es demasiado pequeño, es posible que las activaciones no se carguen en el tiempo, lo que reduce la cantidad de superposiciones y reduce el rendimiento.
sugerencia
La descarga de activación puede resultar útil para modelos grandes con más de cien mil millones de parámetros.
Configure un estimador SageMaker PyTorch
mpi_options = { "enabled" : True, "processes_per_host" : 8, # 8 processes "custom_mpi_options" : "--mca btl_vader_single_copy_mechanism none " } smp_options = { "enabled":True, "parameters": { "microbatches": 4, "pipeline_parallel_degree": 2, # alias for "partitions" "placement_strategy": "cluster", "tensor_parallel_degree": 2, # tp over 2 devices "ddp": True, "offload_activations": True, "activation_loading_horizon": 4 # optional. default is 4. } }