Vad är SynapseML?
SynapseML (tidigare kallat MMLSpark) är ett bibliotek med öppen källkod som förenklar skapandet av pipelines för massivt skalbar maskininlärning (ML). SynapseML tillhandahåller enkla, komposterbara och distribuerade API:er för en mängd olika maskininlärningsuppgifter som textanalys, syn, avvikelseidentifiering och många andra. SynapseML bygger på Apache Spark-ramverket för distribuerad databehandling och delar samma API som SparkML/MLLib-biblioteket, så att du smidigt kan bädda in SynapseML-modeller i befintliga Apache Spark-arbetsflöden.
Med SynapseML kan du skapa skalbara och intelligenta system för att lösa utmaningar i domäner som avvikelseidentifiering, visuellt innehåll, djupinlärning, textanalys och andra. SynapseML kan träna och utvärdera modeller på datorer med en nod, flera noder och elastiskt storleksbara kluster. På så sätt kan du skala ditt arbete utan att slösa resurser. SynapseML kan användas i Python, R, Scala, Java och .NET. Dessutom abstraherar api:et över en mängd olika databaser, filsystem och molndatalager för att förenkla experiment oavsett var data finns.
SynapseML kräver Scala 2.12, Spark 3.0+och Python 3.6+.
Viktiga funktioner i SynapseML
Ett enhetligt API för att skapa, träna och bedöma modeller
SynapseML erbjuder ett enhetligt API som förenklar utvecklingen av feltoleranta distribuerade program. SynapseML exponerar särskilt många olika maskininlärningsramverk under ett enda API som är skalbart, data- och språkoberoende och fungerar för batch-, strömnings- och serverprogram.
Ett enhetligt API standardiserar många verktyg, ramverk, algoritmer och effektiviserar den distribuerade maskininlärningsupplevelsen. Det gör det möjligt för utvecklare att snabbt skapa olika ramverk för maskininlärning, hålla koden ren och aktivera arbetsflöden som kräver mer än ett ramverk. Till exempel kräver arbetsflöden som webb övervakad utbildning eller skapande av sökmotorer flera tjänster och ramverk. SynapseML skyddar användarna från den här extra komplexiteten.
Använda fördefinierade intelligenta modeller
Många verktyg i SynapseML kräver inte en stor träningsdatauppsättning med etiketter. SynapseML tillhandahåller i stället enkla API:er för fördefinierade intelligenta tjänster, till exempel Azure AI-tjänster, för att snabbt lösa storskaliga AI-utmaningar relaterade till både företag och forskning. SynapseML gör det möjligt för utvecklare att bädda in över 50 olika toppmoderna ML-tjänster direkt i sina system och databaser. Dessa färdiga algoritmer kan parsa en mängd olika dokument, transkribera konversationer med flera talare i realtid och översätta text till över 100 olika språk. Fler exempel på hur du använder fördefinierad AI för att snabbt lösa uppgifter finns i SynapseML:s "kognitiva" exempel.
För att göra SynapseML:s integrering med Azure AI-tjänster snabb och effektiv introducerar SynapseML många optimeringar för tjänstorienterade arbetsflöden. I synnerhet parsar SynapseML automatiskt vanliga begränsningssvar för att säkerställa att jobben inte överbelastar serverdelstjänster. Dessutom används exponentiella säkerhetskopieringar för att hantera otillförlitliga nätverksanslutningar och misslyckade svar. Slutligen är Sparks arbetsdatorer upptagna med nya asynkrona parallellitetsprimiteter för Spark. Asynkron parallellitet gör att arbetsdatorer kan skicka begäranden medan de väntar på ett svar från servern och kan ge en tiofaldig ökning av dataflödet.
Bred ekosystemkompatibilitet med ONNX
SynapseML gör det möjligt för utvecklare att använda modeller från många olika ML-ekosystem via ONNX-ramverket (Open Neural Network Exchange). Med den här integreringen kan du köra en mängd olika klassiska modeller och djupinlärningsmodeller i stor skala med bara några rader kod. SynapseML hanterar automatiskt distribution av ONNX-modeller till arbetsnoder, batchbearbetning och buffring av indata för högt dataflöde och schemaläggning av arbete på maskinvaruacceleratorer.
Att ta ONNX till Spark hjälper inte bara utvecklare att skala djupinlärningsmodeller, det möjliggör även distribuerad slutsatsdragning i en mängd olika ML-ekosystem. I synnerhet konverterar ONNXMLTools modeller från TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O och PyTorch till ONNX för accelererad och distribuerad slutsatsdragning med SynapseML.
Skapa ansvarsfulla AI-system
När du har skapat en modell är det viktigt att forskare och tekniker förstår dess begränsningar och beteende före distributionen. SynapseML hjälper utvecklare och forskare att skapa ansvarsfulla AI-system genom att introducera nya verktyg som visar varför modeller gör vissa förutsägelser och hur du kan förbättra träningsdatauppsättningen för att eliminera fördomar. SynapseML påskyndar dramatiskt processen för att förstå en användares tränade modell genom att göra det möjligt för utvecklare att distribuera beräkningar över hundratals datorer. Mer specifikt innehåller SynapseML distribuerade implementeringar av Shapley Additive Explanations (SHAP) och Lokalt tolkade modellagnostiska förklaringar (LIME) för att förklara förutsägelserna om vision, text och tabellmodeller. Den innehåller även verktyg som individuella villkorsförväntningar (ICE) och partiell beroendeanalys för identifierade partiska datamängder.
Enterprise-stöd för Azure Synapse Analytics
SynapseML är allmänt tillgängligt i Azure Synapse Analytics med företagssupport. Du kan skapa storskaliga maskininlärningspipelines med hjälp av Azure AI-tjänster, LightGBM, ONNX och andra valda SynapseML-funktioner. Den innehåller även mallar för att snabbt skapa prototyper för distribuerade maskininlärningssystem, till exempel visuella sökmotorer, pipelines för förutsägande underhåll, dokumentöversättning med mera.