Skip to main content

딥러닝 프레임워크

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

  • 넘파이(numpy)
    • 고성능 수치 연산을 위한 라이브러리
    • 머신러닝, 데이터 분석의 기반
    • 싱글 코어에 최적화, 병렬 처리는 안됨
    • 딥러닝에는 직접 사용되지 않으나, 사용법이 호환됨
  • 판다스(pandas)
    • 표 형태의 데이터에 대한 불러오기, 저장, 정렬, 필터링 등의 기능을 제공
  • 사이킷런(scikit-learn)
    • 머신러닝 라이브러리
    • 딥러닝을 제외한 머신러닝 전 과정의 기능을 제공
    • 대부분의 머신러닝 라이브러리들이 사이킷런과 호환

GPU

  • 컴퓨터에서 일반적인 계산은 중앙처리장치 CPU라고 하는 칩에서
    • CPU는 병렬 처리에 최적화되어 있지 않으며 처리 능력이 제한
    • CPU의 사양을 보면 "코어" → 쉽게 생각하면 코어 하나가 한 번에 한 가지 계산
  • 딥러닝에서는 여기에 더해 GPU라는 칩을 사용
  • GPU(그래픽 처리 장치): 원래는 게임 등에서 컴퓨터 그래픽을 처리하는데 특화된 장치
    • GPU는 대량의 단순 계산을 병렬로 실행
    • 여러 가지 계산을 순서대로 하는 것이 아니라 따로 따로 계산한 다음에 합칠 수 있음
    • 개인용 PC에서 CPU에 있는 코어 개수는 많아야 열 몇 개 vs. 최신 GPU에는 몇 만 개의 코어
  • 그래픽도 딥러닝과 같이 단순 계산이 많음
    • 동시에 여러 가지 계산을 할 수 있는 GPU를 활용하면 높은 성능을 낼 수 있음

기억 장치 memory

  • 컴퓨터에는 다양한 기억 장치가 있음
  • 레지스터(register): CPU 내부의 기억장치. 용량은 작으나 매우 빠름
  • 캐시 메모리(cache memory): CPU와 RAM 사이에 있음
  • RAM: 컴퓨터가 켜져 있는 동안만 내용이 유지되는 주 기억장치
  • 스토리지: HDD 또는 SSD. 매우 크고 느리지만, 컴퓨터 꺼도 내용 유지
  • VRAM: GPU의 RAM
    • Mac의 AppleSilicon은 RAM과 VRAM이 통합
    • 딥러닝 모델 구동을 위해서는 VRAM 용량이 중요
    • 용량 계산 방법: 파라미터 수 × 자료형 크기(예: LLaMA3 70B 모델 = 약 48GB 필요)

딥러닝 프레임워크

  • GPU 지원 + 딥러닝 모델을 정의하고 학습시키는데 필요한 다양한 기능들을 제공
  • 텐서플로 TensorFlow
    • 구글이 개발
    • 가장 높은 점유율
    • 기업용 기능이 많음
  • 파이토치 PyTorch
    • 페이스북이 개발
    • 새로운 모형을 만들기 편리하여 학계에서 인기
  • 작스 jax
    • 다양한 수학 계산을 최적화하여 빠르게 실행하는데 초점
    • 딥러닝도 구현할 수 있음
  • 케라스 Keras
    • 여러 딥러닝 프레임워크를 같은 방법으로 편하게 사용할 수 있도록 하는 라이브러리
    • 텐서플로, 파이토치, 작스 모두 지원

모델 가용성 Model Availability

  • 더 크고 복잡한 최신 모델이 계속해서 발표
  • 모든 모델을 직접 구현하기는 어려움
  • 해당 프레임워크로 이미 구현된 모델을 쉽게 구할 수 있는 지가 중요
  • 최신 모델 가용성에서는 파이토치가 압도적으로 우세
    • 학술지 발표 논문 중 80%가 파이토치를 사용
    • 코드 공개 사이트 Papers With Code에서 파이토치 코드가 60%
    • 모델 공유 사이트 HuggingFace에서 파이토치만 지원하는 모형이 85%
  • 구글, 딥마인드 등의 기업 및 강화학습 등의 분야에서는 텐서플로가 우위

배포 인프라 deployment infrastructure

  • 모델을 실제 비즈니스 환경에서 효율적으로 사용할 수 있는 것이 중요
  • 모델 개발은 Python으로 하지만, 운용시에도 사용하기에는 느림
  • 텐서플로는 서버, 모바일, 웹 등 다양한 환경에서 빠르게 실행 가능
  • 파이토치도 관련 기능을 따라잡고 있으나, 텐서플로가 여전히 우위
  • 오디오, 비디오 등의 기능도 텐서플로
  • 기업 채용 공고는 텐서플로가 더 많음

GPU 클라우드

  • 딥러닝 모형의 미세 조정을 위해서는 고성능 GPU가 필요
    • 직접 딥러닝 워크스테이션을 구축
    • GPU 클라우드 사용
  • GPU 클라우드:
    • runpod.io
    • lambdalabs.com
    • vast.ai
    • fluidstack.io
    • coreweave.com
  • 구글 colab: 구글에서 제공하는 Python 서비스
    • 무료로 고성능의 서버에서 머신러닝 모형을 돌릴 수 있음

colab 접속

  • 구글에서 colab 검색, 또는 colab.research.google.com에 접속
  • 구글 아이디를 이용하여 로그인

colab pro

  • colab.research.google.com/signup 에서 Pro 또는 Pro+ 선택
  • 해외 결제 가능한 신용카드(Visa, MasterCard 등) 필요
  • 세금 별도

colab 새 노트 만들기

  • 메뉴에서 파일 -> 새 노트 선택

런타임 유형 변경

  • 메뉴: 런타임 → 런타임 유형 변경
  • T4 GPU
  • 성능: A100 GPU > L4 GPU > T4 GPU > CPU

colab에 파일 업로드

  • 왼쪽 파일 관리 메뉴 클릭
  • 파일 업로드:
  • 구글 드라이브 연동:

colab에서 코드 실행

  • 코드 입력 후 단축 키 SHIFT+ENTER를 누르면 실행

퀴즈