Zephyrnet-logo

Negen tools die ik graag onder de knie had voor mijn doctoraat in machine learning

Datum:

Negen tools die ik graag onder de knie had voor mijn doctoraat in machine learning

Of u nu een start-up bouwt of wetenschappelijke doorbraken realiseert, deze tools brengen uw ML-pijplijn naar een hoger niveau.


By Aliaksei Michailjoek, AI-wetenschapper



Afbeelding door auteur.

 

Ondanks zijn monumentale rol in de voortschrijdende technologie, is de academische wereld vaak onwetend over industriële prestaties. Tegen het einde van mijn doctoraat realiseerde ik me dat er een groot aantal geweldige hulpmiddelen is, die in de academische wereld over het hoofd worden gezien, maar algemeen worden toegepast in de industrie.

Uit mijn persoonlijke ervaring weet ik dat het leren en integreren van nieuwe tools saai en eng kan zijn, achterdochtig en demotiverend kan zijn, vooral wanneer de huidige opzet zo vertrouwd is en werkt.

Het kan moeilijk zijn om slechte gewoonten los te laten. Bij elk hulpmiddel dat hieronder wordt beschreven, moest ik accepteren dat de manier waarop ik de dingen deed niet optimaal was. Tijdens het proces heb ik echter ook geleerd dat resultaten die op dit moment niet worden gezien, zich in een later stadium tienvoudig uitbetalen.

Hieronder vertel ik over de tools die ik erg handig heb gevonden voor het onderzoeken en bouwen van machine learning-applicaties, zowel als academicus als AI-ingenieur. Ik groepeer de tools in vier secties op basis van hun doel: isolatie van de omgeving, het volgen van experimenten, samenwerking en visualisatie.

Omgevingen isoleren

 
 
Machine learning is een extreem snel ontwikkelend veld en daarom worden veelgebruikte pakketten heel vaak bijgewerkt. Ondanks inspanningen van ontwikkelaars zijn nieuwere versies vaak niet compatibel met hun voorgangers. En dat scheelt een hoop pijn!

Gelukkig zijn er tools om dit probleem op te lossen!

havenarbeider

 
 



Afbeelding door auteur.

 

Hoe vaak hebben die NVIDIA-stuurprogramma's u problemen bezorgd? Tijdens mijn doctoraat had ik een door de universiteit beheerde machine die regelmatig werd bijgewerkt. 's Nachts en zonder enige kennisgeving bijgewerkt. Stel je mijn verbazing voor toen ik de ochtend na de update erachter kwam dat het grootste deel van mijn werk nu niet compatibel is met de nieuwste stuurprogramma's.

Hoewel het daar niet direct voor bedoeld is, verlost Docker je van deze bijzonder stressvolle tegenslagen voor de deadline.

Docker maakt het mogelijk om software te verpakken in pakketten die containers worden genoemd. Containers zijn geïsoleerde eenheden die hun eigen software, bibliotheken en configuratiebestanden hebben. In een vereenvoudigde weergave is een container een afzonderlijk, onafhankelijk virtueel besturingssysteem dat middelen heeft om met de buitenwereld te communiceren.

Docker heeft een overvloed aan kant-en-klare containers die je kunt gebruiken, zonder uitgebreide kennis van hoe je alles zelf moet configureren, is het heel eenvoudig om met de basis aan de slag te gaan.

Voor wie snel aan de slag wil, bekijk dit eens zelfstudie. Ook Amazon AWS heeft geweldig werk geleverd door uit te leggen waarom en hoe docker te gebruiken voor machine learning hier.

Conda

 
 
Het hergebruiken van iemands code werd vandaag een nieuwe norm. Iemand maakt een nuttige repository op github, je kloont de code, installeert en krijgt je oplossing zonder dat je zelf iets hoeft te schrijven.

Er is wel een klein ongemak. Wanneer meerdere projecten samen worden gebruikt, loop je tegen het probleem van pakketbeheer aan, waarbij verschillende projecten verschillende versies van pakketten vereisen.

Ik ben blij dat ik Conda niet zo laat in mijn doctoraat heb ontdekt. Conda is een pakket- en omgevingsbeheersysteem. Het maakt het mogelijk om meerdere omgevingen te creëren en snel pakketten en hun afhankelijkheden te installeren, uit te voeren en bij te werken. U kunt snel schakelen tussen geïsoleerde omgevingen en er altijd zeker van zijn dat uw project alleen interactie heeft met de pakketten die u verwacht.

Conda biedt hun eigen zelfstudie over hoe u uw eerste omgeving kunt maken.

Experimenten uitvoeren, volgen en loggen

 
 
