익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
파이토치
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
'''PyTorch'''는 Meta(구 Facebook) AI Research(FAIR)에서 개발한 딥러닝 프레임워크로, 동적 계산 그래프(dynamic computation graph)와 파이썬 친화적 인터페이스를 기반으로 한 고성능 머신 러닝/딥러닝 라이브러리이다. 자연어 처리, 컴퓨터 비전, 대규모 모델 연구 등 다양한 분야에서 사실상 표준적으로 사용되는 프레임워크 중 하나이다. ==개요== PyTorch는 파이썬 문법과 자연스럽게 통합된 프로그래밍 모델을 제공하며, 텐서 연산, 자동 미분(autograd), GPU 가속, 모델 학습 및 배포 지원 등을 포함한다. 동적 실행 방식(eager execution)을 중심으로 설계되어 코드 흐름이 자연스럽고 디버깅이 쉬우며, 연구자·개발자에게 높은 생산성을 제공한다. ==역사== PyTorch는 2016년 Meta AI Research에서 처음 공개되었으며, 초기 Torch(Lua 기반)의 철학과 Chainer의 define-by-run 동적 그래프 아이디어를 발전시켜 현대적인 파이썬 기반 프레임워크로 재구성되었다. 주요 초기 개발자는 Adam Paszke, Soumith Chintala, Sam Gross, Gregory Chanan 등이다. PyTorch는 이후 활발한 커뮤니티 성장과 더불어 산업계·연구계에서 폭넓은 채택을 이루었으며, 2023년 PyTorch Foundation이 설립되며 독립적인 오픈소스 생태계를 형성하게 되었다. ==특징== ===동적 계산 그래프 (Define-by-Run)=== PyTorch는 실행 즉시 그래프를 구성하는 동적 그래프 방식을 사용한다. *파이썬 제어 흐름(if, for, while) 자유롭게 사용 가능 *디버깅이 쉽고 직관적 *복잡한 모델 구조 정의에 유리 ===Autograd (자동 미분 엔진)=== PyTorch의 autograd는 연산 그래프를 기록하고 역전파(backpropagation)를 자동으로 계산한다. *다양한 연산에 대한 미분 규칙 내장 *reverse-mode automatic differentiation 기반 *커스텀 autograd 함수 정의 가능 예시:<syntaxhighlight lang="python"> import torch x = torch.tensor(2.0, requires_grad=True) y = x*2 + x*3 y.backward() print(x.grad) # 5.0 </syntaxhighlight> ===고성능 텐서 연산=== PyTorch는 CPU/CUDA 백엔드(ATen)를 통해 고성능 텐서 연산을 제공하며, GPU 가속을 위한 CUDA, cuDNN, cuBLAS를 비롯해 다양한 최적화 기능을 활용한다. ===TorchScript 및 컴파일 기능=== PyTorch 1.x에서 제공된 TorchScript는 모델을 직렬화하고 최적화된 실행을 가능하게 한다. PyTorch 2.0에서는 다음과 같은 새로운 컴파일 스택이 도입되었다: *'''TorchDynamo''' – Python bytecode 분석 기반 그래프 추출 *'''AOTAutograd''' – Autograd 그래프 분리 *'''TorchInductor''' – 커널 최적화 및 코드 생성 *'''[[Triton (인공지능)|Triton]]''' – GPU 커널 자동 생성 및 고성능 fused kernel 활용 이를 통해 동적 그래프 기반 PyTorch에서도 정적 최적화 수준의 고성능을 달성한다. ===NumPy 친화성=== PyTorch는 NumPy 배열과 텐서를 손쉽게 변환하며, 메모리를 공유할 수 있다. *`torch.from_numpy()` *`tensor.numpy()` ===멀티플랫폼 지원=== *CPU, GPU(NVIDIA CUDA), AMD ROCm *모바일 — PyTorch Mobile *서버 및 클라우드 — TorchServe, ONNX 변환 가능 ==아키텍처== PyTorch의 내부 구조는 크게 다음과 같다: ===Python Frontend=== 사용자가 작성하는 파이썬 코드. 네트워크 정의, 제어 흐름, 모델 조립 등을 담당. ===ATen Tensor Library=== PyTorch의 핵심 텐서 라이브러리. *C++로 구현 *CPU/GPU 공통 API *operator dispatch 시스템을 통해 디바이스 선택 ===Autograd Engine=== 연산 그래프를 기록하고 역전파를 계산하는 C++ 기반 엔진. ===Backend Kernels=== *CUDA kernels *cuBLAS, cuDNN *Triton kernels (PyTorch 2.0 이후) ===Memory Management=== *CPU allocator *GPU caching allocator *pinned memory 지원 ==주요 기능== ===신경망 모듈 (torch.nn)=== 신경망 레이어, 손실 함수, 활성화 함수, 컨테이너 모듈 등 제공. ===최적화(optim)=== SGD, Adam, RMSProp 등 다양한 옵티마이저 제공. ===데이터 로더=== 효율적인 mini-batch 관리를 위한 Dataset/DataLoader API 제공. ===분산 학습=== *DistributedDataParallel (DDP) *RPC Framework *Fully Sharded Data Parallel (FSDP) ==채택 사례== *대형 언어 모델(LLM) 연구 *컴퓨터 비전 모델(ResNet, ViT 등) *자연어 처리(BERT, GPT 등) *강화학습 *대규모 분산 학습 ==함께 보기== *[[Triton]] *[[TensorFlow]] *[[JAX]] *[[ONNX]] *[[자동 미분]] *[[GPU]] ==참고 문헌== *Paszke, Adam, et al. ''PyTorch: An imperative style, high-performance deep learning library.'' Advances in Neural Information Processing Systems 32 (2019). [[분류:인공지능]] [[분류:파이썬]] [[분류:프로그래밍]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록