[Framework] 딥러닝/머신러닝 프레임워크 알아보기

2025. 2. 14. 08:32·Technology Notes

프레임워크(Framework)란 응용 프로그램을 개발하기 위한 여러 라이브러리나 모듈 등을 효율적으로 사용할 수 있도록 하나로 묶어 놓은 일종의 패키지를 말하는걸 알 고 있을 것이다.  오늘은 그 중에서 딥러닝/머신러닝 프레임워크들의 종류와 장단점에 대해 한번 알아보고 비교 하려고 한다.

 

요즘 딥러닝을 배우거나 실무에 적용하는 사람들이 점점 더 많아지고 있다. 나도 마찬가지로 프로젝트나 과제에 종종 사용되곤 한다. 그 중에서 중요한 요소 중 하나는 바로 Framework 다. 과거에는 직접 알고리즘을 구현하는 데 시간이 많이 걸렸지만, 현재는 다양한 편리한 프레임워크들이 많아 덕분에 훨씬 빠르고 효율적으로 모델을 개발할 수 있다.

딥러닝/머신러닝 프레임워크 (DL/ ML Framework) 란?

딥러닝 프레임워크는 딥러닝 모델을 구축, 학습, 평가하는 데 필요한 라이브러리와 툴을 모은 소프트웨어이다. 이 프레임워크는 수학적 연산을 효율적으로 처리하고, 모델 학습을 최적화하며, 다양한 실험을 반복할 수 있도록 돕는다. 대표적인 딥러닝 프레임워크에는 대표적으로 TensorFlow, PyTorch, Keras 등이 있다.

 

정유레임워크(Framework)란 응용 프로그램을 개발하기 위한 여러 라이브러리나 모듈 등을 효율적으로 사용할 수 있도록 하나로 묶어 놓은 일종의 패키지를 말하는걸 알 고 있을 것이다. 오늘은 그 중에서 Framework들의 종류와 장단점에 대해 한번 알아보고 비교 하려고 한다.

많이 사용되는 딥러닝/머신러닝 프레임워크

JetBrains과  Python Software Foundation에서 조사한 2024 Python 개발자 설문조사에서 응답자들이 사용한다고 한 머신러닝 프레임워크 그래프

 

JetBrains와 Python Software Foundation에서 진행한 2024 Python 개발자 설문조사를 보면, 딥러닝/머신러닝 프레임워크를 사용하는 응답자들의 비율이 나와 있는데 scikit-learn의 인기가 가장 높았고 그 뒤를 이어 PyTorch와 TensorFlow가 주목받고 있다는 사실을 확인할 수 있었다.

 

https://blog.jetbrains.com/ko/pycharm/2024/12/the-state-of-data-science/

 

2024년 데이터 과학 현황: 6가지 주요 데이터 과학 동향 | The PyCharm Blog

올해의 화제는 생성형 AI와 LLM이었습니다. 그렇다면 이 두 가지가 데이터 과학과 머신러닝 동향에도 영향을 주었을까요? 데이터 과학의 새로운 동향 중 따를 만한 것은 무엇일까요? 매년 JetBrains

blog.jetbrains.com

 

최근 몇 년간 생성형 AI와 대형 언어 모델(LLM)에 대한 관심이 급증하면서, 딥러닝 프레임워크들이 더욱 주목을 받았을 것 같지만, 그럼에도 불구하고 scikit-learn은 여전히 많은 연구자들에 의해 중요한 도구로 사용되고 있었다. 위 리서치에 의하면 NumFOCUS가 지원하는 scikit-learn은 여전히 머신러닝과 데이터 과학에서 가장 중요한 라이브러리로 자리 잡고 있다. 또한 SciPy와 같은 라이브러리도 과학적 계산을 지원하는 데 많이 사용되고 있다고 한다.

 

딥러닝 프레임워크 사용 이유

 

딥러닝의 발전과 함께, PyTorch와 TensorFlow는 빠르게 주요 프레임워크로 자리 잡았다. 특히 PyTorch는 Meta가 개발한 후, Linux Foundation에서 관리하며 지속적으로 발전하고 있다. PyTorch는 Python 사용자들에게 특히 사랑받는 라이브러리인데, 그 이유는 NumPy 배열과 유사한 텐서를 사용하고, 동적 연산 그래프 덕분에 더 유연하고 직관적인 방식으로 작업할 수 있기 때문이다

 

반면, TensorFlow는 정적 연산 그래프를 사용하지만, 배포나 확장성에 있어 더 나은 성능을 자랑합니다. 다양한 프로그래밍 언어를 지원하는 TensorFlow는 C++, JavaScript, Python, C# 등 여러 언어와 호환이 잘 돼, 대규모 시스템에서는 더 유리할 수 있다.