Twee essentiële pijlers, zonder welke het behalen van een doctoraat in een toegepast veld bijna onmogelijk is, zijn nauwkeurigheid en consistentie. En als je ooit hebt geprobeerd met machine learning-modellen te werken, weet je waarschijnlijk hoe gemakkelijk het is om de geteste parameters uit het oog te verliezen. Vroeger werd het bijhouden van parameters gedaan in lab-notebooks, ik weet zeker dat deze nog steeds erg nuttig zijn op andere gebieden, maar in de computerwetenschappen hebben we nu tools die veel krachtiger zijn dan dat.

Gewichten en vooroordelen

 
 



Momentopname van het wandb-paneel voor een reeks eenvoudige statistieken: treinverlies, leersnelheid en gemiddeld validatieverlies. Merk op dat u ook systeemparameters kunt volgen! Afbeelding door auteur.

 

experiment_res_1.csv
experiment_res_1_v2.csv
experiment_res_learning_rate_pt_5_v1.csv
...


Komen deze namen je bekend voor? Als dat het geval is, moeten uw vaardigheden voor het volgen van modellen worden opgevoerd. Dit was ik in het eerste jaar van mijn doctoraat. Als excuus zou ik moeten zeggen dat ik een spreadsheet had waarin ik de details van elk experiment en alle bijbehorende bestanden zou loggen. Het is echter nog steeds erg ingewikkeld en elke wijziging in het loggen van parameters zou onvermijdelijk gevolgen hebben voor de scripts voor nabewerking.

Gewichten en vooroordelen (W&B/wandb) is een van de juweeltjes die ik vrij laat vond, maar nu in elk project gebruik. Hiermee kunt u machine learning-experimenten volgen, vergelijken, visualiseren en optimaliseren met slechts een paar regels code. Hiermee kunt u ook uw datasets volgen. Ondanks een groot aantal opties vond ik W&B gemakkelijk in te stellen en te gebruiken met een zeer gebruiksvriendelijke webinterface.

Voor degenen die geïnteresseerd zijn, bekijk hun snelle installatiehandleiding hier.

MLstroom

 
 



Afbeelding door auteur.

 

Net als bij W&B biedt MLFlow functionaliteit voor het loggen van code, modellen en datasets waarop uw model is getraind. Hoewel ik het alleen heb gebruikt voor het loggen van gegevens, modellen en code, biedt het functionaliteit die veel verder gaat. Het maakt het mogelijk om de hele ML-levenscyclus te beheren, inclusief experimenten, reproduceerbaarheid en implementatie.

Als je het snel in je modellen wilt integreren, bekijk dan dit zelfstudie. Databricks heeft ook een heel leuk gedeeld uitleg van MLflow.

scherm

 
 
De experimenten 's nachts laten draaien en hopen dat je machine niet in slaap valt, was mijn keuze in het eerste halfjaar van mijn doctoraat. Toen het werk naar remote ging, maakte ik me altijd zorgen over het breken van de ssh-sessie - de code liep enkele uren en was bijna geconvergeerd.

ik heb geleerd over scherm functioneerde vrij laat, en kon mezelf dus niet redden van half-ondersteunde resultaten in de ochtenden. Maar in dit geval is het inderdaad beter laat dan nooit.

scherm laat je meerdere shell-sessies starten en gebruiken vanuit een enkele ssh-sessie. Het proces begon met scherm kan worden losgekoppeld van de sessie en op een later tijdstip opnieuw worden bevestigd. Je experimenten kunnen dus op de achtergrond worden uitgevoerd, zonder dat je je zorgen hoeft te maken over het sluiten van sessies of het crashen van de terminal.

De functionaliteit is samengevat hier.

Samenwerking

 
 
De academische wereld staat erom bekend dat ze niet over de juiste mechanismen beschikken voor effectief teambeheer. Dit wordt tot op zekere hoogte gerechtvaardigd door zeer strenge eisen aan de eigen bijdrage. Toch vraagt ​​het tempo waarin machine learning vordert gezamenlijke inspanning. Hieronder staan ​​twee vrij eenvoudige hulpmiddelen die handig zouden zijn voor effectieve communicatie, vooral in het nieuwe rijk van werken op afstand.

GitHub

 
 
Lekker basic, hè? Na het zien van alle gruwelen van hoe mensen hun code volgen in de accademia, kan ik niet genoeg benadrukken hoe belangrijk het is om goed thuis te zijn in versiebeheer. Geen mappen meer met de naam code_v1, code_v2.

