1. PyTorch의 정의와 핵심 아키텍처 원리
파이토치 (PyTorch)는 2016년 메타(Meta, 구 페이스북)의 인공지능 연구소인 FAIR(Fundamental AI Research) 팀(소우미스 친탈라 Soumith Chintala, 애덤 패스케 Adam Paszke 등)이 중심이 되어 개발한 오픈소스 머신러닝·딥러닝 라이브러리입니다. 이전의 C/Lua 기반 딥러닝 프레임워크였던 Torch의 고성능 연산 코어를 계승하면서도, 순수한 파이썬 철학(Pythonic)과 실시간으로 연산 그래프를 구축하는 Define-by-Run(실행을 통한 정의) 패러다임을 도입하여 글로벌 딥러닝 연구계를 완전히 혁신했습니다.
과거의 프레임워크들이 연산 그래프를 머릿속으로 먼저 설계하고 세션을 열어 데이터를 주입하는 '정적 그래프(Static Graph)'의 장벽을 지녔던 반면, PyTorch는 일반적인 파이썬 코드를 작성하고 실행하는 순간 즉시 계산이 일어나고(Eager Execution) 그 과정이 자동으로 미분 그래프로 기록되기 때문입니다. 파이썬의 표준 디버거(pdb, breakpoint)를 그대로 쓰며 복잡한 동적 조건문과 순환 루프를 자유자재로 모델링할 수 있습니다.
📦 1. 다차원 텐서 (torch.Tensor)
NumPy의 ndarray와 완벽히 유사하지만, GPU(NVIDIA CUDA, AMD ROCm, Apple MPS)로 메모리를 즉시 전송하여 수백 배 병렬 가속할 수 있는 다차원 배열입니다. 부동소수점(FP32, FP16, BF16), 정수형(INT8), 그리고 최신 LLM 추론 가속을 위한 FP8 정밀도까지 폭넓게 지원합니다.
🔄 2. 동적 계산 그래프 (Define-by-Run)
사전에 그래프를 컴파일해두지 않고, 순방향 연산(Forward Pass)이 실행될 때마다 실시간으로 연산 노드(Node)와 엣지(Edge)를 동적으로 조립합니다. 따라서 가변 길이 텍스트, 트리 구조, 파이썬 조건문(`if`, `while`)에 따라 신경망 구조가 매 단계 달라지는 혁신적인 알고리즘을 직관적으로 구현할 수 있습니다.
🧮 3. 자동 미분 엔진 (torch.autograd)
파이토치 역전파(Backpropagation)의 심장부입니다. 텐서에 requires_grad=True 옵션을 부여하면 순방향 연산 과정의 함수 관계가 방향성 비순환 그래프(DAG)로 추적 기록됩니다. 최종 손실값에서 loss.backward()를 한 번만 호출하면 미분의 연쇄 법칙(Chain Rule)에 따라 모든 가중치의 그래디언트(Gradient)가 .grad 속성에 자동 누적됩니다.
⚙️ 4. 고성능 C++ 코어: libtorch
파이토치의 사용자 인터페이스는 파이썬이지만, 실제 메모리 할당, 텐서 연산 커널, CUDA 가속은 C++17 기반의 libtorch 엔진과 ATen(A Tensors library) 라이브러리로 작동합니다. 파이썬 인터프리터의 오버헤드를 건너뛰고 C++ 단에서 고성능 임베디드 및 실시간 로보틱스 시스템에 직접 탑재될 수 있습니다.