logo

딥러닝 프레임워크

머신러닝을 위한 기본 라이브러리

머신러닝에서는 목적에 따라 여러 라이브러리를 함께 사용.

  • 넘파이(NumPy): 다차원 배열과 벡터화된 수치 연산 제공. 데이터 전처리와 결과 검증에도 널리 사용
    • 딥러닝에 필요한 GPU 텐서, 자동 미분, 신경망 훈련 루프는 직접 제공하지 않음
  • 판다스(pandas): 표 형태 데이터의 불러오기, 저장, 정렬, 결측값 처리, 필터링 제공
  • 사이킷런(scikit-learn): 전처리, 전통적 머신러닝 모델, 모델 선택, 평가 도구 제공

CPU와 GPU

중앙처리장치(CPU)는 소수의 강력한 코어로 운영체제 실행, 조건 분기, 순차 작업 등 다양한 계산을 처리. CPU도 멀티코어와 벡터 명령을 이용해 병렬 계산 가능.

그래픽 처리 장치(GPU)는 많은 연산 장치로 같은 종류의 계산을 대량으로 수행하는 데 유리. 딥러닝의 행렬곱과 합성곱은 이러한 병렬 처리에 잘 맞음.

  • CPU: 복잡한 제어 흐름과 작은 작업에 유리
  • GPU: 충분히 큰 텐서의 반복적인 수치 계산에 유리
  • 데이터 전송과 연산 준비에도 시간이 들므로 작은 작업에서는 GPU가 항상 빠른 것은 아님

기억 장치

컴퓨터의 기억 장치(memory)는 속도, 용량, 위치가 서로 다름.

  • 레지스터(register): 프로세서 내부의 매우 작고 빠른 저장 공간
  • 캐시 메모리(cache memory): 프로세서가 자주 쓰는 데이터를 보관하는 고속 저장 공간
  • 주기억 장치(RAM): 실행 중인 프로그램과 데이터를 보관하는 메모리
  • 스토리지(storage): 전원이 꺼져도 데이터를 유지하는 HDD 또는 SSD
  • 비디오 메모리(VRAM): GPU가 계산에 사용하는 메모리

Apple Silicon은 CPU와 GPU가 통합 메모리를 공유.

모델 가중치에 필요한 최소 메모리는 다음과 같이 추정.

가중치 메모리=파라미터 ×파라미터당 바이트 

예를 들어 파라미터가 700억 개인 모델의 가중치만 저장해도 BF16 또는 FP16에서는 약 140 GB, INT8에서는 약 70 GB, 4비트 양자화에서는 이론상 약 35 GB 필요. 실제 추론에는 임시 텐서와 캐시가 더 필요하며, 훈련에는 그래디언트, 옵티마이저 상태, 활성화값이 추가되어 더 많은 메모리 필요.

NVIDIA H100 GPU의 94GB 메모리 상품 정보

딥러닝 프레임워크

딥러닝 프레임워크는 텐서 연산, GPU 같은 가속기 사용, 자동 미분, 신경망 계층, 최적화 도구를 하나의 학습 흐름으로 제공.

  • 텐서플로(TensorFlow): 구글이 개발. 모델 학습부터 다양한 실행 환경으로 내보내는 도구까지 제공
  • 파이토치(PyTorch): 메타가 시작한 오픈 소스 프로젝트. 파이썬과 자연스럽게 연결되는 텐서 연산, 자동 미분, 신경망 API 제공
  • JAX: 구글이 개발. NumPy와 비슷한 연산에 자동 미분, 컴파일, 벡터화 같은 함수 변환 결합
  • 케라스(Keras): 모델 정의와 훈련을 간결하게 작성하는 고수준 API. Keras 3는 TensorFlow, PyTorch, JAX를 백엔드로 지원

딥러닝 프레임워크 GitHub stars 추이

많은 공개 연구 코드와 사전학습 모델 도구가 PyTorch 구현을 제공하므로 최신 모델을 재현할 때 PyTorch가 유리한 경우가 많음.

퀴즈

문제 1 / 3맞음: 0힌트: 0틀림: 0채점중: 0남음: 3

딥러닝 프레임워크가 하나의 학습 흐름에 제공하는 기능 조합으로 가장 알맞은 것은?

  • GPU 텐서 연산, 자동 미분, 신경망 계층, 최적화 도구
  • 표 형태 데이터의 정렬, 결측값 처리, 필터링
  • 전통적 머신러닝 모델의 선택과 평가 도구
  • 다차원 배열과 벡터화된 수치 연산만 제공

퀴즈를 풀려면 대화형 기능을 불러와야 합니다.

Previous
뉴런과 퍼셉트론