ML för alla: En introduktion till Nordstroms ML-plattform

(Ariana Bray) (17 apr 2020)

Vår strategi för att möjliggöra självbetjäning av maskininlärning i stor skala

Foto av Pietro Jeng Unsplash

Från att hantera försörjningskedjelogistik till (bygga curated Looks (digital stylingrekommendationer) för miljontals kunder), fler och fler team på Nordstrom utnyttjar kraften i maskininlärning (ML) för att fortsätta förbättra kundupplevelsen. Från att välja en datakälla till att välja ett programmeringsspråk gör alla det på olika sätt. Var kommer Nordstroms Machine Learning Platform-team in? Vi introducerar Cerebro , en maskininlärningsplattform för alla. I den här artikeln kommer vi att diskutera vår vision för Cerebro, behovet av en maskininlärningsplattform och de problem som vi tog upp när vi designade Cerebro.

Vår vision

Vår vision för Cerebro skulle skapa en plattform som ger dataforskare, analytiker och andra ML-utvecklare möjlighet att skapa skalbara ML-lösningar som driver direkt affärspåverkan – med andra ord är vårt uppdrag att möjliggöra maskininlärning i stor skala. Cerebro syftar till att ge användare en enhetlig uppsättning verktyg som de kan använda för att snabbt utveckla och med tillförsikt distribuera sina ML-lösningar.

Sammanfattningsvis är huvudsyftet med Cerebro att tillhandahålla ett enkelt sätt att hantera en modells livscykel. Cerebro påverkar direkt hela Nordstrom inte bara genom att låta modeller skjutas till produktion snabbare utan också genom att låta andra team använda Cerebro SDK för att ersätta sina tjänster med våra ML-lösningar. Cerebro har redan använts av flera team inom Nordstrom för att betjäna sina projekt. Vår plattform har använts för att driva interna verktyg som modellprognoser. Vi håller följande riktlinjer i spetsen för våra designbeslut:

Vi uppnår dessa mål genom att använda automatiseringar för att skapa en bekväm användarupplevelse.

Automationer för en bekväm användarupplevelse

Behovet

Nordstroms datavetare har länge letat efter nya sätt att lösa den här frågan – hur man aktiverar ett arbetsflöde för maskininlärning från slut till slut .

Arbetsflödet måste också inkludera de många aspekterna av maskininlärning.

Inbäddning av dataingenjörer inom varje team för att skapa engångslösningar för dessa behov är helt enkelt inte kostnadseffektivt alternativ. Att låta dessa datavetenskapsteam hantera hela maskininlärningens livscykel (från datainmatning till modellvisning) skulle ta oacceptabel tid och sakta ner organisationen som helhet. Kort sagt, vi behövde ett sätt att abstrakt teknik från maskininlärning.

Möjligheterna

Det finns allmänt kända problem som följer med att distribuera en modell till produktion. Förutom dessa problem måste ML Platform-teamet också hantera Nordström-specifika problem:

  • Många modeller, många standarder : Nordstrom använder mått och loggningslösningar för företag – men utan en kontaktpunkt för resultaten av dessa mätvärden, hur verkligt är de? Vem är ansvarig för att bibehålla hälsan hos tjänsten och lastutjämnaren? Vilka är några mätvärden som bör övervakas?
  • Skala : Användningsfall för datavetenskap är begränsade till en enda, fristående beräkningsinstans. På grund av avsaknaden av en ML-plattform för företagsklass utnyttjas inte distribuerad beräkning.
  • Arbetsflöde : I avsaknad av ML-arbetsflöden måste ingenjörsteam på Nordstrom ofta göra betydande justeringar av ett datavetenskapsledat projekt för att göra det produktionsklart.
  • Lära sig nya verktyg: I avsaknad av en abstraktion mellan ML och teknik måste de som arbetar med ML-projekt lära sig nya verktyg och tekniker. Denna ansträngning är tidskrävande, kräver teknisk support och lägger till förseningar i tidslinjen för att skapa en produktionsklar modell.

Varför inte bara använda en befintlig plattform?

Det finns många luckor i befintliga ML SaaS-erbjudanden:

  • Ingen centraliserad funktionsbutik
  • Inget stöd för alla modeller och språk
  • Programvaruspecifika modeller
  • Ingen modellspårning; ingen kod → funktion → modell härstamning
  • Ramspecifik, generaliserad hyperparameterjustering
  • Integrationsutmaningar med befintlig infrastruktur
  • Dyra prenumerationsmodeller

Vi bestämde oss för att bygga en plattform som ger datavetare vad de behöver och fyller många av luckorna i andra ML-plattformslösningar.

Varför vi bygger Cerebro

Cerebro är en plattform som demokratiserar maskininlärning. Cerebro stärker i grunden partnerskapet och överbryggar klyftan mellan datavetenskap och teknik.

Cerebro erbjuder användarna en rad fördelar, varav några framhävs nedan:

* Självbetjäning – användarens beroende av ett separat teknikteam minskas;

* Konsekvent – vår strategi stämmer överens med befintliga ML-arbetsflöden som används av datavetenskapssamhället;

