Waar u op moet letten in een modelserver om op machine learning gebaseerde services te bouwen

Klik voor meer informatie over co-auteur Ion Stoica.

Klik voor meer informatie over co-auteur Ben Lorica.

Machine learning wordt ingebed in applicaties waarin veel gegevenstypen en gegevensbronnen zijn betrokken. Dit betekent dat softwareontwikkelaars met verschillende achtergronden moeten werken aan projecten waarbij ML betrokken is. In onze vorige posthebben we de belangrijkste functies opgesomd die machine learning-platforms nodig hebben om aan de huidige en toekomstige workloads te voldoen. We hebben ook MLOps beschreven, een reeks praktijken gericht op het produceren van de levenscyclus van machine learning.

Afbeeldingsbron: Anyscale

In dit bericht richten we ons op modelservers, software die de kern vormt van machine learning diensten die in realtime of offline werken. Er zijn twee veelgebruikte benaderingen voor het presenteren van machine learning-modellen. De eerste benadering integreert modelevaluatie in een webserver (bijvoorbeeld Flask) als een API-service-eindpunt dat is toegewijd aan een voorspellingsservice.

De tweede benadering verplaatst modelevaluatie naar een aparte dienst. Dit is een actief gebied voor startups en er zijn steeds meer opties die in deze categorie vallen. Het aanbod omvat services van cloudproviders (SageMaker, Azuur, Google Cloud), open source-projecten voor het bedienen van modellen (Ray Serve, Seldon, TorchServe, TensorFlow Serving, etc.), eigen software (SAS, Datatron, ModelOps, etc.), en op maat gemaakte oplossingen die meestal in een generiek raamwerk zijn geschreven.

Hoewel machine learning kan worden gebruikt voor eenmalige projecten, proberen de meeste ontwikkelaars machine learning te integreren in hun producten en services. Modelservers zijn belangrijke componenten van de software-infrastructuur voor het produceren van machine learning, en daarom moeten bedrijven hun opties zorgvuldig evalueren. Dit bericht richt zich op de belangrijkste functies waar bedrijven naar moeten zoeken in een modelserver.

Ondersteuning voor populaire toolkits

Uw modelserver staat waarschijnlijk los van uw modeltrainingssysteem. Kies een modelserver die een getraind modelartefact kan gebruiken dat is geproduceerd met behulp van een aantal populaire tools. Ontwikkelaars en machine learning-ingenieurs bouwen modellen met behulp van veel verschillende bibliotheken, waaronder die voor deep learning (PyTorch, TensorFlow), machine learning en statistieken (scikit-learn, XGBoost, SAS, statsmodels). Modelbouwers blijven ook verschillende programmeertalen gebruiken. Hoewel Python naar voren is gekomen als de dominante taal voor machine learning, hebben andere talen zoals R, Java, Scala, Julia en SAS nog steeds veel gebruikers. Meer recentelijk hebben veel bedrijven Data Science-werkbanken geïmplementeerd, zoals Databricks, Cloudera, Dataiku, Domino Data Lab en anderen.

Een GUI voor modelimplementatie en meer

Ontwikkelaars gebruiken misschien een opdrachtregelinterface, maar zakelijke gebruikers willen een grafische gebruikersinterface die hen door het proces van het implementeren van modellen leidt en de verschillende fasen van de levenscyclus van machine learning belicht. Naarmate de implementatieprocessen volwassen worden, kunnen ze meer migreren naar scripting en automatisering. Model servers met gebruikersinterfaces omvatten Seldon implementeren, SAS Model Manager, Datatron, en anderen die zich richten op zakelijke gebruikers.

Eenvoudig te bedienen en te implementeren, maar met hoge prestaties en schaalbaarheid

