태그 보관물: Google

GDE Summit + TensorFlow World를 다녀와서

올해 봄 ML GDE가 되고 나서 처음 구글 행사에 초청을 받아 다녀왔습니다. GDE 서밋은 전 세계 GDE(Google Developer Expert)를 초청하는 행사입니다. 웹, 안드로이드, 클라우드, 머신러닝 등 다양한 분야에서 많은 GDE들이 활동하고 있습니다.

GDE는 구글을 대표하거나 구글 제품의 홍보 대사가 아닙니다. 각 분야에서 구글 제품을 사용하는 개발자들을 돕고 구글 제품에 대해 다양한 의견을 제시하는 봉사자이자 전문가 집단입니다. 구글은 GDE의 활동을 지원하고 개인의 역량을 높일 수 있도록 돕고 있습니다.

IMG_0963.JPG

이 중에서도 머신러닝 GDE들의 숫자가 가장 크게 늘어나고 있습니다. 머신러닝 분야 자체가 성장하고 있기도 하지만 머신러닝 GDE들이 정말 활발히 활동하는 것 같습니다. 다른 분야와 다르게 컴퓨터 과학 뿐만 아니라 다양한 이력을 가진 GDE들이 많았습니다. 분야별 토론에서도 머신러닝 GDE들은 끝까지(!) 가장 활발하게 토론을 이어갔습니다. 때로는 날카로운 비판도 서슴치 않았습니다.

하지만 단지 비판이나 의견 제시에 끝나지 않습니다. 세부 토론을 거쳐 그 자리에서 개발자들을 도울 수 있는 아이디어를 내고 스스로 조직화할 계획을 세웠습니다. 놀랍지 않은가요? 이 자리에 참여할 수 있다는 것만으로도 정말 큰 영광입니다. 혹시 여러분이 구글러로부터 GDE를 해보라고 추천받는다면 두 번 생각할 것도 없습니다. IT 분야에서 가장 멋진 경험을 시작할 수 있는 기회가 생긴 것입니다. 🙂

올해 처음 열린 TensorFlow World 컨퍼런스는 오라일리가 주관하는 행사입니다. 이 컨퍼런스는 GDE 서밋이 끝나고 바로 다음날 이어서 서니베일 근처의 호텔에서 진행되었습니다. 감사하게도 일부 머신러닝 GDE들에게 컨퍼런스를 참여할 수 있는 기회가 제공되었습니다.

IMG_0922.jpg

텐서플로 월드에서 많은 세션이 열렸습니다. 머신러닝 파이프라인을 위한 TensorFlow Extended(TFX), 웹 브라우저 기반의 머신러닝 작업을 위한 TensorFlow.js, 안드로이드는 물론 아두이노와 IoT 기기를 위한 TensorFlow Lite에 대한 내용이 많았습니다. 앞으로 많은 스토리가 등장할 분야임에 틀림없는 것 같습니다. 텐서플로 월드에서 열린 일부 세션은 유튜브에서 볼 수 있습니다.

텐서플로 월드는 총 4일 동안 진행되었습니다. 1,2일차에는 교육, 튜토리얼, 컨트리뷰터 서밋이 열렸습니다. 저는 TensorFlow.js, Swift for TensorFlow 튜토리얼과 컨트리뷰터 서밋에 참가했습니다. 튜토리얼은 오전, 오후에 각 3시간씩 진행되었습니다. TensorFlow.js 튜토리얼은 단순히 코드랩을 따라하는 형식으로 진행되었기 때문에 아쉬웠습니다. Swift for TensorFlow는 스위프트 언어 자체와 텐서플로를 모두 다루어야 했기 때문에 시간이 절대적으로 부족했습니다.

텐서플로 문서 번역에 기여한 기회로 텐서플로 컨트리뷰터 서밋에도 참여했습니다. 다양한 SIG 그룹에 대해 자세히 알 수 있었습니다. 또 텐서플로 문서 관리자인 빌리와도 반갑게 인사를 나누고 인증샷을 찍었죠(생각보다 훨씬 키가 크더군요)!

IMG_1027.JPG

컨트리뷰터 서밋에서 “I contribute to TensorFlow” 배지를 나누어 주어서 백팩에 자랑스럽게 붙였습니다. 돌아오는 비행기에서 짐을 넣을 자리가 부족해 승무원이 옆 자리 칸에 올려 주었는데 나중에 확인해 보니 검은 배지가 사라졌습니다! ㅠ.ㅠ 아마도 공간이 부족해서 가방을 밀어 넣다 보니 떨어져서 어딘가에 굴러다닐 것으로 생각되었습니다. 찾지 못하면 너무 아쉬울 것 같았습니다.

