Web Analytics

pytorch-accelerated

⭐ 192 stars Spanish by Chris-hughes10

pytorch-accelerated

pytorch-accelerated es una biblioteca ligera diseñada para acelerar el proceso de entrenamiento de modelos PyTorch proporcionando un bucle de entrenamiento mínimo pero extensible - encapsulado en un solo objeto Trainer - que es lo suficientemente flexible para manejar la mayoría de los casos de uso, y capaz de utilizar diferentes opciones de hardware sin necesidad de cambios en el código.

pytorch-accelerated ofrece un conjunto de características simplificado, y pone un gran énfasis en la simplicidad y transparencia, para permitir a los usuarios entender exactamente qué está ocurriendo bajo el capó, pero sin tener que escribir y mantener el código repetitivo ellos mismos.

Las características clave son:

el comportamiento puede personalizarse usando herencia y/o callbacks. con otras bibliotecas populares como timm, transformers y torchmetrics. Se ha realizado un esfuerzo significativo para asegurar que cada parte de la biblioteca - tanto componentes internos como externos - sea lo más clara y simple posible, facilitando la personalización, depuración y comprensión exacta de lo que está pasando tras bambalinas en cada paso; la mayor parte del comportamiento del entrenador está contenido en una sola clase. En el espíritu de Python, nada está oculto y todo es accesible.

pytorch-accelerated está orgullosamente y transparentemente construido sobre Hugging Face Accelerate, que es responsable del movimiento de datos entre dispositivos y el lanzamiento de configuraciones de entrenamiento. Al personalizar el entrenador o iniciar el entrenamiento, se anima a los usuarios a consultar la documentación de Accelerate para entender todas las opciones disponibles; Accelerate provee funciones convenientes para operaciones como la recolección de tensores y el recorte de gradientes, cuyo uso puede verse en la carpeta de ejemplos de pytorch-accelerated!

Para aprender más sobre las motivaciones detrás de esta biblioteca, junto con una guía detallada para comenzar, revisa este artículo de blog.

Instalación

pytorch-accelerated puede instalarse desde pip usando el siguiente comando:

pip install pytorch-accelerated
Para hacer el paquete lo más ligero posible, los paquetes necesarios para ejecutar los ejemplos no se incluyen por defecto. Para incluir estos paquetes, puede usar el siguiente comando:

pip install pytorch-accelerated[examples]

Inicio rápido

Para comenzar, simplemente importe y utilice el Trainer acelerado por pytorch, como se demuestra en el siguiente fragmento, y luego inicie el entrenamiento utilizando el CLI de accelerate descrito a continuación.

# examples/core/train_mnist.py
import os

from torch import nn, optim from torch.utils.data import random_split from torchvision import transforms from torchvision.datasets import MNIST

from pytorch_accelerated import Trainer

class MNISTModel(nn.Module): def __init__(self): super().__init__() self.main = nn.Sequential( nn.Linear(in_features=784, out_features=128), nn.ReLU(), nn.Linear(in_features=128, out_features=64), nn.ReLU(), nn.Linear(in_features=64, out_features=10), )

def forward(self, input): return self.main(input.view(input.shape[0], -1))

def main(): dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor()) train_dataset, validation_dataset, test_dataset = random_split(dataset, [50000, 5000, 5000]) model = MNISTModel() optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9) loss_func = nn.CrossEntropyLoss()

trainer = Trainer( model, loss_func=loss_func, optimizer=optimizer, )

trainer.train( train_dataset=train_dataset, eval_dataset=validation_dataset, num_epochs=8, per_device_batch_size=32, )

trainer.evaluate( dataset=test_dataset, per_device_batch_size=64, ) if __name__ == "__main__": main()

Para iniciar el entrenamiento usando la CLI de accelerate , en tu(s) máquina(s), ejecuta:

accelerate config --config_file accelerate_config.yaml

y responde las preguntas que se te hagan. Esto generará un archivo de configuración que se utilizará para establecer correctamente las opciones predeterminadas al hacer

accelerate launch --config_file accelerate_config.yaml train.py [--training-args]

Nota: Usar la CLI de accelerate es completamente opcional, el entrenamiento también puede iniciarse de la manera habitual usando:

python train.py / python -m torch.distributed ...

dependiendo de la configuración de tu infraestructura, para usuarios que prefieran mantener un control más detallado sobre el comando de lanzamiento.

Ejemplos de entrenamientos más complejos pueden verse en la carpeta de ejemplos aquí.

Alternativamente, si prefieres entender primero los conceptos básicos, esto puede encontrarse en la documentación.

Uso

¿A quién está dirigido pytorch-accelerated?

para centrarse en las partes interesantes del ciclo de entrenamiento.

¿Cuándo no debería usar pytorch-accelerated?

que te ayude a seleccionar un modelo, optimizador o función de pérdida, probablemente te convenga más fastai. pytorch-accelerated se enfoca únicamente en el proceso de entrenamiento, dejando todas las demás responsabilidades al usuario. probablemente te convenga usar directamente Accelerate. Aunque es posible personalizar cada parte del Trainer, el ciclo de entrenamiento se divide fundamentalmente en una serie de

diferentes métodos que tendrías que sobrescribir. Pero, antes de que te vayas, ¿realmente es tan importante escribir esos bucles for como para justificar empezar desde cero otra vez 😉.

y quieres exprimir hasta el último bit de rendimiento en tu hardware elegido, probablemente sea mejor que te quedes con PyTorch puro; cualquier API de alto nivel se convierte en una sobrecarga en casos altamente especializados!

Agradecimientos

Muchos aspectos detrás del diseño y las características de pytorch-accelerated fueron grandemente inspirados por una serie de excelentes bibliotecas y frameworks como fastai, timm, PyTorch-lightning y Hugging Face Accelerate. Cada una de estas herramientas ha tenido un impacto enorme tanto en esta biblioteca como en la comunidad de aprendizaje automático, ¡y su influencia no puede ser subestimada!

pytorch-accelerated solo ha tomado inspiración de estas herramientas, y toda la funcionalidad contenida ha sido implementada desde cero de una manera que beneficia a esta biblioteca. Las únicas excepciones a esto son algunos de los scripts en la carpeta examples en los que se tomaron y modificaron recursos existentes para mostrar las características de pytorch-accelerated; estos casos están claramente marcados, dando reconocimiento a los autores originales.

--- Tranlated By Open Ai Tx | Last indexed: 2026-02-23 ---