Leestijd : 2 minuten

Best practices voor machine learning: een uitgebreide lijst

Janaha
Assistant Marketing Manager

I write about fintech, data, and everything around it

Dit is een uitgebreide lijst met praktijken die moeten worden gevolgd om veelvoorkomende valkuilen bij het werken met machine learning te vermijden. Het doel is om u inzicht te geven in best practices voor elk gebied binnen het landschap van machine learning.

While machine learning models help solve various business challenges, choosing the right one based on the use case of a specific business is not easy. More than 43% of business organizations have reported that ML models are hard to produce and integrate. Best Machine learning practices have to be followed right from the first step of the ML lifecycle to ensure that the model has the ability for better production.

With that said, I’ve decided to put together a post covering the best practices for: Objective & Metric, Infrastructure, Data, Model, and Code Best Practices in an effort to help organizations to take full advantage of machine learning.

These Machine Learning Best Practices are a collection of ideas, suggestions, tips and tricks shared by practitioners in the industry. They are not written as a single document but instead are described on a per objective/metric, infrastructure, data/model and code basis. And will be updated frequently.

This is the Ultimate Guide to Machine Learning Best Practices in 2022.

So if you want to learn:

Then you are in the right place.

Let’s get started.

Doelstelling en metrische best practices

Het definiëren van de bedrijfsdoelstelling voordat u begint met het ontwerp van het ML-model, is de eerste voor de hand liggende stap. Vaak worden ML-modellen echter gestart zonder duidelijk gedefinieerde doelen. Dergelijke modellen zijn ingesteld op mislukking omdat de ML-modellen duidelijk gedefinieerde doelen, parameters en metrieken nodig hebben. Organisaties zijn zich misschien niet bewust van het stellen van specifieke objectieve doelen voor ML-modellen . Ze willen misschien inzichten vinden op basis van de beschikbare data, maar een vaag doel is onvoldoende om een succesvol ML-model te ontwikkelen.

U moet duidelijk zijn over uw doelstelling en de maatstaf die u gebruikt om succes te meten. Anders verspil je veel tijd aan het verkeerde of jaag je op een onmogelijk doel.

Hier zijn enkele objectieve best practices waarmee u rekening moet houden bij het ontwerpen van de doelstellingen van uw machine learning-oplossingen :

Doelstelling en metrische best practices voor machine learning

1. Ensure The ML Model Is Necessary

While many organizations want to follow the ML trend, the machine learning model may not be profitable. Before investing time and resources into developing an ML model, you need to identify the problem and evaluable whether machine learning and MLOps will be helpful in the specific use case. Small scale businesses must be even more careful because ML models cost resources that may not be available. Identifying areas of difficulty and having relevant data to implement machine learning solutions is the first step to developing a successful model. It is the only way to improve the profitability of the organization. 

 

2. Collect Data For The Chosen Objective

Even though use cases are identified, data availability is the crucial driving factor to determine the successful implementation of the ML model. The first ML model for an organization should be simple but choose objectives supported by a large amount of data.

3. Ontwikkel eenvoudige en schaalbare statistieken

Begin eerst met het construeren van use cases waarvoor het ML-model moet worden gemaakt. Op basis van de use cases moeten technische en zakelijke metrics worden ontwikkeld. Het ML-model kan beter presteren als er een duidelijke doelstelling en meetgegevens zijn om die doelstellingen te meten. Het huidige proces om het bedrijfsdoel te bereiken moet grondig worden herzien. Begrijpen waar het huidige proces voor uitdagingen staat, is de sleutel tot automatisering. Het is van cruciaal belang om deep learning-technieken te identificeren die de huidige uitdagingen kunnen oplossen.

Regelgebaseerde systemen versus machine learning-systemen

Best practices voor infrastructuur

Voordat u tijd en moeite investeert in het bouwen van een ML-model , moet u ervoor zorgen dat de infrastructuur aanwezig is om het benodigde model te ondersteunen. Bouwen, trainen en produceren van een machine learning oplossing hangt sterk af van de beschikbare infrastructuur. De beste werkwijze is om een ingekapselde ML zelfvoorzienend model . De infrastructuur mag niet afhankelijk zijn van de ML model . Dit maakt het mogelijk om later meerdere functies te bouwen. Testen en sanity checks op modellen zijn vereist voor implementatie.

