2015.11.12

구글의 텐서플로우 공개가 중요한 4가지 이유

Serdear Yegulalp | InfoWorld
구글이 앱의 지능 향상을 목표로 하는 머신러닝 프로젝트인 텐서플로우(TensorFlow)를 오픈 소스로 공개하자 자극적인 미래 예측 기사들이 신문 헤드라인을 장식했다.

그러나 대규모 데이터를 기반으로 점차 커져가는 오픈 소스 머신러닝 시스템 생태계의 일부인 텐서플로우 프로젝트에는 그보다 훨씬 더 중요한 의미가 있다. 텐서플로우에 주목해야 하는 4가지 이유를 살펴보자.

구글의 차세대 내부 머신러닝 시스템
구글 CEO 순다르 피차이가 블로그 게시물에도 썼듯이 텐서플로우 역시 구글이 그 동안 릴리스한 다른 여러 오픈 소스 솔루션과 동일한 이유로 만들어졌다. 즉, 구글의 머신러닝 솔루션을 사용해 대규모로 내부 문제를 해결하기 위한 목적이다.

피차이가 구글 선임 펠로우 제프 딘(빅테이블(BigTable)과 맵리듀스(MapReduce)로 유명한)과 함께 쓴 또 다른 글에는 구글의 과거 심층 학습 시스템인 디스트빌리프(DistBelief)가 어떻게 여러 가지 한계에 봉착했는지 자세히 나와 있다. 디스트빌리프는 구글 내부 인프라와 너무 긴밀하게 결합된다는 점 외에 뉴럴 네트워크(neural network)만 다룬다는 한계도 있었다.

또한 딘은 유튜브 비디오를 통해 디스트빌리프가 확장성과 프로덕션 교육용으로는 훌륭했지만 연구용으로 사용할 정도의 유연성은 없었다고 설명했다.

반면 텐서플로우는 모든 그레디언트(gradient) 기반 머신러닝 알고리즘과 함께 사용할 수 있으므로 사용 범위가 훨씬 더 넓다. 속도를 위해 C++로 작성되었으며 개발자는 기반 하드웨어에 대해 특별한 지식을 갖출 필요가 없다. 또한 여러 기기와 아키텍처에서 실행되므로 폰과 같은 SoC 기기부터 수십 개의 GPU를 사용하는 분산 시스템에 이르기까지 확장이 가능하다.

눈부신 하드웨어 발전 속도, 그리고 C++와 같은 언어와 이 언어가 실행되는 하드웨어 사이에도 이미 존재하는 풍부한 추상화를 감안하면 맞는 방향이다. 대규모로 비용 효율적인 첨단 하드웨어를 구축하고 그 하드웨어에서 모든 작업을 실행하기 위한 구글의 진보적 전략이다.

구글은 텐서플로우 이전에도 자체 인프라의 일부를 공용으로 공개한 적이 있다. 대표적인 사례가 컨테이너 오케스트레이션 도구인 큐버네티스(Kubernetes)다. 큐버네티스는 현재 컨테이너 생태계의 핵심 요소로 인식되고 있다.

많은 의미가 있는 구글의 지원
구글과 같은 유력한 기업이 뒤를 받치는 오픈 소스 프로젝트, 특히 그 중에서도 머신러닝과 같은 정교한 개념을 다루는 프로젝트는 중도에 폐기되거나 개발 동력을 상실할 가능성이 다른 프로젝트에 비해 훨씬 더 낮다.

구글이 텐서플로우에 대해 주장하는 바와 같이 프로젝트가 이미 일정 수준의 내부적인 사용자를 확보하고 있기 때문이다. 가장 크고 명확한 버그는 내부적으로 사용되는 오픈 소스 프로젝트를 통해 해결된다. 또한 구글이라는 회사의 규모를 감안하면 텐서플로우 프로젝트는 이미 광범위한 시나리오에서 사용되고 있음을 짐작할 수 있다.

프로젝트를 오픈 소스화하면 훨씬 더 많은 사용자가 프로젝트에 기여할 수 있게 된다. 구글만큼 규모가 큰 기여자는 극소수에 불과하겠지만 그렇다 해도 구글 스스로는 생각하지 못했던 사용 사례들이 기여자들을 통해 드러나게 될 가능성이 높다.

중요한 쉬운 사용성
수학, 통계 또는 머신러닝을 위한 프레임워크를 사용하고자 할 때 직면하는 가장 큰 장벽은 사용의 어려움이다. 아파치 스파크에 많은 사람들이 몰린 데는 빠른 메모리 내 프로세싱도 있지만 비교적 단순한 프로그래밍 인터페이스도 중요한 이유로 꼽힌다. IBM은 대표적인 데이터 처리 제품 중 하나인 데이터웍스(DataWorks)를 스파크를 중심으로 개조했는데, 결과적으로 4,000만 라인의 코드를 500만 라인으로 줄였다고 한다.

