PyTorch
Python으로 딥러닝 모델을 연구·학습·배포하는 오픈소스 머신러닝 프레임워크
소개
Python으로 모델을 정의해 GPU에서 학습하고, TorchScript로 내보내 프로덕션에 배포할 수 있습니다. 연구자와 ML 엔지니어는 동적 그래프로 빠르게 프로토타입하고, torch.distributed로 분산 학습을 진행한 뒤 TorchServe로 REST 엔드포인트를 제공하는 흐름을 하나의 프레임워크에서 유지합니다.
에디터 한마디
PyTorch는 모델 코드와 학습 루프를 직접 제어하면서 다중 GPU 확장이 필요한 연구자와 ML 엔지니어에게 적합합니다; 노트북에서 프로덕션으로 이어지는 워크플로우를 유지하려는 경우 사용해 볼 가치가 있습니다.
주요 기능
- 학습한 모델을 TorchScript로 내보내 → 그래프 최적화된 동일 모델을 프로덕션에서 실행
- 모델을 TorchServe 패키지로 배포 → 모델 코드를 다시 쓰지 않고도 확장 가능한 REST 엔드포인트 확보
- torch.distributed로 다중 GPU/노드에서 학습 시작 → 기존 학습 루프 유지한 채 스케일 아웃
- 설치 시 CUDA 11.8/12.6/12.8, ROCm 6.3, CPU 중 선택 → 하드웨어에 맞춘 최적화된 커널 사용
- 데스크탑에서 프로토타입 후 iOS/Android(실험적) 타깃 빌드 → 조기 온디바이스 추론 검증
이런 상황에 추천
- ML 연구자가 새 attention 변형을 실험하면서 8 GPU로 torch.distributed로 학습을 반복할 때
- 머신러닝 엔지니어가 TorchServe로 이미지 분류기를 REST API 뒤에서 서빙해야 할 때
- 모바일 엔지니어가 TorchScript 모델로 Android에서 온디바이스 추론을 초기 프로토타입할 때
이렇게 써보세요
- 1 파이썬으로 빠르게 모델 프로토타입 작성
nn.Module을 상속해 모델을 정의하고 간단한 학습 루프를 작성하세요 → CPU 또는 단일 GPU에서 몇 에포크를 돌리며 텐서와 그래디언트를 확인해 구조와 손실을 빠르게 수정하세요 → 검증 성능이 개선될 때까지 반복합니다.
- 2 8 GPU로 분산 학습 확장
torch.distributed(torchrun 또는 launch)를 사용해 스크립트를 실행하고 NCCL 등 적절한 백엔드를 선택하세요 → DistributedDataSampler와 프로세스별 장치 설정을 추가해 기존 학습 루프를 유지하세요 → 랭크별 로그를 확인해 단일 GPU 결과와 일치하는지 검증합니다.
- 3 TorchScript로 프로덕션 모델 내보내기
학습 완료 모델을 torch.jit.trace 또는 torch.jit.script로 TorchScript로 변환하세요 → 예제 입력으로 결과를 검증하고 그래프 최적화를 적용하세요 → 저장된 아티팩트를 배포나 모바일 번들에 포함합니다.
- 4 REST 엔드포인트로 모델 서빙
TorchServe용 MAR 패키지를 만들고 핸들러와 설정을 포함시키세요 → TorchServe를 시작하고 모델을 등록해 확장 가능한 REST API를 노출합니다 → 샘플 요청으로 지연/처리량을 측정하고 워커 수나 배칭 설정을 조정합니다.
- 5 온디바이스 추론(안드로이드/아이폰) 검증
모델을 TorchScript로 내보내 모바일 호환 번들로 변환하세요 → PyTorch 모바일 런타임을 앱에 통합하고 모델을 포함시킵니다 → 디바이스에서 추론하여 지연 시간과 결과를 확인하되, 도구가 실험적임을 염두에 두세요.
장단점
장점
- 파이썬스러운 API와 동적 계산 그래프는 모델 프로토타이핑과 디버깅을 직관적으로 해줍니다.
- 내장된 TorchScript로 학습된 동일 모델을 그래프 최적화와 함께 프로덕션으로 내보낼 수 있습니다.
- torch.distributed와 CUDA/ROCm 선택 기능으로 다중 GPU·다중 노드 학습까지 확장이 가능합니다.
단점
- iOS/Android 온디바이스 추론은 실험적 기능으로 도구와 안정성이 제한적일 수 있습니다.
- 프로덕션 서빙은 TorchServe 같은 추가 구성 요소와 배포 엔지니어링이 필요합니다.
시작하는 법
- 1 pytorch.org/get-started에서 OS·패키지·컴퓨트(CUDA/ROCm/CPU) 선택해 설치 명령 복사
- 2 Python에서 설치와 GPU 상태 확인: import torch; print(torch.__version__, torch.cuda.is_available()) 실행
- 3 작은 nn.Module 정의 후 torch.jit.trace 또는 torch.jit.script로 스크립트화해 저장 — TorchScript 아티팩트가 생성됨
비슷한 도구
FAQ
어떤 플랫폼에서 사용할 수 있나요?
Web, iOS, Android, Desktop, API에서 사용 가능합니다.
한국어를 지원하나요?
현재 한국어는 지원하지 않습니다.