도착 몇 시간을 남겨 놓고 승객들이 모두 내리면 같이 찾아보자고 승무원에게 부탁했습니다. 그런데 한 승무원이 바닥에 떨어진 배지를 본 것 같다며 주위 바닥을 모두 샅샅이 뒤져서 찾아 주었습니다! 정말 어찌나 고맙던지요!

IMG_5552.JPG

몸은 피곤했지만 (집에 와서 14시간을 잤습니다 @.@) 정말 큰 동기부여를 얻은 좋은 기회였습니다. 같이 참석했던 다른 GDE들을 보면서 부족함을 많이 느꼈습니다. 그렇다고 너무 주눅들거나 겁낼 필요는 없습니다. 항상 발전해 가는 과정 자체가 즐거움이니까요! 😀

GDE Summit 2019

올해 구글 Machine Learning GDE가 된 후 처음으로 초청을 받아 GDE Summit에 참가했습니다. 처음이라 모든게 낯설지만 고참(!)들의 귀뜸으로 무사히 하루를 보냈습니다. 샌프란시스코의 날씨는 확실히 화창하고 맑습니다. 먼거리를 이동한터라 초저녁만 되면 졸음이 쏟아지네요. 졸음을 참고 몇 글자 남깁니다.

전 세계에서 400명이 넘는 GDE가 모였습니다. 한국에서도 다섯 분이 참여하셨습니다. 그 중에 머신러닝 GDE는 두 명입니다. 다른 분들은 여러 사정상 함께하지 못해 아쉬웠습니다.

IMG_0883

GDE 행사의 세세한 내용은 규정상 자세히 언급할 수 없어서 아쉽습니다. 키노트를 마치고 각 기술 분야별 세션이 이어졌습니다. 핸즈온 머신러닝의 저자 오렐리앙 제롱도 싱가폴 머신러닝 GDE로 참석했습니다. 처음 만났지만 그동안 주고 받은 이메일 때문인지 익숙하게 인사를 나누었습니다. 온라인에서와 마찬가지로 보자마자 인보이스(?) 보내라고 다그치네요. ㅎㅎ

그리고 인증샷! GDE Summit에서도 오렐리앙은 당연 인싸 중 한명이었습니다! 🙂

IMG_4740

제가 들고 있는 책은 핸즈온 머신러닝의 2판입니다. 기대해 주세요! 😀

구글의 머신러닝 단기집중과정

구글에서 “머신러닝 단기집중과정“이란 온라인 교육 사이트를 오픈했습니다. 머신러닝의 기초와 선형회귀, 로지스틱 회귀에서부터 신경망으로 MNIST 이미지를 분류하는 것까지 다루고 있습니다(텐서플로와 여러 파이썬 과학 라이브러리를 사용합니다). 강의에서 제공되는 실습은 Colab의 Notebook을 이용하고 있어 온라인에서 바로 실습을 할 수 있습니다. 재미있는 것은 강의 영상이 한국어 더빙으로 제공됩니다.

머신러닝으로 만든 더빙과 몇몇 용어의 선택이 조금 어색하지만 누구나 무료로 들을 수 있는 한국어로 된 좋은 강의인 것 같습니다. 🙂

스크린샷 2018-03-01 오전 11.37.52

New Jupyter Environment: Colaboratory

구글이 회사 내부에서 사용하고 있던 주피터 노트북의 커스텀 버전인 Colaboratory를 공개하였습니다. Colaboratory는 연구와 교육의 목적으로 개발되었다고 합니다. https://colab.research.google.com에 접속하면 샘플 노트북이 로드되는데요. 주피터 커널이 연결되어 있지 않은 상태입니다. 커널을 연결하기 위해서 권한을 요청하면 하루 정도 지나서 메일로 승인이 되었다는 안내를 받을 수 있습니다.

Colab에서 노트북을 생성한 후에 구글 드라이브에 저장을 할 수가 있습니다. 또한 구글 드라이브에서 새 문서 버튼을 통해 Colab 노트북을 직접 만들 수도 있습니다. 또 로컬 컴퓨터에 있는 주피터 노트북을 업로드해서 다른 사람과 공유할 수도 있습니다. 막다운markdown과 라텍LaTex도 물론 지원됩니다. 또 좀 더 편리한 텍스트 셀을 제공하고 있습니다.

스크린샷 2017-10-26 오전 11.40.12