* Färre nya tekniker – behovet för en användare att lära sig ny teknik minskas till det absoluta minimum eftersom vi ger abstraktion genom våra gränssnitt;

* Enkel att använda – Cerebro saktar inte ner processen för productionizing -modeller.

I stället för att anställa fler ingenjörer för att stödja ständigt växande fall inom datavetenskap , vi har byggt en plattform som kan skalas för att möjliggöra dessa användningsfall. Istället för att fatta programvarudrivna beslut från tredje part vill vi fatta anpassade algoritmdrivna beslut.

Fördelar med att använda Cerebro

Kom som du är: Abstraktioner för ett standardiserat arbetsflöde

Vårt team ville inte ha en receptbelagd inställning och be varje team att använda samma verktyg och tekniker. Istället har vi utvecklat abstraktioner som hjälper till att skapa ett standardiserat arbetsflöde – det lugna över stormen. Användare har ett urval av sätt att skapa, utveckla och distribuera sina projekt.

Ingen egen teknik

Vi introducerar ingen teknik som är äganderätt till något företag eller organisation – därför har vi inga licenskostnader.

Nej Nytt Nödvändig datorinfrastruktur

Vi utnyttjar de beräkningsplattformar som redan är etablerade i Nordstrom och skapar inga nya.

Välj din egen Datakälla

I stället för att be varje team att använda en specifik datakälla, tillåter Cerebro användare att säkert ansluta till flera av de mest populära databaserna och datalagren. När plattformen mognar kommer vi att möjliggöra anslutningar till ännu fler datakällor.

Cloud Provider-Agnostic

Medan Cerebro har vissa beroende av specifika molnleverantörer, bygger vi mot en helt molnagnostisk lösning som enkelt kan utökas för att stödja flera molnerbjudanden.

Inga begränsningar för modellutbildningsramar som stöds

Cerebro stöder de flesta av de populära ML-ramarna ur lådan. Alla ramar som en datavetare skulle vilja använda kan stödjas med minimala-till-inga-ändringar.

Linje mellan kod, data och modell

Med värdefulla metadata tillgängliga i varje steg ger Cerebro ett sätt att knyta ihop -koden skriven → data som används → och den genererade modell . Användare kan få information om hur modellen serveras och även aktivera modellprestanda / effektivitetsmätning.

Testning och kvalitetskontroll

Cerebro gör det enkelt att sömlöst testa logik som en del av den kontinuerliga integrationsprocessen. Kvaliteten på data hävdas i varje steg.

One-Stop Shop

Cerebro klarar allt. Användare kan:

  • skapa ett maskininlärningsprojekt med sitt eget Gitlab-arkiv
  • utföra lokal utveckling
  • betjäna modeller offline och online
  • orkestrera projektet med Kubernetes eller Apache Spark på Kubernetes
  • hantera projektledningar med öppen källkodsprogramvara i företagsklass

En berättelse om två användare

Om en användare inte bryr sig om abstraktionerna behöver de inte använda dem. Men de allra flesta användare tycker om att använda våra abstraktioner för att slutföra sina projekt.

Eftersom teamet för maskininlärningsplattform fortsätter att bygga Cerebro fungerar de principer som vi håller oss till som viktiga påminnelser om vårt slutmål.

Våra principer

  • Modularitet : Cerebro är mycket mer än bara en slutpunkt som dataforskare skickar modeller in – vi har utvecklat en SDK och har flera presentationsprojekt så att dataforskare kan se det bästa användningsfallet för sina projekt. Genom att genomföra bästa praxis i vårt SDK kan våra användare oberoende använda vår plattform med minimal hjälp från MLP-teamet och ha förtroendet att verktygen som de använder i varje steg i modellens livscykel är korrekta.
  • Öppen kommunikation : Det finns ingen anledning att bygga något om ingen använder det – för detta ändamål har vårt team två gånger i veckan kontorstid där vem som helst kan komma förbi för att felsöka mer detaljerade frågor som inte kan lösas via meddelanden. Dessutom håller teamet två veckors möten med datavetenskapsteam för att förstå deras behov och för att förhindra att man går utanför kursen. Eftersom vi levererar nya funktioner varannan månad är denna ständiga kommunikation avgörande.
  • Hög antagande : Vi arbetar med att integrera vår SDK med allmänt använda Nordstrom-verktyg som NordyPy , vilket möjliggör en bekväm användarupplevelse. När plattformen utvecklas kommer inträdesbarriären att bli lägre och lägre. Detta gör det möjligt för konsumenter av plattformen att komma från hela Nordstrom – inte bara datavetenskap och teknik .

Vad är nästa?

I framtiden artiklar diskuterar vi framtiden för Cerebro, kommande funktioner och plattformens öppen källkodspotential.

Vi vill tacka Nate Lee – en annan ML-plattformsingenjör som hjälpte till att skriva den här artikeln – liksom Rizky Ramdhani, Xingtai Li och Owais Malik, teammedlemmar i ML-plattformen som gav värdefull feedback.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *