LiteRT to platforma Google do wdrażania na urządzeniach modeli ML i GenAI o wysokiej wydajności na platformach brzegowych, która wykorzystuje wydajną konwersję, środowisko wykonawcze i optymalizację.
LiteRT 2.x zawiera najnowszy interfejs API środowiska wykonawczego, czyli interfejs CompiledModel API, który jest ulepszoną wersją interfejsu Interpreter API (czyli interfejsów TensorFlow Lite API), zwłaszcza pod względem akceleracji sprzętowej i ogólnej wydajności w przypadku aplikacji ML i AI na urządzeniach. Interfejs CompiledModel API jest dostępny w wersji beta w językach Kotlin i C++.
Najważniejsze funkcje LiteRT
Obsługiwane modele
LiteRT obsługuje uproszczoną konwersję z platform Pytorch, TensorFlow i JAX na format .tflite lub .litertlm.
Usprawnianie procesu tworzenia za pomocą LiteRT
Automatyczny wybór akceleratora a jawne tworzenie delegata. Proste środowisko wykonawcze NPU i dystrybucja modelu. Wydajne zarządzanie buforami wejścia/wyjścia i wykonywanie asynchroniczne zapewniające doskonałą wydajność.
Najlepsza w swojej klasie wydajność GPU
Oparta na ML Drift, która obsługuje teraz modele ML i generatywnej AI w interfejsach API GPU.
Ujednolicone przyspieszanie NPU
Przyspiesz działanie modelu dzięki uproszczonemu dostępowi do NPU od głównych dostawców chipsetów.
Uproszczona obsługa LLM dzięki LiteRT
Możesz używać modelu LiteRT-LM, który jest oparty na LiteRT. LiteRT-LM obsługuje najnowsze modele LLM i przydatne funkcje, takie jak wielomodalność, dekodowanie z ograniczeniami itp.
Przepływ pracy w programowaniu
LiteRT przeprowadza wnioskowanie w całości na urządzeniu z Androidem, iOS, w internecie, na urządzeniach IoT oraz na komputerach stacjonarnych i laptopach. Niezależnie od urządzenia najczęstszy jest ten proces, a poniżej znajdziesz linki do dalszych instrukcji.

