Android용 TensorFlow Lite

TensorFlow Lite를 사용하면 Android 앱에서 TensorFlow 머신러닝 (ML) 모델을 실행할 수 있습니다. TensorFlow Lite 시스템은 하드웨어 가속 옵션을 포함하여 Android에서 모델을 빠르고 효율적으로 실행하기 위한 사전 빌드된 맞춤설정 가능한 실행 환경을 제공합니다.

머신러닝 모델

TensorFlow Lite는 더 작고 이동 가능하며 효율적인 머신러닝 모델 형식으로 변환되는 TensorFlow 모델을 사용합니다. Android의 TensorFlow Lite와 함께 사전 빌드된 모델을 사용하거나 자체 TensorFlow 모델을 빌드하여 TensorFlow Lite 형식으로 변환할 수 있습니다.

이 페이지에서는 이미 빌드된 머신러닝 모델을 사용하는 방법을 설명하며 모델의 빌드, 학습, 테스트 또는 변환은 다루지 않습니다. 모델 페이지에서 TensorFlow Lite용 머신러닝 모델 선택, 수정, 빌드, 변환에 대해 자세히 알아보세요.

Android에서 모델 실행

Android 앱 내에서 실행되는 TensorFlow Lite 모델은 데이터를 가져와 처리하고 모델의 로직을 기반으로 예측을 생성합니다. TensorFlow Lite 모델을 실행하려면 특별한 런타임 환경이 필요하며 모델에 전달되는 데이터는 텐서라고 하는 특정 데이터 형식이어야 합니다. 모델이 데이터를 처리할 때(추론 실행이라고 함) 모델은 예측 결과를 새 텐서로 생성하고 Android 앱에 전달하여 사용자에게 결과를 표시하거나 추가 비즈니스 로직을 실행하는 등의 조치를 취할 수 있도록 합니다.

Android 앱에서 TensorFlow Lite 모델의 기능 실행 흐름

그림 1. Android 앱에서 TensorFlow Lite 모델의 기능 실행 흐름

기능 디자인 수준에서 Android 앱은 TensorFlow Lite 모델을 실행하려면 다음 요소가 필요합니다.

  • 모델 실행을 위한 TensorFlow Lite 런타임 환경
  • 데이터를 텐서로 변환하는 모델 입력 핸들러
  • 출력 결과 텐서를 수신하여 예측 결과로 해석하는 모델 출력 핸들러

다음 섹션에서는 TensorFlow Lite 라이브러리 및 도구에서 이러한 기능 요소를 제공하는 방법을 설명합니다.

TensorFlow Lite로 앱 빌드

이 섹션에서는 Android 앱에서 TensorFlow Lite를 구현하기 위한 가장 일반적인 권장 경로를 설명합니다. 런타임 환경개발 라이브러리 섹션에 가장 주의해야 합니다. 커스텀 모델을 개발한 경우 고급 개발 경로 섹션을 검토하세요.

런타임 환경 옵션

Android 앱에서 모델을 실행하기 위해 런타임 환경을 사용 설정하는 방법에는 여러 가지가 있습니다. 선호되는 옵션은 다음과 같습니다.

일반적으로 Google Play 서비스가 제공하는 런타임 환경을 사용해야 합니다. 동적으로 로드되어 앱 크기를 더 작게 유지하기 때문에 표준 환경보다 공간 효율적입니다. 또한 Google Play 서비스는 TensorFlow Lite 런타임의 최신 안정화 버전을 자동으로 사용하여 시간이 지남에 따라 추가 기능을 제공하고 성능을 개선합니다. Google Play 서비스가 포함되지 않은 기기에 앱을 제공하거나 ML 런타임 환경을 면밀하게 관리해야 한다면 표준 TensorFlow Lite 런타임을 사용해야 합니다. 이 옵션은 추가 코드를 앱에 번들로 묶어 앱의 다운로드 크기를 늘리는 대신 앱의 ML 런타임을 더 세부적으로 제어할 수 있습니다.

TensorFlow Lite 개발 라이브러리를 앱 개발 환경에 추가하여 Android 앱에서 이러한 런타임 환경에 액세스합니다. 앱에서 표준 런타임 환경을 사용하는 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.

라이브러리

Google Play 서비스를 사용하여 인터프리터 API에 액세스할 수 있습니다. Android 앱에서 TensorFlow Lite 핵심지원 라이브러리를 사용할 수 있습니다. TensorFlow Lite 라이브러리 및 런타임 환경 사용에 관한 프로그래밍 세부정보는 Android용 개발 도구를 참고하세요.

모델 가져오기

Android 앱에서 모델을 실행하려면 TensorFlow Lite 형식 모델이 필요합니다. 사전 빌드된 모델을 사용하거나 TensorFlow로 모델을 빌드하고 라이트 형식으로 변환할 수 있습니다. Android 앱용 모델을 가져오는 방법에 대한 자세한 내용은 TensorFlow Lite 모델 페이지를 참조하세요.

입력 데이터 처리

