LiteRT 개요에 오신 것을 환영합니다

LiteRT는 효율적인 변환, 런타임, 최적화를 사용하여 에지 플랫폼에서 고성능 ML 및 생성형 AI를 배포하기 위한 Google의 온디바이스 프레임워크입니다.

LiteRT 2.x에는 최신 런타임 API인 CompiledModel API가 포함되어 있습니다. 이 API는 하드웨어 가속과 온디바이스 ML 및 AI 애플리케이션의 전반적인 성능을 통해 인터프리터 API (TensorFlow Lite API라고도 함)를 개선합니다. CompiledModel API는 베타 출시되었으며 Kotlin과 C++에서 모두 사용할 수 있습니다.

LiteRT 주요 기능

지원되는 모델

LiteRT는 Pytorch, TensorFlow, JAX 프레임워크에서 .tflite 또는 .litertlm 형식으로의 간소화된 변환을 지원합니다.

LiteRT로 개발 간소화

자동 가속기 선택과 명시적 위임 생성의 차이점 간단한 NPU 런타임 및 모델 배포 우수한 성능을 위한 효율적인 I/O 버퍼 처리 및 비동기 실행

동급 최고의 GPU 성능

ML 드리프트로 구동되며 이제 GPU API에서 ML 및 생성형 AI 모델을 모두 지원합니다.

통합 NPU 가속

주요 칩셋 제공업체의 간소화된 NPU 액세스를 사용하여 모델을 가속화하세요.

LiteRT를 사용한 간소화된 LLM 지원

LiteRT로 구동되는 LiteRT-LM을 사용할 수 있습니다. LiteRT-LM은 최신 LLM과 멀티모달리티, 제한된 디코딩 등의 유용한 기능을 지원합니다.

개발 워크플로

LiteRT는 Android, iOS, 웹, IoT, 데스크톱/노트북에서 완전히 기기 내 추론을 실행합니다. 기기에 관계없이 다음은 가장 일반적인 워크플로이며, 추가 안내 링크가 포함되어 있습니다.

LiteRT 개발 워크플로 그래프

ML 과제에 가장 적합한 솔루션 식별

LiteRT는 머신러닝 문제 해결과 관련하여 사용자에게 높은 수준의 유연성과 맞춤설정 기능을 제공하므로 특정 모델이나 전문 구현이 필요한 사용자에게 적합합니다. 즉시 사용 가능한 솔루션을 찾는 사용자는 객체 감지, 텍스트 분류, LLM 추론과 같은 일반적인 머신러닝 작업을 위한 기성 솔루션을 제공하는 MediaPipe Tasks를 선호할 수 있습니다.

모델 획득 및 준비

LiteRT 모델은 .tflite 파일 확장자를 사용하는 FlatBuffers라는 효율적으로 이동 가능한 형식으로 표현됩니다.

다음과 같은 방법으로 LiteRT 모델을 획득할 수 있습니다.

  • 선행 학습된 모델 획득: 이미지 세분화, 객체 감지 등 인기 있는 ML 워크로드용

    가장 간단한 방법은 이미 .tflite 형식인 LiteRT 모델을 사용하는 것입니다. 이러한 모델에는 추가 전환 단계가 필요하지 않습니다.

    모델 유형 선행 학습된 모델 소스
    클래식 ML
    (.tflite 형식)
    Kaggle 또는 HuggingFace를 방문하세요.
    예: 이미지 세분화 모델샘플 앱
    생성형 AI
    (.litertlm 형식)
    LiteRT Hugging Face 페이지
    예: Gemma Family
  • 사전 학습된 모델을 사용하지 않으려면 선택한 PyTorch, TensorFlow 또는 JAX 모델을 LiteRT 모델로 변환합니다. [PRO USER]

    모델 프레임워크 샘플 모델 변환 도구
    PyTorch Hugging Face
    Torchvision
    링크
    TensorFlow Kaggle 모델
    Hugging Face
    링크
    잭스 Hugging Face 링크
  • 생성형 API를 사용하여 추가 최적화를 위해 LLM을 작성합니다. [전문가 사용자]

    Google의 생성형 API 라이브러리는 모바일 친화적인 추상화를 사용하여 Gemma, TinyLlama, 기타와 같은 트랜스포머 모델을 구성하기 위한 PyTorch 내장 빌딩 블록을 제공합니다. 이를 통해 Google은 모바일 런타임인 LiteRT에서 변환과 성능이 우수한 실행을 보장할 수 있습니다. 생성형 API 문서를 참고하세요.

