Zephyrnet-logo

Implementeer uw ML-model als een webservice in Microsoft Azure Cloud

Datum:

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Dit artikel biedt u een praktische implementatie voor het implementeren van een ML-model in de Azure-cloud. Als Azure machine learning nieuw voor u is, raad ik u aan de Microsoft-documentatie door te nemen die is opgenomen in de sectie met verwijzingen, waarin de basisprincipes van Azure Machine Learning worden behandeld.

ML-model in de Azure-cloud

                                                                             Afbeelding 1

Als je een beginner bent op het gebied van machine learning, zou je de andere fasen van de machine learning-levenscyclus hebben verkend, waaronder gegevensvoorbereiding en -analyse, modeltraining en modeltesten, maar heb je het uitgeprobeerd of overwogen om het ergens zo in te zetten dat anderen er toegang toe hebben om hetzelfde probleem op te lossen dat u met uw model had opgelost. Als je er nog niet aan hebt gedacht, is dit de beste tijd om een ​​van de cruciale onderdelen van de levenscyclus van machine learning te leren, namelijk de implementatie van modellen. In eenvoudige bewoordingen, wanneer u een model implementeert, wordt het toegevoegd aan de productieomgeving zodat de eindgebruikers gebruik kunnen maken van de service om hun probleem op te lossen. Tegenwoordig vertrouwen veel bedrijven op de output van deze ingezette modellen om cruciale beslissingen in hun vakgebied te nemen. Cloudplatforms zoals Microsoft Azure beloven in deze gevallen een betrouwbare en efficiënte service voor de klant.

Om praktische ervaring op te doen met het implementeren van een model, is hier een eenvoudig probleem genomen. De stappen die hier worden gevolgd tijdens het implementeren van het model zijn:

1. Het ML-model registreren

2. Het model implementeren

3. Toegang tot het eindpunt voor het maken van de voorspelling

Al deze stappen worden uitgelegd en geïmplementeerd in de komende secties van het artikel. Het is aan te raden om een ​​Azure-abonnement te hebben om deze van uw kant te implementeren. Als je student bent, kun je je universitaire e-mailadres gebruiken om een ​​studentenaccount aan te maken. Azure geeft je 100 credits voor een jaar. Als je geen student bent en je wilt gewoon Azure verkennen, kies dan voor de gratis proefperiode nadat je je hebt geregistreerd met je inloggegevens. Je hebt 30 dagen toegang tot bijna alle Azure-services.

In dit artikel had ik de Iris-Setosa-dataset genomen en een SVM-model in mijn lokale systeem getraind. Nadat ik het model had getraind, had ik het opgeslagen in een augurk-bestandsindeling. Hier had ik slechts één functie gebruikt om het model te trainen (Onze focus ligt hier niet op het verkrijgen van een high-performance model. We zullen ons meer concentreren op de implementatie. Probeer in uw use-case het beste implementatiemodel te brengen).

importeer panda's als pd importeer sklearn van sklearn.svm importeer SVC importeer augurk importeer joblib van sklearn.model_selection import train_test_split dataset = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris /iris.data", header = Geen, namen= colnames) dataset = dataset.replace({"class": {"Iris-setosa":1,"Iris-versicolor":2, "Iris-virginica":3} }) X = dataset.drop(['class'], axis=1)[:,0] y = dataset['class'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) classifier = SVC(kernel = 'lineair', random_state = 0) #Plaats het model op trainingsgegevens classifier.fit(X_train, y_train) #Maak de voorspelling y_pred = classifier.predict(X_test) ## Opslaan als augurk bestand bestandsnaam= 'final_mod_v1.pkl' joblib.dump(classifier,open(bestandsnaam, 'wb'))

Vervolgens zullen we het model registreren in de Azure Model Registry

1. Het model registreren in het Modelregister

Het modelregister helpt bij het bijhouden van alle getrainde modellen in uw machine learning-werkruimte. Het ML-model kan worden geregistreerd via de gebruikersinterface of met behulp van het script. Hier zullen we het model registreren met behulp van de gebruikersinterface. Aangezien ik al een werkruimte had gemaakt, maak ik geen nieuwe aan. Voor het maken van een werkruimte vanaf uw lokale systeem kunt u het onderstaande script gebruiken. Binnen enige tijd wordt er een nieuwe werkruimte gemaakt in uw resourcegroep.

van azureml.core import Workspace ws = Workspace.create(name='sample', abonnement_id='**********', resource_group='sample_group', create_resource_group=True, location='location' )

Voordat u het model registreert, moet u het volgende voorbereiden:

a) Scorescript

b) YAML-bestand dat de pakketten bevat die door het model worden gebruikt

Het scorescript speelt een intermediaire rol tussen het geïmplementeerde model en de client die het gebruikt. Wanneer de client de invoergegevens verzendt, ontvangt het scorescript de gegevens en geeft deze door aan het model. Het zal de uitvoer van het model terugsturen naar de klant. Het script bevat hoofdzakelijk twee functies.