Here are some infrastructure best practices to keep in mind when designing your machine learning solutions:

Machine Learning Infrastructure Best Practices

4. Juiste infrastructuurcomponenten

De ML-infrastructuur omvat verschillende componenten, bijbehorende processen en voorgestelde oplossingen voor de ML-modellen . De integratie van machine learning in bedrijfspraktijken brengt de groei van de infrastructuur met AI-technologie met zich mee. Bedrijven zouden geen geld moeten uitgeven aan het bouwen van de volledige infrastructuur voordat ML – modellen zijn ontwikkeld . Meerdere aspecten zoals containers, orkestratietools, hybride omgevingen, multi-cloudomgevingen en agile architectuur moeten stapsgewijs worden geïmplementeerd, waardoor maximale schaalbaarheid mogelijk is.

5. Cloudgebaseerde versus lokale infrastructuur

Wanneer ondernemingen beginnen met machine learning-architectuur, is het het beste om in eerste instantie de cloudinfrastructuur te benutten. Cloudgebaseerde infrastructuur is kosteneffectief, onderhoudsarm en eenvoudig schaalbaar. Sommige industriereuzen bieden uitstekende ondersteuning voor cloudgebaseerde infrastructuur. De cloudgebaseerde ML-platforms met uitgebreide functies zijn al beschikbaar voor maatwerk. Reuzen zoals GCP, AWS, Microsoft Azure, etc. hebben ML-specifieke infrastructuurelementen klaar voor gebruik. Cloudgebaseerde infrastructuur heeft lagere installatiekosten met betere ondersteuning van ML-specifieke providers. Het maakt ook schaalbaarheid mogelijk met computerclusters van verschillende groottes.

On-premise infrastructuur kan gemakkelijk beschikbare leerservers bevatten , zoals Lambda Labs, Nvidia Workstations, enz. Deep learning-werkstations kunnen helemaal opnieuw worden gebouwd. Het in-house infrastructuurmodel vereist een grote initiële investering. On-premise systemen bieden echter meer beveiligingsvoordelen wanneer meerdere ML-modellen worden geïmplementeerd voor automatisering op ondernemingsniveau. Idealiter moeten ML-modellen een combinatie van cloudgebaseerde infrastructuur en interne infrastructuur op verschillende niveaus gebruiken.

6. Maak de infrastructuur schaalbaar

De juiste infrastructuur voor het ML-model hangt af van bedrijfspraktijken en toekomstige doelen. Infrastructuur moet afzonderlijke trainingsmodellen en serveermodellen ondersteunen. Hierdoor kunt u doorgaan met het testen van uw model met geavanceerde functies zonder het geïmplementeerde weergavemodel te beïnvloeden. Microservices-architectuur speelt een belangrijke rol bij het bereiken van ingekapselde modellen.

Best practices voor gegevens

Voor het ontwikkelen van succesvolle ML-modellen is uitgebreide gegevensverwerking van cruciaal belang. De gegevens bepalen het doel van het systeem en spelen een grote rol bij het trainen van ML-algoritmen . De prestaties van het model en de evaluatie van het model kunnen niet worden voltooid zonder de juiste gegevens.

Hier volgen enkele algemene richtlijnen waarmee u rekening moet houden bij het voorbereiden van uw gegevens:

Best practices voor machine learning-gegevens

7. Understand Data Quantity Significance

Building ML models is possible when there is a massive volume of data. Raw data is crude, but before proceeding with ML model building, you have to extract usable information from the data. Data gathering should begin with the existing system in the organization. This will give you the data metrics needed to build the ML model. When the data availability is minimal, you can use transfer learning to gather as much data as possible. Once raw data is available, you must deploy feature engineering to pre-process the data. Collected data must undergo necessary transformations to be valuable as training data. Raw inputs converted into features will be helpful in the design phase of the ML data modeling.

8. Data Processing Is Crucial

The first step in data processing is data collection and preparation. Feature engineering should be applied during data pre-processing to correlate essential features with available data. Data wrangling metrics must be used during the interactive data analysis phase. Exploratory data analysis exploits data visualization to understand data, perform sanity checks, and validate the data. When the data process matures, data engineers incorporate continuous data ingestions and appropriate data transformations to multiple data analytics entities. Data validation is required at every iteration of the ML pipeline or data pipeline for model training. When data drift is identified, the ML model requires retraining. If data anomalies are detected, the pipeline execution must be stopped until the anomalies are addressed.

