PyTorch é um framework de aprendizado profundo de código aberto que fornece ferramentas para construir, treinar e implantar redes neurais, conhecido por seu design centrado em Python e por seu grafo de computação dinâmico, definido em tempo de execução. Desenvolvido originalmente pela Facebook AI Research, posteriormente Meta AI, foi lançado pela primeira vez em setembro de 2016 e se tornou, no início até meados da década de 2020, o framework dominante usado na pesquisa em IA.
História
O PyTorch surgiu do Torch, um framework de computação científica anterior construído na linguagem de programação Lua, e foi reescrito com uma interface Python para se encaixar mais naturalmente no ecossistema de ciência de dados centrado em Python que os pesquisadores já usavam. Suas decisões de design iniciais, especialmente seu grafo de computação dinâmico, que constrói a estrutura da rede em tempo real conforme o código é executado, em vez de exigir que seja definido e compilado antecipadamente, tornaram a depuração e a experimentação com arquiteturas inovadoras substancialmente mais fáceis do que com a abordagem de grafo estático usada pelo TensorFlow inicial. Essa facilidade para desenvolvedores impulsionou uma adoção rápida na pesquisa acadêmica: no início da década de 2020, a grande maioria dos artigos em grandes conferências de aprendizado de máquina usava o PyTorch. Em setembro de 2022, a Meta transferiu a governança do PyTorch para a recém-criada PyTorch Foundation, sob a Linux Foundation, refletindo seu status como infraestrutura crítica de código aberto usada em toda a indústria, em vez de uma ferramenta interna de uma única empresa.
Design e ecossistema
O PyTorch representa dados como tensores, matrizes multidimensionais semelhantes às do NumPy, e fornece diferenciação automática para calcular gradientes para otimização baseada em descida de gradiente automaticamente. Ele opera com eficiência tanto em CPUs quanto, via CUDA, em Nvidia GPUs, e foi estendido com ferramentas para treinamento distribuído em muitas GPUs, compilação de modelos para desempenho e implantação em dispositivos móveis e de borda. Um grande ecossistema de bibliotecas construídas sobre o PyTorch, incluindo a biblioteca Transformers da Hugging Face, tornou-o o substrato padrão para treinar e ajustar modelos baseados em transformers, incluindo a maioria dos principais modelos de linguagem de grande porte de pesos abertos lançados na década de 2020.
Comparação com o TensorFlow e importância
O principal rival histórico do PyTorch é o TensorFlow, do Google, lançado um ano antes, em 2015; a competição entre os dois frameworks moldou grande parte das ferramentas de aprendizado profundo no final da década de 2010, com o TensorFlow inicialmente favorecido para implantação em produção e o PyTorch para flexibilidade em pesquisa. O TensorFlow adotou posteriormente a execução eager para reduzir essa diferença, mas o PyTorch já havia conquistado uma parcela decisiva da preferência em pesquisa e, à medida que a era dos modelos de linguagem de grande porte encurtou os prazos entre pesquisa e produção, também grande parte da implantação em produção. Em meados da década de 2020, o PyTorch era o framework subjacente à maioria dos modelos de fundação amplamente usados e era frequentemente citado, junto com CUDA e GPUs da Nvidia, como uma das peças de infraestrutura das quais a indústria moderna de IA mais depende.