이건희(Invest Crypto, GDG 판교 운영자)
개요
- Google DevFest 에서 이미 발표된 것이고, Google I/O를 통해 새로 발표함.
- High-Level APIs
- TF Extension, TF Hub and TF Serving
- Opportunities, challenges, and strategies to develop AI for everyone
- Codelab 적용 가능
본 세션
1. Tensorflow.js
기존은 Python 기반이었음. 그러나 이번에는 JavaScript 로도 돌릴 수 있음.
브라우저에서 작동하는 Tensorflow
- 설치가 필요 없고, 상호작용이 가능하며, 머신러닝에 필요한 센서들을 작동 또는 입력에 따른 출력값을 취득할 수 있음.
Layers API (Keras Model) - Core API (Tensorflow SavedModel)
- Deeplearn.js Low-Level 선형대수 연산을 Core API 로 작동하여 연산함.
- Keras Model 과 SavedModel 구동 코드와 방식이 다르기 때문에 잘 생각하여 코딩해야한다.
CDN으로 불러올 수 있기 때문에, 환경 설치에 대한 어려움이 덜 한다. 그러나 네트워크의 영향이 매우 크다.
Core API가 기초적인 사칙연산을 수행한다.
Demo : EMOJI SCAVENGER HUNT
실시간으로 카메라로 받아오는 코드
JavaScript 1
2
3const pixels = tfc.fromPixels(camera.videoElement);
// 서버단에서 받아와 추론하면 cost 가 다량 발생할 수 있기 때문에, 클라이언트가 처리한다.
// 클라이언트가 곧바로 추론하는 방식.Node.js 에서도 GPU 연산이 가능하다. (Eco System + V8 speed)
express 백엔드와 Tensorflow 를 하나로 묶을 수 있다.
JavaScript 프로그래밍에 익숙해져있는 사람들은 굳이 Python 언어를 추가적으로 배울 필요가 없다.
(성능상에 차이가 정말 미묘한 근소차이기 때문이다.)chromeOS 에 Linux Apps 실행이 가능하도록 개발되었다. 이런 점을 고려하자면 Tensorflow.js 도 충분히 만들 이유가 있겠다고 유추한다.
모바일앱과 IoT는 Tensorflow LITE, 모바일/데스크탑 브라우저는 Tensorflow.js
Tensorflow LITE
- 클라이언트와 서버의 영상데이터를 추론하는 동안 막대한 네트워크 비용이 발생된다.
- 큰 모델의 크기를 감당할 만한 클라이언트가 아직 존재하지 않거나 그 기술이 미미하기 때문에 많이 보완해야한다.
- 공식홈페이지에서 데모를 제공하고 있기 때문에 확인해보자.
Tensorflow HUB
- 모델을 로컬에 저장하고 로드하는 것이 아닌, HUB로부터 링크를 이용하여 로드하는(서비스를 제공하는) 방식.
- 미리 학습된 가중치와 그래프를 포함하는 모듈들, 재사용 및 재학습 가능.
- 사용법 : hub.Module(“링크…/
/<Module 이름>/ “[,trainable=True]) - trainable : 내가 가지고 있는 모듈을 재학습해주는 파라미터 기능
- Google 이 제공하는 Modules
- Image - Inception, Mobilenet, NASNet, PNASNet, ResNet
- Text : NNLM (한국어 지원)
- Etc : Progan, Delf, I3D
- 기존 모델 재사용 용이, 중복 배포 방지, 진입장벽 낮춤
Tensorflow Model Analysis
- Tensorflow 평가 라이브러리, 많은 양 데이터 분산 평가, Jupyter 통한 시각화 처리
- Tensorflow Model Analysis → Eval Graph → Tensorflow Serving 순으로 진행
Tensorflow Serving
- Service → (데이터 전달) → 서버 → 학습 → 모델 → Service 의 문제 해결점을 Tensorflow Serving 이 그 사이에서 Serving 하여, 다중 모델, Thread Isolation, 높은 처리량, 적용을 한다.
- Service → (데이터 전달) → 서버 → 학습 → 모델 → (gRPC 이용) → Serving → Service
- RESTful API 적용 가능. (2018. 7. 7 기준 아직 미공개)
요약
- Tensorflow 는 백엔드 뿐만 아니라 클라이언트 확장도 이뤄지고있다.
- 점점 다양한 개발자를 수용하기 위해 개발 편의성을 늘리고 있다.
- 다양한 플랫폼으로 Tensorflow 가 진출하고 있다.
- Tensorflow 를 배우자