LiteRT umożliwia uruchamianie modeli TensorFlow, PyTorch i JAX w aplikacjach na Androida. System LiteRT udostępnia gotowe i konfigurowalne środowiska wykonawcze do szybkiego i wydajnego uruchamiania modeli na Androidzie, w tym opcje akceleracji sprzętowej.
Przykłady aplikacji na Androida korzystających z LiteRT znajdziesz w repozytorium LiteRT samples.
modele uczenia maszynowego,
LiteRT korzysta z modeli TensorFlow, PyTorch i JAX, które są przekształcane w mniejszy, przenośny i wydajniejszy format modelu uczenia maszynowego. Możesz używać gotowych modeli z LiteRT na Androidzie lub tworzyć własne modele i konwertować je do formatu LiteRT.
Na tej stronie omawiamy korzystanie z gotowych modeli uczenia maszynowego. Nie opisujemy tworzenia, trenowania, testowania ani konwertowania modeli. Więcej informacji o wybieraniu, modyfikowaniu, tworzeniu i konwertowaniu modeli uczenia maszynowego na potrzeby LiteRT znajdziesz na stronie Modele.
Uruchamianie modeli na Androidzie
Model LiteRT działający w aplikacji na Androida przyjmuje dane, przetwarza je i generuje prognozę na podstawie logiki modelu. Model LiteRT wymaga specjalnego środowiska wykonawczego, a dane przekazywane do modelu muszą mieć określony format, zwany tensorem. Gdy model przetwarza dane, co nazywamy wnioskowaniem, generuje wyniki prognozowania w postaci nowych tensorów i przekazuje je do aplikacji na Androida, aby mogła ona podjąć działania, np. wyświetlić wynik użytkownikowi lub wykonać dodatkową logikę biznesową.

Rysunek 1. Funkcjonalny przepływ wykonywania modeli LiteRT w aplikacjach na Androida.
Na poziomie projektu funkcjonalnego aplikacja na Androida musi zawierać te elementy, aby uruchomić model LiteRT:
- Środowisko wykonawcze LiteRT do wykonywania modelu.
- Funkcja obsługi danych wejściowych modelu do przekształcania danych w tensory
- Moduł obsługi danych wyjściowych modelu, który odbiera tensory wyników wyjściowych i interpretuje je jako wyniki prognozy.
W sekcjach poniżej opisujemy, jak biblioteki i narzędzia LiteRT udostępniają te elementy funkcjonalne.
Tworzenie aplikacji za pomocą LiteRT
W tej sekcji opisujemy zalecaną i najczęstszą ścieżkę wdrażania LiteRT w aplikacji na Androida. Największą uwagę należy zwrócić na sekcje środowisko wykonawcze i biblioteki deweloperskie. Jeśli masz opracowany model niestandardowy, zapoznaj się z sekcją Zaawansowane ścieżki rozwoju.
Opcje środowiska wykonawczego
Środowisko wykonawcze do uruchamiania modeli w aplikacji na Androida możesz włączyć na kilka sposobów. Oto preferowane opcje:
- LiteRT w środowisku wykonawczym usług Google Play (zalecane)
- Samodzielne środowisko wykonawcze LiteRT
Ogólnie rzecz biorąc, należy używać środowiska wykonawczego udostępnianego przez usługi Google Play, ponieważ jest ono bardziej wydajne pod względem miejsca niż środowisko standardowe, ponieważ wczytuje się dynamicznie, dzięki czemu rozmiar aplikacji jest mniejszy. Usługi Google Play automatycznie używają też najnowszej stabilnej wersji środowiska wykonawczego LiteRT, co z czasem zapewnia dodatkowe funkcje i lepszą wydajność. Jeśli oferujesz aplikację na urządzeniach, które nie mają Usług Google Play, lub musisz dokładnie zarządzać środowiskiem wykonawczym ML, użyj standardowego środowiska wykonawczego LiteRT. Ta opcja dołącza do aplikacji dodatkowy kod, co daje większą kontrolę nad środowiskiem wykonawczym ML w aplikacji, ale zwiększa rozmiar pobierania aplikacji.
Dostęp do tych środowisk wykonawczych w aplikacji na Androida uzyskasz, dodając do środowiska programistycznego aplikacji biblioteki programistyczne LiteRT. Więcej informacji o tym, jak używać w aplikacji standardowych środowisk wykonawczych, znajdziesz w następnej sekcji.
Biblioteki
Dostęp do interfejsu Interpreter API możesz uzyskać za pomocą usług Google Play. W aplikacji na Androida możesz używać bibliotek LiteRT core i support. Szczegółowe informacje o programowaniu dotyczące korzystania z bibliotek LiteRT i środowisk wykonawczych znajdziesz w artykule Narzędzia deweloperskie na Androida.
Uzyskiwanie modeli
Uruchomienie modelu w aplikacji na Androida wymaga modelu w formacie LiteRT. Możesz użyć gotowych modeli lub utworzyć własny i przekonwertować go na format Lite. Więcej informacji o uzyskiwaniu modeli do aplikacji na Androida znajdziesz na stronie Modele LiteRT.
Obsługa danych wejściowych
Wszystkie dane przekazywane do modelu ML muszą być tensorem o określonej strukturze danych, często nazywanej kształtem tensora. Aby przetwarzać dane za pomocą modelu, kod aplikacji musi przekształcać dane z ich natywnego formatu, np. obrazu, tekstu lub danych audio, w tensor o kształcie wymaganym przez model.
Uruchamianie wnioskowania
Przetwarzanie danych przez model w celu wygenerowania wyniku prognozy jest nazywane wnioskowaniem. Przeprowadzenie wnioskowania w aplikacji na Androida wymaga środowiska wykonawczego LiteRT, modelu i danych wejściowych.
Szybkość, z jaką model może generować wnioski na danym urządzeniu, zależy od rozmiaru przetwarzanych danych, złożoności modelu i dostępnych zasobów obliczeniowych, takich jak pamięć i procesor, lub specjalnych procesorów zwanych akceleratorami. Modele uczenia maszynowego mogą działać szybciej na tych wyspecjalizowanych procesorach, takich jak procesory graficzne (GPU) i jednostki tensorowe (TPU), przy użyciu sterowników sprzętowych LiteRT zwanych delegatami. Więcej informacji o delegatach i akceleracji sprzętowej przetwarzania modeli znajdziesz w omówieniu akceleracji sprzętowej.
Obsługa wyników
Modele generują wyniki prognozy w postaci tensorów, które muszą być obsługiwane przez aplikację na Androida poprzez podjęcie działania lub wyświetlenie wyniku użytkownikowi. Wyniki modelu mogą być proste, np. liczba odpowiadająca pojedynczemu wynikowi (0 = pies, 1 = kot, 2 = ptak) w przypadku klasyfikacji obrazu, lub znacznie bardziej złożone, np. wiele pól ograniczających dla kilku sklasyfikowanych obiektów na obrazie z ocenami pewności prognozy w zakresie od 0 do 1.
Zaawansowane ścieżki rozwoju
W przypadku bardziej zaawansowanych i dostosowanych modeli LiteRT może być konieczne zastosowanie bardziej zaawansowanych metod programowania niż opisane powyżej. W kolejnych sekcjach opisujemy zaawansowane techniki wykonywania modeli i ich tworzenia na potrzeby LiteRT w aplikacjach na Androida.
Zaawansowane środowiska wykonawcze
Oprócz standardowego środowiska wykonawczego i środowiska wykonawczego Usług Google Play dla LiteRT możesz używać dodatkowych środowisk wykonawczych w aplikacji na Androida. Najprawdopodobniej skorzystasz z nich, jeśli masz model uczenia maszynowego, który używa operacji ML nieobsługiwanych przez standardowe środowisko wykonawcze LiteRT.
- Środowisko wykonawcze Flex dla LiteRT
- Niestandardowe środowisko wykonawcze LiteRT
Elastyczne środowisko wykonawcze LiteRT umożliwia uwzględnienie konkretnych operatorów wymaganych przez model. Jako opcję zaawansowaną uruchamiania modelu możesz utworzyć LiteRT na Androida, aby uwzględnić operatory i inne funkcje wymagane do uruchomienia modelu uczenia maszynowego TensorFlow. Więcej informacji znajdziesz w artykule Tworzenie LiteRT na Androida.
Interfejsy API C i C++
LiteRT udostępnia też interfejs API do uruchamiania modeli w C i C++. Jeśli Twoja aplikacja korzysta z Android NDK, rozważ użycie tego interfejsu API. Warto też rozważyć użycie tego interfejsu API, jeśli chcesz udostępniać kod na wielu platformach. Więcej informacji o tej opcji znajdziesz na stronie Narzędzia dla programistów.
Wykonanie modelu na serwerze
Ogólnie rzecz biorąc, modele w aplikacji należy uruchamiać na urządzeniu z Androidem, aby zapewnić użytkownikom mniejsze opóźnienia i większą prywatność danych. Jednak w niektórych przypadkach lepszym rozwiązaniem jest uruchomienie modelu na serwerze w chmurze, poza urządzeniem. Na przykład jeśli masz duży model, którego nie można łatwo skompresować do rozmiaru, który zmieści się na urządzeniach z Androidem użytkowników, lub który nie może być na nich wykonywany z rozsądną wydajnością. To rozwiązanie może być też preferowane, jeśli priorytetem jest stała wydajność modelu na wielu urządzeniach.
Google Cloud oferuje pełny pakiet usług do uruchamiania modeli AI. Więcej informacji znajdziesz na stronie Google Cloud poświęconej usługom związanym ze sztuczną inteligencją i uczeniem maszynowym.
Opracowywanie i optymalizacja modeli niestandardowych
Bardziej zaawansowane ścieżki rozwoju prawdopodobnie obejmują tworzenie niestandardowych modeli uczenia maszynowego i optymalizowanie ich pod kątem używania na urządzeniach z Androidem. Jeśli planujesz tworzyć modele niestandardowe, rozważ zastosowanie technik kwantyzacji, aby zmniejszyć koszty pamięci i przetwarzania. Więcej informacji o tworzeniu modeli o wysokiej wydajności do użytku z LiteRT znajdziesz w sekcji Modele w artykule Sprawdzone metody dotyczące wydajności.
Obsługiwane wersje Androida
| Wersja LiteRT | Stan | Minimalny poziom SDK | Minimalny poziom NDK (jeśli jest używany) | Data wydania |
|---|---|---|---|---|
v1.2.0 ⭐ |
✅ Aktywny | 21 (Android 5 Lollipop) |
r26a |
2025-03-13 |
Ważne: dbaj o aktualność zależności, aby zapewnić zgodność z najnowszymi funkcjami i aktualizacjami zabezpieczeń.