텐서플로우 역시 사용의 용이함이 대표적인 장점 중 하나다. 다른 C++ 애플리케이션에서 접근이 가능하다는 점 외에도 이러한 종류의 프로젝트에서 가능한 최대한의 직관성과 접근성을 갖춘 파이썬 인터페이스(아이파이썬/주피터(Ipython/Jupyter) 노트북 지원 포함)도 제공한다. 그 외에도 구글 고(Go)를 포함한 다른 언어 부문도 현재 작업 중이며, 파이썬 3 지원은 가장 먼저 해결될 문제로 분류되어 있다. 아직 모든 요소가 모이지는 않았지만 핵심적인 요소들은 충분히 모였다.

'머신러닝=오픈 소스' 선례
구글의 맷 커츠는 하둡과 같은 “가내 공업”이 맵리듀스(MapReduce)에 관한 구글의 논문을 재구성해서 크게 성장한 사례를 강조했다. 커츠는 “그러나 그 결과 지금까지 전화기와 비슷한 상황을 겪고 있다. 즉, 구글 내에서 이미 해결된 문제를 외부 코드에서 다루는 경우가 있다”고 언급했다.

어차피 알고리즘 코드를 비밀로 유지함으로써 얻는 이점은 줄어들고 있다. 이제 머신러닝에서 알고리즘은 가장 중요한 요소가 아니다. 특히 클라우드에 배포되는 형태의 머신러닝에 있어서는 더욱 그렇다. 이제는 이러한 알고리즘을 교육시키는 데 사용되는 데이터, 그리고 현실 세계 데이터 소스로의 연결이 가장 중요한 요소다. IBM이 최근 웨더 컴퍼니(Weather Company)를 인수한 사례를 생각해 보라. 이 인수로 IBM은 막대한 현실 세계의 실시간 데이터뿐만 아니라 이러한 데이터를 생성하는 데 사용되는 센서 설비까지 손에 넣었다.

그러한 데이터를 처리하는 데 사용되는 알고리즘과 프레임워크는 최대한 많은 사람의 손을 거칠 때 가장 큰 효과를 발휘한다. editor@itworld.co.kr


2015.11.12

구글의 텐서플로우 공개가 중요한 4가지 이유

Serdear Yegulalp | InfoWorld
구글이 앱의 지능 향상을 목표로 하는 머신러닝 프로젝트인 텐서플로우(TensorFlow)를 오픈 소스로 공개하자 자극적인 미래 예측 기사들이 신문 헤드라인을 장식했다.

그러나 대규모 데이터를 기반으로 점차 커져가는 오픈 소스 머신러닝 시스템 생태계의 일부인 텐서플로우 프로젝트에는 그보다 훨씬 더 중요한 의미가 있다. 텐서플로우에 주목해야 하는 4가지 이유를 살펴보자.

구글의 차세대 내부 머신러닝 시스템
구글 CEO 순다르 피차이가 블로그 게시물에도 썼듯이 텐서플로우 역시 구글이 그 동안 릴리스한 다른 여러 오픈 소스 솔루션과 동일한 이유로 만들어졌다. 즉, 구글의 머신러닝 솔루션을 사용해 대규모로 내부 문제를 해결하기 위한 목적이다.

피차이가 구글 선임 펠로우 제프 딘(빅테이블(BigTable)과 맵리듀스(MapReduce)로 유명한)과 함께 쓴 또 다른 글에는 구글의 과거 심층 학습 시스템인 디스트빌리프(DistBelief)가 어떻게 여러 가지 한계에 봉착했는지 자세히 나와 있다. 디스트빌리프는 구글 내부 인프라와 너무 긴밀하게 결합된다는 점 외에 뉴럴 네트워크(neural network)만 다룬다는 한계도 있었다.

또한 딘은 유튜브 비디오를 통해 디스트빌리프가 확장성과 프로덕션 교육용으로는 훌륭했지만 연구용으로 사용할 정도의 유연성은 없었다고 설명했다.

반면 텐서플로우는 모든 그레디언트(gradient) 기반 머신러닝 알고리즘과 함께 사용할 수 있으므로 사용 범위가 훨씬 더 넓다. 속도를 위해 C++로 작성되었으며 개발자는 기반 하드웨어에 대해 특별한 지식을 갖출 필요가 없다. 또한 여러 기기와 아키텍처에서 실행되므로 폰과 같은 SoC 기기부터 수십 개의 GPU를 사용하는 분산 시스템에 이르기까지 확장이 가능하다.

눈부신 하드웨어 발전 속도, 그리고 C++와 같은 언어와 이 언어가 실행되는 하드웨어 사이에도 이미 존재하는 풍부한 추상화를 감안하면 맞는 방향이다. 대규모로 비용 효율적인 첨단 하드웨어를 구축하고 그 하드웨어에서 모든 작업을 실행하기 위한 구글의 진보적 전략이다.

구글은 텐서플로우 이전에도 자체 인프라의 일부를 공용으로 공개한 적이 있다. 대표적인 사례가 컨테이너 오케스트레이션 도구인 큐버네티스(Kubernetes)다. 큐버네티스는 현재 컨테이너 생태계의 핵심 요소로 인식되고 있다.

많은 의미가 있는 구글의 지원
구글과 같은 유력한 기업이 뒤를 받치는 오픈 소스 프로젝트, 특히 그 중에서도 머신러닝과 같은 정교한 개념을 다루는 프로젝트는 중도에 폐기되거나 개발 동력을 상실할 가능성이 다른 프로젝트에 비해 훨씬 더 낮다.

구글이 텐서플로우에 대해 주장하는 바와 같이 프로젝트가 이미 일정 수준의 내부적인 사용자를 확보하고 있기 때문이다. 가장 크고 명확한 버그는 내부적으로 사용되는 오픈 소스 프로젝트를 통해 해결된다. 또한 구글이라는 회사의 규모를 감안하면 텐서플로우 프로젝트는 이미 광범위한 시나리오에서 사용되고 있음을 짐작할 수 있다.

프로젝트를 오픈 소스화하면 훨씬 더 많은 사용자가 프로젝트에 기여할 수 있게 된다. 구글만큼 규모가 큰 기여자는 극소수에 불과하겠지만 그렇다 해도 구글 스스로는 생각하지 못했던 사용 사례들이 기여자들을 통해 드러나게 될 가능성이 높다.

중요한 쉬운 사용성
수학, 통계 또는 머신러닝을 위한 프레임워크를 사용하고자 할 때 직면하는 가장 큰 장벽은 사용의 어려움이다. 아파치 스파크에 많은 사람들이 몰린 데는 빠른 메모리 내 프로세싱도 있지만 비교적 단순한 프로그래밍 인터페이스도 중요한 이유로 꼽힌다. IBM은 대표적인 데이터 처리 제품 중 하나인 데이터웍스(DataWorks)를 스파크를 중심으로 개조했는데, 결과적으로 4,000만 라인의 코드를 500만 라인으로 줄였다고 한다.

텐서플로우 역시 사용의 용이함이 대표적인 장점 중 하나다. 다른 C++ 애플리케이션에서 접근이 가능하다는 점 외에도 이러한 종류의 프로젝트에서 가능한 최대한의 직관성과 접근성을 갖춘 파이썬 인터페이스(아이파이썬/주피터(Ipython/Jupyter) 노트북 지원 포함)도 제공한다. 그 외에도 구글 고(Go)를 포함한 다른 언어 부문도 현재 작업 중이며, 파이썬 3 지원은 가장 먼저 해결될 문제로 분류되어 있다. 아직 모든 요소가 모이지는 않았지만 핵심적인 요소들은 충분히 모였다.

'머신러닝=오픈 소스' 선례
구글의 맷 커츠는 하둡과 같은 “가내 공업”이 맵리듀스(MapReduce)에 관한 구글의 논문을 재구성해서 크게 성장한 사례를 강조했다. 커츠는 “그러나 그 결과 지금까지 전화기와 비슷한 상황을 겪고 있다. 즉, 구글 내에서 이미 해결된 문제를 외부 코드에서 다루는 경우가 있다”고 언급했다.

어차피 알고리즘 코드를 비밀로 유지함으로써 얻는 이점은 줄어들고 있다. 이제 머신러닝에서 알고리즘은 가장 중요한 요소가 아니다. 특히 클라우드에 배포되는 형태의 머신러닝에 있어서는 더욱 그렇다. 이제는 이러한 알고리즘을 교육시키는 데 사용되는 데이터, 그리고 현실 세계 데이터 소스로의 연결이 가장 중요한 요소다. IBM이 최근 웨더 컴퍼니(Weather Company)를 인수한 사례를 생각해 보라. 이 인수로 IBM은 막대한 현실 세계의 실시간 데이터뿐만 아니라 이러한 데이터를 생성하는 데 사용되는 센서 설비까지 손에 넣었다.

그러한 데이터를 처리하는 데 사용되는 알고리즘과 프레임워크는 최대한 많은 사람의 손을 거칠 때 가장 큰 효과를 발휘한다. editor@itworld.co.kr


X