LiteRT na Androida

LiteRT pozwala uruchamiać modele ML TensorFlow w Aplikacje na Androida. System LiteRT jest gotowy i można go dostosować środowiska wykonawcze do szybkiego i wydajnego uruchamiania modeli na Androidzie, m.in. z opcjami akceleracji sprzętowej.

Modele systemów uczących się

LiteRT wykorzystuje modele TensorFlow, które są konwertowane na mniejszy, bardziej wydajny i przenośny format modeli systemów uczących się. Możesz użyć wstępnie utworzonej modeli wykorzystujących LiteRT na Androidzie lub tworzyć własne modele TensorFlow i przekonwertować je na format LiteRT.

Na tej stronie omawiamy wykorzystanie już stworzonych modeli systemów uczących się. obejmują tworzenie, trenowanie, testowanie i konwertowanie modeli. Więcej informacji o Dobieranie, modyfikowanie, tworzenie i konwertowanie modeli systemów uczących się LiteRT na stronie Modele.

Uruchamianie modeli na Androidzie

Model LiteRT działający w aplikacji na Androida pobiera dane i procesy i generuje prognozę na podstawie logiki modelu. TensorFlow Do uruchomienia modelu Lite wymagane jest specjalne środowisko wykonawcze. przekazywane do modelu muszą mieć określony format danych nazywany tensor, Gdy model przetwarza (czyli przeprowadzanie wnioskowania, wyniki prognozy są generowane jako nowe tensorów i przekazuje je do aplikacji na Androida, aby mogła wykonać działanie, pokazywanie wyniku użytkownikowi lub wykonywanie dodatkowej logiki biznesowej.

Funkcjonalny proces wykonywania modeli LiteRT na Androidzie
aplikacje

Rysunek 1. Funkcjonalny proces wykonywania modeli LiteRT na Androidzie aplikacji.

Jeśli chodzi o funkcjonalność, aplikacja na Androida wymaga tych elementów, uruchomić model LiteRT:

  • Środowisko wykonawcze LiteRT do wykonywania modelu
  • Moduł obsługi danych wejściowych modelu do przekształcania danych w tensory
  • Modeluj moduł obsługi danych wyjściowych do odbierania tensorów wyników wyjściowych i zinterpretowania ich jako wyniki prognozy

W poniższych sekcjach opisano, jak biblioteki i narzędzia LiteRT są te funkcjonalne elementy.

Tworzenie aplikacji przy użyciu LiteRT

W tej sekcji opisano zalecaną, najczęstszą ścieżkę wdrażania LiteRT w aplikacji na Androida. Zwróć szczególną uwagę na środowisko wykonawcze i biblioteki deweloperskie. Jeśli że masz już model niestandardowy, zapoznaj się z sekcją Zaawansowane funkcje programowania ścieżki.

Opcje środowiska wykonawczego

Istnieje kilka sposobów włączenia środowiska wykonawczego do wykonywania modeli w środowisku wykonawczym w aplikacji na Androida. Oto preferowane opcje:

Ogólnie zalecamy użycie środowiska wykonawczego udostępnianego przez Google Play. ponieważ jest to bardziej oszczędne miejsce niż standardowe środowisko, wczytuje się dynamicznie, dzięki czemu rozmiar aplikacji jest mniejszy. Usługi Google Play również automatycznie używa najnowszej, stabilnej wersji LiteRT środowiska wykonawczego, które oferuje dodatkowe funkcje i zwiększa wydajność. Jeśli udostępniasz aplikację na urządzeniach, które nie zawierają Usług Google Play, musisz ściśle zarządzać środowiskiem wykonawczym ML, wtedy użyj w standardowym środowisku wykonawczym LiteRT. Ta opcja powoduje grupowanie dodatkowego kodu w Dzięki temu masz większą kontrolę nad środowiskiem wykonawczym ML w aplikacji kosztów zwiększenia rozmiaru pobieranej aplikacji.

Dostęp do tych środowisk wykonawczych uzyskasz w aplikacji na Androida, dodając TensorFlow Biblioteki programistyczne Lite w środowisku programistycznym aplikacji. Informacje na temat na temat korzystania ze standardowych środowisk wykonawczych w aplikacji, zapoznaj się z następnym .

Biblioteki

Interfejs Interpreter API możesz uzyskać w Google Play usługi. Za pomocą LiteRT core i obsługują biblioteki w swojej aplikacji na Androida. Dla: szczegóły programowania dotyczące korzystania z bibliotek i środowiska wykonawczego LiteRT środowisk programistycznych znajdziesz w artykule Narzędzia dla programistów na Androida.

Uzyskiwanie modeli

Uruchamianie modelu w aplikacji na Androida wymaga modelu w formacie LiteRT. Ty Można użyć gotowych modeli lub utworzyć jeden za pomocą TensorFlow i przekonwertować go na wersję Lite . Więcej informacji o uzyskiwaniu modeli dla aplikacji na Androida znajdziesz w Strona Modele LiteRT.

Uchwyt do danych wejściowych

Wszystkie dane przekazywane do modelu ML muszą być tensorem z określonymi danymi strukturę, często nazywana kształtem tensora. Aby przetworzyć dane za pomocą modelu, kod aplikacji musi przekształcić dane z formatu natywnego, takiego jak obraz, tekst czy danych audio, do tensora o określonym kształcie wymaganym przez model.

Uruchom wnioskowania

Przetwarzanie danych za pomocą modelu w celu wygenerowania wyniku prognozy to tzw. korzystając z wnioskowania. Analiza wnioskowania w aplikacji na Androida wymaga środowisko wykonawcze LiteRT, model i dane wejściowe; .

Szybkość, z jaką model może wnioskować na podstawie określonego urządzenia zależy od wielkości przetworzonych danych, złożoności modelu dostępnych zasobów obliczeniowych, takich jak pamięć i procesor, lub specjalistyczne procesory. nazywanych akceleratorami. Modele systemów uczących się mogą na tych urządzeniach działać szybciej specjalistyczne procesory, takie jak procesory graficzne (GPU) i tensor; przy użyciu sterowników sprzętowych LiteRT nazywanych delegatów. Więcej informacji o przedstawicielach i akceleracji sprzętowej przetwarzania modelu, zapoznaj się z artykułem Akceleracja sprzętowa .

Obsługa wyników wyjściowych

Modele generują wyniki prognoz w postaci tensorów, które muszą być obsługiwane przez aplikacji na Androida poprzez wykonywanie określonych działań lub wyświetlanie wyniku użytkownikowi. Dane wyjściowe modelu Wyniki mogą być proste, jak liczba odpowiadająca jednemu wynikowi (0 = pies, 1 = kot, 2 = ptak) w celu klasyfikacji obrazów, aby uzyskać bardziej złożone wyniki, np. wielu ramek ograniczających kilka sklasyfikowanych obiektów na obrazie, wskaźnik ufności prognozy od 0 do 1.

Zaawansowane ścieżki programowania

Przy korzystaniu z bardziej zaawansowanych i niestandardowych modeli LiteRT możesz konieczne jest stosowanie bardziej zaawansowanych metod programowania niż te opisane powyżej. W poniższych sekcjach opisano zaawansowane techniki wykonywania modeli oraz na potrzeby LiteRT w aplikacjach na Androida.

Zaawansowane środowiska wykonawcze

Oprócz standardowego środowiska wykonawczego i środowiska wykonawczego Usług Google Play na potrzeby LiteRT, istnieją dodatkowe środowiska wykonawcze, których można używać z aplikacją na Androida. Najbardziej prawdopodobnym zastosowaniem w tych środowiskach jest, masz model systemów uczących się, który korzysta z nieobsługiwanych operacji ML w standardowym środowisku wykonawczym LiteRT.

W środowisku wykonawczym Flex LiteRT możesz uwzględniać określone operatory wymagane dla danego modelu. Zaawansowana opcja uruchamiania modelu LiteRT dla Androida, możesz dodać operatory inne funkcje wymagane do uruchomienia modelu systemów uczących się TensorFlow. Więcej informacji znajdziesz w artykule o tworzeniu aplikacji LiteRT dla Androida.

Interfejsy API w językach C i C++

LiteRT udostępnia też interfejs API do uruchamiania modeli w językach C i C++. Jeśli korzysta z pakietu Android NDK, do rozważenia zastosowania tego interfejsu API. Możesz także rozważyć skorzystanie z tego interfejsu API, jeśli: między wieloma platformami. Więcej informacji na temat konfiguracji Więcej informacji na temat tej opcji programowania znajdziesz w artykule Dla programistów .

Wykonywanie modelu na serwerze

Ogólnie rzecz biorąc, należy uruchomić modele w aplikacji na urządzeniu z Androidem, aby wykorzystują mniejsze opóźnienia i większą prywatność użytkowników. Pamiętaj jednak: są sytuacje, w których uruchomienie modelu na serwerze w chmurze poza urządzeniem rozwiązanie. Jeśli na przykład masz duży model, który nie jest łatwo skompresowany do rozmiaru, który na urządzeniach z Androidem lub przy użyciu rozsądnej wydajności na tych urządzeniach. Takie podejście może być też preferowane rozwiązanie, jeśli wydajność modelu w szerokim zakresie urządzenia mają najwyższy priorytet.

Google Cloud oferuje pełny pakiet usług do uruchamiania maszyn TensorFlow do uczenia się. Więcej informacji znajdziesz w artykule o sztucznej inteligencji i maszynach w Google Cloud usługi edukacyjne.

Tworzenie i optymalizacja modeli niestandardowych

Bardziej zaawansowane ścieżki programowania prawdopodobnie będą obejmowały opracowanie maszyn niestandardowych modele uczenia się i optymalizowanie ich pod kątem urządzeń z Androidem. Jeśli tworzyć niestandardowe modele, pamiętaj o zastosowaniu kwantyzacji w modelach, które zmniejszają koszty pamięci i przetwarzania. Więcej informacji na temat tworzenia modeli o wysokiej wydajności do użytku z LiteRT, zobacz Najwyższa wydajność metod w sekcji Modele.