9. Prepare Data For Use Throughout ML Lifecycle 

Understanding and implementing data science best practices play a significant role in preparing the data for use in machine learning solutions. The datasets must be categorized based on features, and they must be documented for use throughout the ML lifecycle.

De toekomst van MLOps: een must-read voor datawetenschapsprofessionals

Best practices voor modellen

Wanneer data en infrastructuur klaar zijn, is het tijd om het perfecte ML-model te kiezen. Meerdere teams werken met meerdere technologieën, die elkaar al dan niet overlappen. U moet een ML-model selecteren dat bestaande technologieën ondersteunt. Experts op het gebied van datawetenschap hebben geen programmeerkennis en gebruiken mogelijk verouderde technologiestacks. Aan de andere kant gebruiken software-ingenieurs mogelijk de nieuwste en experimentele technologieën om de beste resultaten te bereiken. Het ML-model moet oude modellen ondersteunen en tegelijkertijd ruimte maken voor nieuwere technologieën. De geselecteerde technologiestacks moeten klaar zijn voor de cloud, ook al worden er momenteel interne servers gebruikt.

Hieronder volgen de belangrijkste best practices voor modellen:

Best practices voor machine learning-modellen

10. Ontwikkel een robuust model

In de pijplijn van ML-modellen zijn validatie, testen en monitoring van ML-modellen cruciaal. Modelvalidatie zou idealiter voltooid moeten zijn voordat het model door productie gaat. De robuustheidsmetriek zou een belangrijke maatstaf moeten worden voor modelvalidatie. Modelselectie moet worden gemaakt op basis van de robuustheidsstatistieken. Als de robuustheid van het gekozen model niet kan worden verbeterd om aan de benchmarknormen te voldoen, moet het model worden verwijderd en moet een ander ML-model worden gekozen. Het definiëren en creëren van bruikbare testcases is cruciaal voor continue ML-modeltraining.

11. Trainingsstatistieken voor modellen ontwikkelen en documenteren

Door incrementele modellen met controlepunten te bouwen, wordt uw machine learning-framework veerkrachtig. Datawetenschap omvat tal van statistieken, wat verwarrend kan zijn. Prestatiestatistieken moeten altijd voorrang hebben op mooie statistieken. Het ML-model vereist continue training en bij elke iteratie moeten weergavemodelgegevens worden gebruikt. Productiegegevens zijn nuttig in de beginfase. Als u weergavemodelgegevens gebruikt voor het trainen van ML-modellen, kan het model gemakkelijker in realtime worden geïmplementeerd.

12. Verfijn het Serving ML-model

Serveermodellen vereisen continue monitoring om fouten in de vroege fase op te sporen. Dit vereist een mens in de lus, omdat acceptabele incidenten moeten worden geïdentificeerd en toegestaan. Periodieke monitoring moet worden gepland in de servicefase van het ML-model om ervoor te zorgen dat het model zich precies gedraagt zoals het zich zou moeten gedragen. De gebruikersfeedbacklus moet worden geïntegreerd in het modelonderhoud om een sterk incidentresponsplan te ontwikkelen.

13. Monitor en optimaliseer de modeltrainingsstrategie

Om succesvol te zijn met modelproductie, is een uitgebreide training vereist. Voortdurende training en integratie zorgen ervoor dat het ML-model winstgevend is om zakelijke problemen op te lossen. De modelnauwkeurigheid kan fluctueren met de initiële trainingsbatch, maar volgende batches die gebruik maken van servicemodelgegevens zullen een grotere nauwkeurigheid bieden. Alle objectinstanties moeten compleet en consistent zijn voor het optimaliseren van de trainingsstrategie.

Aanbevolen procedures voor code

Het ontwikkelen van MLOps omvat een enorme hoeveelheid schrijfcodes in meerdere talen. De geschreven code moet effectief worden uitgevoerd in verschillende stadia van de ML-pipeline . Datawetenschappers en software-engineers moeten samenwerken om ML-modelcodes te lezen, schrijven en uitvoeren. De codebase unit tests zullen de individuele features testen. Continue integratie maakt pijplijntesten mogelijk, wat garandeert dat wijzigingen in de codering het model niet zullen breken.

