Wdrażanie modeli na potrzeby wnioskowania wsadowego i przewidywania

W tym artykule opisano sposób wdrażania modeli MLflow na potrzeby wnioskowania w trybie offline (wsadowego i przesyłania strumieniowego). Usługa Databricks zaleca użycie biblioteki MLflow do wdrażania modeli uczenia maszynowego na potrzeby wnioskowania wsadowego lub przesyłania strumieniowego. Aby uzyskać ogólne informacje na temat pracy z modelami MLflow, zobacz Rejestrowanie, ładowanie, rejestrowanie i wdrażanie modeli MLflow.

Aby uzyskać informacje na temat modelu czasu rzeczywistego obsługującego usługę Azure Databricks, zobacz Obsługa modelu w usłudze Azure Databricks.

Używanie biblioteki MLflow do wnioskowania modelu

Narzędzie MLflow ułatwia generowanie kodu na potrzeby wnioskowania wsadowego lub przesyłania strumieniowego.

  • W rejestrze modeli MLflow można automatycznie wygenerować notes na potrzeby wnioskowania wsadowego lub przesyłania strumieniowego za pośrednictwem tabel delta Live Tables.
  • Na stronie Uruchamianie platformy MLflow dla modelu możesz skopiować wygenerowany fragment kodu na potrzeby wnioskowania na obiektach pandas lub Apache Spark DataFrames.

Możesz również dostosować kod wygenerowany przez jedną z powyższych opcji. Zobacz następujące notesy, aby zapoznać się z przykładami:

  • Przykład wnioskowania modelu używa modelu wytrenowanego za pomocą biblioteki scikit-learn i wcześniej zarejestrowanego w usłudze MLflow, aby pokazać, jak załadować model i użyć go do przewidywania danych w różnych formatach. W notesie pokazano, jak zastosować model jako model scikit-learn do ramki danych biblioteki pandas oraz jak zastosować model jako funkcję UDF PySpark do ramki danych platformy Spark.
  • Przykład rejestru modeli MLflow pokazuje, jak kompilować i wdrażać model oraz zarządzać nim za pomocą rejestru modeli. Na tej stronie można wyszukać .predict w celu zidentyfikowania przykładów przewidywań trybu offline (wsadowych).

Tworzenie zadania usługi Azure Databricks

Aby uruchomić przewidywania wsadowe lub przesyłane strumieniowo jako zadanie, utwórz notes lub plik JAR zawierający kod używany do wykonywania przewidywań. Następnie wykonaj notes lub plik JAR jako zadanie usługi Azure Databricks. Zadania można uruchamiać natychmiast lub zgodnie z harmonogramem.

Wnioskowanie przesyłania strumieniowego

Z rejestru modeli MLflow można automatycznie wygenerować notes, który integruje funkcję UDF wnioskowania MLflow PySpark z tabelami delta Live Tables.

Możesz również zmodyfikować wygenerowany notes wnioskowania, aby użyć interfejsu API przesyłania strumieniowego ze strukturą platformy Apache Spark. Zobacz Przykład potoków biblioteki MLlib platformy Apache Spark i strumienia ze strukturą.

Wnioskowanie za pomocą modeli uczenia głębokiego

Aby uzyskać informacje na temat wnioskowania modelu uczenia głębokiego i ich przykłady w usłudze Azure Databricks, zobacz następujące artykuły:

Wnioskowanie za pomocą modeli MLlib i XGBoost4J

W przypadku skalowalnego wnioskowania modelu z modelami MLlib i XGBoost4J użyj metod natywnych transform do wnioskowania bezpośrednio na ramkach danych platformy Spark. Przykładowe notesy MLlib obejmują kroki wnioskowania.

Dostosowywanie i optymalizowanie wnioskowania modelu

Jeśli używasz interfejsów API MLflow do uruchamiania wnioskowania w ramkach danych platformy Spark, możesz załadować model jako funkcję UDF platformy Spark i zastosować go na dużą skalę przy użyciu przetwarzania rozproszonego.

Możesz dostosować model, aby dodać przetwarzanie wstępne lub przetwarzanie końcowe oraz zoptymalizować wydajność obliczeniową dla dużych modeli. Dobrą opcją dostosowywania modeli jest interfejs API Pyfunc platformy MLflow, który umożliwia opakowywanie modelu za pomocą logiki niestandardowej.

Jeśli musisz przeprowadzić dalsze dostosowywanie, możesz ręcznie opakowować model uczenia maszynowego w funkcji zdefiniowanej przez użytkownika biblioteki Pandas lub funkcji zdefiniowanej przez użytkownika iteratora biblioteki pandas. Zobacz przykłady uczenia głębokiego.

W przypadku mniejszych zestawów danych można również użyć procedur wnioskowania modelu natywnego udostępnianych przez bibliotekę.