Model uczenia maszynowego w Microsoft Fabric

Model uczenia maszynowego to plik wyszkolony do rozpoznawania niektórych typów wzorców. Wytrenujesz model na zestawie danych i udostępnisz go algorytmowi, który używa do wnioskowania i uczenia się z tego zestawu danych. Po wytrenowania modelu możesz użyć go do wnioskowania o danych, których nigdy wcześniej nie widział, i przewidywania dotyczące tych danych.

W środowisku MLflow model uczenia maszynowego może zawierać wiele wersji modelu. W tym miejscu każda wersja może reprezentować iterację modelu. Z tego artykułu dowiesz się, jak korzystać z modeli uczenia maszynowego w celu śledzenia i porównywania iteracji modelu.

Z tego artykułu dowiesz się, jak wykonywać następujące działania:

  • Tworzenie modeli uczenia maszynowego w Microsoft Fabric
  • Zarządzanie wersjami modelu i śledzenie ich
  • Porównanie wydajności modelu w różnych wersjach
  • Stosowanie modeli do oceniania i wnioskowania

Tworzenie modelu uczenia maszynowego

Model uczenia maszynowego można utworzyć na podstawie interfejsu użytkownika Fabric lub programowo przy użyciu interfejsu API platformy MLflow. W środowisku MLflow modele używają standardowego formatu pakowania, który współpracuje z różnymi narzędziami podrzędnymi, w tym wnioskowaniem wsadowym na platformie Apache Spark. Format zapisuje model w różnych "smakach", które mogą zrozumieć różne narzędzia podrzędne.

Aby utworzyć model uczenia maszynowego na podstawie interfejsu użytkownika:

  1. Wybierz istniejący obszar roboczy nauki o danych lub utwórz nowy obszar roboczy.
  2. Utwórz nowy element za pomocą obszaru roboczego lub za pomocą przycisku Utwórz:
    1. Obszar roboczy:
      1. Wybierz swój obszar roboczy.
      2. Wybierz pozycję Nowy element.
      3. Wybierz pozycję Model uczenia maszynowego w obszarze Analizowanie i trenowanie danych. Zrzut ekranu przedstawiający menu Nowy element z wyróżnioną opcją Model uczenia maszynowego w sekcji Analizowanie i trenowanie danych.
    2. Przycisk Utwórz:
      1. Wybierz pozycję Utwórz, którą można znaleźć w ... w menu pionowym. Zrzut ekranu przedstawiający przycisk Utwórz znajdujący się w nawigacji w menu pionowym.
      2. Wybierz pozycję Model uczenia maszynowego w obszarze Nauka o danych. Zrzut ekranu przedstawiający opcję Tworzenie modelu uczenia maszynowego w sekcji Nauka o danych.
  3. Po utworzeniu modelu można rozpocząć dodawanie wersji modelu w celu śledzenia metryk i parametrów przebiegu. Rejestrowanie lub zapisywanie przebiegów eksperymentów w istniejącym modelu.

Możesz również utworzyć model uczenia maszynowego bezpośrednio z poziomu środowiska tworzenia za pomocą interfejsu mlflow.register_model() API. Jeśli zarejestrowany model uczenia maszynowego o podanej nazwie nie istnieje, interfejs API utworzy go automatycznie.

import mlflow

model_uri = "runs:/{}/model-uri-name".format(run.info.run_id)
mv = mlflow.register_model(model_uri, "model-name")

print("Name: {}".format(mv.name))
print("Version: {}".format(mv.version))

Zarządzanie wersjami w modelu uczenia maszynowego

Model uczenia maszynowego zawiera kolekcję wersji modelu na potrzeby uproszczonego śledzenia i porównywania. W ramach modelu analityk danych może nawigować po różnych wersjach modelu, aby zapoznać się z podstawowymi parametrami i metrykami. Analitycy danych mogą również porównać różne wersje modelu, aby ustalić, czy nowsze modele mogą przynieść lepsze wyniki.

Note

Dzięki obsłudze platformy MLflow 3 w Fabric każdy model logowany za pomocą mlflow.<flavor>.log_model(model, name="...") tworzy LoggedModel jednostkę połączoną z jego uruchomieniem źródłowym, parametrami, metrykami, zestawami danych i środowiskiem. Możesz otworzyć model LoggedModel ze strony eksperymentu i zarejestrować go jako nowy model uczenia maszynowego lub nową wersję istniejącego modelu. Aby uzyskać szczegółowe informacje, zobacz MLflow 3 w Fabric Data Science.

Śledzenie modeli uczenia maszynowego

Wersja modelu uczenia maszynowego reprezentuje pojedynczy model zarejestrowany do śledzenia.

Zrzut ekranu przedstawiający stronę szczegółów wersji modelu uczenia maszynowego z informacjami o metrykach, parametrach i śledzeniu.

Każda wersja modelu zawiera następujące informacje:

Majątek Opis
Godzina utworzenia Data i godzina utworzenia modelu.
Nazwa procesu Identyfikator przebiegu eksperymentu użytego do utworzenia tej konkretnej wersji modelu.
Hiperparametry Zapisane jako pary klucz-wartość. Zarówno klucze, jak i wartości są ciągami.
Metrics Uruchom metryki zapisane jako pary klucz-wartość. Wartość jest liczbowa.
Schemat/podpis modelu Opis danych wejściowych i wyjściowych modelu.
Zarejestrowane pliki Zarejestrowane pliki w dowolnym formacie. Można na przykład rejestrować obrazy, środowisko, modele i pliki danych.
Tags Niestandardowe metadane jako pary klucz-wartość dołączone do przebiegów. Dowiedz się, jak stosować tagi.

