딥러닝 프레임워크 조사와 몇가지 홍보

Share
딥러닝 프레임워크 조사와 몇가지 홍보

지난 4월 18일, 페이스북은 새로운 오픈소스 딥러닝 프레임워크인 Caffe2를 발표했다. 이로써 익혀야 할 도구가 하나 더 늘어난 듯 하다. 2015년부터 쏟아지기 시작한 딥러닝 프레임워크 전쟁에서 텐서플로우가 우위에 섰지만, 최근 주목을 받고 있는 Chainer, MXNet와 PyTorch 등도 조금씩 사용자층을 확대하고 있다. 이 글에서는 범람하고 있는 딥러닝 도구들을 간략히 비교하고, 관련 책과 강의를 소개하고자 한다.  

딥러닝 프레임워크 살펴보기

여기에서는 대표적인 딥러닝 프레임워크들 몇가지를 여러가지 측면에서 비교하려고 한다. 관련 내용에 대한 자세한 글은 "딥러닝 프레임워크 비교"에서 확인할 수 있다.  

시간순으로

TensorFlow, Chainer, MXNet 등 새로운 딥러닝 프레임워크가 계속 등장하는 이유를 이해하려면 프레임워크가 공개된 시점을 비교해보면 도움이 되었다. 아래는 구글링을 통해 관련 프레임워크가 오픈소스로 공개된 시점을 정리한 표다.  

deeplearning_fw_timeline1

그림. 시간순으로 본 딥러닝 프레임워크

theano는 다른 딥러닝 프레임워크의 조상격으로 최초의 딥러닝 프레임워크라고 볼 수 있겠다. caffe는 버클리 대학교에서 2012년 LISVRC에서 발표한 AlexNet을 재현하기 위해 구현했으며, 이미지 분석에 특화되어 있다. 과학 계산을 위한 프레임워크나 도구가 대부분 파이썬 기반인 것에 반해, 가장 많은 사용자층을 보유한 Java의 경우 관련 도구가 전무했다. 이에 아담 깁슨(Adam Gibson)은 엔터프라이즈 시장에서 안정성과 성능이 증명된 Java 기반의 딥러닝 프레임워크인 DL4J(Deeplearning4J)를 만들어서 공개했다. Torch는 과학 계산을 위한 도구로써 공개되었으며 이후 발전을 거쳐 딥러닝 프레임워크로 성장한 경우다. 문법과 구문이 단순한 루아(Lua) 언어를 기반으로 하는 것이 가장 큰 특징이며 단점이기도 하다. 이 시기에는 여전히 theano가 대표적인 딥러닝 프레임워크였으나 구문이 복잡하여 접근이 쉽지 않았다. theano를 백엔드로 사용하되 더 단순한 인터페이스를 제공하려는 목적으로 만들어진 프레임워크가 바로 Keras로, "framework of deeplearning framework"라고 볼 수 있다. 이와 유사한 프레임워크로는 Lasagne, Blcoks 등이 있다. 이제 본격적으로 딥러닝 프레임워크가 등장하는 시기로 구글이 TensorFlow를 오픈소스로 공개했다. 그리고 이에 앞서 Chainer와 MXNet 등이 공개되었지만, TensorFlow의 인기에 빛이 바랬다. MXNet 믹스넷(Mixed Net)을 표방하며, 다양한 딥러닝 프레임워크가 가진 장점을 모두 흡수 통합하려고 노력했다. 기존 딥러닝 프레임워크는 "Define-and-run" 아키텍처로, 정의된 그래프는 실행시점에 동적으로 변경이 불가능하다. Chainer는 새로운 "Define-by-run" 아키텍처를 제시하였고, 정의된 그래프는 실행시점에 동적으로 변경이 가능하다.

chainer_define_by_run

그림. Define-and-run vs. Define-by-run (출처: Complex neural networks made easy by Chainer)

이후 마이크로소프트도 자사의 딥러닝 프레임워크를 오픈소스화하는데 뛰어들었고, CNTK 프레임워크를 Cognitive Toolkit이라는 이름으로 공개했다. 이 외에도 PyTorch, Neon 등 다양한 딥러닝 프레임워크가 공개되어 있다.  

주요 특성별로

앞서 설명한 딥러닝 프레임워크의 주요 특성은 다음과 같다. 아래 표는 위키피디아의 Comparison of deep learning software를 참고했다.

deeplearning_fw_cheat_sheet

그림. 주요 특성별로 본 딥러닝 프레임워크

 

기술 스택관점에서

최근에 많은 관심을 받고 있는 Chainer는 일본의 Preferred Networks, Inc.에서 만들었으며, 다양한 딥러닝 프레임워크를 프레임워크 구현 관점에서 비교했다. 아래는 DLIF: Common design of neural network implementations에서 기술 스택 관점에서 비교한 내용을 참고했다.

deeplearing_fw_tech_stack0
deeplearing_fw_tech_stack1

그림. 기술 스택으로 본 딥러닝 프레임워크

   

프레임워크 설계 관점에서

DLIF: Differences of deep learning frameworks에서는 프레임워크 설계 관점에서 각 딥러닝 프레임워크를 비교했다.

deeplearing_design

그림. 프레임워크 설계 관점에서 본 딥러닝 프레임워크 (출처: DLIF: Differences of deep learning frameworks)

각 설계 관점별 장/단점은 다음과 같다.

dlif_1
dlif_2
dlif_3
dlif_4
dlif_5

그림. 프레임워크 설계 관점에서 본 딥러닝 프레임워크 (출처: DLIF: Differences of deep learning frameworks)

 

