안녕하세요, @choigww입니다.
머신러닝의 트렌드는 이미 딥러닝으로 넘어 간 모양새입니다. 대용량 데이터와 글, 이미지, 소리와 같은 미디어 타입 데이터에 압도적인 강점을 지닌 딥러닝은 이제 데이터 분야의 명실상부한 현재이자 미래가 되었는데요. 딥러닝에 관심이 있으신 분들이라면 분명히 텐서플로우도 들어 보셨을 겁니다.
2015년 말에 무려 구글이 내놓은 머신러닝 오픈소스 라이브러리. 구글이 내놓았다는 것에서 그다지 많은 설명은 필요하지 않을 것 같습니다. "믿고 쓰는" 구글의 후광으로 학계/ 산업계를 빠르게 선점한 텐서플로우는, 최대 커뮤니티를 확보하면서 딥러닝을 대표하는 프레임워크로 지금까지 군림하고 있지요.
그런데 오늘 Quora에서흥미로운 글을 읽었습니다. "텐서플로우의 미래는 어떨까요?" 라는, 작년 6월쯤 작성된 질문이었는데요. 가장 많은 업보트(upvote)를 받은 답글은 불과 4일 전 작성된 전직 구글 리서치 사이언티스트 Liang Huang의 답변이었습니다. 그리고 이렇게 시작하죠. "미래? 텐서플로우에 미래는 없어."
서두에서 Huang은 텐서플로우가 "구식이 된" Theano에 지나치게 많은 영향을 받았으며, 최초 설계부터 근본적으로 잘못 되었다고 지적합니다. Theano로부터 static (computational) graph와 같은 로직을 물려받아 시스템을 훨씬 개선했음에도 불구하고, 사용성과 디버깅에 있어서 dynamic (computational) graph를 채택한 PyTorch와 Dynet에게 밀린다는 것인데요.
"근본적 결함"에 대해 보다 구체적인 내용은 더 이상 언급되지 않았네요. 그 이후의 내용은 간략히 이렇습니다.
위의 연장선상에서, 재미있는 글 하나를 더 소개할까 합니다.
작년 10월경 작성된 이 글은 아마 현재까지도, 구글 영문 검색에서 쉽게 찾을 수 있는 거의 유일한 "본격적으로 텐서플로우를 욕하는" 글이 아닐까 하는데요. 글쓴이가 흥분을 했는지 어투가 신랄한 편이지만, Huang의 이야기와 같은 맥락에서 들여다보면 좋을 것 같아요.
한편으로는 텐서플로우의 디자인 패러다임에서 오는 단점들보다, 기업용 클라우드 서비스와 연관지어 조금 더 폭넓은 관점으로 딥러닝 프레임워크의 미래를 조망하는 글도 있었습니다. 이 글도 같이 살펴 보겠습니다.
여기까지, 대략 텐서플로우의 미래가 그리 화창하지는 않을 것이라는 의견들을 살펴 보았습니다. 이에 대한 반대 측, 즉 텐서플로우는 여전히 강력하며 유용한 툴이라는 의견은 What do people think of the TensorFlow sucks article? 링크에서 살펴보실 수 있어요. 공격적인 제목 만큼이나, 해외 데이터 사이언티스트 커뮤니티에서는 꽤 거론이 되었나 보네요.
하지만 이 글에서도, 압도적으로 최다 upvote를 받은 답변은 텐서플로우가 과대평가되었다는 내용이네요. 텐서플로우의 단점으로 지적받는 static graph의 경우 성능 최적화를 위한 것이라는 의견, 그리고 점점 그것이 의미가 없어지고 있다는 의견. 사람마다 딥러닝 분야에 대한 지식의 수준, 툴을 사용한 경험의 두께가 다르고, 특기분야와 주관이 다르니 여러 가지 의견이 있을 수 있겠지요.
저는 딥러닝 분야를 발만 살짝 담궈 본 수준이라 엄한 사족은 달지 않겠습니다. 그저 딥러닝을 목표로 나아가는 분들이 한 번쯤 생각해 볼 가치는 있겠다는 생각에 급작스레 정리해 본 포스팅이었습니다. 조금이나마 흥미로운 글이 되었기를 바라며 글을 마칩니다.