Modele uczenia maszynowego, których używasz z LiteRT, są pierwotnie tworzone i trenowane przy użyciu podstawowych bibliotek i narzędzi TensorFlow. Po utworzeniu modelu za pomocą TensorFlow Core możesz przekonwertować go na mniejszy i wydajniejszy model ML o nazwie LiteRT. W tej sekcji znajdziesz wskazówki dotyczące konwertowania modeli TensorFlow na format modelu LiteRT.
Proces konwersji
Konwersja modeli TensorFlow do formatu LiteRT może przebiegać na kilka sposobów w zależności od zawartości modelu uczenia maszynowego. Pierwszym krokiem w tym procesie jest ocena modelu, aby sprawdzić, czy można go bezpośrednio przekonwertować. Ta ocena określa, czy zawartość modelu jest obsługiwana przez standardowe środowiska wykonawcze LiteRT na podstawie używanych przez niego operacji TensorFlow. Jeśli model korzysta z operacji spoza obsługiwanego zestawu, możesz go przekształcić lub użyć zaawansowanych technik konwersji.
Diagram poniżej przedstawia ogólne etapy konwersji modelu.

Rysunek 1. Proces konwersji LiteRT.
W sekcjach poniżej opisujemy proces oceny i konwertowania modeli do użytku z LiteRT.
Formaty modeli wejściowych
Konwertera możesz używać z tymi formatami modeli wejściowych:
- SavedModel (zalecany): model TensorFlow zapisany jako zestaw plików na dysku.
- Model Keras: model utworzony za pomocą interfejsu Keras API wysokiego poziomu.
- Format Keras H5: lekka alternatywa dla formatu SavedModel obsługiwanego przez interfejs Keras API.
- Modele utworzone na podstawie konkretnych funkcji: model utworzony za pomocą interfejsu TensorFlow API niskiego poziomu.
Zarówno modele funkcji Keras, jak i funkcji konkretnych możesz zapisać jako SavedModel i przekonwertować za pomocą zalecanej ścieżki.
Jeśli masz model Jax, możesz użyć interfejsu TFLiteConverter.experimental_from_jax
API, aby przekonwertować go na format LiteRT. Pamiętaj, że ten interfejs API może ulec zmianie w trybie eksperymentalnym.
Ocena konwersji
Sprawdzenie modelu jest ważnym krokiem przed próbą jego przekonwertowania. Podczas oceny musisz sprawdzić, czy zawartość modelu jest zgodna z formatem LiteRT. Musisz też określić, czy Twój model nadaje się do użytku na urządzeniach mobilnych i urządzeniach brzegowych pod względem ilości danych, z których korzysta, wymagań dotyczących przetwarzania sprzętowego oraz ogólnej wielkości i złożoności.
W przypadku wielu modeli konwerter powinien działać od razu po wyjęciu z pudełka. Biblioteka operatorów wbudowanych LiteRT obsługuje jednak podzbiór operatorów podstawowych TensorFlow, co oznacza, że niektóre modele mogą wymagać dodatkowych czynności przed przekonwertowaniem na LiteRT. Dodatkowo niektóre operacje obsługiwane przez LiteRT mają ograniczone wymagania dotyczące użycia ze względu na wydajność. Zapoznaj się z przewodnikiem zgodność operatorów, aby sprawdzić, czy model wymaga refaktoryzacji na potrzeby konwersji.
Konwersja modelu
Konwerter LiteRT pobiera model TensorFlow i generuje model LiteRT (zoptymalizowany format FlatBuffer oznaczony rozszerzeniem pliku .tflite). Możesz wczytać model SavedModel lub bezpośrednio przekonwertować model utworzony w kodzie.
Konwerter przyjmuje 3 główne flagi (lub opcje), które dostosowują konwersję do Twojego modelu:
- Flagi zgodności pozwalają określić, czy konwersja powinna dopuszczać operatory niestandardowe.
- Flagi optymalizacji umożliwiają określenie typu optymalizacji, która ma być stosowana podczas konwersji. Najczęściej stosowaną techniką optymalizacji jest kwantyzacja po wytrenowaniu.
- Flagi metadanych umożliwiają dodawanie metadanych do przekonwertowanego modelu, co ułatwia tworzenie kodu opakowującego specyficznego dla platformy podczas wdrażania modeli na urządzeniach.
Model możesz przekonwertować za pomocą interfejsu API języka Python lub narzędzia wiersza poleceń. Szczegółowe instrukcje uruchamiania konwertera na modelu znajdziesz w przewodniku Konwertowanie modelu TF.
Zwykle model konwertuje się na standardowe środowisko wykonawcze LiteRT lub środowisko wykonawcze usług Google Play w przypadku LiteRT (wersja beta). Niektóre zaawansowane przypadki użycia wymagają dostosowania środowiska wykonawczego modelu, co wymaga dodatkowych kroków w procesie konwersji. Więcej wskazówek znajdziesz w sekcji zaawansowane środowisko wykonawcze w omówieniu Androida.
Zaawansowane konwersje
Jeśli podczas uruchamiania konwertera w modelu wystąpią błędy, najprawdopodobniej przyczyną jest problem ze zgodnością operatora. Nie wszystkie operacje TensorFlow są obsługiwane przez TensorFlow Lite. Możesz obejść te problemy, refaktoryzując model lub korzystając z zaawansowanych opcji konwersji, które umożliwiają utworzenie zmodyfikowanego modelu w formacie LiteRT i niestandardowego środowiska wykonawczego dla tego modelu.
- Więcej informacji o kwestiach związanych ze zgodnością modeli TensorFlow i LiteRT znajdziesz w omówieniu zgodności modeli.
- Tematy w sekcji Omówienie zgodności modelu obejmują zaawansowane techniki refaktoryzacji modelu, takie jak przewodnik Wybieranie operatorów.
- Pełną listę operacji i ograniczeń znajdziesz na stronie LiteRT Ops.
Dalsze kroki
- Aby szybko rozpocząć konwertowanie modelu, zapoznaj się z przewodnikiem konwertowania modeli TF.
- W omówieniu optymalizacji znajdziesz wskazówki, jak zoptymalizować przekonwertowany model za pomocą technik takich jak kwantyzacja po wytrenowaniu.
- Więcej informacji o dodawaniu metadanych do modeli znajdziesz w omówieniu dodawania metadanych. Metadane zawierają opis modelu oraz informacje, które mogą być wykorzystywane przez generatory kodu.