Stosowanie tagów do modeli uczenia maszynowego

Tagowanie MLflow dla wersji modelu umożliwia użytkownikom dołączanie niestandardowych metadanych do określonych wersji zarejestrowanego modelu w rejestrze modeli MLflow. Te tagi, przechowywane jako pary klucz-wartość, pomagają organizować, śledzić i rozróżniać wersje modelu, co ułatwia zarządzanie cyklami życia modelu. Tagi mogą służyć do oznaczania przeznaczenia modelu, środowiska wdrażania lub innych istotnych informacji, ułatwiając wydajniejsze zarządzanie modelami i podejmowanie decyzji w zespołach.

Ten kod przedstawia sposób trenowania modelu RandomForestRegressor przy użyciu biblioteki Scikit-learn, rejestrowania modelu i parametrów za pomocą biblioteki MLflow, a następnie rejestrowania modelu w rejestrze modeli MLflow przy użyciu tagów niestandardowych. Te tagi zapewniają przydatne metadane, takie jak nazwa projektu, dział, zespół i kwartał projektu, co ułatwia zarządzanie i śledzenie wersji modelu.

import mlflow.sklearn
from mlflow.models import infer_signature
from sklearn.datasets import make_regression
from sklearn.ensemble import RandomForestRegressor

# Generate synthetic regression data
X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)

# Model parameters
params = {"n_estimators": 3, "random_state": 42}

# Model tags for MLflow
model_tags = {
    "project_name": "grocery-forecasting",
    "store_dept": "produce",
    "team": "stores-ml",
    "project_quarter": "Q3-2023"
}

# Log MLflow entities
with mlflow.start_run() as run:
    # Train the model
    model = RandomForestRegressor(**params).fit(X, y)
    
    # Infer the model signature
    signature = infer_signature(X, model.predict(X))
    
    # Log parameters and the model
    mlflow.log_params(params)
    mlflow.sklearn.log_model(model, artifact_path="sklearn-model", signature=signature)

# Register the model with tags
model_uri = f"runs:/{run.info.run_id}/sklearn-model"
model_version = mlflow.register_model(model_uri, "RandomForestRegressionModel", tags=model_tags)

# Output model registration details
print(f"Model Name: {model_version.name}")
print(f"Model Version: {model_version.version}")

Po zastosowaniu tagów można je wyświetlić bezpośrednio na stronie szczegółów wersji modelu. Ponadto tagi można dodawać, aktualizować lub usuwać z tej strony w dowolnym momencie.

Zrzut ekranu przedstawiający stronę szczegółów wersji modelu z wyświetlonymi tagami niestandardowymi, takimi jak nazwa projektu i informacje o zespole.

Porównywanie i filtrowanie modeli uczenia maszynowego

Aby porównać i ocenić jakość wersji modelu uczenia maszynowego, możesz porównać parametry, metryki i metadane między wybranymi wersjami.

Wizualne porównywanie modeli uczenia maszynowego

Możesz wizualnie porównać przebiegi w istniejącym modelu. Porównanie wizualne umożliwia łatwe nawigowanie między różnymi wersjami i sortowanie między nimi.

Zrzut ekranu przedstawiający widok porównania modelu przedstawiający wiele wersji modelu uczenia maszynowego z metrykami i parametrami.

Aby porównać przebiegi, możesz:

  1. Wybierz istniejący model uczenia maszynowego zawierający wiele wersji.
  2. Wybierz kartę Widok , a następnie przejdź do widoku listy Model . Możesz również wybrać opcję Wyświetl listę modeli bezpośrednio z widoku szczegółów.
  3. Kolumny w tabeli można dostosować. Rozwiń okienko Dostosowywanie kolumn . W tym miejscu możesz wybrać właściwości, metryki, tagi i hiperparametry, które chcesz zobaczyć.
  4. Na koniec możesz wybrać wiele wersji, aby porównać ich wyniki w okienku porównania metryk. W tym okienku można dostosować wykresy ze zmianami w tytule wykresu, typem wizualizacji, osią X, osią Y i nie tylko.

Porównanie modeli uczenia maszynowego przy użyciu interfejsu API platformy MLflow

Analitycy danych mogą również używać biblioteki MLflow do wyszukiwania między wieloma modelami zapisanymi w obszarze roboczym. Zapoznaj się z dokumentacją platformy MLflow , aby zapoznać się z innymi interfejsami API platformy MLflow na potrzeby interakcji z modelem.

from pprint import pprint
from mlflow import MlflowClient

client = MlflowClient()
for rm in client.search_registered_models():
    pprint(dict(rm), indent=4)

Stosowanie modeli uczenia maszynowego

Po wytrenowania modelu w zestawie danych można zastosować ten model do danych, które nigdy nie widziały w celu wygenerowania przewidywań. Nazywamy ten model techniką oceniania lub wnioskowania.

Fabric obsługuje wiele metod stosowania wytrenowanych modeli:

  • Ocena wsadowa — Stosowanie modelu na skalę w dużych zestawach danych za pomocą Apache Spark. Jest to idealne rozwiązanie do generowania przewidywań na podstawie danych historycznych lub zaplanowanych.
  • Ocenianie w czasie rzeczywistym Wdrażanie modelu w punkcie końcowym na potrzeby przewidywań na żądanie, przydatne w przypadku aplikacji wymagających natychmiastowych wyników.

Aby rozpocząć stosowanie modeli, wybierz podejście pasujące do danego scenariusza: