Microsoft brengt SynapseML 0.1.0 uit met ondersteuning voor .NET en Cognitive Services

Microsoft heeft de eerste .NET-compatibele versie van SynapseML aangekondigd, een nieuwe machine learning (ML)-bibliotheek voor het gedistribueerde verwerkingsplatform Apache Spark. Versie 0.1.0 van de SynapseML-bibliotheek voegt ondersteuning toe voor .NET-bindingen, waardoor .NET-ontwikkelaars ML-pipelines kunnen schrijven in hun voorkeurstaal.

SynapseML, voorheen bekend als MMLSpark (Microsoft Machine Learning for Apache Spark), is een bibliotheek die verschillende ML-algoritmen integreert in een coherente API voor het bouwen van heterogene machine learning-oplossingen die bovenop het Apache Spark-platform zullen worden uitgevoerd. Het stelt ontwikkelaars bijvoorbeeld in staat gebruik te maken van andere krachtige bibliotheken zoals OpenCV (voor computervisie), VowpalWabbit (snel leeralgoritme voor versterking) of LightGBM (voor modellen voor het leren van beslissingsbomen). Het is een doorlopend initiatief voor Microsoft, geschetst in een paper dat in 2019 werd gepubliceerd door Mark Hamilton, een van de ingenieurs van Microsoft achter het SynapseML-project.

SynapseML draait op Apache Spark en vereist Java-installatie, aangezien Spark de JVM gebruikt om Scala uit te voeren. Het heeft echter bindingen voor andere talen zoals Python of R. De huidige 0.10.0-versie voegt bindingen toe voor .NET-talen.

.NET-ondersteuning voor SynapseML wordt uitgevoerd bovenop de .NET voor Apache Spark-bibliotheek. Het is opgenomen in een set SynapseML NuGet-pakketten. De pakketten zijn niet gepubliceerd in de hoofd NuGet-feed en hun bron moet handmatig worden toegevoegd. Eenmaal geïnstalleerd, is de SynapseML API vervolgens beschikbaar om te worden aangeroepen vanuit .NET-toepassingen.

Het volgende codefragment illustreert hoe SynapseML API kan worden aangeroepen vanuit een C#-toepassing.

// Create LightGBMClassifier
var lightGBMClassifier = new LightGBMClassifier()
    .SetFeaturesCol("features")
    .SetRawPredictionCol("rawPrediction")
    .SetObjective("binary")
    .SetNumLeaves(30)
    .SetNumIterations(200)
    .SetLabelCol("label")
    .SetLeafPredictionCol("leafPrediction")
    .SetFeaturesShapCol("featuresShap");

// Fit the model
var lightGBMClassificationModel = lightGBMClassifier.Fit(trainDf);

// Apply transformation and displayresults
lightGBMClassificationModel.Transform(testDf).Show(50);

Met SynapseML kunnen ontwikkelaars andere services in hun pijplijn aanroepen. De bibliotheek biedt ondersteuning voor Microsoft’s eigen Cognitive Services, een reeks AI-services voor algemene doeleinden, mogelijk gemaakt door modellen die door Microsoft zijn getraind. Bovendien stelt de huidige release van SynapseML ontwikkelaars in staat om vooraf getrainde OpenAI-modellen in hun oplossingen te gebruiken, zoals GPT-3 voor het begrijpen en genereren van natuurlijke taal en Codex voor het genereren van code. Het gebruik van OpenAI-modellen vereist momenteel toegang tot Azure OpenAI Service.

Ten slotte voegt de huidige versie ondersteuning toe voor MLflow, een platform om de ML-levenscyclus te beheren. Ontwikkelaars kunnen het gebruiken om modellen te laden en op te slaan en om berichten te loggen tijdens de uitvoering van de modellen.

Het is opvallend dat Microsoft de SynapseML-bibliotheek heeft hernoemd zodat deze overeenkomt met de naam van hun bestaande Azure Synapse Analytics, die volgens de productbeschrijving “een uniforme ervaring is om gegevens op te nemen, te verkennen, voor te bereiden, te transformeren, te beheren en te serveren voor onmiddellijke BI en machine learning-behoeften.”

SynapseML sluit zich aan bij de community van .NET machine learning-bibliotheken:

  • ML.NET is een .NET-bibliotheek voor het uitvoeren van workloads op één machine met .NET-talen.
  • Microsoft Cognitive Toolkit (CNTK) is een Microsoft ML-bibliotheek die vorige maand niet meer actief werd ontwikkeld. Het heeft ook een .NET API.
  • Accord.NET is een ML-bibliotheek voor .NET gericht op beeld- en audioverwerking.
  • Andere populaire algemene ML-bibliotheken hebben .NET-versies:

In de .NET-gemeenschap bestaat er verwarring onder ontwikkelaars over hoe al deze bibliotheken zich met elkaar verhouden of dat ze elkaar vervangen. SynapseML-projectleden lijken deze vragen actief te beantwoorden op Reddit.

.

Leave a Comment