Wybierz najbardziej odpowiednie rozwiązanie problemu związanego z uczeniem maszynowym.
LiteRT zapewnia użytkownikom dużą elastyczność i możliwość dostosowywania podczas rozwiązywania problemów związanych z uczeniem maszynowym, dzięki czemu jest dobrym rozwiązaniem dla użytkowników, którzy potrzebują konkretnego modelu lub specjalistycznego wdrożenia. Użytkownicy szukający rozwiązań typu „plug and play” mogą preferować MediaPipe Tasks, które udostępnia gotowe rozwiązania do typowych zadań uczenia maszynowego, takich jak wykrywanie obiektów, klasyfikacja tekstu i wnioskowanie LLM.
Pobieranie i przygotowywanie modelu
Model LiteRT jest reprezentowany w wydajnym, przenośnym formacie znanym jako FlatBuffers, który używa rozszerzenia pliku .tflite.
Model LiteRT możesz uzyskać w ten sposób:
Uzyskiwanie wstępnie wytrenowanego modelu: w przypadku popularnych zadań uczenia maszynowego, takich jak segmentacja obrazów czy wykrywanie obiektów.
Najprostszym rozwiązaniem jest użycie modelu LiteRT w
.tfliteformacie. Te modele nie wymagają żadnych dodatkowych kroków konwersji.Typ modelu Źródło wytrenowanego modelu Klasyczne uczenie maszynowe
(format.tflite)Odwiedź Kaggle lub HuggingFace.
Np. modele segmentacji obrazów i przykładowa aplikacjaGeneratywna AI
(.litertlmformat)Strona LiteRT w Hugging Face
np. Gemma FamilyPrzekonwertuj wybrany model PyTorch, TensorFlow lub JAX na model LiteRT, jeśli nie chcesz używać wstępnie wytrenowanego modelu. [PRO USER]
Platforma modelu Przykładowe modele Narzędzie do konwersji Pytorch Hugging Face
TorchvisionLink TensorFlow Modele Kaggle
Hugging FaceLink Jax Hugging Face Link Tworzenie modelu LLM w celu dalszej optymalizacji za pomocą interfejsu Generative API [UŻYTKOWNIK PRO]
Nasza biblioteka Generative API udostępnia wbudowane bloki PyTorch do tworzenia modeli Transformer, takich jak Gemma, TinyLlama i inne, za pomocą abstrakcji przyjaznych dla urządzeń mobilnych. Dzięki temu możemy zagwarantować konwersję i wydajne wykonywanie w naszym środowisku wykonawczym na urządzeniach mobilnych, LiteRT. Zapoznaj się z dokumentacją interfejsu Generative API.
Kwantyzacja [UŻYTKOWNIK PRO]
AI Edge Quantizer dla zaawansowanych deweloperów to narzędzie do kwantyzacji przekonwertowanych modeli LiteRT. Ma to ułatwić zaawansowanym użytkownikom dążenie do optymalnej wydajności w przypadku modeli wymagających dużych zasobów (np. modele generatywnej AI).
Więcej informacji o modelach uczenia maszynowego i modelach generatywnej AI znajdziesz w dokumentacji dotyczącej kwantyzacji AI Edge.
Wymagania wstępne
- Python 3.10–3.12
.tfliteplik modelu- Dodatkowe informacje znajdziesz w sekcji dotyczącej danej platformy
Zintegruj model z aplikacją na platformach brzegowych
Modele LiteRT możesz wdrażać tak, aby wnioskowanie odbywało się w całości na urządzeniach z Androidem, iOS, w internecie, na urządzeniach IoT i komputerach. LiteRT zawiera interfejsy API dla Pythona, Javy i Kotlin na Androida, Swift na iOS-a i C++ na mikro urządzenia.
Aby wdrożyć model LiteRT na wybranej platformie, skorzystaj z tych przewodników:
| Platforma modelu | Przykładowe modele | Narzędzie do konwersji |
|---|---|---|
| Uruchamianie na Androidzie | Urządzenia mobilne z Androidem | Interfejsy API C++/Kotlin |
| Uruchamianie na iOS | Urządzenia mobilne z iOS | Interfejsy API C++/Swift* |
| Uruchamianie w internecie za pomocą LiteRT.js | Urządzenie z przeglądarką Chrome, Firefox lub Safari | Interfejsy JavaScript API |
| Uruchom na urządzeniu Micro | Urządzenia wbudowane | Interfejsy API C++ |
*Już wkrótce
Przykład kodu w języku 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()
Przykładowy kod w 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));
Wybierz backend
Najprostszym sposobem włączenia backendów w LiteRT jest korzystanie z wbudowanych funkcji inteligentnych środowiska wykonawczego. Dzięki najnowszym zmianom LiteRT znacznie upraszcza konfigurację, ponieważ umożliwia określenie docelowego backendu jako opcji.
Podstawą LiteRT w wersji 2.x jest obiekt CompiledModel. Gdy wczytujesz model, LiteRT korzysta z dostępnego sprzętu systemowego i wewnętrznej logiki priorytetów, aby wybrać optymalny backend bez ręcznej konfiguracji. Więcej informacji znajdziesz w artykule Backend.
| Android | Komputer | Sieć | iOS | macOS | IoT | |
|---|---|---|---|---|---|---|
| CPU | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack |
| GPU | WebGPU OpenCL |
WebGPU OpenCL |
WebGPU | WebGPU Metal |
WebGPU Metal |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - | - |
Dodatkowa dokumentacja i pomoc
Przykładowa aplikacja LiteRT w wersji 2.x Zobacz przykładową aplikację do segmentacji obrazów LiteRT
Dla obecnych użytkowników TensorFlow Lite Zobacz przewodnik po migracji
Zasięg operacyjny Zgodni operatorzy
Obsługiwane modele LLM LiteRT Hugging Face i Gen API – przykłady
Narzędzia Strona narzędzi LiteRT – wydajność, profilowanie, raportowanie błędów itp.