Zephyrnet-logo

Dashboards maken en implementeren met Voila en Saturn Cloud

Datum:

Dashboards maken en implementeren met Voila en Saturn Cloud

Het is een uitdagende klus om met grote datasets te werken en ze te trainen, ze allemaal op één plek te onderhouden en ze in productie te nemen. In dit artikel hebben we besproken wat Saturn Cloud is en hoe het uw end-to-end pijplijn kan versnellen, hoe u dashboards kunt maken met Voila en Python en deze in slechts een paar eenvoudige stappen naar productie kunt publiceren.


By Dhrumil Patel, Performance Analyst Intern bij NVIDIA

Filter en visualiseer banktransactiegegevens

 
Het is een uitdagende klus om met grote datasets te werken en ze te trainen, ze allemaal op één plek te onderhouden en ze in productie te nemen. Maar wat als ik je vertel dat er een manier is om al deze problemen met slechts een paar klikken af ​​te handelen?
 
Laten we begrijpen hoe we dat gemakkelijk kunnen doen. In dit artikel zullen we een dashboard maken (met behulp van Python en Voila) dat een machine learning-model uitvoert om frauduleuze transacties te verwijderen en resterende gegevens met visualisatie weer te geven, en deze te publiceren naar de productieserver van Saturn Cloud voor eenvoudigere toegang. Hier is een overzicht van het artikel, spring gerust een paar secties over als u op de hoogte bent van de details.

  1. Wat is Saturnus Cloud?
  2. Maak het dashboard (met gegevensfiltering en visualisatie)
  3. Dashboard implementeren (lokaal en productie)
  4. Eindnoten

Wat is Saturnuswolk

 
Saturn cloud is een machine learning-platform dat DevOps- en ML-infrastructuur automatiseert. Bovendien gebruiken ze jupyter en dash om python te schalen voor enorme hoeveelheden gegevens. Hier zijn nog een paar functies die Saturn Cloud biedt:

  • Je kunt gebruiken Dashboard om uw code parallel uit te voeren op zoveel machines als u nodig heeft
  • U kunt uw code probleemloos op GPU uitvoeren
  • U kunt uw werk inzetten zonder afhankelijk te zijn van een apart team
  • Het is volledig gebouwd op open source-tools 
  • Het kan ook worden uitgevoerd in uw AWS-account. Bovendien maakt Saturn Cloud verbinding met uw bestaande gegevens, u hoeft deze niet te verplaatsen. Voeg de vereiste inloggegevens toe en u bent klaar om te gaan.
  • U kunt vanuit Google Colab verbinding maken met Dask. U kunt ook verbinding maken met elke GCP-service die Python kan hosten.

Is dat niet cool? Laten we eens kijken hoe we in een paar eenvoudige stappen een dashboard kunnen maken en publiceren naar productie met Saturnus.

Een dashboard maken

 
Voila 101

Laten we, voordat we het dashboard implementeren, eerst een basisdashboard maken met behulp van Python en Alstublieft. Er zijn drie belangrijke componenten voor het maken van dashboards met Voila, namelijk:

  1. Widgets definiëren (knopklik of zoekveld voor interactie)
  2. Een logica (gebeurtenishandler) voor uw voor het interactieve veld dat we in stap 1 hebben gemaakt (op basis van klassen of op functies)
  3. Een uitvoerwidget (waar uw resultaat zou verschijnen)

