Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen

Ech kennen vill Datewëssenschaftler - an ech si wahrscheinlech selwer ee vun hinnen - déi op GPU Maschinnen schaffen, lokal oder virtuell, an der Wollek, entweder duerch e Jupyter Notebook oder duerch eng Zort Python Entwécklungsëmfeld. Fir 2 Joer als Expert AI / ML Entwéckler ze schaffen, hunn ech genau dat gemaach, wärend ech Daten op engem normale Server oder Workstation virbereet hunn, an Training op enger virtueller Maschinn mat enger GPU an Azure lafen.

Natierlech hu mir all iwwer héieren Azure Machine Léieren - eng speziell Cloud Plattform fir Maschinnléieren. Allerdéngs, no engem éischte Bléck op Aféierungscoursen Artikelen, et schéngt, datt Azure ML méi Problemer fir Iech erstellt wéi et léist. Zum Beispill, am Tutorial uewen ernimmt, Training op Azure ML gëtt aus engem Jupyter Notizbuch lancéiert, während d'Trainingsskript selwer proposéiert gëtt als Textdatei an enger vun den Zellen erstallt an z'änneren - wärend net automatesch Fäerdegstellung, Syntax benotzt. Highlight, an aner Virdeeler vun engem normale Entwécklungsëmfeld. Aus dësem Grond hu mir Azure ML net eescht an eiser Aarbecht fir eng laang Zäit benotzt.

Wéi och ëmmer, ech hunn viru kuerzem e Wee entdeckt fir Azure ML effektiv a menger Aarbecht ze benotzen! Interesséiert fir Detailer?

Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen

D'Haaptgeheimnis ass Visual Studio Code Extensioun fir Azure ML. Et erlaabt Iech Trainingsskripter direkt am VS Code z'entwéckelen, voll Virdeel vun der Ëmwelt ze profitéieren - an Dir kënnt de Skript souguer lokal ausféieren an et dann einfach mat e puer Klicks op Training an engem Azure ML Cluster schécken. Praktesch, ass et net?

Wann Dir dëst maacht, kritt Dir déi folgend Virdeeler vum Azure ML:

  • Dir kënnt déi meescht vun der Zäit lokal op Ärer Maschinn an enger praktescher IDE schaffen, an benotzen GPU nëmme fir Modell Training. Zur selwechter Zäit kann de Pool vun Trainingsressourcen automatesch un déi erfuerderlech Belaaschtung upassen, a andeems Dir d'Mindestzuel vun de Wirbelen op 0 setzt, kënnt Dir automatesch d'virtuell Maschinn "op Ufro" an der Präsenz vun Trainingsaufgaben starten.
  • Dir kënnt späichert all Léierresultater op enger Plaz, abegraff déi erreecht Metriken an déi resultéierend Modeller - et ass net néideg mat enger Aart vu System oder Uerdnung ze kommen fir all d'Resultater ze späicheren.
  • Sou Verschidde Leit kënnen um selwechte Projet schaffen - si kënnen dee selwechte Rechencluster benotzen, all Experimenter ginn an der Schlaang gesat, a si kënnen och d'Resultater vun hiren Experimenter gesinn. Een esou Szenario ass benotzt Azure ML beim Enseignement vun Deep Learningwann amplaz vun engem ginn all Schüler eng virtuell Maschinn mat engem GPU, Dir kënnt ee Stärekoup schafen, datt duerch all zentraler benotzt ginn. Zousätzlech, kann eng allgemeng Tabelle vun Resultater mat Modell Genauegkeet als gutt kompetitiv Element déngen.
  • Mat Azure ML kënnt Dir einfach eng Rei vun Experimenter maachen, zum Beispill, fir Hyperparameter Optimisatioun - dëst kann mat e puer Zeilen Code gemaach ginn, et ass net néideg eng Serie vun Experimenter manuell ze maachen.

Ech hoffen ech hunn Iech iwwerzeegt Azure ML ze probéieren! Hei ass wéi Dir unzefänken:

Azure ML Workspace an Azure ML Portal

Azure ML ass ronderëm d'Konzept organiséiert Aarbecht Beräich - Aarbechtsberäich. Daten kënnen am Aarbechtsberäich gespäichert ginn, Experimenter ginn fir Training geschéckt, Trainingsresultater ginn och do gespäichert - déi resultéierend Metriken a Modeller. Dir kënnt gesinn wat am Aarbechtsberäich ass duerch Azure ML Portal - a vun do aus kënnt Dir vill Operatiounen ausféieren, rangéiert vun Daten iwwer d'Iwwerwaachung vun Experimenter a Modeller z'installéieren.

Dir kënnt en Aarbechtsberäich duerch de Webinterface erstellen Azur Portal (cm. Schrëtt fir Schrëtt Uweisungen), oder benotzt d'Azure CLI Kommandozeil (Instruktiounen):

