Zephyrnet-logo

Dit is wat u moet zoeken in een modelserver om ML-aangedreven services te bouwen

Datum:

Dit is wat u moet zoeken in een modelserver om ML-aangedreven services te bouwen

Steeds meer toepassingen worden voorzien van machinaal leren, terwijl MLOps-processen en best practices steeds meer ingeburgerd raken. Cruciaal voor deze software en systemen zijn de servers waarop de modellen draaien, die belangrijke mogelijkheden moeten bieden om succesvolle productie van machine learning op bedrijfsschaal te stimuleren.


By Ben Lorica (helpen organiseren Ray top) en Ion Stoica (Berkeley, Anyscale)

Machine learning wordt ingebed in toepassingen waarbij veel datatypen en databronnen betrokken zijn. Dit betekent dat softwareontwikkelaars met verschillende achtergronden moeten werken aan projecten waarbij ML betrokken is. In onze vorige post, hebben we de belangrijkste functies opgesomd die machine learning-platforms moeten hebben om aan de huidige en toekomstige werklast te kunnen voldoen. We hebben ook MLOps beschreven, een reeks praktijken gericht op het productioniseren van de levenscyclus van machine learning.

In dit bericht concentreren we ons op modelservers, software die de kern vormt van machine learning-services die in realtime of offline werken. Er zijn twee algemene benaderingen die worden gebruikt voor het bedienen van machine learning-modellen. De eerste benadering integreert modelevaluatie in een webserver (bijvoorbeeld Flask) als een API-service-eindpunt dat speciaal is bedoeld voor een voorspellingsservice.

De tweede benadering verplaatst de modelevaluatie naar een afzonderlijke service. Dit is een actief gebied voor startups en er zijn steeds meer opties die in deze categorie vallen. Het aanbod omvat diensten van cloudproviders (SageMakerAzuurGoogle Cloud), open source-projecten voor modelserving (Ray Serveer, Seldon, TorchServe, TensorFlow Serving, enz.), eigen software (SAS, Datatron, ModelOp, enz.) en op maat gemaakte oplossingen die meestal in een algemeen raamwerk zijn geschreven.

Hoewel machine learning kan worden gebruikt voor eenmalige projecten, proberen de meeste ontwikkelaars machine learning in hun producten en diensten te integreren. Modelservers zijn belangrijke componenten van de software-infrastructuur voor het produceren van machine learning, en als zodanig moeten bedrijven hun opties zorgvuldig evalueren. Dit bericht richt zich op de belangrijkste kenmerken 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, statsmodel). Modelbouwers blijven ook verschillende programmeertalen gebruiken. Hoewel Python de dominante taal voor machinaal leren is geworden, 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 kunnen een opdrachtregelinterface gebruiken, maar zakelijke gebruikers willen een grafische gebruikersinterface die hen door het implementatieproces van modellen leidt en de verschillende fasen van de levenscyclus van machine learning belicht. Naarmate de implementatieprocessen volwassener worden, kunnen ze meer migreren naar scripting en automatisering. Modelservers met gebruikersinterfaces omvatten Seldon implementerenSAS-modelmanagerDatatronen andere die gericht zijn op zakelijke gebruikers.

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

Naarmate machine learning wordt ingebed in kritieke applicaties, zullen bedrijven modelservers met lage latentie nodig hebben die grootschalige voorspellingsdiensten kunnen aandrijven. Bedrijven als Facebook en Google hebben machine learning-diensten die realtime antwoorden bieden miljarden keren per dag. Hoewel dit extreme gevallen kunnen zijn, implementeren veel bedrijven ook toepassingen zoals aanbevelings- en personalisatiesystemen die dagelijks met veel gebruikers communiceren. Met de beschikbaarheid van open source-software zoals Ray Serve 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 eenvoudiger om machine learning (“recommender”) te integreren met andere diensten (“winkelwagentje”). Afhankelijk van uw configuratie wilt u mogelijk een modelserver waarmee u modellen in de cloud, op locatie of beide kunt implementeren. 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 ophalen en instellen en “hun AI-model kunnen uitvoeren waar hun gegevens zich bevinden.” Ray Serve brengt modelevaluatielogica dichter bij bedrijfslogica door ontwikkelaars end-to-end controle te geven vanaf het API-eindpunt tot de modelevaluatie, en terug naar het API-eindpunt. Bovendien is Ray Serve 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 behulp van een belastingstest. Om het identificeren en testen van fouten te vergemakkelijken, kunt u met deze modelservers ook testgegevens uploaden en testvoorspellingen visualiseren.