Het nemen valse transactiegegevens, laten we een dashboard bouwen dat u gefilterde gegevens geeft na het verwijderen van frauduleuze transacties en een beeld geeft van hoe divers (met betrekking tot valuta's) de transacties zijn. Laten we aannemen dat u een machine learning-model heeft dat frauduleuze transacties identificeert. Voor de eenvoud van dit artikel gebruiken we gewoon een if-statement, maar maak je geen zorgen, ik zal je laten zien hoe je je eigen model kunt importeren, als je dat hebt. 

 
Een basisdashboard

Allereerst wil je een widget definiëren. Voor onze use-case willen we dat gebruikers gegevens uploaden en ze gefilterde gegevens en een grafiek geven na het verwijderen van frauduleuze transacties. We beginnen met het definiëren van de uploadknop.

Beeld

Hier hebben we twee knoppen: een voor het uploaden van bestanden (upload_file) en een andere (upload_btn) om onze gebeurtenishandler (upload_btn_eventhandler) te laten weten wanneer actie moet worden uitgevoerd. Ik weet het, je vraagt ​​je vast af, maar waar is onze event handler? We zullen het hierna definiëren. Maar daarvoor combineert input_widgets gewoon beide knoppen en met behulp van onze uitvoerwidget (upload_btn_output) zullen we de knoppen weergeven. Laten we eerst een gebeurtenishandler schrijven.

Beeld

Zodra we op de uploadknop drukken, zal onze gebeurtenishandler het bestand nemen en het converteren naar een pandas-dataframe om gemakkelijk aan gegevens te werken. Ik splits de bestandsnaam op punt om de extensie van het bestand te vinden en sla de gegevens op als het Excel of CSV is. Nu het laatste deel, uitvoerwidget. Als je het je herinnert, hebben we al een uitvoerwidget uitgeschreven met de naam upload_btn_output, dus dat gaan we doen.

Beeld

Nu, als je dat nog niet hebt gedaan, moet je voila installeren als je wilt dat dit lokaal wordt uitgevoerd, waarvoor je instructies kunt vinden hier. Maar ik ga je een gemakkelijke manier laten zien om het te doen met behulp van Saturn Cloud. Maak een account aan en log in, op hun dashboard ziet u "dashboards implementeren", klik daarop en start het jupyter lab. Upload nu het notitieboek dat we zojuist hebben gemaakt naar het jupyter-lab op de saturnuswolk. Je kunt het hele jupyter-notebook vinden op mijn github hier. U kunt ook kiezen uit andere versnelde datawetenschapsbibliotheken en -pijplijnen die Saturn Cloud te bieden heeft.

Beeld

Klaar? Perfect. Kopieer nu de URL, plak deze in het nieuwe tabblad en vervang …./uw-gebruikersnaam/dashboard/…. met /uw-gebruikersnaam/dashboard/voila en navigeer vervolgens naar projecten>voorbeelden>dashboard.ipynb en voer het uit. U zou onze uploadknoppen moeten kunnen zien. 

Als je tegen een stootje loopt, of meer wilt weten over het maken van een dashboard met Voila op Saturn Cloud, raadpleeg dan dit gids.

Beeld

 
Frauduleuze Transacties

Nu hebben we nog geen gefilterde gegevens, we uploaden alleen een bestand en slaan de inhoud op. Laten we wat meer code schrijven om frauduleuze transacties af te handelen. 

Beeld

Ik heb een csv gemaakt van nepgegevens die je hier kunt vinden, voel je vrij om hetzelfde te gebruiken. Hier zal ik gewoon de waarden verwijderen, aangezien ze frauduleus zijn als ze een bepaalde drempel overschrijden. Stel dat alle transacties met een bedrag > 1000 fraude zijn. We kunnen dat eenvoudig bereiken door het volgende in onze upload_btn_eventhandler te schrijven.

Als u uw gegevens in een cloud zoals AWS heeft staan, hoeft u zich daar geen zorgen over te maken. Het enige dat u hoeft te doen, is uw inloggegevens verkrijgen en u bent klaar om te gaan. Een manier waarop u dat gemakkelijk kunt doen, is door te gebruiken s3fs bibliotheek die een Python-bibliotheek is voor toegang tot uw AWS-bestandssysteem. Daarover leest u meer in de documentatie hier.

 
Vooraf getraind model gebruiken (extra)

Als je een vooraf getraind model hebt dat je wilt gebruiken, kun je het importeren zoals ik hieronder deed, maar als je gewoon wilt weten hoe de dingen werken rond voila en niet geïnteresseerd bent in het importeren van machine learning-modellen, kun je het volgende overslaan code. We gebruiken in feite joblib om de vectorizer en het model te laden en vervolgens de waarden te voorspellen. 

Beeld

 
Filter gegevens

Geweldig, nu hebben we schone gegevens zonder frauduleuze transacties. Zullen we een beetje functionaliteit toevoegen om transacties te filteren op basis van de valuta? We kunnen dat bereiken door simpelweg een andere logica te creëren, net zoals we die voor de uploadknop hebben gemaakt. In plaats van gegevens van de gebruiker te nemen, geven we nu gewoon het schone dataframe door dat we hebben gemaakt. Laten we de code eens bekijken:

Beeld

Ook hier volgen we hetzelfde patroon. Eerst maken we een vervolgkeuzelijst voor alle unieke waarden in de valutakolom. Vervolgens maken we een gebeurtenishandler die een andere functie common_filtering zal aanroepen die in principe overeenkomt met de valuta en ons alleen die waarden geeft waar onze valuta overeenkomt, met andere woorden, filteren. En we geven het vervolgens weer aan een uitvoerwidget die we zojuist hebben gemaakt. Als u hetzelfde gegevensbestand gebruikt dat ik heb toegevoegd, zou het er ongeveer zo uit moeten zien. 

Beeld

 
Visualisatie

Laten we verder gaan met het visualiseren van de gefilterde gegevens die we hebben. We zullen een lijndiagram maken voor het aantal valuta's in onze gegevens om te zien hoe transacties over verschillende valuta's hebben plaatsgevonden. 

Beeld

Eerst maken we een nieuwe kolomtelling en tellen we het voorkomen van elke valuta. En we geven dat door als onze plot_data waar we op de X-as de valuta bijhouden en op de Y-as de telling. We gebruiken hier plotly - importeer plotly als px - en behouden een aparte helperfunctie die we voor de plot aanroepen. Je kunt het staafdiagram zo op het dashboard zien als alles goed verloopt.

Beeld
 

En voila (bedoelde woordspeling), je hebt een werkend dashboard. Nu kunnen we het naar productie publiceren met behulp van Saturn Cloud en het is net zo eenvoudig als klikken op een paar klikken. 

Publiceren naar productie

 
Om een ​​implementatie te maken, gaat u naar een projectpagina en klikt u op de knop "Een implementatie maken"

Beeld

 
Implementatie maken

U wordt gevraagd naar de configuratiepagina. Zoals je hieronder kunt zien, hoef je alleen maar een naam en commando in te stellen en je bent klaar om te gaan. Echter; er zijn tal van opties om te verkennen op Saturn Cloud, die je kunt vinden hier.

Beeld

 
Configuratie

Nu de configuratie gereed is, kunt u het dashboard zien, op de kleine afspeelknop naast de URL drukken en zodra deze actief is, de URL bezoeken om toegang te krijgen tot uw dashboard.

eindnoten

 
In dit artikel hebben we besproken wat Saturn Cloud is en hoe het uw end-to-end pijplijn kan versnellen, hoe u dashboards maakt met Voila en Python en publiceert naar productie met Saturn Cloud in slechts een paar eenvoudige stappen. Het hebben van de juiste tools helpt je enorm en Saturn Cloud is er een van als je je verwerkings- of datawetenschapspijplijn wilt versnellen. Mocht je nog vragen hebben, neem dan gerust contact met me op via X or Linkedin, of kom even langs om gedag te zeggen.

 
Bio: Dhrumil Patel (@Dhrumilcse) is stagiair Performance Analyst bij NVIDIA. Zijn interesse ligt bij het werken met data op grote schaal en het ontwikkelen van webapplicaties met behulp van moderne frameworks zoals Django. Hij heeft ook hands-on blootstelling aan NLP terwijl hij enorme sociale media-gegevens verwerkt. Naast zijn werk houdt hij van boeken lezen en origami.

Zie ook:

Coinsmart. Beste Bitcoin-beurs in Europa
Bron: https://www.kdnuggets.com/2021/06/create-deploy-dashboards-voila-saturn-cloud.html

spot_img

Laatste intelligentie

spot_img