az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazml

Och mat der Aarbechtsberäich assoziéiert sinn e puer Rechen Ressourcen (Compute). Wann Dir e Skript erstallt hutt fir de Modell ze trainéieren, kënnt Dir schécken Experiment fir Ausféierung op d'Aarbechtsberäich, a spezifizéieren Zil berechnen - an dësem Fall gëtt de Skript verpackt, lafen an der gewënschter Rechenëmfeld, an da ginn all d'Resultater vum Experiment am Aarbechtsberäich gespäichert fir weider Analyse a Gebrauch.

Léieren Skript fir MNIST

Betruecht de klassesche Problem handgeschriwwe Zifferenerkennung benotzt d'MNIST-Datasaz. Ähnlech, an Zukunft kënnt Dir all vun Ären Trainingsskripter lafen.

Et gëtt e Skript an eisem Repository train_local.py, déi mir den einfachsten linearer Regressiounsmodell mat der SkLearn Bibliothéik trainéieren. Natierlech verstinn ech datt dëst net de beschte Wee ass fir de Problem ze léisen - mir benotzen et fir e Beispill, als einfachst.

De Skript luet als éischt d'MNIST Daten aus OpenML erof a benotzt dann d'Klass LogisticRegression fir de Modell ze trainéieren, an dann déi resultéierend Genauegkeet drécken:

mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) for x in mnist['target']])

shuffle_index = np.random.permutation(len(mist['data']))
X, y = mnist['data'][shuffle_index], mnist['target'][shuffle_index]

X_train, X_test, y_train, y_test = 
  train_test_split(X, y, test_size = 0.3, random_state = 42)

lr = LogisticRegression()
lr.fit(X_train, y_train)
y_hat = lr.predict(X_test)
acc = np.average(np.int32(y_hat == y_test))

print('Overall accuracy:', acc)

Dir kënnt de Skript op Ärem Computer lafen an d'Resultat an e puer Sekonnen kréien.

Run de Skript an Azure ML

Wa mir den Trainingsskript duerch Azure ML lafen, hu mir zwee Haaptvirdeeler:

  • Ausbildung op enger arbiträrer Rechenressource lafen, déi, als Regel, méi produktiv ass wéi de lokale Computer. Zur selwechter Zäit këmmert Azure ML selwer sech ëm eise Skript mat all de Fichieren aus dem aktuellen Verzeechnes an en Docker Container ze packen, déi erfuerderlech Ofhängegkeeten z'installéieren an et fir d'Ausféierung ze schécken.
  • Schreift Resultater an eng eenzeg Registry an engem Azure ML Workspace. Fir vun dëser Fonktioun ze profitéieren, musse mir e puer Zeilen Code an eisem Skript derbäi fir déi resultéierend Präzisioun opzehuelen:

from azureml.core.run import Run
...
try:    
    run = Run.get_submitted_run()
    run.log('accuracy', acc)
except:
    pass

Déi entspriechend Versioun vum Skript gëtt genannt train_universal.py (et ass e bësse méi lëschteg wéi et hei uewen geschriwwen ass, awer net vill). Dëse Skript kann souwuel lokal wéi op enger Remote Computing Ressource lafen.

Fir et an Azure ML vum VS Code ze lafen, musst Dir déi folgend maachen:

  1. Vergewëssert Iech datt d'Azure Extensioun mat Ärem Abonnement ugeschloss ass. Wielt d'Azure Ikon aus dem Menü op der lénker Säit. Wann Dir net verbonne sidd, erschéngt eng Notifikatioun am ënneschten rietsen Eck (hei ass), andeems Dir op déi Dir duerch de Browser aginn kënnt. Dir kënnt och klickt Ctrl-Shift-P fir d'VS Code Kommandozeil ze ruffen, an Typ Azure Umellen.

  2. Duerno, an der Azure Sektioun (Ikon op der lénker Säit), fannt Dir d'Sektioun Maschinn Léieren:

Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen
Hei sollt Dir verschidde Gruppe vun Objeten am Aarbechtsberäich gesinn: Rechenressourcen, Experimenter, asw.

  1. Gitt op d'Lëscht vun de Dateien, klickt op d'Skript train_universal.py a wielt Azure ML: Run als Experiment an Azure.

Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen

  1. Dëst gëtt gefollegt vun enger Serie vun Dialogen am Kommandozeilberäich vum VS Code: bestätegt den Abonnement an den Azure ML Workspace deen Dir benotzt, a wielt Erstellt en neit Experiment:

Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen
Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen
Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen

  1. Wielt fir eng nei Rechenressource ze kreéieren Erstellt New Compute:

    • Compute bestëmmt d'Rechenressource op där d'Ausbildung stattfënnt. Dir kënnt e lokale Computer wielen, oder en AmlCompute Cloud Cluster. Ech recommandéieren e skalierbare Stärekoup vu Maschinnen ze kreéieren STANDARD_DS3_v2, mat engem Minimum Zuel vun Maschinnen pa 0 (a maximal 1 oder méi, je Är appetites). Dëst kann duerch de VS Code Interface gemaach ginn, oder virdru duerch ML Portal.

    Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen

  2. Als nächst musst Dir eng Konfiguratioun auswielen Berechent Configuratioun, deen d'Parameteren vum Container definéiert fir Training, besonnesch all déi néideg Bibliothéiken. An eisem Fall, well mir Scikit Learn benotzen, wielt mir SkLearn, a bestätegt dann just déi proposéiert Lëscht vu Bibliothéiken andeems Dir Enter dréckt. Wann Dir zousätzlech Bibliothéike benotzt, mussen se hei spezifizéiert ginn.

    Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen
    Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen

  3. Dëst wäert eng Fënster opmaachen mat enger JSON Datei déi den Experiment beschreift. An et kënnt Dir e puer Parameteren korrigéieren - zum Beispill den Numm vum Experiment. Duerno klickt op de Link Experiment ofginn direkt an dësem Fichier:

Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen

  1. Nodeems Dir en Experiment duerch VS Code erfollegräich ofginn hutt, op der rietser Säit vum Notifikatiounsberäich, gesitt Dir e Link op Azure ML Portal, wou Dir de Status an d'Resultater vum Experiment verfollege kënnt.

Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen
Duerno kënnt Dir et ëmmer an der Rubrik fannen Experimenter Azure ML Portal, oder an der Rubrik Azure Machine Léieren an der Lëscht vun Experimenter:

Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen

  1. Wann Dir duerno e puer Korrekturen un de Code gemaach hutt oder d'Parameteren geännert hutt, da wäert d'Experiment nei starten vill méi séier a méi einfach. Andeems Dir op eng Datei klickt, gesitt Dir en neit Menüpunkt Widderhuelen déi lescht Laf - wielt et einfach, an d'Experiment fänkt direkt un:

Wéi Angscht ze iwwerwannen an Azure Machine Learning ze benotzen
Dir kënnt ëmmer d'Resultater vu Metriken vun all Starten um Azure ML Portal fannen, et ass net néideg se opzeschreiwen.

Elo wësst Dir datt Experimenter mat Azure ML lafen einfach a schmerzlos ass, an Dir kritt eng Rei vu schéine Virdeeler doduerch.

Awer Dir kënnt och d'Nodeeler gesinn. Zum Beispill huet et däitlech méi laang gedauert fir de Skript ze lafen. Natierlech, de Skript an engem Container ze packen an et op de Server z'installéieren brauch Zäit. Wann gläichzäiteg de Stärekoup op eng Gréisst vun 0 Node geschnidde gouf, wäert et nach méi Zäit daueren fir d'virtuell Maschinn ze starten, an all dat ass ganz bemierkbar wann mir experimentéieren op einfach Aufgaben wéi MNIST, déi an e puer Sekonnen geléist ginn . Wéi och ëmmer, am richtege Liewen, wann Training e puer Stonnen, oder souguer Deeg oder Wochen dauert, gëtt dës zousätzlech Zäit onbedeitend, besonnesch géint den Hannergrond vun der vill méi héijer Leeschtung, déi e Rechencluster ubitt.

Wat d'nächst?

Ech hoffen, datt Dir no dësem Artikel gelies hutt, Dir kënnt a benotzt Azure ML an Ärer Aarbecht fir Skripte ze lafen, Rechenressourcen ze verwalten an d'Resultater zentral ze späicheren. Wéi och ëmmer, Azure ML kann Iech nach méi Virdeeler ginn!

Bannen am Aarbechtsberäich kënnt Dir Daten späicheren, an doduerch en zentraliséierte Repository fir all Är Aufgaben erstellen, wat einfach zougänglech ass. Zousätzlech kënnt Dir Experimenter net aus Visual Studio Code lafen, awer d'API benotzen - dëst kann besonnesch nëtzlech sinn wann Dir Hyperparameteroptiméierung maache musst an de Skript vill Mol mat verschiddene Parameteren ausféieren. Ausserdeem ass speziell Technologie an Azure ML agebaut hyper fueren, wat Iech erlaabt méi schwiereg Sich an Optimiséierung vun Hyperparameter ze maachen. Ech wäert iwwer dës Méiglechkeeten a mengem nächste Post schwätzen.

Nëtzlech Ressourcen

Fir méi iwwer Azure ML ze léieren, fannt Dir déi folgend Microsoft Learn Coursen hëllefräich:

Source: will.com

Setzt e Commentaire