Local blog for Korean speaking developers
TensorFlow Lite를 사용한 온디바이스 대화형 모델링에 대해 확인해 보세요.
Wednesday, December 20, 2017
<블로그 원문은
여기
에서 확인하실 수 있으며, 블로그 번역 리뷰는
곽동현(Machine Learning GDE)
님이 참여해 주셨습니다.>
게시자: Sujith Ravi, Google Expander 팀 연구원
올해 초, 우리는 스마트 메시징을 위한
'온디바이스' 기계 학습
기술을 최초로 적용한
Android Wear 2.0
을 출시했습니다. 이를 통해 이전에는
Gmail
,
Inbox
및
Allo
에서 사용할 수 있었던 Smart Reply 같은 클라우드 기반 기술을 클라우드에 연결할 필요 없이 타사 메시징 앱을 비롯한 애플리케이션 내에서 최초로 직접 사용할 수 있게 되었습니다. 이에 따라 이동 중에 스마트워치에서 바로 수신되는 채팅 메시지에 응답할 수 있습니다.
저희는 오늘 모바일 및 내장형 기기용 TensorFlow 경량 솔루션인
TensorFlow Lite
를 발표합니다. 이 프레임워크는 작은 메모리 사용 공간 및 신속한 성능에 중점을 두고 기계 학습 모델의 짧은 시간 내 추론에 맞게 최적화되었습니다. 우리는 개발자와 연구자들이 온디바이스 추론으로 구동되는 새로운 머신 인텔리전스 기능을 더욱 쉽게 빌드할 수 있도록 하기 위해
온디바이스 대화형 모델
과 함께, TensorFlow Lite로 구동되는 자연어 애플리케이션의 사례를 제공하는
데모 앱
을 라이브러리의 일부로 출시했습니다. 이 모델에서는 채팅 애플리케이션에 쉽게 플러그인할 수 있는 효율적인 추론 기능을 통해 대화형 채팅 메시지 입력에 대한 회신 제안을 생성함으로써 온디바이스 대화형 인텔리전스를 구동합니다.
우리가 출시한 온디바이스 대화형 모델에서는
ProjectionNet: 신경 프로젝션 기술을 사용한 효율적인 온디바이스 딥 네트워크 학습(Learning Efficient On-Device Deep Networks Using Neural Projections)
에서 처음 제시된 결합 최적화 프레임워크를 기반으로 컴팩트 신경망(및 기타 기계 학습 모델)을 훈련하는 데 새로운 ML 아키텍처를 사용합니다. 이 아키텍처는 컴팩트 비트 벡터 표현으로 입력을 변환하는 효율적인 '프로젝션' 작업을 사용하여 컴퓨팅 성능과 메모리가 제한적인 상황에서도 휴대기기에서 효율적으로 실행될 수 있습니다. 유사한 입력은 프로젝션 유형에 따라 조밀하거나 희소성을 띠는 가까운 벡터로 프로젝션됩니다. 예를 들어,
"안녕, 어떻게 지내?"
및
"친구야, 어떻게 지내니?"
라는 메시지는 동일한 벡터 표현으로 프로젝션될 수 있습니다.
대화형 모델은 이 아이디어를 바탕으로 적은 계산 및 메모리 사용 공간에서 이러한 효율적인 작업을 결합합니다. 우리는 두 가지 모델 유형을 결합으로 훈련하는 ML 프레임워크(즉, 컴팩트
프로젝션
모델(위 설명)과
트레이너
모델 결합)를 사용하여 이러한 온디바이스 모델을 완벽하게 훈련했습니다. 이 두 모델은 결합 방식으로 훈련되며, 여기서 프로젝션 모델은 트레이너 모델로부터 학습합니다. 트레이너는 전문가라는 특징을 띠고 더욱 크고 복잡한 ML 아키텍처를 사용하여 모델링되는 반면, 프로젝션 모델은 전문가로부터 학습하는 학생과 유사합니다. 훈련 중에
양자화
또는
증류
와 같은 다른 기법을 추가로 적용하여 더욱 밀도 높은 압축을 구현하거나 선택적으로 목적 함수의 특정 부분을 최적화할 수도 있습니다. 훈련을 마치고 나면 기기에서 추론을 위해 더 작은 프로젝션 모델을 직접 사용할 수 있습니다.
추론을 위해, 모바일 플랫폼에서 신속하게 실행할 수 있도록 최적화된 TensorFlow Lite 작업 세트로 훈련된 프로젝션 모델이 컴파일된 후 기기에서 바로 실행됩니다. 온디바이스 대화형 모델에 대한 TensorFlow Lite 추론 그래프는 다음과 같습니다.
온디바이스 대화형 모델에 대한 TensorFlow Lite 실행.
오늘 출시되는 오픈소스 대화형
모델
(
코드
와 함께 출시)은 위에서 설명한 결합 ML 아키텍처를 사용하여 완벽히 훈련된 모델입니다. 오늘 출시에는
데모 앱
도 포함되어 있으므로 휴대기기에서 원터치 스마트 회신 기능을 쉽게 다운로드해 사용해 보실 수 있습니다. 이 아키텍처를 통해 애플리케이션 요구 사항을 기준으로 모델 크기와 예측 품질을 손쉽게 구성할 수 있습니다.
여기
서 이 모델이 올바른 효과를 발휘하는 샘플 메시지 목록을 확인할 수 있습니다. 시스템에서는 채팅 대화에서 관찰된 인기 있는 응답 인텐트에서 학습되고 컴파일된 고정된 세트를 통해 회신 제안을 폴백할 수도 있습니다. 기본 모델은 Google이 해당 앱에서 Smart Reply 응답에 사용하는 모델과 다릅니다
1
.
대화형 모델 이외의 옵션
흥미롭게도, 위에서 설명한 ML 아키텍처에서는 기본 모델을 유연하게 선택할 수 있습니다. 우리는 이 아키텍처를 여러 기계 학습 접근 방식과도 호환되도록 설계했습니다. 예를 들어, TensorFlow 딥 러닝에 사용하는 경우 기본 모델에 대해 경량 신경망(
ProjectionNet
)을 학습하는 반면, 다른 아키텍처(
ProjectionGraph
)는 신경망 대신
그래프
프레임워크를 사용하는 모델을 나타냅니다.
결합 프레임워크는 여러 가지 ML 모델링 아키텍처를 사용하는 작업에 대해 경량의 온디바이스 모델을 훈련하는 데 사용할 수도 있습니다. 일례로서, 우리는 동적 프로젝션 작업으로 구성된 단순한 프로젝션 아키텍처 및 완전히 연결된 몇 가지 좁은 계층이 결합된 트레이너 모델에 대해 복잡한 피드 전달 또는 반복 아키텍처(예: LSTM)를 사용하는 ProjectionNet 아키텍처를 도출했습니다. 전체 아키텍처는 TensorFlow에서 역전파를 사용하여 완벽하게 훈련되며 훈련을 마치고 나면 간결한 ProjectionNet이 추론에 직접 사용됩니다. 우리는 이 방법을 사용하여 모델 크기를 상당히 축소시키고(최대 몇 자릿수 이상 축소) 여러 시각적 및 언어 분류 작업(몇 가지 예는
여기
를 참조)에 대한 정확성과 관련하여 높은 성능을 실현하는 소형 ProjectionNet 모델을 성공적으로 훈련했습니다. 마찬가지로
반지도학습
설정에서도
그래프 학습 프레임워크
를 사용하여 다른 경량 모델을 훈련했습니다.
온디바이스 모델 훈련을 위한 ML 아키텍처: 딥 러닝을 사용하여 훈련된
ProjectionNet
(왼쪽)과 그래프 학습을 사용하여 훈련된
ProjectionGraph
(오른쪽).
우리는 앞으로도 계속해서 TensorFlow Lite 모델을 향상하고 업데이트된 모델을 오픈소스로 출시할 예정입니다. 이러한 ML 아키텍처를 사용하여 학습된 출시 모델(및 향후 모델)은 많은 자연어 및 컴퓨터 버전 애플리케이션에 재사용하거나 머신 인텔리전스 실현을 위해 기존 앱에 연결할 수 있을 것입니다. 기계 학습 및 자연어 처리 커뮤니티에서 이를 바탕으로 우리가 아직 생각하지 못한 새로운 문제 및 활용 사례를 처리할 수 있게 되기를 바랍니다.
감사의 말
Yicheng Fan 씨와 Gaurav Nemade 씨가 이 작업에 막대하게 기여했습니다. Rajat Monga, Andre Hentz, Andrew Selle, Sarah Sirajuddin과 TensorFlow 팀의 Anitha Vijayakumar, 그리고 Robin Dua, Patrick McGregor, Andrei Broder, Andrew Tomkins과 같은 분들은 물론 Google Expander 팀에게도 감사의 인사를 전합니다.
1
출시된 온디바이스 모델은 휴대폰 및 웨어러블 기기에서 지연 시간이 짧은 소규모 애플리케이션에 최적화할 목적으로 훈련되었습니다. 하지만 Google 앱의 Smart Reply 예측은 그보다 크고 복잡한 모델을 사용하여 생성되었습니다. 또한, 프로덕션 시스템에서는 부적절한 콘텐츠를 감지하도록 훈련된 여러 분류자를 사용하며 추가 필터링 및 조정을 적용하여 사용자 환경 및 품질 수준을 최적화하고 있습니다. 오픈소스 TensorFlow Lite 버전을 사용하는 개발자는 최종 애플리케이션에 이와 같은 방법도 따를 것을 권장합니다.
↩
Tag
ad
AdMob
admob_sdk
Advanced Power Searching
Android
Android App Quality
android back button
Android back end
Android navigation
Android Player API
android server
android up button
androidL
androidtv
androidwear
App Translate Service
Audio Focus
Chrome
Chromecast
Code-in 2012
Core App Quality Guidelines
Daydream
design
designing for Tablets
designsprint
dialog
Drive SDK
Game Developers Conference
GCi
GCi 참가자
GCPNEXT16
GDA
GDC
gdg
gdgkorea
Go
Google Cast
Google Code-in
Google Play
Google Play 스토어
Google Search
Google Summer of Code
Google+ Sign-In
Google+ Sign-In Bootcamps
Google+ 로그인
Google+ 로그인 부트캠프
googleanalytics
googleio
GooglePlay #AndroidDevStory #PlayStore #MaterialDesign #AndroidStudio #DeveloperConsole
GSOC
hackathon
HackFair 출품작
In-app Billing
io
io2014
ioapp
iobytes
ioextended
IRC Talk
IRC 서버
java7
kitkat
launch
Marshmallow
materialdesign
mobile ad
mobile_ads_sdk
multiscreen
NaCl
Native YouTube Player API
NRRN 사용 제한
Power Searching
product launch
SD 카드에 앱 설치
SecureKeyFactory
ux
webview
YouTube
YouTube Android Player API
YouTube API
YouTube API 3.0
YouTube API Update RSS Feed
광고
구글 HackFair
구글 Summer of Code
구글 개발자 사이트 홍보
구글 개발자 아카데미
구글 개발자 온라인 강좌
구글 검색
구글 고급 파워 서치
구글 드라이브 앱
구글 부트캠프
구글 아카데미
구글 코드인
구글 클라우드 플랫폼
구글 플러스 로그인
구글 핵페어
구글로 로그인하기
네이티브 클라이언트
데이드림
멀티 모바일
멀티 플랫폼
모바일 광고
수익화
스마트 브라우저
안드로이드
안드로이드 4.2
안드로이드 Back 버튼
안드로이드 Up 버튼
안드로이드 개인 정보 보호 정책
안드로이드 네비게이션
안드로이드 데이드림
안드로이드 디자인
안드로이드 방향탐색
안드로이드 보안
안드로이드 사용자 데이터
안드로이드 서버 백엔드
안드로이드 앱 품질
안드로이드 원격 제어
안드로이드 태블릿 디자인
안드로이드 현지화
안드로이드 화면 보호기
애드몹
애플리케이션 SD카드 설치
애플리케이션 개발 주민등록번호 사용 제한
애플리케이션 외부 저장 장치
앱 품질 체크리스트
오픈 소스
오픈소스 프로그램
웹 DMB
유튜브
유튜브 API
유튜브 API 3.0
유튜브 API 업데이트
유튜브 모바일
유튜브 안드로이드 플레이어 API
인앱 결제
인터넷상 주민등록번호 수집 이용 제한
주민등록번호 사용제한
추천이미지
출시
크롬브라우저
태블릿 디자인
태블릿용 앱
파워서치
한국 구글 개발자
한국 구글 개발자 사이트
핵심 앱 품질 가이드라인
핵심 태블릿 앱 품질 체크리스트
핵페어
핵페어 출품작
Archive
2019
Jan
2018
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2017
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2016
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Mar
Feb
Jan
2011
Dec
Nov
Feed
Google
on