나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2026-01-10 01:26:24

PyTorch


머신러닝 라이브러리
Accord.NET · Flax · JAX · Keras · MaxText · ML.NET · MLX · NumPy · PyTorch · TensorFlow · XLA
<colcolor=#000000,#ffffff> PyTorch
파이토치
파일:PyTorch_logo_black.svg파일:PyTorch_logo_white.svg
버전 2.9.1[1]
2025년 11월 13일 업데이트 #
공개일 2016년 9월 1일
파일:홈페이지 아이콘.svg | 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg
<colcolor=#000000,#ffffff>
1. 개요2. 상세
2.1. torch2.2. torchaudio2.3. torchvision2.4. torchtext2.5. torchdata2.6. torchtune2.7. torchscale2.8. torchrl2.9. torchft2.10. torchao2.11. tensordict2.12. torchtitan2.13. torch-xla2.14. torch-directml2.15. transformer-engine
3. 관련 문서
3.1. 사용자 모임3.2. 설치 방법3.3. 튜토리얼3.4. 학습 자료

1. 개요

토치 (Torch) 및 카페 2 (Caffe 2)를 기반으로 한 메타 플랫폼즈기계 학습 라이브러리이다.[2]

2. 상세

2015년에 설립된 FAIR(페이스북 인공지능 연구소)에 의해 주로 개발되어 왔다. 2016년 9월에 처음으로 공개되었다. 페이스북에서는 PyTorch와 Caffe2를 둘다 사용하고 있었는데, 두 가지 프레임워크를 사용하다보니 호환성 문제가 발생해서 결국 2017년 9월에 마이크로소프트와 협업하여 2018년 3월에 Caffe2를 PyTorch에 합쳐버렸다.

TensorFlow와 마찬가지로, NumPy의 배열을 Tensor로 가져올 수 있고, 이를 쉽게 GPU 메모리에 올려 연산도 할 수 있다. TensorFlow가 v2.0 출시 이후 친 keras 행보를 보이며 자유로운 네트워크 수정의 난이도가 점점 높아지고, 호환성이 매우 떨어지게 되자 연구원들 사이에서는 PyTorch의 사용 비중이 높아졌으며, 이제 인공지능 학계에서 널리 사랑받는 라이브러리로 자리매김했다.

테슬라Dojo 슈퍼컴퓨터 구축에 메인 프로그램으로 사용되었다.

파이토치의 각 버전마다 여러 CUDA버전을 지원하며, 지원하는 버전은 설치 가이드를 보면 알 수 있다.

알파고를 개발한 구글 딥마인드도 토치를 바탕으로 연구, 개발을 했었지만, 2016년 4월 토치가 아닌 TensorFlow로 개발 프레임워크로의 전환을 발표했다. 그러나 2020년대부터 구글은 텐서플로우를 버리고 JAX로 옮겨갔다.

PyTorch는 JAX의 장점을 흡수해서 2.0.0 버전부터 함수형 인터페이스인 torch.func를 도입했다.

2.1. torch

#!syntax python
import torch
from torch import nn
from torch import amp
from torch import func
from torch import onnx
from torch import optim
from torch import export
from torch.distributed import fsdp
import torch.nn.functional as F
import torch.distributed as dist
import torch.multiprocessing as mp
import torch.nn.parallel.DistributedDataParallel as DDP

PyTorch의 필수 라이브러리다. 신경망 래퍼, 레이어, 백엔드, 손실 함수, 옵티마이저, 스케줄러, 모델 컴파일, 데이터 엔지니어링 등과 관련된 기본적인 모듈이 있다.

2.2. torchaudio

PyTorch에서 제공하는 음성 관련 데이터 프로세싱 및 머신 러닝 라이브러리다.

2.3. torchvision

PyTorch에서 제공하는 이미지영상등 시각적인 요소 관련 데이터의 프로세싱 및 머신 러닝을 처리하는 라이브러리다.

2.4. torchtext

PyTorch에서 제공하는 텍스트OCR (Optical Character Recognition) 특화 데이터 프로새싱 및 머신 러닝 라이브러리다. 현재는 deprecated 상태다.

2.5. torchdata

#!syntax python
import torchdata.nodes
from torchdata.nodes import Loader
from torchdata.nodes import BaseNode
from torchdata.nodes import PinMemory
from torchdata.nodes import Prefetcher
from torchdata.nodes import MapStyleWrapper
from torchdata.nodes import IterableWrapper
from torchdata.nodes import SamplerWrapper
from torchdata.nodes import ParallelMapper
from torchdata.nodes import MultiNodeWeightedSampler
from torchdata.stateful_dataloader import StatefulDataLoader

PyTorch의 데이터 파이프라인을 노드 기반으로 구성하여 고성능을 추구할 수 있도록하는 특화 라이브러리다. 특히, ParallelMapper는 프리스레딩 (No-GIL) 빌드에 대응하도록 개발되었고 GIL 빌드여도 GIL을 회피하는 쪽으로 구현되어 상당한 성능 향상이 있다.

2.6. torchtune

PyTorch에서 제공하는 파인 튜닝 (Fine Tuning) 관련 라이브러리다.

2.7. torchscale

Microsoft가 제공하는 신경망 관련 라이브러리다. RetNet, MSR (Multi-Scale Retention) 커널을 중심으로 리텐션 (Retention) 위주의 레이어, 연산 커널이 수록되어 있다.

2.8. torchrl

PyTorch에서 제공하는 강화 학습 (Reinforcement Learning) 관련 라이브러리다.

2.9. torchft

PyTorch에서 제공하는 무중단 (Fault Tolerence) 모델 훈련 및 추론 라이브러리

2.10. torchao

PyTorch에서 제공하는 아키텍처 최적화 (Architecture Optimization) 관련 라이브러리다. 주로 저비트 AMP (Automatic Mixed Precision), 저비트 옵티마이저, 저비트 레이어, 양자화 관련 모듈이 있다.

2.11. tensordict

#!syntax python
import tensordict
import tensordict.MemoryMappedTensor as MMT
from tensordict import TensorDict
from tensordict import TensorDictBase
from tensordict import TensorDictParams
from tensordict import PersistentTensorDict
from tensordict import LazilyStackedTensorDict
from tensordict.nn import CudaGraphModule
from tensordict.nn import TensorDictModule
from tensordict.nn import TensorDictSequential

PyTorch에서 제공하는 배치 단위 텐서를 추상화하여 다룰 수 있게 하는 라이브러리.

2.12. torchtitan

PyTorch 내에서 자체 구현 기능들을 이용해서 대규모 LLM 훈련에 필요한 인터페이스를 모은 라이브러리

2.13. torch-xla

#!syntax python
import torch_xla as xla
from torch_xla.core import xla_model
from torch_xla.distributed import xla_backend

PyTorch 개발진과 구글이 협력해서 PyTorch 내에서 구글 XLA 컴파일러를 연동시키기 위해 개발한 라이브러리. 그러나 현재 상황을 따진다면 구글 클라우드 TPU에는 최적화가 되었지만, CUDA, CPU 백엔드와의 상성이 상당히 좋지 못하다.

2.14. torch-directml

#!syntax python
import torch_directml as directml

Microsoft가 PyTorch 내에서 DirectML을 연동시키기 위해 개발한 라이브러리

2.15. transformer-engine

#!syntax python
import transformer_engine.pytorch as te

NVIDIA에서 제공하는 CUDA 백엔드 전용 PyTorch 및 JAX 라이브러리로 NVIDIA GPU에 최적화된 저비트 옵티마이저, 저비트 레이어, 저비트 AMP 관련 모듈이 있다.

#!syntax sh
python3 -m pip install transformer-engine-cu12 transformer-engine-torch

트랜스포머 엔진은 Building Wheel 단계에서 시간이 오래 걸린다.

#!syntax sh
python3 -m pip install transformer-engine-cu13 transformer-engine-torch

CUDA 13.x 버전을 쓴다면 위와 같이 설치해야 한다.

3. 관련 문서

Zero to Mastery Learn PyTorch for Deep Learning(위 영상의 텍스트 버전)
위 영상에 내용이 추가된 유데미 유료 강의

3.1. 사용자 모임

3.2. 설치 방법

3.3. 튜토리얼

3.4. 학습 자료


[1] CUDA 12 및 Python 3.14을 지원한다.[2] 경쟁작으로 구글TensorFlow, JAX가 있지만 PyTorch만이 AI 개발에서 가장 널리 쓰이는 머신러닝 라이브러리로 자리잡았다. 신규 프로젝트 대부분은 압도적으로 PyTorch를 쓴다. TensorFlow로 제작된 레거시 모델들도 PyTorch나 JAX로 마이그레이션되고 있다.