Automatizace trénování modelů pomocí rozhraní příkazového řádku ML.NET

Rozhraní příkazového řádku ML.NET automatizuje generování modelů pro vývojáře .NET.

Pokud chcete rozhraní API ML.NET používat samostatně (bez rozhraní příkazového řádku ML.NET AutoML), musíte zvolit trenéra (implementaci algoritmu strojového učení pro konkrétní úlohu) a sadu transformací dat (příprava funkcí), která se použije na vaše data. Optimální kanál se bude lišit pro každou datovou sadu a výběr optimálního algoritmu ze všech možností se zvýší složitosti. Ještě více má každý algoritmus sadu hyperparametrů, které se mají ladit. Proto můžete strávit týdny a někdy měsíce na optimalizaci modelu strojového učení a snažit se najít nejlepší kombinace technik funkcí, algoritmů učení a hyperparametrů.

Rozhraní příkazového řádku ML.NET tento proces zjednodušuje pomocí automatizovaného strojového učení (AutoML).

Poznámka:

Tento článek se týká ML.NET rozhraní příkazového řádku a ML.NET AutoML, které jsou aktuálně ve verzi Preview, a materiál se může změnit.

Co je rozhraní příkazového řádku (CLI) ML.NET?

Rozhraní příkazového řádku ML.NET je nástroj .NET. Po instalaci získáte úlohu strojového učení a trénovací datovou sadu a vygeneruje ML.NET model a také kód jazyka C#, který se má spustit, aby používal model ve vaší aplikaci.

Jak je znázorněno na následujícím obrázku, je jednoduché vygenerovat vysoce kvalitní model ML.NET (serializovaný model .zip soubor) a ukázkový kód jazyka C# pro spuštění/skóre tohoto modelu. Kromě toho se vygeneruje také kód jazyka C#, který vytvoří nebo vytrénuje tento model, abyste mohli prozkoumat a iterovat algoritmus a nastavení používané pro vygenerovaný "nejlepší model".

Modul AutoML pracující v rozhraní příkazového řádku ML.NET

Tyto prostředky můžete vygenerovat ze svých vlastních datových sad bez psaní kódu sami, takže také zvyšuje produktivitu, i když už víte, ML.NET.

V současné době jsou úlohy STROJOVÉho učení podporované rozhraním příkazového řádku ML.NET:

  • Klasifikace
  • Regrese
  • Doporučení
  • klasifikace obrázků
  • Prognózování
  • Vlak

Rozhraní příkazového řádku ML.NET je možné nainstalovat na základě operačního systému a jeho architektury pomocí následujícího příkazu:

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

Například verzi systému Windows x64 je možné nainstalovat s:

dotnet tool install --global mlnet-win-x64

Další informace najdete v průvodci instalací ML.NET rozhraní příkazového řádku .

Příklad použití (scénář klasifikace):

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

ML.NET klasifikaci z příkazového řádku

Můžete ho spustit stejným způsobem v prostředí Windows PowerShell, macOS/Linux bash nebo windows CMD. Tabulkové automatické dokončování (návrhy parametrů) ale ve Windows CMD nebude fungovat.

Vygenerované výstupní prostředky

Příkazy úloh ML v rozhraní příkazového řádku generují ve výstupní složce následující prostředky:

  • Serializovaný model .zip ("nejlepší model") připravený k použití pro spouštění předpovědí.
  • Řešení jazyka C# s:
    • Kód jazyka C# pro spuštění nebo skóre vygenerovaného modelu (pro predikce v aplikacích koncových uživatelů s tímto modelem)
    • Kód jazyka C# s trénovacím kódem použitým k vygenerování tohoto modelu (pro účely učení nebo opětovné trénování modelu).
  • Soubor protokolu s informacemi o všech iteracích a úklidech napříč několika vyhodnocenými algoritmy, včetně jejich podrobné konfigurace nebo kanálu.

První dva prostředky je možné přímo použít v aplikacích pro koncové uživatele (například ASP.NET core webových aplikací, služeb a desktopových aplikací) k předpovědím s tímto vygenerovaným modelem ML.

Třetí prostředek, trénovací kód, ukazuje, co ML.NET kód rozhraní API použil rozhraní příkazového řádku k trénování vygenerovaného modelu, takže můžete model znovu vytrénovat a prověřit a iterovat, na které konkrétní trenér/algoritmus a hyperparametry byly vybrány rozhraním příkazového řádku a AutoML v rámci pokrytí.

Porozumění kvalitě modelu

Když vygenerujete pomocí nástroje rozhraní příkazového řádku "nejlepší model", zobrazí se metriky kvality (například přesnost a R-Squared), které jsou vhodné pro úlohu ML, na kterou cílíte.

Tady jsou tyto metriky shrnuté podle úlohy ML, abyste pochopili kvalitu automaticky generovaného "nejlepšího modelu".

Metriky pro klasifikační modely

Následující obrázek zobrazuje seznam metrik klasifikace pro prvních pět modelů nalezených rozhraním příkazového řádku:

Metriky klasifikace pro prvních pět modelů

Přesnost je oblíbenou metrikou pro problémy klasifikace, ale přesnost není vždy nejlepší metrikou pro výběr nejlepšího modelu, jak je vysvětleno v následujících odkazech. Existují případy, kdy potřebujete vyhodnotit kvalitu modelu s dalšími metrikami.

Pokud chcete prozkoumat a pochopit metriky, které jsou výstupem rozhraní příkazového řádku, projděte si metriky vyhodnocení klasifikace.

Metriky pro modely regrese a doporučení

Regresní model dobře odpovídá datům, pokud jsou rozdíly mezi pozorovanými hodnotami a predikovanými hodnotami modelu malé a nestranné. Regresi je možné vyhodnotit pomocí určitých metrik.

Zobrazí se podobný seznam metrik pro pět nejlepších modelů kvality nalezených rozhraním příkazového řádku, s výjimkou tohoto případu, prvních pět se vztahuje k úloze ML regrese:

Regresní metriky pro prvních pět modelů

Pokud chcete prozkoumat a pochopit metriky, které jsou výstupem rozhraní příkazového řádku, podívejte se na metriky vyhodnocení pro regresi.

Viz také