Nu machine learning wordt ingebed in kritieke applicaties, hebben bedrijven modelservers met lage latentie nodig die grootschalige voorspellingsservices kunnen aandrijven. Bedrijven zoals Facebook en Google hebben machine learning-services die realtime reacties bieden miljarden keren elke dag. Hoewel dit extreme gevallen kunnen zijn, implementeren veel bedrijven ook applicaties zoals aanbeveling en personalisatiesystemen die dagelijks met veel gebruikers communiceren. Met de beschikbaarheid van open source-software hebben bedrijven nu toegang tot modelservers met lage latentie die naar veel machines kunnen worden geschaald.

De meeste modelservers gebruiken een microservice-architectuur en zijn toegankelijk via een REST- of gRPC-API. Dit maakt het gemakkelijker om machine learning (“aanbevolen”) te integreren met andere services (“winkelwagentje”). Afhankelijk van uw configuratie wilt u misschien een modelserver waarmee u modellen kunt implementeren in de cloud, op locatie of beide. Uw modelserver moet deelnemen aan infrastructuurfuncties zoals automatisch schalen, resourcebeheer en hardware-inrichting.

Sommige modelservers hebben recente innovaties toegevoegd die de complexiteit verminderen, de prestaties verbeteren en flexibele opties bieden voor integratie met andere services. Met de introductie van een nieuw Tensor-gegevenstype ondersteunt RedisAI data lokaliteit – een functie waarmee gebruikers Tensors van hun favoriete client kunnen krijgen en instellen en ‘hun AI-model kunnen uitvoeren waar hun gegevens leven’. Ray Serve brengt modelevaluatielogica dichter bij bedrijfslogica door ontwikkelaars end-to-end controle te geven van API-eindpunt tot modelevaluatie en terug naar het API-eindpunt. Bovendien is het eenvoudig te bedienen en net zo eenvoudig in te zetten als een eenvoudige webserver.

Bevat tools voor testen, implementatie en uitrol

Zodra een model is getraind, moet het worden beoordeeld en getest voordat het wordt geïmplementeerd. Seldon Deploy, Datatron en andere modelservers hebben een aantal interessante mogelijkheden waarmee u modellen kunt testen met een enkele voorspelling of met een belastingtest. Om foutidentificatie en testen te vergemakkelijken, kunt u met deze modelservers ook testgegevens uploaden en testvoorspellingen visualiseren.

Nadat uw model is beoordeeld en getest, zou uw modelserver u de mogelijkheid moeten bieden om modellen veilig te promoten en te degraderen. Andere populaire uitrolpatronen zijn onder meer:

  • Kanarie: Een klein deel van de verzoeken wordt naar het nieuwe model gestuurd, terwijl het grootste deel van de verzoeken naar een bestaand model wordt gerouteerd.
  • Schaduwen: Productieverkeer wordt gekopieerd naar een niet-productieservice om het model te testen voordat het in productie wordt genomen.

Idealiter zijn uitroltools volledig automatiseerbaar, zodat uw implementatietools kunnen worden aangesloten op uw CI / CD- of MLOps-proces.

Ondersteuning voor complexe implementatiepatronen

Naarmate u meer gebruikmaakt van machine learning, moet uw modelserver in staat zijn om veel modellen in productie te ondersteunen. Uw modelserver moet ook complexe implementatiepatronen ondersteunen waarbij meer dan één model tegelijk moet worden geïmplementeerd. Het moet een verscheidenheid aan patronen ondersteunen, waaronder:

  • A / B-tests: Een fractie van de voorspellingen gebruikt één model en de rest gaat naar een ander model.
  • Ensembles: Meerdere modellen worden gecombineerd om een ​​krachtiger voorspellend model te vormen.
  • Cascade: Als een basismodel een voorspelling met weinig zekerheid oplevert, wordt het verkeer naar een alternatief model geleid. Een andere use case is verfijning: detecteer of er een auto op de foto staat en, als die er is, stuur de foto naar een model dat de kentekenplaat van de auto leest.
  • Multi-Arm Bandit: Een vorm van bekrachtigingsleren, bandieten verdelen verkeer over verschillende concurrerende modellen.

