LiteRT Next 시작하기

LiteRT Next API는 LiteRT API와 호환되지 않으므로 LiteRT를 사용하는 애플리케이션은 새 API에서 제공하는 기능을 사용하려면 LiteRT Next로 완전히 이전해야 합니다. 애플리케이션은 TF Lite 인터프리터 API와 컴파일된 모델 API를 상호 교환하여 사용할 수 없습니다.

LiteRT Next는 Kotlin 및 C++용 API를 제공합니다. 다른 언어로 LiteRT SDK를 사용하는 애플리케이션은 계속 LiteRT를 사용해야 합니다.

Android 종속 항목

LiteRT를 사용하여 Android 애플리케이션을 이전하려면 종속 항목을 com.google.ai.edge.litert에서 com.google.ai.edge.litert:litert:2.0.0-alpha로 바꿉니다.

LiteRT를 사용하면 GPU 가속기를 별도의 라이브러리 (com.google.ai.edge.litert:litert-gpu)에서 대리자로 사용할 수 있습니다. LiteRT Next를 사용하면 GPU 가속기가 LiteRT Next 패키지에 포함됩니다. 자세한 내용은 LiteRT Next를 사용한 GPU를 참고하세요.

build.gradle 종속 항목에 LiteRT Next 패키지를 추가할 수 있습니다.

dependencies {
  ...
  implementation `com.google.ai.edge.litert:litert:2.0.0-alpha`
}

코드 변경

LiteRT를 사용하는 애플리케이션은 컴파일된 모델 API를 사용하는 코드 대신 TFLite 인터프리터 API를 사용하는 코드를 대체해야 합니다. 다음은 LiteRT Next로 이전하는 데 필요한 주요 변경사항을 보여줍니다. 자세한 내용은 LiteRT Next API 참조를 참고하세요.

C++의 코드 변경사항

C++를 사용하여 애플리케이션을 이전하려면 다음 주요 스니펫을 대체하세요.

LiteRT (TFLite 인터프리터) LiteRT Next (CompiledModel)
모델 로드 FlatBufferModel::BuildFromFile() InterpreterBuilder(...) Model::CreateFromFile("mymodel.tflite")
참고: 별도의 빌더 단계 없음
런타임 초기화 builder(&interpreter), interpreter->AllocateTensors() CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu)
참고: 수동 메모리 할당 단계 없음
가속기 사용 interpreter->ModifyGraphWithDelegate(...) CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu)
모델 실행 interpreter->Invoke() compiled_model->Run(inputs, outputs)

Kotlin의 코드 변경사항

Kotlin을 사용하여 애플리케이션을 이전하려면 다음 주요 단계를 따르세요.

모델 및 런타임 설정

LiteRT를 사용하면 다음과 같은 여러 단계로 모델을 로드하고, 가속을 설정하고, 런타임을 초기화할 수 있습니다.

// Load the model
val modelBuffer: MappedByteBuffer =
  FileUtil.loadMappedFile(appContext, "model.tflite")

// Initialize runtime
val options = Interpreter.Options()
val interpreter = Interpreter(modelBuffer, options)
interpreter.allocateTensors()

// Use accelerators
aval gpuDelegate = GpuDelegate()
options.addDelegate(gpuDelegate)

LiteRT Next를 사용하면 모델을 로드하고 가속을 지정하고 런타임을 동시에 초기화할 수 있습니다.

val model =
CompiledModel.create(
  context.assets,
  "model.tflite",
  CompiledModel.Options(Accelerator.GPU)
)

추론 실행

LiteRT로 모델을 실행하려면 다음 단계를 따르세요.

val input = FloatBuffer.allocate(data_size)
val output = FloatBuffer.allocate(data_size)
interpreter.run(input, output)

LiteRT Next로 모델을 실행하려면 다음 단계를 따르세요.

val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
model.run(inputBuffers, outputBuffers)

다른 도서관

LiteRT Next API는 Kotlin 및 C++에서만 사용할 수 있습니다. 다른 언어로 LiteRT SDK를 사용하는 애플리케이션은 LiteRT Next로 이전할 수 없습니다.

Play 서비스 런타임에서 LiteRT를 사용하는 애플리케이션은 LiteRT Next로 이전할 수 없으며 play-services-tflite 런타임을 계속 사용해야 합니다. Task Library 및 Model Maker 라이브러리는 LiteRT Next로 이전할 수 없으며 TensorFlow Lite API를 계속 사용해야 합니다.