Bắt đầu với LiteRT Next

API LiteRT Next không tương thích với API LiteRT, vì vậy, các ứng dụng sử dụng LiteRT phải di chuyển hoàn toàn sang LiteRT Next để tận dụng các tính năng và chức năng do API mới cung cấp. Các ứng dụng không thể sử dụng API Trình diễn giải TF Lite và API Mô hình biên dịch hoán đổi cho nhau.

LiteRT Next cung cấp API cho Kotlin và C++. Các ứng dụng sử dụng SDK LiteRT bằng ngôn ngữ khác nên tiếp tục sử dụng LiteRT.

Phần phụ thuộc Android

Để di chuyển một ứng dụng Android bằng LiteRT, hãy thay thế phần phụ thuộc từ com.google.ai.edge.litert thành com.google.ai.edge.litert:litert:2.0.0-alpha.

Với LiteRT, trình tăng tốc GPU có sẵn dưới dạng một trình uỷ quyền trong một thư viện riêng (com.google.ai.edge.litert:litert-gpu). Với LiteRT Next, trình tăng tốc GPU có trong gói LiteRT Next. Để biết thêm thông tin, hãy xem phần GPU với LiteRT Next.

Bạn có thể thêm gói LiteRT Next vào các phần phụ thuộc build.gradle:

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

Thay đổi mã

Các ứng dụng sử dụng LiteRT sẽ phải thay thế mã sử dụng API Trình diễn giải TFLite cho mã sử dụng API Mô hình đã biên dịch. Sau đây là những thay đổi chính cần thiết để di chuyển sang LiteRT Next. Để biết thêm thông tin chi tiết, hãy xem tài liệu tham khảo về API LiteRT Next.

Thay đổi mã trong C++

Để di chuyển một ứng dụng bằng C++, hãy thay thế các đoạn mã chính sau:

LiteRT (Trình diễn giải TFLite) LiteRT Next (CompiledModel)
Tải mô hình FlatBufferModel::BuildFromFile() InterpreterBuilder(...) Model::CreateFromFile("mymodel.tflite")
Lưu ý: Không có bước riêng biệt cho trình tạo
Khởi chạy thời gian chạy builder(&interpreter), interpreter->AllocateTensors() CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu)
Lưu ý: Không có bước phân bổ bộ nhớ theo cách thủ công
Sử dụng Trình tăng tốc interpreter->ModifyGraphWithDelegate(...) CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu)
Chạy mô hình interpreter->Invoke() compiled_model->Run(inputs, outputs)

Thay đổi mã trong Kotlin

Để di chuyển một ứng dụng bằng Kotlin, hãy làm theo các bước chính sau:

Thiết lập mô hình và thời gian chạy

Với LiteRT, bạn tải một mô hình, thiết lập tính năng tăng tốc và khởi chạy thời gian chạy theo các bước khác nhau:

// 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)

Với LiteRT Next, bạn có thể tải mô hình, chỉ định gia tốc và khởi chạy thời gian chạy cùng một lúc:

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

Chạy quy trình suy luận

Cách chạy mô hình bằng LiteRT:

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

Cách chạy mô hình bằng LiteRT Next:

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

Thư viện khác

API LiteRT Next chỉ có trong Kotlin và C++. Các ứng dụng sử dụng SDK LiteRT bằng ngôn ngữ khác không thể di chuyển sang LiteRT Next.

Các ứng dụng sử dụng LiteRT trong môi trường thời gian chạy Dịch vụ Play không thể di chuyển sang LiteRT Next và phải tiếp tục sử dụng môi trường thời gian chạy play-services-tflite. Thư viện tác vụ và thư viện Trình tạo mô hình không thể di chuyển sang LiteRT Next và phải tiếp tục sử dụng các API TensorFlow Lite.