Out of the Box Metrics en Monitoring

Machine learning-modellen kunnen in de loop van de tijd achteruitgaan en het is belangrijk om systemen te hebben die aangeven wanneer modellen minder nauwkeurig worden of vooringenomenheid en ander onverwacht gedrag gaan vertonen. Uw modelserver moet prestaties, gebruik en andere aangepaste metrische gegevens uitzenden die kunnen worden gebruikt door visualisatie en realtime monitoringtools. Sommige modelservers beginnen geavanceerde mogelijkheden te bieden, waaronder anomaliedetectie en waarschuwingen. Er zijn zelfs startups (Superwijs, Arize) die zich richten op het gebruik van ‘machine learning om machine learning te monitoren’. Hoewel dit momenteel gespecialiseerde tools zijn die losstaan ​​van en moeten worden geïntegreerd met modelservers, is het vrij waarschijnlijk dat sommige modelservers geavanceerde monitoring- en observatiemogelijkheden in hun aanbod zullen inbouwen.

Integreert met Model Management Tools

Naarmate u meer modellen implementeert voor productie, moet uw modelserver worden geïntegreerd met uw modelbeheertools. Deze tools vallen onder vele labels – toegangscontrole, modelcatalogus, modelregistratie, dashboard voor modelbeheer – maar in wezen bieden ze u een 360-gradenoverzicht van eerdere en huidige modellen.

Omdat modellen periodiek moeten worden geïnspecteerd, moet uw modelserver worden gekoppeld aan services voor het controleren en reproduceren van modellen. Modelversiebeheer is nu standaard en wordt geleverd met de meeste modelservers die we hebben onderzocht. Datatron heeft een dashboard voor modelbeheer dat tools biedt voor het controleren van slecht presterende modellen. Veel modelservers hebben data lineage services die registreren wanneer verzoeken zijn verzonden en wat de invoer en uitvoer van het model waren. Debugging- en controlemodellen vereisen ook een verfijnd begrip van hun belangrijkste drijfveren. Seldon Deploy kan worden geïntegreerd met een open source tool voor modelinspectie en uitlegbaarheid.

Verenigt batch- en online scoren

Stel dat u uw model heeft bijgewerkt of dat u een groot aantal nieuwe records heeft ontvangen. In beide voorbeelden moet u uw model wellicht toepassen op een grote gegevensset. U hebt een modelserver nodig die grote datasets efficiënt kan scoren in mini-batches, en die ook een lage latentie biedt, online scoren (Ray Serve ondersteunt bijvoorbeeld batch- en online scoring).

Samenvatting

Nu machine learning in meer softwaretoepassingen wordt ingebed, moeten bedrijven hun modelservers zorgvuldig selecteren. Hoewel Ray Serve een relatief nieuwe open source modelserver is, heeft deze al veel van de functies die we in dit bericht hebben genoemd. Het is een schaalbare, eenvoudige en flexibele tool voor het implementeren, bedienen en bewaken van machine learning-modellen. Zoals we in ons vorige bericht hebben opgemerkt, geloven we dat Ray en Ray Serve in de toekomst de basis zullen zijn van veel ML-platforms.

follow:
admin

admin

Related Posts

Een korte geschiedenis van gegevensbeheer

Datamanagement is de organisatie van gegevens, de stappen die worden gebruikt om efficiëntie te bereiken en informatie uit die gegevens

Datakans klopt! Moet je antwoorden?

Klik voor meer informatie over auteur Kartik Patel. Als zakenmensen krijgen we vaak te maken met wat misschien een geweldige

Een korte geschiedenis van gegevensbeheer

Datamanagement is de organisatie van gegevens, de stappen die worden gebruikt om efficiëntie te bereiken en informatie uit die gegevens

Datakans klopt! Moet je antwoorden?

Klik voor meer informatie over auteur Kartik Patel. Als zakenmensen krijgen we vaak te maken met wat misschien een geweldige