¿Qué es PyTorch? ¿Cómo usar PyTorch para crear un flujo de trabajo de ML completo? — Primera parte: Conceptos básicos

AWS es un amplificador de su viaje de flujo de trabajo de ML

Fuente del sitio web de PyTorch

PyTorch es una biblioteca de aprendizaje profundo que se origina en Facebook, pero ahora es de código abierto. La característica principal de PyTorch es hacer que su cálculo matricial sea más rápido en las instancias de GPU. Red neuronal profunda basada en un sistema de autograduación basado en cinta.

Citas del sitio web de PyTorch.

PyTorch 2.0 ofrece el mismo desarrollo en modo entusiasta y la misma experiencia de usuario, al tiempo que cambia y mejora fundamentalmente la forma en que PyTorch opera a nivel de compilador bajo el capó con un rendimiento más rápido y soporte para formas dinámicas y distribuidas.

  • torch.compile es la API principal de PyTorch 2.0, que envuelve su modelo y devuelve un modelo compilado. Es una característica totalmente aditiva (y opcional) y, por lo tanto, 2.0 es 100% compatible con versiones anteriores por definición.
  • Cubriremos más sobre el compilador en la Parte 3 de esta serie para responder preguntas sobre qué es un compilador y por qué lo necesitamos en el dominio del aprendizaje automático.
  • Amazon AWS optimiza la inferencia de CPU de PyTorch en instancias C7g basadas en Graviton3 de AWS. PyTorch 2.0 mejora el rendimiento de la inferencia en Graviton en comparación con las versiones anteriores, incluidas las mejoras para Resnet50 y Bert.
  • Aprenderemos más sobre el hardware de AWS para admitir mejor las bibliotecas de código abierto en la Parte 4 de esta serie. Un punto interesante a considerar es cómo AWS Trainium e Inferentia ayudan al cliente a lograr un mejor rendimiento de capacitación y menores costos de inferencia.
  • Fuente de wiki de redes neuronales

    Las redes neuronales son un concepto muy común en inteligencia artificial. Al igual que el cerebro humano, transmitimos y procesamos información mediante señales neuronales. La IA también usa neuronas para procesar y entrenar la información. El objetivo de todo el flujo de trabajo de ML es entrenar su modelo para lograr la mejor pérdida y cobertura posibles en el resultado final.

    Un PyTorch Tensor es básicamente lo mismo que una matriz numpy: no sabe nada sobre aprendizaje profundo o gráficos o gradientes computacionales, y es solo una matriz n-dimensional genérica que se usará para el cálculo numérico arbitrario.

    Tensores en la estructura de datos de almacenamiento más pequeña para almacenar la matriz n-dimensional. Todo el cálculo siguiente se basará en la transformación de tensores.

    El entrenamiento ocurre en PyTorch en dos pasos. Propagación hacia adelante y propagación hacia atrás. Puede entender como parámetros de ejecución y corrección basados ​​en el descenso de gradientes y luego volver a ejecutar hasta obtener un resultado optimizado.

    Propagación hacia adelante: En prop directa, el NN hace su mejor conjetura sobre la salida correcta. Ejecuta los datos de entrada a través de cada una de sus funciones para hacer esta conjetura.

    Propagación hacia atrás: En backprop, el NN ajusta sus parámetros proporcionalmente al error en su conjetura. Lo hace recorriendo hacia atrás desde la salida, recopilando las derivadas del error con respecto a los parámetros de las funciones (gradientes), y optimizando los parámetros usando descenso de gradiente

    torch.autograd es el motor de diferenciación automática de PyTorch que impulsa el entrenamiento de redes neuronales.

    Cubriremos AutoGrad más usando fórmulas matemáticas en la Parte 5 de este tutorial para ver cómo, bajo el capó, AutoGrad está acelerando las experiencias de capacitación de aprendizaje automático. Puedes echar un vistazo al documento.

  • torch: una biblioteca de Tensor como NumPy, con fuerte soporte de GPU
  • torch.autograd: una biblioteca de diferenciación automática basada en cinta que admite todas las operaciones de tensor diferenciables en torch
  • torch.jit: una pila de compilación (TorchScript) para crear modelos serializables y optimizables a partir del código PyTorch. Este TorchScript te está ayudando a implementar tu modelo más rápido.
  • torch.nn: una biblioteca de redes neuronales profundamente integrada con autograd diseñada para una máxima flexibilidad
  • torch.multiprocessing: multiprocesamiento de Python, pero con memoria mágica compartida de tensores de antorcha entre procesos. Útil para carga de datos y entrenamiento de Hogwild
  • torch.utils: DataLoader y otras funciones de utilidad para mayor comodidad
  • Hay un par de bibliotecas disponibles en PyTorch para que las usen los desarrolladores.

    En la parte 2, daremos un ejemplo de cómo usar estas bibliotecas para compilar PyTorch 2.0.

    En este artículo, he cubierto los conceptos básicos que utiliza el proyecto PyTorch, que incluyen: a/ ¿Qué son las redes neutrales? b/ ¿Qué son los tensores? c/ ¿Cómo ocurre el entrenamiento en PyTorch? d/¿Qué es PyTorch autograd? e/¿Cuáles son las bibliotecas más utilizadas en PyTorch?

    En los siguientes artículos de esta serie, iremos en el siguiente orden:

  • Segunda parte: repasaremos un ejemplo de cómo usar las bibliotecas más utilizadas en PyTorch para completar los flujos de trabajo de ML.
  • Tercera parte: profundizaremos en lo que es un compilador de aprendizaje automático. ¿Qué tan bueno será un compilador para acelerar su viaje de ML?
  • Cuarta parte: veremos cómo AWS Trainium e Inferentia ayudan al cliente a lograr un mejor rendimiento de capacitación y menores costos de inferencia.
  • Quinta parte: daremos un artículo matemático sobre qué es la diferenciación en el mundo de PyTorch. Cómo el componente autograd se convierte en el argumento de venta de PyTorch 2.0
  • Por favor manténgase al tanto.

    [post_relacionado id=»1421″]


    Comentarios

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *