모델 변환 개요

TensorFlow Lite에서 사용하는 머신러닝 (ML) 모델은 원래 TensorFlow 핵심 라이브러리와 도구를 사용하여 빌드하고 학습시킵니다. TensorFlow Core로 모델을 빌드한 후에는 TensorFlow Lite 모델이라는 더 작고 효율적인 ML 모델 형식으로 변환할 수 있습니다. 이 섹션에서는 TensorFlow 모델을 TensorFlow Lite 모델 형식으로 변환하는 방법을 안내합니다.

전환 워크플로

TensorFlow 모델을 TensorFlow Lite 형식으로 변환하는 작업은 ML 모델의 콘텐츠에 따라 몇 가지 경로를 취할 수 있습니다. 이 프로세스의 첫 번째 단계로 모델을 평가하여 직접 변환할 수 있는지 확인해야 합니다. 이 평가는 모델이 사용하는 TensorFlow 작업을 기준으로 표준 TensorFlow Lite 런타임 환경에서 모델의 콘텐츠를 지원하는지 확인합니다. 모델에서 지원되는 집합 외부의 연산을 사용하는 경우 모델을 리팩터링하거나 고급 변환 기법을 사용할 수 있습니다.

아래 다이어그램은 모델 변환의 대략적인 단계를 보여줍니다.

TFLite 전환 워크플로

그림 1. TensorFlow Lite 전환 워크플로

다음 섹션에서는 TensorFlow Lite와 함께 사용할 모델을 평가하고 변환하는 프로세스를 간략하게 설명합니다.

입력 모델 형식

변환기는 다음 입력 모델 형식으로 사용할 수 있습니다.

Keras와 구체적인 함수 모델을 모두 저장된 모델로 저장하고 권장 경로를 사용하여 변환할 수 있습니다.

Jax 모델이 있는 경우 TFLiteConverter.experimental_from_jax API를 사용하여 TensorFlow Lite 형식으로 변환할 수 있습니다. 이 API는 실험용 모드에서는 변경될 수 있습니다.

전환 평가

모델 변환을 시도하기 전에 모델을 평가하는 것은 중요한 단계입니다. 평가할 때는 모델의 콘텐츠가 TensorFlow Lite 형식과 호환되는지 확인해야 합니다. 또한 모델이 사용하는 데이터 크기, 하드웨어 처리 요구사항, 모델의 전체 크기 및 복잡성 측면에서 모델이 휴대기기 및 에지 기기에 사용하기에 적합한지 확인해야 합니다.

많은 모델에서 변환기는 즉시 작동합니다. 그러나 TensorFlow Lite 기본 제공 연산자 라이브러리는 TensorFlow 핵심 연산자의 하위 집합을 지원하므로 일부 모델은 TensorFlow Lite로 변환하기 전에 추가 단계가 필요할 수 있습니다. 또한 TensorFlow Lite에서 지원되는 일부 작업은 성능상의 이유로 사용 요구사항이 제한됩니다. 변환을 위해 모델을 리팩터링해야 하는지 확인하려면 연산자 호환성 가이드를 참조하세요.

모델 변환

TensorFlow Lite 변환기는 TensorFlow 모델을 사용하고 TensorFlow Lite 모델 (.tflite 파일 확장자로 식별되는 최적화된 FlatBuffer 형식)을 생성합니다. 저장된 모델을 로드하거나 코드에서 만든 모델을 직접 변환할 수 있습니다.

변환기는 모델의 변환을 맞춤설정하는 3가지 기본 플래그 (또는 옵션)를 사용합니다.

  1. 호환성 플래그를 사용하면 변환에서 맞춤 연산자를 허용해야 하는지 여부를 지정할 수 있습니다.
  2. 최적화 플래그를 사용하면 변환 중에 적용할 최적화 유형을 지정할 수 있습니다. 가장 일반적으로 사용되는 최적화 기법은 학습 후 수량화입니다.
  3. 메타데이터 플래그를 사용하면 변환된 모델에 메타데이터를 추가하여 기기에 모델을 배포할 때 플랫폼별 래퍼 코드를 더 쉽게 만들 수 있습니다.

Python API 또는 명령줄 도구를 사용하여 모델을 변환할 수 있습니다. 모델에서 변환기를 실행하는 방법에 관한 단계별 안내는 TF 모델 변환 가이드를 참고하세요.

일반적으로 표준 TensorFlow Lite 런타임 환경 또는 TensorFlow Lite (베타)용 Google Play 서비스 런타임 환경으로 모델을 변환합니다. 일부 고급 사용 사례에는 모델 런타임 환경의 맞춤설정이 필요하며, 이를 위해서는 변환 절차에서 추가 단계가 필요합니다. 자세한 내용은 Android 개요의 고급 런타임 환경 섹션을 참고하세요.

고급 전환

모델에서 변환기를 실행하는 동안 오류가 발생하면 연산자 호환성 문제가 있을 가능성이 높습니다. 모든 TensorFlow 작업이 TensorFlow Lite에서 지원되지는 않습니다. 모델을 리팩터링하거나, 수정된 TensorFlow Lite 형식 모델과 해당 모델의 커스텀 런타임 환경을 만들 수 있는 고급 변환 옵션을 사용하여 이러한 문제를 해결할 수 있습니다.

  • TensorFlow 및 TensorFlow Lite 모델 호환성 고려사항에 대한 자세한 내용은 모델 호환성 개요를 참조하세요.
  • 모델 호환성 개요의 주제에서는 연산자 선택 가이드와 같은 모델 리팩터링을 위한 고급 기법을 다룹니다.
  • 작업 및 제한사항의 전체 목록은 TensorFlow Lite 작업 페이지를 참조하세요.

다음 단계

  • 모델 변환을 빠르게 시작하려면 TF 모델 변환 가이드를 참조하세요.
  • 학습 후 수량화와 같은 기법을 사용하여 변환된 모델을 최적화하는 방법은 최적화 개요를 참조하세요.
  • 모델에 메타데이터를 추가하는 방법은 메타데이터 추가 개요를 참조하세요. 메타데이터는 모델에 대한 설명과 코드 생성기에서 활용할 수 있는 정보를 다른 용도로 제공합니다.