Android용 TensorFlow Lite

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

학습 로드맵

코드 디자인 TensorFlow Lite로 Android 앱을 구축하기 위한 개념과 코드 디자인을 알아보세요. 계속 읽어보세요 .
코드 빠른 시작 Quickstart를 사용하여 즉시 TensorFlow Lite로 Android 앱 코딩을 시작하세요.
ML 모델 TensorFlow Lite로 ML 모델을 선택하고 사용하는 방법에 대해 알아보려면 모델 문서를 참조하세요.

기계 학습 모델

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 모델에 대한 기능 실행 흐름.

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

  • 모델 실행을 위한 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 앱에서 이러한 런타임 환경에 액세스합니다. 앱에서 표준 런타임 환경을 사용하는 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.

개발 API 및 라이브러리

TensorFlow Lite 머신러닝 모델을 Android 앱에 통합하는 데 사용할 수 있는 두 가지 주요 API가 있습니다.

Interpreter API는 기존 TensorFlow Lite 모델로 추론을 실행하기 위한 클래스와 메서드를 제공합니다. TensorFlow Lite Task API는 Interpreter API를 래핑하고 시각적, 오디오 및 텍스트 데이터 처리에 대한 일반적인 기계 학습 작업을 수행하기 위한 더 높은 수준의 프로그래밍 인터페이스를 제공합니다. 특정 사용 사례를 지원하지 않는 경우를 제외하고 Task API를 사용해야 합니다.

도서관

Google Play 서비스를 사용하여 Task API 또는 Interpreter API에 액세스할 수 있습니다. TensorFlow Lite Tasks 용 독립 실행형 라이브러리 또는 Android 앱의 TensorFlow Lite 코어지원 라이브러리를 사용할 수도 있습니다. TensorFlow Lite 라이브러리 및 런타임 환경 사용에 대한 프로그래밍 세부정보는 Android용 개발 도구를 참조하세요.

모델 획득

Android 앱에서 모델을 실행하려면 TensorFlow Lite 형식 모델이 필요합니다. 사전 구축된 모델을 사용하거나 TensorFlow로 모델을 구축하고 이를 Lite 형식으로 변환할 수 있습니다. Android 앱용 모델을 얻는 방법에 대한 자세한 내용은 TensorFlow Lite 모델 섹션을 참조하세요.

입력 데이터 처리

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

TensorFlow Lite 작업 라이브러리는 시각적, 텍스트 및 오디오 데이터를 TensorFlow Lite 모델에서 처리할 수 있는 올바른 모양의 텐서로 변환하기 위한 데이터 처리 논리를 제공합니다.

추론 실행

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

모델이 특정 장치에 대해 추론을 생성할 수 있는 속도는 처리되는 데이터의 크기, 모델의 복잡성, 사용 가능한 컴퓨팅 리소스(예: 메모리, 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와 함께 사용할 고성능 모델을 구축하는 방법에 대한 자세한 내용은 모델 섹션의 성능 모범 사례를 참조하세요.

다음 단계