한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
TensorFlow Lite를 사용한 온디바이스 대화형 모델링에 대해 확인해 보세요.
2017년 12월 20일 수요일
<블로그 원문은
여기
에서 확인하실 수 있으며, 블로그 번역 리뷰는
곽동현(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 버전을 사용하는 개발자는 최종 애플리케이션에 이와 같은 방법도 따를 것을 권장합니다.
↩
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
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