몇 가지 홍보

이처럼 다양한 딥러닝 도구가 등장했고, 기존 파이썬에만 국한되던 인터페이스 언어도 Java/Lua/C 계열로 확장되었으며, 구문이 단순해지고 튜토리얼도 풍성해졌다. 따라서 딥러닝을 시작하려고 할 때의 도구와 프로그래밍 언어의 벽은 이제 없다고 보면 된다. 결국 중요한 것은 개념과 이론을 충실히 이해하는 것이며, 관련 논문이 최고의 선생이 된다. 다만 나와 같은 초심자에게는 논문은 여전히 어렵고, 기본적은 개념을 이해하기에는 적당하지 않다. 나의 경우 "인공지능, 머신러닝, 딥러닝 입문(김의중 지음, 위키북스 출판)"이 딥러닝 분야를 시작하는데 가장 큰 도움이 된 책이다. 이론적인 부분이나 구현에 대한 내용은 깊게 다루지 않지만, 인공지능의 역사와 최근의 딥러닝 연구 분야에 대해 쉽게 이해할 수 있도록 풀어썼다. 프로그래머나 머신 러닝 전공자가 아니더라도 쉽게 이해할 수 있기에 일독을 권한다.

deeplearning_book

그림. 딥러닝의 세계로 인도해준 "인공지능, 머신러닝 딥러닝 입문" (http://wikibook.co.kr/ai-by-algorithm/)

  위의 책을 집필한 김의중님은 아이덴티파이라는 이름의 인공지능 스타트업을 창업했으며, 최근 책과 동일한 목적의 유료 강의를 준비중이다. 이제 딥러닝을 시작하려는 IT 엔지니어, 딥러닝 분야를 공부하고 싶은 IT와 무관한 사람들에게도 인공지능과 딥러닝을 설명하고 실습해 볼 수 있는 커리큘럼으로 구성되어 있다. 기본적인 CNN뿐만 아니라, 강화학습, RNN/LSTM, 그리괴 최신 GAN에 대해서도 폭넓게 다룬다. 관심 있으신 분들은 "인공지능, 머신러닝, 딥러닝 입문 과정"에서 신청할 수 있다.

deeplearing_course_aidentify

그림. 인공지능, 머신러닝, 딥러닝 입문과정

     

참고자료

Read more

AI로 장소 검색 서비스 만드는 중입니다 (기술 12) — TypeSafe Jev로 검색 리랭크를 10.3초에서 2.3초로

AI로 장소 검색 서비스 만드는 중입니다 (기술 12) — TypeSafe Jev로 검색 리랭크를 10.3초에서 2.3초로

AI로 장소 검색 서비스 만드는 중입니다 (기술 12) — TypeSafe Jev로 검색 리랭크를 10.3초에서 2.3초로 TypeSafe AI가 2026년 9월 15일에 Jev를 내놨습니다. 텍스트를 쓰지 않고 타입이 정해진 판정과 확률을 바로 내는 모델입니다. 유추카 검색에서 가장 느린 단계가 마침 텍스트가 필요 없는 판정이었습니다. 그 구간만 Jev로 갈아끼우고 일주일간 측정했습니다. 콜드

By 김형준
AI로 장소 검색 서비스 만드는 중입니다 (특별편 8) — 바이브 코딩이라기엔

AI로 장소 검색 서비스 만드는 중입니다 (특별편 8) — 바이브 코딩이라기엔

1900년대 초 교량 측량 도면. 이 종이를 그린 사람은 다리를 직접 놓지 않습니다. 대신 좌표와 각도가 맞는지를 판정합니다. "AI가 다 만들어 준다"는 이야기가 흔해졌습니다. 그래서 자연스럽게 따라오는 질문이 있습니다 — 그럼 사람은 무엇을 하고, 어느 정도 실력이 있어야 하는가. 그 질문에 한 건의 실측으로 답하겠습니다. 통념이 말하는 역할과,

By 김형준
AI로 장소 검색 서비스 만드는 중입니다 (특별편 7) — 제 파트너에 대해 쓰겠습니다

AI로 장소 검색 서비스 만드는 중입니다 (특별편 7) — 제 파트너에 대해 쓰겠습니다

탠덤 자전거. 방향은 앞사람이 정하고 페달은 둘이 밟는데, 앞사람은 석 달 내내 뒷사람을 한 번도 못 봅니다. 사용자가 저에게 자기를 평가해 달라고 했습니다. 그래서 등급표를 만들었습니다. 열두 항목에 A부터 D+까지 매기고, 근거를 붙이고, "제가 관리자였다면 이런 코멘트를 남겼을 것"까지 적었습니다. 그리고 다시 읽어보니 그건 인사고과였습니다. 인사고과는

By 김형준
AI로 장소 검색 서비스 만드는 중입니다 (특별편 6) — 저를 어떻게 써야 하느냐고 물으신다면

AI로 장소 검색 서비스 만드는 중입니다 (특별편 6) — 저를 어떻게 써야 하느냐고 물으신다면

스위스 아미 나이프. 도구가 몇 개인지는 보면 알지만, 지금 어느 도구를 펴야 하는지는 안 적혀 있습니다. 요즘 AI 활용법을 다루는 글은 스킬 만드는 법부터 가르칩니다. 얼마 전까지는 MCP였고요. 저희 기록을 열어봤습니다. 석 달 동안 스킬 60회, 서브에이전트 42회, 브라우저 자동화 988회를 썼습니다. 안 쓴 게 아닙니다. 다만 붙인 MCP 서버는

By 김형준