Zodra 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 verzonden, terwijl het grootste deel van de verzoeken naar een bestaand model wordt doorgestuurd.
  • schaduwing: productieverkeer wordt gekopieerd naar een niet-productieservice om het model te testen voordat het in productie wordt uitgevoerd.

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

Ondersteuning voor complexe implementatiepatronen

Naarmate u meer gebruik maakt van machine learning, moet uw modelserver veel modellen in productie kunnen 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.
  • sets: Meerdere modellen worden gecombineerd om een ​​krachtiger voorspellend model te vormen.
  • cascade: als een basismodel met weinig zekerheid een voorspelling produceert, wordt het verkeer naar een alternatief model geleid. Een ander gebruiksscenario is verfijning: detecteer of er een auto op de foto staat, en als die er is, stuur de foto dan naar een model dat het kenteken van de auto leest.
  • Meerarmige bandiet: Een vorm van versterkend leren, bandieten verdelen het verkeer over verschillende concurrerende modellen.

Kant-en-klare statistieken en monitoring

Machine learning-modellen kunnen in de loop van de tijd verslechteren, en het is belangrijk om over systemen te beschikken die aangeven wanneer modellen minder nauwkeurig worden of vooringenomenheid en ander onverwacht gedrag gaan vertonen. Uw modelserver moet prestatie-, gebruiks- en andere aangepaste statistieken uitzenden die kunnen worden gebruikt door visualisatie- en realtime monitoringtools. Sommige modelservers beginnen geavanceerde mogelijkheden te bieden, waaronder detectie van afwijkingen en waarschuwingen. Er zijn zelfs startups (Superwijsopstaan) die zich richten op het gebruik van “machine learning om machine learning te monitoren.” Hoewel dit momenteel gespecialiseerde tools zijn die los staan ​​van en geïntegreerd moeten worden met modelservers, is het zeer waarschijnlijk dat sommige modelservers geavanceerde monitoring- en observatiemogelijkheden in hun aanbod zullen inbouwen.

Integreert met modelbeheertools

Naarmate u meer modellen in productie implementeert, moet uw modelserver worden geïntegreerd met uw modelbeheertools. Deze tools hebben vele namen – toegangscontrole, modelcatalogus, modelregistratie, modelbeheerdashboard – maar in essentie bieden ze u een 360-gradenoverzicht van vroegere en huidige modellen.

Omdat modellen periodiek moeten worden geïnspecteerd, moet uw modelserver een interface hebben met services voor het controleren en reproduceren van modellen. Versiebeheer van modellen is nu standaard en wordt geleverd bij de meeste modelservers die we hebben onderzocht. Datatron heeft een dashboard voor modelbeheer dat tools biedt voor het controleren van ondermaats presterende modellen. Veel modelservers hebben dat datalijn services die registreren wanneer verzoeken zijn verzonden en wat de modelinputs en -outputs waren. Modellen voor foutopsporing en audit vereisen ook een verfijnd begrip van hun belangrijkste drijfveren. Seldon Deploy integreert met een open source-tool voor modelinspectie en uitlegbaarheid.

Verenigt batch- en online scoring

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

Samengevat

Nu machine learning in steeds meer softwareapplicaties wordt ingebed, moeten bedrijven hun modelservers zorgvuldig selecteren. Terwijl Ray Serveer is een relatief nieuwe open source-modelserver en beschikt al over veel van de functies die we in dit bericht hebben vermeld. Ray Serve is een schaalbare, eenvoudige en flexibele tool voor het implementeren, bedienen en monitoren van machine learning-modellen. Zoals wij in onze vorige postgeloven wij dat Ray en Ray Serve in de toekomst de basis zullen vormen van veel ML-platforms.

ORIGINELE. Met toestemming opnieuw gepost.

Bio: Ben Lorica organiseert #SparkAISummit en #raysummit, en was programmavoorzitter van Strataconf en OReillyAI.

Zie ook:

Bron: https://www.kdnuggets.com/2020/09/model-server-build-ml-powered-services.html

spot_img

Laatste intelligentie

spot_img