Bekijk enkele van de best practices die u kunt volgen bij het schrijven van machine learning-code.

Best practices voor machine learning-code

14. Volg de naamgevingsconventies

Naamgevingsconventies worden vaak genegeerd door ontwikkelingsingenieurs die graag hun code willen laten draaien. Omdat ML-modellen continue wijzigingen in de codering vereisen, leidt het veranderen van iets waar dan ook tot het veranderen van alles overal. De naamgevingsconventies zullen het hele ontwikkelingsengineeringteam helpen om meerdere variabelen en hun rol in modelontwikkeling te begrijpen en te identificeren.

15. Zorg voor een optimale codekwaliteit

Code kwaliteitscontroles zijn verplicht om ervoor te zorgen dat de geschreven code doet wat hij moet doen. De code mag geen fouten of bugs in het bestaande systeem introduceren. De geschreven code moet gemakkelijk te lezen, te onderhouden en uit te breiden zijn, afhankelijk van de vereisten van het ML-model . Door de hele ML-pijplijn heen helpt een uniforme coderingsstijl bugs op te sporen en te elimineren vóór de productiefase. Dode code en dubbele code zijn gemakkelijk te herkennen wanneer de technici een standaard coderingsstijl volgen. Constant experimenteren met verschillende codecombinaties is onvermijdelijk om het ML-model te verbeteren. Er moet een goed codevolgsysteem zijn om experimenten en hun resultaten te correleren.

16. Schrijf productieklaar code

Het ML-model vereist complexe codering, maar u moet productieklare code schrijven om het model competent te maken. Reproduceerbare code met versiebeheer is eenvoudiger te implementeren en te testen. Aanpassing van het pijplijnframework is cruciaal voor het creëren van modulaire code die continue integratie mogelijk maakt. De beste ML-modelcode gebruikt een standaardstructuur en coderingsstijlconventie. Elk aspect van het coderen moet worden gedocumenteerd met behulp van geschikte documentatietools. De systematische coderingsbenadering moet trainingscode, modelparameters, datasets, hardware en omgeving opslaan om codeversies gemakkelijk te identificeren.

17. Implementeer modellen in containers voor eenvoudigere integratie

Een duidelijk begrip van het eigenlijke werkmodel is cruciaal voor de integratie van de ML model in de bedrijfsvoering. Zodra het prototype voltooid is, mag er geen vertraging optreden bij de implementatie van het model. De best practice is om containerisatieplatforms te gebruiken om meerdere services in geïsoleerde containers te maken. De instanties van containers worden on-demand ingezet en getraind met behulp van realtime gegevens. Beperk één toepassing per container voor eenvoudiger debuggen. Gecontaineriseerde aanpak maakt de ML-modellen reproduceerbaar en schaalbaar in verschillende omgevingen. Engineeringteams kunnen eenvoudig beginnen met de productie van modellen als de functies zijn ingekapseld. Het maakt ook geïndividualiseerde training mogelijk zonder de bestaande productie te beïnvloeden.

18. Incorporate Automation Wherever Possible

The ML models require consistent testing and integration when new features are included, or new data becomes available. Multiple unit tests with varying test cases are essential to ensure that the machine learning application works as intended. Automated testing dramatically helps in reducing the manual labor required to complete the coding. Integration testing automation helps in ensuring that a single change is reflected all through the ML model code.

19. Low Code/ No-Code Platform

The low code and no code machine learning platforms reduce the amount of coding involved, enabling data scientists to introduce new features without affecting development engineers. While these platforms provide flexibility and quick deployment, the level of customization achieved is still low compared to handwritten code. As the complexity of ML models increases, development engineers become more involved in writing machine learning code.

Gevolgtrekking

We hopen dat deze blog een aantal goede inzichten biedt in best practices voor machine learning.

Door de best practices te volgen, kunt u een schaalbaar, aanpasbaar en veerkrachtig ML-model maken dat minimale aanpassingen vereist. Ideaal ML-modellen naadloos integreren met bestaande systemen. Het ML-model moet altijd ruimte bieden voor verbetering, aangezien de zakelijke vereisten en gegevens voortdurend veranderen.

If you still think machine learning systems are complicated? We will help you get the results you want without all the frustration. Book a discovery service with our data architects today and get ahead of the competition. Make it simple & make it fast. 

Leave A Comment