(1) init-functie

(2) run-functie

init-functies helpen bij het laden van uw model en de run-functie om uw model uit te voeren op de invoergegevens die de client heeft doorgegeven.

import json import numpy as np import os import augurk importeer joblib van sklearn.svm importeer SVC van azureml.core import Model definit(): global model model_name = 'classifier' path = Model.get_model_path(model_name) model = joblib.load( path) def run(data): try: data = json.loads(data) result = model.predict(data['data']) return {'data' : result.tolist() , 'message' : "Succesvol geclassificeerd Iris"} behalve uitzondering als e: error = str(e) return {'data' : error , 'message' : 'Kan iris niet classificeren'} Sla de hierboven geschreven scripts op in een .py-bestand.

Voor het maken van het YAML-bestand is een voorbeeldsjabloon meegeleverd hier. U kunt dat bestand bewerken om de benodigde pakketten toe te voegen. Laten we nu het model registreren.

Open eerst de machine learning-werkruimte via de Azure-portal en start de Machine Learning Studio.

Microsoft Azure

                                                                               Afbeelding 2

ML-model in de Azure-cloud

                                                                               Afbeelding 3

Selecteer voor het modelregister "model" in de linkerzijbalk en vervolgens de optie "creëren".

ML-model in de Azure-cloud

                                                                               Afbeelding 4

Voor het huidige probleem hadden we de Scikit-leerfunctie gebruikt om het model te bouwen. Indien nodig is versiebeheer van het model mogelijk in het modelregister. Hetzelfde model met meerdere versies wordt apart weergegeven in het modellenregister. Upload ten slotte het getrainde model vanuit uw lokale systeem.

Nadat u op registreren heeft geklikt, kunt u uw model zien in het modellenregister.

Modelregister

                                                                               Afbeelding 5

2. Het model implementeren

Selecteer het model in het modelregister, klik op implementeren en selecteer implementeren naar een webservice.

Het model implementeren

                                                                                Afbeelding 6

Nadat u de optie "Deploy to a webservice" hebt geselecteerd, moet u het scorescript uploaden dat we hebben gemaakt samen met het YAML-bestand dat de pakketafhankelijkheden bevat.

Webservice implementeren | ML-model in de Azure-cloud

                                                                                  Afbeelding 7

Ga na het implementeren van het model naar de sectie eindpunt. Het kan ongeveer 6-10 minuten duren voordat het model is geïmplementeerd. Als er een fout optreedt tijdens het implementeren van het model, kunt u de implementatielogboeken raadplegen voor meer informatie.

ML-model in de Azure-cloud

                                                                                    Afbeelding 8

ML-model in de Azure-cloud

                                                                                   Afbeelding 9

Modelclassificatie

                                                                                 Afbeelding 10

3. Het REST-eindpunt gebruiken 

Laten we voor het maken van een voorspelling het eindpunt gebruiken om de invoer naar het model te sturen dat in de cloud is geïmplementeerd.

REST-eindpunt

                                                                               Afbeelding 11

Het werkt prima!! Het model heeft het label voorspeld als Iris-Setosa(label 1).

EndNote

Als volgende stap in het leren, kunt u proberen MLOps te begrijpen die is gebouwd op basis van de principes van DevOps. Het helpt voornamelijk bij het automatiseren van de ML-levenscyclus. U kunt de documentatie van MLOps met behulp van Azure doornemen die is verstrekt in de referentiesectie. Als u de Azure-services voor het eerst gebruikt, probeer dan het gebruik van Azure-services goed te beheren, anders kunnen uw gratis tegoeden drastisch verminderen. Ik had de ervaring dat ik $ 36 credits verloor omdat ik 30 dagen lang vergat een ongebruikte schijf te verwijderen.

Lees meer blogs over Azure Cloud op onze van de.

Referenties

1. Documentatie voor concepten met betrekking tot Azure machine learning-https://docs.microsoft.com/en-us/azure/machine-learning/concept-azure-machine-learning-architecture

2. ML-modellen implementeren in Azure – https://docs.microsoft.com/en-us/azure/machine-learning/how-to-deploy-and-where?tabs=azcli

3. MLOps met Azure Machine Learning – https://docs.microsoft.com/en-us/azure/machine-learning/concept-model-management-and-deployment

Afbeeldingsreferentie:

1.ML-levenscyclus – https://www.dreamstime.com/components-machine-learning-lifecycle-components-machine-learning-lifecycle-image200203062

Over de auteur

Hallo, ikzelf Adwait Dathan. Ik volg Mtech in AI en Data Science. Voel je vrij om contact met mij op te nemen op LinkedIn. Laat uw opmerkingen achter na het lezen van het artikel.

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt. 

spot_img

Laatste intelligentie

spot_img