Selamat datang di ringkasan LiteRT

LiteRT adalah framework di perangkat Google untuk deployment ML & GenAI berperforma tinggi di platform edge, menggunakan konversi, runtime, dan pengoptimalan yang efisien.

LiteRT 2.x berisi API runtime terbaru, CompiledModel API, yang lebih baik daripada Interpreter API (alias TensorFlow Lite API), terutama melalui akselerasi hardware dan performa keseluruhan untuk aplikasi ML dan AI di perangkat. CompiledModel API dalam rilis beta dan tersedia di Kotlin dan C++.

Fitur utama LiteRT

Model yang Didukung

LiteRT mendukung konversi yang disederhanakan dari Framework Pytorch, TensorFlow, dan JAX ke format .tflite atau .litertlm.

Menyederhanakan pengembangan dengan LiteRT

Pemilihan akselerator otomatis versus pembuatan delegasi eksplisit. Runtime NPU dan distribusi model yang sederhana. Penanganan buffer I/O yang efisien dan eksekusi asinkron untuk performa yang lebih unggul.

Performa GPU terbaik di kelasnya

Didukung oleh ML Drift, kini mendukung model ML dan AI Generatif di GPU API.

Akselerasi NPU terpadu

Percepat model Anda menggunakan akses NPU yang disederhanakan dari penyedia chipset utama.

Dukungan LLM yang Disederhanakan dengan LiteRT

Anda dapat menggunakan LiteRT-LM yang didukung oleh LiteRT. LiteRT-LM mendukung LLM terbaru dan fitur berguna seperti multi-modalitas, decoding terbatas, dll.

Alur kerja pengembangan

LiteRT menjalankan inferensi sepenuhnya di perangkat Android, iOS, Web, IoT, dan di Desktop/Laptop. Terlepas dari perangkat, berikut adalah alur kerja yang paling umum, dengan link ke petunjuk lebih lanjut.

Grafik alur kerja pengembangan LiteRT

Mengidentifikasi solusi yang paling sesuai untuk tantangan ML

LiteRT menawarkan tingkat fleksibilitas dan kemampuan penyesuaian yang tinggi kepada pengguna dalam memecahkan masalah machine learning, sehingga cocok bagi pengguna yang memerlukan model tertentu atau implementasi khusus. Pengguna yang mencari solusi plug-and-play mungkin lebih memilih MediaPipe Tasks, yang menyediakan solusi siap pakai untuk tugas machine learning umum seperti deteksi objek, klasifikasi teks, dan inferensi LLM.

Mendapatkan dan menyiapkan model

Model LiteRT direpresentasikan dalam format portabel yang efisien yang dikenal sebagai FlatBuffers, yang menggunakan ekstensi file .tflite.

Anda dapat memperoleh model LiteRT dengan cara berikut:

  • Mendapatkan model terlatih: untuk beban kerja ML populer seperti Segmentasi gambar, Deteksi objek, dll.

    Pendekatan paling sederhana adalah menggunakan model LiteRT yang sudah dalam format .tflite. Model ini tidak memerlukan langkah konversi tambahan.

    Jenis Model Sumber Model Terlatih
    ML Klasik
    (format .tflite)
    Buka Kaggle atau HuggingFace
    Misalnya, Model segmentasi gambar dan aplikasi contoh
    AI Generatif
    (format .litertlm)
    Halaman Hugging Face LiteRT
    Misalnya, Gemma Family
  • Konversikan model PyTorch, TensorFlow, atau JAX yang Anda pilih menjadi model LiteRT jika Anda memilih untuk tidak menggunakan model terlatih. [PENGGUNA PRO]

    Framework Model Model Sampel Alat Konversi
    Pytorch Hugging Face
    Torchvision
    Link
    TensorFlow Model Kaggle
    Hugging Face
    Link
    Jax Hugging Face Link
  • Menulis LLM untuk pengoptimalan lebih lanjut menggunakan Generative API [PENGGUNA PRO]

    Library Generative API kami menyediakan blok penyusun bawaan PyTorch untuk menyusun model Transformer seperti Gemma, TinyLlama, dan lainnya menggunakan abstraksi yang kompatibel untuk perangkat seluler, sehingga kami dapat menjamin konversi dan eksekusi berperforma tinggi di runtime seluler kami, LiteRT. Lihat dokumentasi Generative API.

Kuantisasi [PENGGUNA PRO]

Pengukur Kuantisasi Edge AI untuk developer tingkat lanjut adalah alat untuk mengukur kuantisasi model LiteRT yang dikonversi. Tujuannya adalah untuk memfasilitasi pengguna tingkat lanjut dalam berupaya mendapatkan performa optimal pada model yang membutuhkan banyak resource (misalnya, model GenAI).

Untuk model machine learning dan model AI Generatif, lihat dokumentasi Ai-Edge-Quantization.

Prasyarat untuk memulai

  • Python 3.10-3.12
  • File model .tflite
  • Detail tambahan tersedia di bagian platform masing-masing

Mengintegrasikan model ke dalam aplikasi Anda di platform edge

Anda dapat menerapkan model LiteRT untuk menjalankan inferensi sepenuhnya di perangkat di Android, iOS, Web, IoT, dan perangkat Desktop. LiteRT berisi API untuk Python, Java dan Kotlin untuk Android, Swift untuk iOS, dan C++ untuk perangkat mikro.

Gunakan panduan berikut untuk menerapkan model LiteRT di platform pilihan Anda:

Framework Model Model Sampel Alat Konversi
Jalankan di Android Perangkat seluler Android C++/Kotlin API
Jalankan di iOS Perangkat seluler iOS C++/Swift* API
Menjalankan di Web menggunakan LiteRT.js Perangkat dengan Chrome, Firefox, atau Safari JavaScript API
Jalankan di Micro Perangkat tersemat C++ API

*Segera hadir

Contoh kode 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()

Contoh kode 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));

Pilih backend

Cara paling mudah untuk menyertakan backend di LiteRT adalah dengan mengandalkan kecerdasan bawaan runtime. Dengan perubahan terbaru, LiteRT menyederhanakan penyiapan secara signifikan dengan kemampuan untuk menentukan backend target sebagai opsi.

Inti LiteRT v2.x adalah objek CompiledModel. Saat Anda memuat model, LiteRT menggunakan hardware yang tersedia di sistem dan logika prioritas internal untuk memilih backend yang optimal tanpa konfigurasi manual. Lihat backend untuk mengetahui detail selengkapnya.

Android Desktop Web iOS macOS IoT
CPU XNNPack XNNPack XNNPack XNNPack XNNPack XNNPack
GPU WebGPU
OpenCL
WebGPU
OpenCL
WebGPU WebGPU
Metal
WebGPU
Metal
WebGPU
NPU MediaTek
Qualcomm
- - - - -

Dokumentasi dan dukungan tambahan

Aplikasi Contoh LiteRT v2.x Lihat Aplikasi Contoh Segmentasi Gambar LiteRT

Untuk pengguna TensorFlow Lite yang sudah ada Lihat panduan migrasi

Cakupan Operasional Operator yang kompatibel

Model LLM yang Didukung LiteRT Hugging Face dan Gen API - contoh

Alat Halaman alat LiteRT - Pelaporan error, Profiling, Performa, dll.