양자화[전문 사용자]

고급 개발자를 위한 AI Edge Quantizer는 변환된 LiteRT 모델을 양자화하는 도구입니다. 고급 사용자가 리소스 요구 모델 (예: 생성형 AI 모델).

머신러닝 모델 및 생성형 AI 모델의 경우 Ai-Edge-Quantization 문서를 참고하세요.

시작하기 위한 기본 요건

  • Python 3.10~3.12
  • .tflite 모델 파일
  • 자세한 내용은 각 플랫폼 섹션에서 확인할 수 있습니다.

에지 플랫폼의 앱에 모델 통합

LiteRT 모델을 구현하여 Android, iOS, 웹, IoT, 데스크톱 기기에서 완전히 기기 내 추론을 실행할 수 있습니다. LiteRT에는 Python, Android용 Java 및 Kotlin, iOS용 Swift, 마이크로 기기용 C++ API가 포함되어 있습니다.

다음 가이드를 사용하여 원하는 플랫폼에 LiteRT 모델을 구현하세요.

모델 프레임워크 샘플 모델 변환 도구
Android에서 실행 Android 휴대기기 C++/Kotlin API
iOS에서 실행 iOS 휴대기기 C++/Swift* API
LiteRT.js를 사용하여 웹에서 실행 Chrome, Firefox 또는 Safari가 설치된 기기 JavaScript API
Micro에서 실행 삽입된 기기 C++ API

*출시 예정

Kotlin 코드 예

// Load model and initialize runtime
val compiledModel = CompiledModel.create("/path/to/mymodel.tflite", CompiledModel.Options(Accelerator.CPU))

// Prepare I/O buffers and fill in the data
val inputBuffers = compiledModel.createInputBuffers()
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)

val outputBuffers = compiledModel.createOutputBuffers()

// Execute model
compiledModel.run(inputBuffers, outputBuffers)

// Access model output
val output = outputBuffers.get(0).readFloat()

inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
compiledModel.close()

C++ 코드 예

LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
      auto compiled_model,
      CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));

LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));

LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));

백엔드 선택

LiteRT에 백엔드를 통합하는 가장 간단한 방법은 런타임의 내장 인텔리전스를 사용하는 것입니다. 최신 변경사항을 통해 LiteRT는 타겟 백엔드를 옵션으로 지정하는 기능을 통해 설정을 크게 간소화합니다.

LiteRT v2.x의 핵심은 CompiledModel 객체입니다. 모델을 로드하면 LiteRT는 시스템에서 사용할 수 있는 하드웨어와 내부 우선순위 로직을 사용하여 수동 구성 없이 최적의 백엔드를 선택합니다. 자세한 내용은 백엔드 참고를 참고하세요.

Android 데스크톱 iOS macOS IoT
CPU XNNPack XNNPack XNNPack XNNPack XNNPack XNNPack
GPU WebGPU
OpenCL
WebGPU
OpenCL
WebGPU WebGPU
Metal
WebGPU
Metal
WebGPU
NPU MediaTek
Qualcomm
- - - - -

추가 문서 및 지원

LiteRT v2.x 샘플 앱 LiteRT 이미지 분할 샘플 앱을 참고하세요.

TensorFlow Lite 기존 사용자 이전 가이드를 참고하세요.

운영팀 지원 범위 호환되는 운영자

지원되는 LLM 모델 LiteRT Hugging face 및 생성 API - 샘플

도구 LiteRT 도구 페이지 - 성능, 프로파일링, 오류 보고 등