Keras와 TensorFlow의 관계

Keras는 TensorFlow의 상위 API로, 딥러닝 모델을 더 쉽게 만들 수 있도록 도와주는 도구이다. TensorFlow는 강력하지만, Keras는 이를 간단하게 사용할 수 있도록 만들어 준다. 복잡한 수학적 작업을 신경 쓰지 않아도 되고, 모델을 빠르게 구축할 수 있기 때문에 특히 초보자들이 많이 사용한다고 한다.

Hugging Face Transformers

딥러닝 분야에서 빼놓을 수 없는 프레임워크 중 하나로 Hugging Face Transformers이 있다. Hugging Face는 사전 학습된 최신 딥러닝 모델을 제공하는 허브 역할을 합니다. Transformers는 PyTorch와 TensorFlow는 물론 JAX와도 호환이 가능해, 최신 모델을 쉽게 다운로드하고 학습시킬 수 있다.

 

Hugging Face의 모델들은 자연어 처리(NLP)뿐만 아니라 생성형 AI 분야에서도 큰 역할을 하고 있다. 연구자들 뿐만 아니라 산업 현장에서 Hugging Face를 활용한 최첨단 AI 모델이 널리 사용되고 있다.

 

딥러닝 프레임워크 장단점

1) 텐서플로 (TensorFlow)

텐서플로는 구글에서 2015년에 오픈소스로 공개한 딥러닝 라이브러리로, 가장 인기 있는 딥러닝 프레임워크 중 하나입니다. 텐서플로는 파이썬(Python) 기반으로, 여러 종류의 CPU와 GPU에서 사용할 수 있으며, 다양한 플랫폼에서 동작합니다. 기본 언어는 파이썬이지만, 다른 언어(C++, Java, Julia, JavaScript 등)로도 인터페이스에 접근할 수 있어 매우 유연합니다.

장점

  • 방대한 커뮤니티와 활발한 연구 및 산업 분야에서 활용됨
  • 확장성과 유연성이 뛰어나고, 애플리케이션 배포 및 통합 지원이 잘 되어 있음
  • 다양한 플랫폼에서 사용 가능

단점

  • 초보자에게 다소 어려움: 기초 레벨부터 작업해야 하므로, 초보자가 시작하기엔 어려울 수 있음

 

2) 케라스 (Keras)

케라스는 파이썬 기반의 가볍고 배우기 쉬운 오픈 소스 신경망 라이브러리로, 딥러닝 비전문가도 쉽게 딥러닝 모델을 개발하고 활용할 수 있도록 설계되었습니다. 다양한 신경망 모델을 미리 제공하며, 블록을 조립하듯 모델을 구성할 수 있어 직관적입니다.

장점

  • 간결하고 사용하기 쉬운 코드: 빠르게 프로토타입을 만들 수 있음
  • 다양한 백엔드 엔진을 지원 (텐서플로, 파이토치 등)
  • 빠른 프로토타입 개발에 적합

단점

  • 텐서플로와 파이토치에 비해 기능에 제한이 있어 복잡한 모델 구현이 어려울 수 있음

 

3) 파이토치 (PyTorch)

파이토치는 페이스북에서 개발한 파이썬 기반의 오픈소스 머신 러닝 라이브러리입니다. 동적 계산 그래프를 사용하여 매우 유연하고 직관적인 인터페이스를 제공합니다. 최신 연구동향을 반영한 기능이 많으며, 연구자들 사이에서 큰 인기를 얻고 있습니다.

장점

  • 동적 계산 그래프로 직관적인 코드 작성
  • 최신 연구 및 실험에 적합하며, 매우 유연하고 디버깅이 용이
  • Numpy와 유사한 기능을 제공

단점

  • 텐서플로에 비해 커뮤니티 규모가 작고, 배포 및 통합 지원이 부족하다고 함

 

4) 허깅페이스 (Hugging Face)

허깅페이스는 사전에 학습된 최신 딥러닝 모델을 제공하는 허브로 유명하다. 특히 Transformers 라이브러리가 많은 관심을 받고 있는데, 이 라이브러리는 PyTorch, TensorFlow, JAX와 함께 최첨단 머신러닝 모델을 구현할 수 있게 한다. 특히 LLM(대형 언어 모델)을 활용할 수 있음, 텍스트 기반 작업에 매우 강력.

장점

  • 최신 사전 학습된 딥러닝 모델을 쉽게 사용할 수 있음
  • PyTorch와 TensorFlow를 지원하고 있어 선택의 폭이 넓음
  • 연구 및 실험에 최적화된 최신 모델들 제공
  • Hugging Face에서 제공하는 모델들은 추가 학습이 가능해