Github biedt een zeer nuttig raamwerk voor het volgen, samenvoegen en beoordelen van code. Wanneer een team aan het bouwen is aan een metrische gegevens over diepe beeldkwaliteit elk lid zou zijn eigen vertakking van de code kunnen hebben, parallel werkend. Verschillende delen van de oplossing kunnen dan worden samengevoegd. Wanneer iemand een bug introduceert, is het doodeenvoudig om terug te keren naar de werkende versie. Over het algemeen rangschik ik git als de belangrijkste van alle tools die ik in dit artikel heb genoemd.

Bekijk dit stap voor stap gids hoe u snel kunt opstarten.

Lucidchart

 
 
Lucidchart werd onlangs aan mij voorgesteld, daarvoor gebruikte ik draw.io — een zeer eenvoudige interface voor het maken van diagrammen. Lucidchart is duizend keer krachtiger en heeft een veel veelzijdigere functionaliteit. De grote kracht is de gedeelde ruimte voor samenwerking en de mogelijkheid om naast diagrammen aantekeningen te maken. Stel je een gigantisch online whiteboard voor met een enorme reeks sjablonen.

Check dit voor een snelle start zelfstudie pagina van Lucidchart.

visualisatie

 
 
Talloze inzendingen op papier, vooral niet-succesvolle, hebben me geleerd dat presentatie vaak net zo belangrijk is als de resultaten. Als de recensent, die meestal niet veel tijd heeft, de tekst niet begrijpt, wordt het werk meteen afgekeurd. Met haast gemaakte beelden maken een slechte indruk. Iemand zei ooit tegen me: “Als je geen grafiek kunt maken, hoe kan ik dan je resultaten vertrouwen?”. Ik ben het niet eens met deze stelling, maar ik ben het er wel mee eens dat de indruk er wel degelijk toe doet.

Inkscape

 
 
Een foto zegt meer dan duizend woorden (in feite correctie 84.1 woord).

Inkscape is GRATIS software voor vectorafbeeldingen. In feite heb ik geleerd hoe ik het moet gebruiken in mijn cursus voor webontwikkeling in mijn studententijd. Ik leerde er echter pas ten volle van te genieten tijdens mijn doctoraat - ik werkte aan die mooie foto's voor de kranten.

Van alle functionaliteit die Inkscape bijzonder waardevol biedt, was TekstTekst verlenging. Met dit pakket kunt u uw latex formules naadloos in een beeld.

Er is een groot aantal tutorials, maar voor de basisfunctionaliteit zou ik degene van het Inkscape-team aanbevelen hier.

Gestroomlijnd

 
 
Heeft u ooit een eenvoudige website moeten maken om uw resultaten te laten zien of een eenvoudige machine learning-toepassing? In slechts enkele regels pythoncode is het mogelijk met Streamlit.

Ik vond het vooral handig voor papieren aanvullende materialen, maar het kan nog handiger zijn voor eenvoudige implementatie en het presenteren van projectdemo's aan klanten.

Bekijk dit voor een snelle start zelfstudie.

Samenvatting en verder

 
 
Mijn doctoraat afronden terwijl ik me in de industrie positioneerde, was niet gemakkelijk. Maar het heeft me een aantal belangrijke lessen geleerd die ik in een eerder stadium van mijn doctoraat had willen hebben.

De belangrijkste les is dat nieuwsgierigheid en bereidheid om te leren en te veranderen grote invloed kunnen hebben op de kwaliteit van je werk.

Hieronder vindt u de samenvatting van de tutorials die ik in elke sectie heb genoemd:

havenarbeiderTutorial
CondaTutorial
Gewichten en vooroordelenTutorial
MLstroomTutorial
GitHubTutorial
schermTutorial
InkscapeTutorial
GestroomlijndTutorial
LucidchartTutorial

Als je dit artikel leuk vond, deel het dan met een vriend! Om meer te lezen over machine learning en beeldverwerkingsonderwerpen, druk op abonneren!

Heb ik iets gemist? Aarzel niet om een ​​bericht achter te laten, commentaar te geven of mij direct een bericht te sturen!

 
Bio: Aliaksei Michailjoek heeft een bewezen staat van dienst in het onderzoeken, ontwikkelen, implementeren en onderhouden van machine learning-algoritmen in Computer Vision, Preference Aggregation en Natural Language Processing.

ORIGINELE. Met toestemming opnieuw gepost.

Zie ook:


PlatoAi. Web3 opnieuw uitgevonden. Gegevensintelligentie versterkt.
Klik hier om toegang te krijgen.

Bron: https://www.kdnuggets.com/2021/09/nine-tools-mastered-before-phd-machine-learning.html

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?