ML 모델에 전달하는 모든 데이터는 특정한 데이터 구조를 가진 텐서여야 하며, 이를 텐서의 형태라고 합니다. 모델을 사용하여 데이터를 처리하려면 앱 코드가 이미지, 텍스트, 오디오 데이터와 같은 네이티브 형식의 데이터를 모델에 필요한 형태의 텐서로 변환해야 합니다.

추론 실행

예측 결과를 생성하기 위해 모델을 통해 데이터를 처리하는 것을 추론 실행이라고 합니다. Android 앱에서 추론을 실행하려면 TensorFlow Lite 런타임 환경, model, 입력 데이터가 필요합니다.

특정 기기에서 모델이 추론을 생성할 수 있는 속도는 처리된 데이터의 크기, 모델의 복잡성, 사용 가능한 컴퓨팅 리소스(예: 메모리 및 CPU) 또는 가속기라고 하는 특수 프로세서에 따라 다릅니다. 머신러닝 모델은 위임이라고 하는 TensorFlow Lite 하드웨어 드라이버를 사용하여 그래픽 처리 장치 (GPU) 및 텐서 처리 장치 (TPU)와 같은 특수 프로세서에서 더 빠르게 실행할 수 있습니다. 모델 처리의 대리자 및 하드웨어 가속에 관한 자세한 내용은 하드웨어 가속 개요를 참고하세요.

출력 결과 처리

모델은 예측 결과를 텐서로 생성합니다. 텐서는 Android 앱에서 작업을 수행하거나 사용자에게 결과를 표시하여 처리해야 합니다. 모델 출력 결과는 이미지 분류에서 단일 결과 (0 = 개, 1 = 고양이, 2 = 새)에 해당하는 숫자처럼 단순할 수 있으며, 예측 신뢰도 등급이 0과 1 사이인 이미지의 여러 분류된 객체에 대한 여러 경계 상자와 같이 훨씬 복잡한 결과까지 가능합니다.

고급 개발 과정

보다 정교하고 맞춤설정된 TensorFlow Lite 모델을 사용하는 경우 위에서 설명한 것보다 고급 개발 접근 방식을 사용해야 할 수 있습니다. 다음 섹션에서는 Android 앱에서 TensorFlow Lite용으로 모델을 실행하고 개발하는 고급 기법을 설명합니다.

고급 런타임 환경

TensorFlow Lite용 표준 런타임 및 Google Play 서비스 런타임 환경 외에도 Android 앱에서 사용할 수 있는 추가 런타임 환경이 있습니다. TensorFlow Lite용 표준 런타임 환경에서 지원되지 않는 ML 작업을 사용하는 머신러닝 모델이 이러한 환경에 가장 많이 사용됩니다.

  • TensorFlow Lite용 Flex 런타임
  • 커스텀 빌드된 TensorFlow Lite 런타임

TensorFlow Lite Flex 런타임을 사용하면 모델에 필요한 특정 연산자를 포함할 수 있습니다. 모델을 실행하는 고급 옵션으로 Android용 TensorFlow Lite를 빌드하여 TensorFlow 머신러닝 모델을 실행하는 데 필요한 연산자와 기타 기능을 포함할 수 있습니다. 자세한 내용은 Android용 TensorFlow Lite 빌드를 참고하세요.

C 및 C++ API

TensorFlow Lite는 C 및 C++를 사용하여 모델을 실행하기 위한 API도 제공합니다. 앱에서 Android NDK를 사용하는 경우 이 API를 사용하는 것이 좋습니다. 여러 플랫폼 간에 코드를 공유하려면 이 API를 사용하는 것이 좋습니다. 이 개발 옵션에 관한 자세한 내용은 개발 도구 페이지를 참고하세요.

서버 기반 모델 실행

일반적으로 Android 기기의 앱에서 모델을 실행하여 지연 시간을 단축하고 사용자를 위해 향상된 데이터 개인 정보 보호를 활용해야 합니다. 하지만 모델을 클라우드 서버(기기 외부의)에서 실행하는 것이 더 나은 해결 방법인 경우도 있습니다. 예를 들어 사용자의 Android 기기에 맞는 크기로 쉽게 압축할 수 없거나 이러한 기기에서 적절한 성능으로 실행할 수 있는 대형 모델이 있는 경우입니다. 또한 다양한 기기에서 모델의 일관된 성능이 최우선이라면 이 접근 방식이 선호될 수 있습니다.

Google Cloud는 TensorFlow 머신러닝 모델을 실행하기 위한 모든 서비스 모음을 제공합니다. 자세한 내용은 Google Cloud의 AI 및 머신러닝 제품 페이지를 참조하세요.

커스텀 모델 개발 및 최적화

고급 개발 과정에는 맞춤 머신러닝 모델을 개발하고 이러한 모델을 Android 기기에서 사용할 수 있도록 최적화하는 작업이 포함될 수 있습니다. 커스텀 모델을 빌드하려는 경우 모델에 양자화 기법을 적용하여 메모리 및 처리 비용을 절감해야 합니다. TensorFlow Lite와 함께 사용할 고성능 모델을 빌드하는 방법에 관한 자세한 내용은 모델 섹션의 성능 권장사항을 참고하세요.