Colab 노트북의 최대 크기는 20M까지입니다. Python 2.7만 지원하고 R이나 Scala는 아직 지원하고 있지 않습니다. 재미있는 것은 대부분의 파이썬의 과학 패키지는 최신 버전을 유지하고 있는데 텐서플로와 Scikit-Learn의 버전이 좀 뒤쳐져 있네요. 하지만 스터디나 튜토리얼 세션 등에는 유용하게 사용될 수 있을 것 같습니다. 🙂

스크린샷 2017-10-26 오전 10.58.27

tf-seq2seq: open-source seq2seq framework in TF

68747470733a2f2f332e62702e626c6f6773706f742e636f6d2f2d3350626a5f64767430566f2f562d71652d4e6c365035492f41414141414141414251632f7a305f365774565774764152744d6b3069395f41744c6579794779563641

구글에서 이번주 신경망 기계번역, 즉 NMTneural machine translation를 위한 seq2seq 모델을 오픈소스로 공개하였습니다. 이 소스는 텐서플로우로 작성되어 있으며 깃허브에 공개되어 있습니다. 이 소스는 같이 공개된 ‘Massive Exploration of Neural Machine Translation Architectures‘ 페이퍼에서 사용된 코드입니다. 이 페이퍼에서 25만 GPU 시간을 들여 다양한 하이퍼파라미터 튜닝을 한 결과를 공유하고 있습니다. 어쩌면 많은 애플리케이션들이 연이어 나오는 뛰어난 알고리즘보다 이런 실험 결과를 더 목말라하고 있을지 모르겠습니다. 깃허브에 있는 tf-seq2seq 코드는 마치 일반 애플리케이션처럼 다운로드 받아 yaml로 모델을 정의하고 학습시킬 수 있습니다. 딥러닝 라이브러리들이 설정 방식에서 코딩 방식으로 빠르게 전환되더니 도메인 특화된 모델은 다시 패키지화될 수 있는것 아닌가 예상해 봅니다. 자세한 사용법은 도큐먼트를 참고하세요. 비록 한글 데이터는 없지만 구글의 선빵은 놀랍습니다. 🙂

TPU Revealed

2017-04-05_1013

구글이 자사의 데이터센터에서 사용하고 있는 머신러닝 칩셋인 TPU(Tensor Processing Unit)에 대한 성능과 구성에 대해 자세한 내용을 페이퍼공개했습니다. 페이퍼 내용을 보면 GPU/CPU 조합 보다 15~30배 가량 성능이 높다고 합니다. 개인적으로 눈길을 끄는 것은 2016년 7월에 작업한 것으로 보이는 이 페이퍼에 구글의 머신 러닝 추론inference을 위해 사용하고 있는 텐서플로우 모델 워크로드의 60%가 기본적인 피드포워드feed-forward 신경망이라는 점입니다.

스크린샷 2017-04-10 오전 1.54.39

이 수치가 거의 10개월 전의 데이터이고 텐서플로우, 즉 TPU로 서빙한 것에 국한될 수 있지만 예상외로 차이가 많은 것 같습니다. 페이퍼에서도 언급하고 있듯히 TPU의 성능 향상은 CNN을 타깃으로 하지만 실제로는 MLP가 주요 애플리케이션에 사용되고 있는 것 같습니다. 그렇다면 가중치 크기로 보아 비교적 레이어의 유닛수가 많은 MLP0은 유투브 추천에 MLP1은 광고 추천에 사용되는 것이 아닐까 조심스럽게 추측해 봅니다.

Google aquiring Kaggle

구글이 머신 러닝 경연 사이트인 캐글을 인수한다는 기사가 테크 크런치에 실렸습니다. 구글이 유투브 데이터를 이용한 대회를 하고 있지만 캐글 인수는 예상치 못한 일입니다. 캐글 사용자들에게 텐서플로우나 구글 클라우드를 더 전파하려 하는 걸까요? 아니면 형님 리더십일까요? 🙂

(업데이트) 캐글이 구글 클라우드에 합류한다고 합니다. 이를 환영하는 사람들은 대부분 실리콘 밸리 사람들인 것 같네요. 클라우드: 아마존 >>> 구글, ML+클라우드: 아마존 <<< 구글

OpenNMT: Open Source Neural Machine Translation

simple-attn

