Udostępnij przez


Bezserwerowe zoptymalizowane wdrożenia dla punktów końcowych obsługujących model

W tym artykule opisano sposób używania zoptymalizowanych wdrożeń bezserwerowych na swoich punktach końcowych obsługi modelu. Bezserwerowe zoptymalizowane wdrożenia znacznie obniżają czas wdrażania i utrzymują środowisko obsługujące model tak samo jak środowisko trenowania modelu.

Co to są bezserwerowe zoptymalizowane wdrożenia?

Zoptymalizowane wdrożenia bezserwerowe korzystają z artefaktów modeli w procesie tworzenia pakietów i zarządzania etapami w środowiskach notesów bezserwerowych podczas rejestracji modelu, umożliwiając przyspieszone wdrażanie punktów końcowych i zapewniając spójność środowisk pomiędzy procesem trenowania a obsługą.

Różni się to od nieserwerowych zoptymalizowanych wdrożeń, w których artefakty modelu i środowiska są pakowane w kontenery w czasie wdrażania. W takich przypadkach środowisko, w którym obsługiwany jest model, może nie odpowiadać temu używanemu podczas jego trenowania.

Requirements

Bezserwerowe zoptymalizowane punkty końcowe mają takie same wymagania jak punkt końcowy obsługujący model (zobacz Wymagania). Dodatkowo:

  • Model musi być modelem niestandardowym (nie FMAPI)
  • Model musi być rejestrowany i zarejestrowany w notesie bezserwerowym przy użyciu wersji 3 lub 4
  • Model musi być zalogowany i zarejestrowany w usłudze mlflow>=3.1
  • Model musi być zarejestrowany w UC i obsługiwany przy użyciu procesora CPU
  • Maksymalny rozmiar środowiska modelu to 1 GB

Korzystanie z wdrożeń zoptymalizowanych pod kątem bezserwerowych

Podczas logowania i rejestrowania modelu użyj notebooka bezserwerowego z klientem 3 lub 4 oraz mlflow>=3.1.

Aby dostosować wersję klienta środowiska bezserwerowego, zobacz Konfigurowanie środowiska bezserwerowego.

Następnie, podczas rejestrowania modelu, ustaw parametr env_pack na żądane wartości.

import mlflow
from mlflow.utils.env_pack import EnvPackConfig

mlflow.register_model(
    model_info.model_uri,
    model_name,
    env_pack=env_pack=EnvPackConfig(name="databricks_model_serving")
)

Dodanie parametru env_pack spowoduje, że funkcja zapakuje i przygotuje do użycia artefakty modelu oraz środowisko bezserwerowego notebooka podczas rejestracji modelu, aby były gotowe do użycia podczas wdrażania. Może to zająć dodatkowo więcej czasu w porównaniu z zarejestrowaniem modelu bez env_pack.

EnvPackConfig ma parametr install_dependencies (True domyślnie), który określa, czy zależności modelu są zainstalowane w bieżącym środowisku, aby potwierdzić, że środowisko jest prawidłowe. Jeśli chcesz pominąć ten krok, ustaw wartość na False.

Uwaga / Notatka

Punkty końcowe w obszarach roboczych bez dostępu do Internetu lub z zależnościami od bibliotek niestandardowych mogą zawieść, jeśli install_dependencies jest ustawiony na True. W takich przypadkach ustaw install_dependencies na False.

Możesz również zastąpić EnvPackConfig(...) skrótem "databricks_model_serving". Jest to odpowiednik EnvPackConfig(name="databricks_model_serving", install_dependencies = True).

Po zakończeniu rejestrowania modelu można wdrożyć model w usłudze modelu. Zwróć uwagę, że czas wdrożenia został skrócony, a dzienniki zdarzeń nie wskazują już kompilacji kontenera.