단점

  • 사전 학습된 모델들에 의존하는 경향이 있어, 특정 도메인에 맞는 모델을 찾기 어려울 수 있음

 

5) 사이킷런 (scikit-learn)

사이킷런은 주로 머신러닝 알고리즘을 다루는 라이브러리로, 전통적인 통계학적 방법을 기반으로 한 모델들을 제공해. 딥러닝보다는 기계학습에서 더욱 많이 사용되며, 다양한 분류, 회귀, 클러스터링 모델을 손쉽게 사용할 수 있다.

장점

  • 간단하고 직관적인 API로 머신러닝 모델을 빠르게 적용 가능
  • 광범위한 알고리즘 지원 (분류, 회귀, 클러스터링 등)
  • 데이터 전처리와 평가 도구가 잘 마련되어 있음
  • 딥러닝을 사용하지 않는 분야에서 강력한 성능을 발휘

단점

  • 딥러닝 모델은 다루지 않아 대규모 데이터 처리에서 성능이 떨어질 수 있음
  • GPU 활용이 어렵고, 대규모 데이터셋에 적합하지 않음

 

결론

딥러닝과 머신러닝 분야에서 PyTorch, TensorFlow는 물론 scikit-learn, Hugging Face와 같은 라이브러리들이 매우 중요하게 사용되고 있다. 특히, PyTorch는 연구와 실험에 적합한 유연한 그래프와 디버깅 기능을 제공하고, TensorFlow는 배포와 확장성 측면에서 우수한 성능을 자랑한다. 또한 Hugging Face는 자연어 처리 및 생성형 AI의 중심으로 자리 잡고 있으며, Scikit-LLM과 같은 새로운 라이브러리가 그 흐름을 더욱 확장할 것이다.

딥러닝/머신러닝 프로젝트를 진행할 때는 자신이 어떤 목적을 가지고 작업하는지에 따라 적합한 프레임워크를 선택하는 것이 중요해졌다.

 

참고

https://streamls.tistory.com/entry/Python-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EB%B9%84%EA%B5%90-Scikit-learn-TensorFlow-Keras-%EB%B0%8F-PyTorch

 

Python 머신러닝 라이브러리 비교 : Scikit-learn, TensorFlow, Keras 및 PyTorch

파이썬은 기계 학습 및 데이터 과학에서 가장 인기 있는 언어 중 하나로 부상했습니다. 다양한 기능을 제공하고 다양한 요구를 충족하는 풍부한 머신 러닝 라이브러리 생태계를 제공합니다....

streamls.tistory.com

 

https://huggingface.co/learn/nlp-course/en/chapter3/4?fw=pt

 

A full training - Hugging Face NLP Course

Now we’ll see how to achieve the same results as we did in the last section without using the Trainer class. Again, we assume you have done the data processing in section 2. Here is a short summary covering everything you will need: Before actually writi

huggingface.co

 

'Technology Notes' 카테고리의 다른 글

[Project] Qualcomm 루빅 파이(RUBIK Pi) 사용해보기  (3) 2025.03.05
[Project] Qualcomm Ai Hub 사용해보기  (3) 2025.03.03
[Docker] 도커와 컨테이너 알아보기  (0) 2025.02.16
[Project] 모바일 서버 구축을 준비해보자 2  (5) 2025.01.14
[Project] 모바일 서버 구축을 준비해보자 1  (4) 2025.01.14
'Technology Notes' 카테고리의 다른 글
  • [Project] Qualcomm Ai Hub 사용해보기
  • [Docker] 도커와 컨테이너 알아보기
  • [Project] 모바일 서버 구축을 준비해보자 2
  • [Project] 모바일 서버 구축을 준비해보자 1
임승택
임승택
"Hello, I am Lim Seungtaek, a computer engineering student. Nice to meet you!"
  • Lim's Technology
    임승택
    임승택
    "Welcome to Lim's Technology!"
  • 누적 조회수
    총 회
    구독하기
    • 분류 전체보기 (103)
      • Blog (10)
      • Computer Vision (44)
        • Computer Vision (4)
        • Paper reviews (24)
        • Project (8)
        • Basic (8)
      • LLM (8)
        • Paper reviews (3)
        • Project (3)
        • Basic (2)
      • Data Analysis (11)
        • Basic (8)
        • Project (3)
      • Computer Graphics (2)
        • Basic (2)
      • Robotics (5)
        • Paper reviews (3)
        • Basic (2)
      • Technology Notes (15)
      • Memo (5)
  • 인기 글

  • 최근 댓글

  • 최근 글

임승택
[Framework] 딥러닝/머신러닝 프레임워크 알아보기
상단으로

티스토리툴바