본문 바로가기

AI

[AI]NumPy와 PyTorch의 차이 - AI 개발자는 왜 둘 다 배울까?

AI를 처음 공부하면 가장 많이 하는 질문이 있다.

"NumPy와 PyTorch는 같은 것 아닌가요?"

결론부터 말하면 비슷하지만 목적이 완전히 다르다.


NumPy란?

NumPy는 수치 계산(Numerical Computing)을 위한 라이브러리이다.

벡터와 행렬 연산을 매우 빠르게 수행할 수 있도록 만들어졌다.

예를 들어

import numpy as np

a = np.array([1,2,3])
b = np.array([4,5,6])

print(a + b)

결과

[5 7 9]

NumPy는 이처럼 배열과 행렬 계산에 최적화되어 있다.


PyTorch란?

PyTorch는 딥러닝(Deep Learning)을 위한 프레임워크이다.

NumPy처럼 배열을 다루지만, 여기에 AI 학습을 위한 기능이 추가되어 있다.

예를 들어

import torch

a = torch.tensor([1,2,3])
b = torch.tensor([4,5,6])

print(a + b)

결과

tensor([5, 7, 9])

사용법은 NumPy와 매우 비슷하다.


가장 큰 차이

NumPy는 계산만 할 수 있다.

a + b

는 가능하지만

AI를 학습시키는 기능은 없다.

반면 PyTorch는

  • 신경망(Neural Network)
  • GPU 연산
  • 자동 미분(Autograd)
  • 모델 학습(Training)

기능을 제공한다.

예를 들어

loss.backward()

라는 코드 하나로 오차를 역전파하여 가중치를 학습할 수 있다.

이 기능은 NumPy에는 없다.


왜 NumPy를 먼저 배울까?

PyTorch의 Tensor는 NumPy Array와 사용법이 거의 같다.

NumPy

a = np.array([[1,2],[3,4]])

print(a.shape)

PyTorch

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

print(x.shape)

두 코드 모두 동일한 방식으로 Shape를 확인한다.

따라서 NumPy를 이해하면 PyTorch를 훨씬 쉽게 배울 수 있다.


LLM에서는?

대부분의 오픈소스 LLM은 PyTorch 기반으로 만들어져 있다.

예를 들어 Hugging Face의 모델도 내부적으로는 모두 Tensor를 사용한다.

즉, 우리가 공부하는 흐름은 다음과 같다.

Python
↓
NumPy
↓
PyTorch
↓
Transformer
↓
LLM
↓
RAG
↓
FastAPI
↓
AI 서비스

NumPy는 AI의 수학을 이해하기 위한 첫 단계이고, PyTorch는 그 수학을 실제 AI 모델로 구현하는 도구라고 생각하면 된다.


핵심 정리

  • NumPy는 빠른 수치 계산 라이브러리이다.
  • PyTorch는 딥러닝 프레임워크이다.
  • PyTorch는 NumPy와 비슷한 Tensor를 사용한다.
  • PyTorch는 GPU 연산과 모델 학습을 지원한다.
  • 대부분의 LLM은 PyTorch 기반으로 구현되어 있다.