하버드 NLP 그룹과 하버드 PhD 학생인 Yoon Kim이 만든 오픈소스 신경망 기계번역 OpenNMT 가 공개되었습니다. OpenNMT 는 토치로 구현되어 깃허브에 공개되어 있으며 개발에 사용된 주요한 페이퍼들이 홈페이지에 자세히 나와 있습니다. 개인이 학습시키기에는 조금 무리가 있을 수 있으나 학습된 모델도 공개할 것이라 하니 기대를 해 봅니다. OpenNMT 개발에 번역 소프트웨어 회사인 SYSTRAN도 많은 참여를 했다고 합니다. OpenNMT의 데모를 SYSTRAN 데모 페이지에서 직접 확인해 볼 수 있습니다. 구글, 네이버 모두 신경망 기계번역을 도입했는데요. 오늘자 CNN 뉴스의 일부를 세 번역기에 모두 적용해 보았습니다. 네이버 번역기 글자수가 제한되어 있어 긴 문장을 적용하진 못했습니다. 결과는 OpenNMT 가 훨씬 자연스러운 번역을 만들어 주었습니다!

OpenNMT
opennmt

Google Translate
google_translate

Naver NMT
naverlabs_nmt

MS Ventures fund Element AI

마이크로소프트가 새로운 벤처 펀드를 운영한다고 발표하였습니다. 특히 이 펀드는 인공지능 분야에 집중될 것으로 알려졌습니다. 첫번째 펀드는 요수아 벤지오(Yoshua Bengio) 교수의 엘리먼트 AI(Element AI) 입니다. 정확한 금액을 알려지지 않았지만 지난달 구글이 엘리먼트 AI에 3백만 US달러 이상을 투자하기로 하였으므로 그에 버금가는 금액이 될 것으로 예상됩니다. 엘리먼트 AI는 수천만달러까지 펀딩을 계속 받을 예정이라고 합니다. 마이크로소프트가 OpenAI 와도 제휴하고 엘리먼트 AI에 투자까지 인공지능 분야에서 계속 잰걸음을 하는 것 같습니다. 마이크로소프트 벤처는 엘리먼트 AI 뿐만 아니라 계속 인공지능 벤처에 투자를 이어갈 예정이라고 합니다.

MXNet, DL Framework of Choice at AWS

지난 주 아마존 CTO 워너 보글스(Werner Vogels)는 AWS 에서 사용할 수 있는 딥러닝 프레임워크로 MXNet 을 추가했으며 앞으로 아마존이 MXNet 의 개발을 지원하겠다고 발표하였습니다. MXNet 은 카네기 멜론 대학과 워싱톤 대학이 시작한 이후 많은 대학과 회사들의 후원을 받고 있는 딥러닝 오픈소스 라이브러리입니다. 깃허브 활동에서도 크게 뒤쳐지지 않고 활발히 개발되고 있습니다. 특징으로는 파이썬, 줄리아(Julia), R, 매트랩(Matlab), 스칼라(Scala) 등 다양한 인터페이스를 지원하는 것이 눈에 띄입니다. 성능과 대용량 처리 부분에서도 크게 뒤지지 않는 듯 보입니다.

그럼 아마존의 데스트니(DSSTNE)는 어떻게 되는 것인지 모르겠습니다. 자체 라이브러리의 생태계를 만들어 가는 것이 역부족이라고 느낀 것일까요. 아니면 구글이 스탠포드 비전랩의  Fei Fei, Li 교수와 스냅챗의 Jia Li 를 구글 클라우드의 머신러닝 유닛을 이끌 수장으로 영입한 것이 영향을 미쳤을지도 모릅니다. 문제는 프레임워크가 아니고 클라우드 비즈니스라고 말이죠.

또 트위터가 2015년 웻랩(Whetlab)을 인수하면서 영입한 AI 연구자 다섯명이 트위터 코텍스(Twitter Cortex)를 떠난다는 소식이 있었습니다. 그 중에 업계에 비교적 잘 알려진 휴고 라로쉘(Hug Larochelle)은 구글로 자리를 옮겼습니다. 구글이 요슈아 벤지오(Yoshua Bengio) 교수가 있는 몬트리올 대학 MILA 랩에 3백만 달러(역대 최고라 하는군요)를 지원하기로 발표하면서 휴고 라로쉘이 구글의 몬트리올 랩의 리더가 되었습니다. 거기에 최근에는 OpenAI 가 클라우드 플랫폼으로 마이크로소프트의 애저(Azure)를 선택한다고 발표하니 아마존이 다급해진 것일까요. 여러모로 프레임워크로 경쟁하기 보다는 실리를 추구하는 쪽으로 선회한 것일지 모르겠습니다.

아마존의 AWS 에는 MXNet, Caffe, Tensorflow, Theano, Torch 그리고 CNTK 가 미리 설치되어 있는 딥러닝 AMI 가 있습니다. 그리고 사용자는 여전히 입맛에 맞는 프레임워크를 설치해서 사용할 수 있습니다. 하지만 앞으로 AWS RDS 처럼 관리형 딥러닝 서비스가 나온다면 MXNet 이 첫번째 후보가 될수 있을 것 같습니다.