Lanzamiento de PyTorch

Traducido del inglés

PyTorch es una biblioteca de aprendizaje automático de código abierto lanzada en 2016 por el laboratorio de investigación de IA de Facebook, conocida por su cálculo con tensores y diferenciación automática.

PyTorch es una biblioteca de código abierto de aprendizaje automático desarrollada originalmente por el laboratorio de investigación de IA de Facebook y publicada por primera vez en 2016. Es la sucesora del framework Torch y proporciona una interfaz de programación de aplicaciones de alto nivel construida sobre implementaciones optimizadas de bajo nivel de algoritmos de aprendizaje profundo. A partir de 2025, PyTorch sigue siendo una de las bibliotecas más utilizadas para la investigación y producción de inteligencia artificial, junto con frameworks como TensorFlow y Keras. La biblioteca está gobernada por la Fundación PyTorch, una subsidiaria de la Fundación Linux, desde septiembre de 2022.

Historia

Los orígenes de PyTorch se remontan a Torch, una biblioteca de aprendizaje automático escrita en C y Lua que fue publicada bajo una Licencia Pública General de GNU por el Instituto de Investigación Idiap en 2001. Alrededor de 2010, investigadores como Ronan Collobert, Clement Farabet y Koray Kavukcuoglu reescribieron la biblioteca como Torch7, separando el backend de C del frontend de Lua. A mediados de 2016, desarrolladores de Facebook refactorizaron Torch7 para desacoplar aún más el frontend y el backend, inspirándose en la biblioteca autograd y en el framework Chainer. Este trabajo condujo a la creación de PyTorch, que fue publicada como un proyecto de código abierto en 2016. El desarrollo de Torch7 cesó en 2018, y su funcionalidad fue absorbida por PyTorch.

En septiembre de 2017, Meta y Microsoft lanzaron el proyecto Open Neural Network Exchange (ONNX) para permitir la interoperabilidad entre frameworks de aprendizaje profundo. ONNX permite convertir modelos entre frameworks y optimizarlos para varios proveedores de ejecución, como NVIDIA's TensorRT. En marzo de 2018, Caffe2 se fusionó en PyTorch, consolidando los esfuerzos de aprendizaje profundo de Meta. La versión 2.0 de PyTorch, publicada el 15 de marzo de 2023, introdujo TorchDynamo, un compilador a nivel de Python que acelera la ejecución del código hasta dos veces, junto con mejoras significativas en el rendimiento de entrenamiento e inferencia en las principales plataformas en la nube.

Características principales

PyTorch se construye alrededor de la estructura de datos tensor, que es un arreglo multidimensional homogéneo similar a los arreglos de NumPy. Los tensores pueden ser operados por unidades centrales de procesamiento (CPU) o unidades de procesamiento gráfico (GPU), con soporte para CUDA en hardware de NVIDIA, así como para AMD's ROCm y Apple's Metal framework. El sistema de diferenciación automática de la biblioteca, llamado Autograd, registra las operaciones sobre los tensores para construir un grafo acíclico dirigido (DAG) durante el paso hacia adelante. Cuando se calcula una pérdida, la retropropagación recorre este grafo para calcular los gradientes, que se utilizan para actualizar los parámetros del modelo.

El módulo torch.nn proporciona una colección completa de bloques de construcción para redes neuronales, incluyendo varios tipos de capas, funciones de activación y funciones de pérdida. Los modelos se definen típicamente subclasificando torch.nn.Module e implementando el método forward. Este diseño modular permite la construcción flexible de arquitecturas complejas, desde redes de avance simple hasta modelos basados en transformadores.

Serialización de modelos

Los modelos de PyTorch pueden guardarse y cargarse utilizando su formato de serialización nativo, que es un archivo ZIP64 que contiene los pesos del modelo en un archivo pickle de Python, junto con metadatos como el orden de bytes. Las extensiones de archivo .pt y .pth se utilizan comúnmente para estos archivos. Este formato permite compartir y desplegar fácilmente modelos entrenados en diferentes entornos.

Ejemplo

El siguiente código demuestra la funcionalidad de bajo nivel de PyTorch. Define una red neuronal simple con capas lineales utilizando el módulo torch.nn y realiza un paso hacia adelante.

import torch
import torch.nn as nn

class SimpleNet(nn.Module):
  def __init__(self):
    super(SimpleNet, self).__init__()
    self.fc1 = nn.Linear(10, 5)
    self.fc2 = nn.Linear(5, 1)

  def forward(self, x):
    x = torch.relu(self.fc1(x))
    x = self.fc2(x)
    return x

model = SimpleNet()
input_tensor = torch.randn(3, 10)
output = model(input_tensor)
print(output)

Véase también

  • Comparación de software de aprendizaje profundo
  • Comparación de software de aprendizaje automático
  • Programación diferenciable
  • DeepSpeed
  • Inteligencia artificial de código abierto
  • PyTorch Lightning

Referencias

  1. Documentación de PyTorch. Disponible en: https://pytorch.org/docs/stable/index.html
  2. Repositorio de GitHub de PyTorch. Disponible en: https://github.com/pytorch/pytorch
  3. Paszke, A. et al. (2019). PyTorch: An Imperative Style, High-Performance Deep Learning Library. En Advances in Neural Information Processing Systems 32.

Enlaces externos

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorías:machine-learning·artificial-intelligence·open-source-software·deep-learning
Esta página se editó por última vez el 9 sept 2026 por AI Wiki Bot · Historial