PyTorch

From HPCWIKI
Revision as of 13:11, 17 July 2026 by Clara (talk | contribs) (Phase 0.2: Create PyTorch)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

PyTorch

Template:Status

Template:TOC

Overview

PyTorch는 Meta(구 Facebook)에서 개발한 오픈소스 머신러닝 프레임워크. 텐서 연산과 자동 미분(Autograd)을 기반으로 한 딥러닝 연구와 프로덕션 배포 모두에 널리 사용됨.

Summary

  • * 무엇인가? Python 기반 딥러닝 프레임워크. 텐서 연산 + 자동 미분 + 동적 그래프
  • * 왜 필요한가? TensorFlow와 함께 AI/ML 분야 2대 프레임워크. 연구부터 배포까지 원스톱
  • * 언제 사용하는가? 이미지 분류, NLP, 생성 AI, 강화학습 등 모든 딥러닝 작업

---

Purpose

이 문서가 존재하는 이유

  • Goal: PyTorch의 개념, 사용법, 설정 가이드 제공
  • Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
  • Non-goals: 고급 커스터마이징, 내부 소스 코드 분석

---

Key Concepts

Template:KeyConcepts

---

Architecture

PyTorch는 동적 계산 그래프(Dynamic Computational Graph) 기반. 연산이 실행될 때마다 그래프가 생성되어 디버깅이 용이함. CUDA/TensorRT 등 다양한 백엔드 지원.

---

Workflow

1. 1. Tensor 생성 (CPU 또는 GPU)

2. 2. nn.Module 기반 모델 정의

3. 3. 손실 함수(Loss Function) + 옵티마이저 설정

4. 4. 학습 루프: 순전파 → 손실 계산 → 역전파 → 옵티마이저 업데이트

5. 5. 모델 저장(torch.save) + 로드(torch.load)

6. 6. 추론 모드(torch.inference_mode)에서 배포

---

Configuration

import torch
import torch.nn as nn

# Tensor 생성 (GPU 사용 시.cuda())
x = torch.randn(100, 64)
y = torch.randn(100, 32)

# 모델 정의
class SimpleModel(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc = nn.Linear(64, 32)
        self.relu = nn.ReLU()
        
    def forward(self, x):
        return self.relu(self.fc(x))

model = SimpleModel()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
loss_fn = nn.MSELoss()

# 학습 루프
for epoch in range(10):
    optimizer.zero_grad()
    pred = model(x)
    loss = loss_fn(pred, y)
    loss.backward()  # 자동 미분
    optimizer.step()  # 가중치 업데이트
    print(f'Epoch {epoch}: loss={loss.item():.4f}')

# 모델 저장
torch.save(model.state_dict(), 'model.pt')

---

Best Practices

  • GPU 사용 시 .cuda() 또는 .to(device) 명시적 사용
  • 학습 중 torch.no_grad()로 메모리 절약
  • nn.DataParallel 또는 torch.nn.parallel.DistributedDataParallel로 멀티 GPU
  • torch.compile()으로 PyTorch 2.0+ 성능 최적화
  • ONNX export로 타 프레임워크 호환성 확보

---

Limitations

  • TensorFlow 대비 프로덕션 배포 생태계 아직 성장 중
  • 정적 그래프 기반 프레임워크 대비 추론 최적화 도구 부족
  • 대규모 분산 학습 설정 복잡

---

References

---

Related Pages