한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
TensorFlow 2.0과 Cloud AI를 사용하여 확장 가능한 머신러닝 모델 손쉽게 훈련, 배포 및 관리하기
2019년 7월 3일 수요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는
김택민(MachineLearning GDE)님
이 참여해 주셨습니다>
TensorFlow는 2015년에 오픈소스로 전환된 이후로 연구 단계부터 서비스 배포까지 전과정을 지원한다는 목표로 다양한 도구, 라이브러리 및 배포 기능 등을 추가하며 통합 머신러닝 (Machine Learning; ML) 생태계로 발전했습니다.
2019 TensorFlow Dev Summit
에서 머신러닝을 더 쉽게 사용하고 배포할 수 있게 해주는
TensorFlow 2.0
을 발표했습니다.
머신러닝 프레임워크로 출발한 TensorFlow는 직관적인 상위 레벨 API와 하위 레벨 기능을 함께 제공함으로써 연구자 및 개발자를 모두 만족시키는 종합적인 플랫폼으로 성장했습니다. TensorFlow 2.0부터는 Keras를 통합하면서 Eager 실행 모드가 기본적으로 사용됩니다. tf.data를 통해 데이터셋 파이프라인을 쉽게 설계할 수 있고 Colab 및 Jupyter Notebook에서 직접 TensorBoard를 통해 훈련 과정을 모니터링할 수 있습니다. TensorFlow 개발팀은 TensorFlow 2.0 알파 버전을 꾸준히 개선하는 한편, 2019년 2분기에 출시 후보 (Release Candidate; RC) 버전을 공개할 예정입니다.
ML을 더 사용하기 쉽게
‘
개발자 생산성과 사용 편의성에 집중하겠다
’는 TensorFlow 개발팀의 목표는 iPython Notebook과 Colab을 통합하는 것을 넘어서, tf.keras (현재의 표준
상위 레벨 API
)의 직관적인 API 사용과 함께 단 한 줄의 코드만으로 데이터 전처리 및 여러 데이터셋을 사용할 수 있도록
TensorFlow Datasets
까지 기능을 확장했습니다. 또한 최소한의 코드 수정으로 분산 환경에 대응할 수 있고 데이터셋 파이프라인을 tf.data로 관리하고 TensorFlow Extended (TFX)를 사용해서 서비스 수준으로 전환 및
여러 노드 및 하드웨어 아키텍처로 확장
할 수 있습니다.
TensorFlow 개발팀은 TensorFlow 1.x에서 2.0으로 이전 (Migration)하려는 사용자를 지원하기 위해
업그레이드 도구와 여러 이전 안내서
를 만들었습니다. 또한, TensorFlow 2.0과 이전 지원에 대한 질문을 할 수 있도록
온라인 커뮤니티
를 운영하고 있습니다. 관심 있으신 분은
TensorFlow 웹사이트
에서 더 자세한 내용을 확인하실 수 있습니다.
tf 1.x 모델을 tf_upgrade_v2 도구를 사용해서 모델 업그레이드하기
반복되는 실험 과정
연구자와 기업의 데이터 분석 개발팀 모두 빠르게 프로토타입을 만드는 작업과 초기 솔루션이 나올 때까지의 개발 속도에 초점을 맞춰 모델 아키텍처에 대한 실험을 여러번 반복해야 합니다.
Eager 실행 모드에 초점을 맞춘 TensorFlow 2.0
에서, 사용자는 Python을 사용하는 것처럼 직관적인 제어 흐름 (Control Flow)에 기반해서 코드를 작성하고, tf.function으로 Eager 코드를 최적화하고, 개선된 에러 메세지 덕분에 개발 및 디버깅이 쉬워지고 개발 시간을 절약할 수 있습니다. TensorFlow를 사용하여 모델을 만들고 실험하는 것이 이전보다 더 쉬워졌습니다.
훈련 시간을 단축하는 것은 모델 배포, 재훈련 등 실험에 필수적인 요소입니다. TensorFlow 개발팀은 작년부터 다양한 하드웨어 플랫폼에서 훈련 시간을 단축하기 위해 꾸준히 노력했고, 2세대 Cloud TPU에서는 1.6배, NVIDIA V100 GPU에서는 2배 이상의 속도 개선 효과를 거두는 등의 성과를 올렸습니다. 추론 시간의 경우, CPU 기반의 Compute Engine 인스턴스를 지원하는 Intel의 MKL 라이브러리를 사용하는 경우 3배 이상의 속도를 향상시켰습니다.
TensorFlow는 부가기능 확장 프로그램을 통해 고급 모델을 설계하는 데 도움이 되는 기능을 추가할 수 있습니다. 예를 들어,
TensorFlow Federated
를 사용하면 클라우드와 원격 (IoT 또는 임베디드) 기기에서 모두 협업적인 방식으로 모델을 훈련할 수 있습니다. 가끔은 중앙 훈련 시스템에는 없는 훈련 데이터가 원격 기기에 있는 경우가 있습니다. 우리는 훈련 데이터에서 개인 식별 정보 (PII)를 제거하는 데 도움이 되는
TensorFlow Privacy
확장 프로그램을 최근에 발표하기도 했습니다. 마지막으로,
TensorFlow Probability
는 TensorFlow의 활용 범위를 더 많은 일반적인 통계적 사용 사례로까지 확장하는데, 이를 Estimator 등의 다른 기능과 함께 사용할 수 있습니다.
다양한 환경에서 여러 언어로 ML 모델 배포하기
머신러닝 모델을 서비스 단계로 배포하는 기능은 TensorFlow의 핵심 강점이었습니다. TensorFlow 개발팀은 TensorFlow 2.0에서 배포 기능을 훨씬 더 쉽게 사용할 수 있습니다. 단일 인스턴스 혹은 클러스터 시스템에 상관없이,
TFX Pipelines
를 사용하면 서비스 운영 중에 추론을 위해 훈련한 모델을 업데이트하는 방식을 적절히 조정할 수 있습니다. 한편, 모바일 기기나 IoT 기기, 임베디드 하드웨어처럼 리소스 제약이 더 심한 시스템의 경우에는
TensorFlow Lite
의 양자화 기능을 이용해 모델을 실행할 수 있습니다.
Airbnb
, Shazam,
BBC
는 TensorFlow Lite를 사용하여 사용자의 모바일 사용 경험을 개선할 뿐만 아니라 사용자가 업로드한 콘텐츠를 분류하고 유효성을 검사하고 있습니다.
TensorFlow Data Validation을 사용한 데이터 탐색 및 분석.
자바스크립트는 전 세계적으로 가장 대중적인 프로그래밍 언어 중 하나이고,
TensorFlow.js
는 수백만의 자바스크립트 개발자가 머신러닝을 수월하게 사용할 수 있도록 도움을 줍니다. TensorFlow 개발팀은 TensorFlow.js 버전 1.0을 발표했습니다. 이 버전에서는 브라우저에서 모델을 훈련하고 실행할 수 있을 뿐 아니라,
App Engine
을 비롯하여 서버에 호스팅된 자바스크립트 프로그램의 일부로서 TensorFlow를 실행할 수 있습니다. 현재의 TensorFlow.js는 그 어느 때보다도 성능이 좋아졌고 개발 커뮤니티도 상당히 많이 성장했습니다. 출시 이후로 1년간, 개발 커뮤니티 구성원들은 TensorFlow.js를 30만 회 이상 다운로드했으며, 현재 TensorFlow.js 저장소에는 100여 명의 기여자가 제공한 코드가 들어 있습니다.
시작 방법
Google Cloud에서 TensorFlow 2.0 알파 버전을 사용하고 싶으시면
Deep Learning VM
을 생성하고
가이드
에 따라 사용해보세요. 어디서든 Jupyter Notebook으로 간편하게 실행할 방법을 찾고 있지만 더 중요한 고려 사항으로서 GCP 프로젝트 내에서
Cloud Dataproc Cluster를 사용
하여 Google Cloud에서 Jupyter 인스턴스를 실행하거나
Cloud ML Engine에서 직접
노트북을 시작할 수도 있는 방법을 찾고 계신다면, Colab을 통해 pip 설치로 제공되는 TensorFlow 2.0을 사용할 수 있습니다.
TensorFlow 2.0 사용하기 : Deep Learning VM 및 GCP Notebook 인스턴스
우리는 TensorFlow 2.0 알파 버전 출시와 더불어 새로운 커뮤니티 및 교육 파트너십을 발표했습니다. 우리는 O’Reilly Media와 공동으로 오픈소스 커뮤니티와 TensorFlow의 모든 것을 함께 육성하고 제공한다는 주제로 1주일간 진행되는
TensorFlow World
컨퍼런스를 주최할 예정입니다. 참석자들이 이번 행사에서 선보이고 싶은 논문과 프로젝트를 제출할 수 있는
제안 요청 (Call for proposals)
의 기회가 열려 있습니다. 마지막으로, 우리는 ML과 TensorFlow를 처음 접하는 초보자와 학습자에게 도움이 되는 두 가지 온라인 교육 과정을 발표했습니다. 첫 번째 과정은
deeplearning.ai의 Course 1 - Introduction to TensorFlow for AI, ML and DL
로, 'TensorFlow: from Basic to Mastery' 시리즈 중 일부입니다. 두 번째 과정은
Udacity’s Intro to TensorFlow for Deep Learning
입니다.
Google Cloud에서 TensorFlow 2.0을 사용하신다면 저희에게 사용 경험을 공유해 주세요! 먼저
TSIG (Testing special interest group)
에 참가하셔서
TensorFlow World
에 프로젝트 초록을 제출해주세요. 그리고 DevPost의
#PoweredByTF Challenge
에 진행중인 프로젝트를 공유해 주세요. TensorFlow에 빠르게 적응하려면
Udacity
와
DeepLearning.ai
에서 제공하는 무료 온라인 교육 과정을 확인해 보시기 바랍니다.
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed