카테고리 없음

2편. PyTorch 한 번에 이해하기

ideas9710 2025. 12. 12. 03:09
반응형

 

 

딥러닝을 공부하다 보면 “왜 다들 PyTorch를 쓰지?”라는 질문이 자연스럽게 생긴다.
나도 처음에는 문법이 익숙하지 않아서 어렵게 느껴졌지만, 한 번 감을 잡고 나니까 생각보다 단순한 구조라는 걸 알게 됐다.
PyTorch는 딥러닝을 실험하거나 모델 구조를 직접 만들어 보고 싶은 사람에게 적합한 도구다.

이번 편에서는 PyTorch를 딱 한 번에 이해할 수 있을 정도의 핵심만 잡아본다.

1. PyTorch는 파이썬 기반 딥러닝 프레임워크다

가장 먼저 알아야 할 사실은 단순하다.
PyTorch는 파이썬스럽다.
프레임워크를 처음 써도 코드가 자연스럽게 읽히고, 디버깅도 파이썬 로직을 따라가듯 하면 된다.

예를 들어 이런 기본 코드가 있다.

import torch

x = torch.tensor([1, 2, 3])

여기서 x는 텐서라는 자료형인데, 사실상 “수학 행렬을 GPU에서 빠르게 계산할 수 있는 버전의 리스트” 정도로 이해하면 된다.

2. 텐서라는 개념이 핵심이다

딥러닝 모델의 모든 입력과 출력은 결국 텐서로 표현된다.
이미지는 3차원 텐서, 문장은 숫자 토큰의 1차원 텐서, 배치(batch)는 4차원 텐서처럼 확장된다.

PyTorch에서는 모든 연산을 텐서 단위로 처리하는데, 이 텐서가 GPU 메모리로 옮겨지는 순간 계산 속도가 급격하게 빨라진다.

x = x.to("cuda")

이 한 줄로 GPU로 이동할 수 있다.
이 간단함이 PyTorch의 강점이다.

3. PyTorch가 특별한 이유: 동적 계산 그래프

딥러닝 모델은 “계산 그래프”라는 구조로 표현된다.
입력 → 레이어 → 레이어 → 출력 같은 흐름이 모두 그래프로 만들어지고, 역전파를 위해 이 그래프를 따라 미분이 계산된다.

TensorFlow는 초창기에 “정적 그래프”였다.
그래프를 먼저 선언하고 나서 실행하는 방식이다.

반면 PyTorch는 처음부터 “동적 그래프”를 쓴다.
코드를 실행하면서 그래프도 실시간으로 만들어지는 방식이다.

이 차이 하나 때문에 다음과 같은 특징이 생긴다.

  • 조건문(if), 반복문(for) 안에서 자유롭게 모델 구조를 조작 가능
  • 디버깅하기 쉬움
  • 연구자가 새로운 구조를 만들 때 부담이 적음

이 점 때문에 PyTorch는 연구자들 사이에서 빠른 속도로 퍼졌다.

4. “코드가 직관적이다”는 말의 의미

신경망을 직접 만들 때도 파이썬 클래스 구조 그대로 짤 수 있다.

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

    def forward(self, x):
        return self.layer(x)

이 정도면 파이썬 객체지향 코드와 크게 다를 것 없다.
딥러닝을 처음 배우는 입장에서도 부담이 훨씬 적다.

5. PyTorch는 실험하기 좋은 구조다

연구나 새로운 모델 실험을 하다 보면 모델 구조를 바꿔야 할 때가 많다.
레이어를 하나 더 붙이거나, 다른 방식의 attention을 시험해보는 식이다.

PyTorch에서는 이런 구조 변경이 자유롭다.
코드를 수정하면 그게 그대로 모델 구조가 된다.

그래서 GPT, LLaMA 같은 최신 언어 모델의 대부분이 PyTorch 기반이다.
딥러닝 연구가 빠르게 변화하는 이 시대에 “손으로 바로 만질 수 있는” 도구가 필요했기 때문이다.

6. 앞으로 이 시리즈에서 PyTorch를 이렇게 사용할 것이다

PyTorch는 기초부터 천천히 다루면 복잡하지 않다.
이 시리즈에서는 다음 흐름으로 자연스럽게 연결해볼 예정이다.

  • 텐서 기초
  • 기본 연산
  • 신경망 만들기
  • 간단한 모델 학습시키기
  • 작은 Transformer 구성
  • LLM이 PyTorch 위에서 만들어지는 과정 이해

너무 어렵게 파고들지 않되, 흐름은 놓치지 않도록 구성할 거다.


 

반응형