Automatyzowanie trenowania modelu za pomocą interfejsu wiersza polecenia ML.NET

Interfejs wiersza polecenia ML.NET automatyzuje generowanie modeli dla deweloperów platformy .NET.

Aby użyć samego interfejsu API ML.NET (bez interfejsu wiersza polecenia rozwiązania AutoML ML.NET), musisz wybrać trenera (implementację algorytmu uczenia maszynowego dla określonego zadania) oraz zestaw przekształceń danych (inżynierii cech) do zastosowania do danych. Optymalny potok będzie się różnić dla każdego zestawu danych i wybranie optymalnego algorytmu ze wszystkich wyborów zwiększa złożoność. Co więcej, każdy algorytm ma zestaw hiperparametrów, które mają być dostrojone. W związku z tym można spędzić tygodnie, a czasami miesiące na optymalizację modelu uczenia maszynowego, próbując znaleźć najlepsze kombinacje inżynierii cech, algorytmów uczenia i hiperparametrów.

Interfejs wiersza polecenia ML.NET upraszcza ten proces przy użyciu zautomatyzowanego uczenia maszynowego (AutoML).

Uwaga

W tym temacie opisano interfejs wiersza polecenia ML.NET i ML.NET AutoML, które są obecnie dostępne w wersji zapoznawczej, a materiały mogą ulec zmianie.

Co to jest interfejs wiersza polecenia (CLI) ML.NET?

Interfejs wiersza polecenia ML.NET jest narzędziem platformy .NET Core. Po zainstalowaniu nadasz mu zadanie uczenia maszynowego i zestaw danych uczenia maszynowego oraz generuje model ML.NET, a także kod języka C#, który ma zostać uruchomiony w celu użycia modelu w aplikacji.

Jak pokazano na poniższej ilustracji, proste jest wygenerowanie modelu ML.NET wysokiej jakości (serializowanego modelu .zip pliku) oraz przykładowego kodu C#, aby uruchomić/ocenić ten model. Ponadto kod języka C# służący do tworzenia/trenowania tego modelu jest również generowany, dzięki czemu można badać i iterować algorytm i ustawienia używane dla tego wygenerowanego "najlepszego modelu".

AutoML engine working inside the ML.NET CLI

Możesz wygenerować te zasoby na podstawie własnych zestawów danych bez konieczności samodzielnego kodowania, więc zwiększa to również produktywność, nawet jeśli już wiesz, ML.NET.

Obecnie zadania uczenia maszynowego obsługiwane przez interfejs wiersza polecenia ML.NET są następujące:

  • Klasyfikacji
  • Regresji
  • Zalecenie
  • klasyfikacja obrazów
  • Prognozowania
  • Pociąg

Interfejs wiersza polecenia ML.NET można zainstalować na podstawie systemu operacyjnego i jego architektury za pomocą następującego polecenia:

dotnet tool install --global mlnet-<OS>-<ARCH>

Na przykład można zainstalować wersję x64 systemu Windows z:

dotnet tool install --global mlnet-win-x64

Aby uzyskać więcej informacji, zobacz przewodnik Instalowanie interfejsu wiersza polecenia platformy ML.NET.

Przykład użycia (scenariusz klasyfikacji):

mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10

ML.NET classification from the command line

Można uruchomić go w taki sam sposób w programie Windows PowerShell, systemie macOS/Linux bash lub CMD systemu Windows. Jednak tabelaryczne automatyczne uzupełnianie (sugestie parametrów) nie będzie działać na cmD systemu Windows.

Wygenerowane zasoby wyjściowe

Polecenia zadań uczenia maszynowego w interfejsie wiersza polecenia generują następujące zasoby w folderze wyjściowym:

  • Zserializowany model .zip ("najlepszy model") gotowy do użycia na potrzeby uruchamiania przewidywań.
  • Rozwiązanie języka C# z:
    • Kod języka C# do uruchamiania/oceniania wygenerowanego modelu (w celu przewidywania w aplikacjach użytkowników końcowych za pomocą tego modelu).
    • Kod języka C# z kodem trenowania używanym do generowania tego modelu (na potrzeby uczenia się lub ponownego trenowania modelu).
  • Plik dziennika zawierający informacje dotyczące wszystkich iteracji/zamiatania w wielu ocenianych algorytmach, w tym ich szczegółową konfigurację/potok.

Pierwsze dwa zasoby mogą być używane bezpośrednio w aplikacjach użytkowników końcowych (ASP.NET Core aplikacji internetowej, usług, aplikacji klasycznej itp.), aby przewidywać wygenerowany model uczenia maszynowego.

Trzeci zasób, kod trenowania, pokazuje, jaki kod interfejsu API ML.NET został użyty przez interfejs wiersza polecenia do trenowania wygenerowanego modelu, dzięki czemu można ponownie wytrenować model i zbadać i iterować, na którym określonym trenerze/algorytmie/algorytmie i hiperparametrach zostały wybrane przez interfejs wiersza polecenia i rozwiązanie AutoML w ramach okładek.

Zrozumienie jakości modelu

Podczas generowania "najlepszego modelu" za pomocą narzędzia interfejsu wiersza polecenia są wyświetlane metryki jakości (takie jak dokładność i R-Squared) odpowiednie dla docelowego zadania uczenia maszynowego.

W tym miejscu te metryki są podsumowane pogrupowane według zadania uczenia maszynowego, dzięki czemu można zrozumieć jakość wygenerowanego automatycznie "najlepszego modelu".

Metryki modeli klasyfikacji

Na poniższej ilustracji przedstawiono listę metryk klasyfikacji dla pięciu najlepszych modeli znalezionych przez interfejs wiersza polecenia:

Classification metrics for top five models

Dokładność jest popularną metryką dla problemów klasyfikacji, jednak dokładność nie zawsze jest najlepszą metryką do wybrania najlepszego modelu zgodnie z wyjaśnieniem w poniższych odwołaniach. Istnieją przypadki, w których należy ocenić jakość modelu przy użyciu dodatkowych metryk.

Aby zapoznać się z metrykami, które są danymi wyjściowymi interfejsu wiersza polecenia, zobacz Metryki oceny klasyfikacji.

Metryki dla modeli regresji i rekomendacji

Model regresji pasuje do źródła danych, jeśli różnice między obserwowanymi wartościami a przewidywanymi wartościami modelu są małe i niebiały. Regresja może być oceniana przy użyciu określonych metryk.

Zobaczysz podobną listę metryk dla pięciu najlepszych modeli jakości znalezionych przez interfejs wiersza polecenia, z tą różnicą, że pięć pierwszych jest powiązanych z zadaniem uczenia maszynowego regresji:

Regression metrics for top five models

Aby zapoznać się z metrykami, które są danymi wyjściowymi interfejsu wiersza polecenia, zobacz Metryki oceny dla regresji.

Zobacz też