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
Ten artykuł dotyczy interfejsu wiersza polecenia ML.NET i ML.NET rozwiązania AutoML, które są obecnie dostępne w wersji zapoznawczej, a materiał może ulec zmianie.
Co to jest interfejs wiersza polecenia (CLI) ML.NET?
Interfejs wiersza polecenia ML.NET jest narzędziem platformy .NET. 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".
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
Istnieje również polecenie, w którym można trenować przy użyciu pliku mbconfig . Plik mbconfig jest tworzony podczas uruchamiania sesji narzędzia Model Builder.
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:
- Rozwiązanie języka C# z:
- Aplikacja konsolowa do uruchamiania/oceniania wygenerowanego modelu (w celu przewidywania w aplikacjach użytkowników końcowych za pomocą tego modelu).
- Aplikacja konsolowa z kodem trenowania używanym do generowania tego modelu (na potrzeby uczenia się lub ponownego trenowania modelu).
- Ten serializowany model ("najlepszy model") jest również udostępniany jako skompresowany plik .zip , który jest gotowy do użycia na potrzeby uruchamiania przewidywań.
- Plik mbconfig, który zawiera dane konfiguracji, które umożliwiają otwarcie modelu w narzędziu Model Builder.
- 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 (na przykład ASP.NET Core aplikacji internetowych, usług i aplikacji klasycznych) w celu przewidywania przy użyciu tego wygenerowanego modelu 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:
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:
Aby zapoznać się z metrykami, które są danymi wyjściowymi interfejsu wiersza polecenia, zobacz Metryki oceny dla regresji.