Wstęp
Środowisko wykonawcze TensorFlow zawiera komponenty, które są inicjowane z opóźnieniem, co może powodować duże opóźnienia w przypadku pierwszych żądań wysyłanych do modelu po jego załadowaniu. To opóźnienie może być o kilka rzędów wielkości większe niż w przypadku pojedynczego żądania wnioskowania.
Aby zmniejszyć wpływ leniwej inicjalizacji na opóźnienie żądania, możliwe jest wyzwolenie inicjalizacji podsystemów i komponentów w czasie ładowania modelu, dostarczając przykładowy zestaw żądań wnioskowania wraz z SavedModel. Proces ten nazywany jest „rozgrzewaniem” modelu.
Stosowanie
Rozgrzewka SavedModel jest obsługiwana dla funkcji Regress, Classify, MultiInference i Predict. Aby uruchomić rozgrzewanie modelu w czasie ładowania, załącz plik danych rozgrzewania w podfolderze Assets.extra katalogu SavedModel.
Wymagania aby rozgrzewka modelu działała poprawnie:
- Nazwa pliku rozgrzewki: „tf_serving_warmup_requests”
- Lokalizacja pliku: aktywa.extra/
- Format pliku: TFRecord z każdym rekordem jako PredictionLog .
- Liczba zapisów rozgrzewki <= 1000.
- Dane rozgrzewkowe muszą być reprezentatywne dla żądań wnioskowania używanych podczas wyświetlania.
Generowanie danych na rozgrzewkę
Dane rozgrzewkowe można dodać na dwa sposoby:
- Bezpośrednio wypełniając żądania rozgrzewki w wyeksportowanym zapisanym modelu. Można to zrobić, tworząc skrypt odczytujący listę przykładowych żądań wnioskowania, konwertując każde żądanie do PredictionLog (jeśli pierwotnie było w innym formacie) i używając TFRecordWriter do zapisywania wpisów PredictionLog do
YourSavedModel/assets.extra/tf_serving_warmup_requests
. - Używając opcji TFX Infra Validator do eksportu zapisanego modelu z rozgrzewką . Dzięki tej opcji TFX Infa Validator zapełni
YourSavedModel/assets.extra/tf_serving_warmup_requests
na podstawie żądań walidacji dostarczonych przez RequestSpec .