MLOps: DevOps în lumea învățării automate

În 2018, conceptul de MLOps a apărut în cercurile profesionale și la conferințele tematice dedicate AI, care s-a impus rapid în industrie și se dezvoltă acum ca o direcție independentă. În viitor, MLOps-ul poate deveni unul dintre cele mai populare domenii din IT. Ce este și cu ce se mănâncă? Să aflăm mai jos.

MLOps: DevOps în lumea învățării automate

Ce este MLOps

MLOps (combinând tehnologiile și procesele de învățare automată și abordări pentru implementarea modelelor dezvoltate în procesele de afaceri) este o nouă modalitate de colaborare între reprezentanți ai afacerilor, oameni de știință, matematicieni, specialiști în învățarea automată și ingineri IT atunci când creează sisteme de inteligență artificială.

Cu alte cuvinte, este o modalitate de a transforma metodele și tehnologiile de învățare automată într-un instrument util pentru rezolvarea problemelor de afaceri. 

Este necesar să înțelegem că lanțul de productivitate începe cu mult înainte de dezvoltarea modelului. Primul pas este de a defini o problemă de afaceri, o ipoteză despre valoarea care poate fi extrasă din date și o idee de afaceri pentru aplicarea acesteia. 

Însuși conceptul de MLOps a apărut ca o analogie cu conceptul DevOps în legătură cu modelele și tehnologiile de învățare automată. DevOps este o abordare a dezvoltării software care vă permite să creșteți viteza de implementare a modificărilor individuale, menținând în același timp flexibilitatea și fiabilitatea folosind o serie de abordări, inclusiv dezvoltarea continuă, împărțirea funcțiilor într-un număr de microservicii independente, testarea automată și implementarea schimbări, monitorizare globală a sănătății, sistem de răspuns rapid pentru defecțiuni detectate etc. 

DevOps a definit ciclul de viață al software-ului, iar comunitatea a venit cu ideea de a aplica aceeași metodologie pentru datele mari. DataOps este o încercare de a adapta și extinde metodologia ținând cont de caracteristicile stocării, transmiterii și procesării unor cantități mari de date pe platforme diverse și interoperabile.
  
Odată cu apariția unei anumite mase critice de modele de învățare automată implementate în procesele de afaceri ale întreprinderilor, a fost observată o similitudine puternică între ciclul de viață al modelelor de învățare automată matematică și ciclul de viață al software-ului. Singura diferență este că algoritmii modelului sunt creați folosind instrumente și metode de învățare automată. Prin urmare, a apărut în mod natural ideea de a aplica și adapta abordări deja cunoscute pentru dezvoltarea de software pentru modelele de învățare automată. Astfel, următoarele etape cheie pot fi distinse în ciclul de viață al modelelor de învățare automată:

  • definirea unei idei de afaceri;
  • antrenament model;
  • testarea și implementarea modelului în procesul de afaceri;
  • funcționarea modelului.

Atunci când în timpul funcționării este nevoie să se schimbe sau să reinstruiască modelul pe date noi, ciclul începe din nou - modelul este rafinat, testat și este implementată o nouă versiune.

Retragere. De ce se reinstruiește și nu? Termenul de „recalificare a modelului” are o dublă semnificație: printre experți înseamnă un defect de model, atunci când modelul prezice bine, repetă de fapt parametrul prezis pe setul de antrenament, dar funcționează mult mai rău pe eșantionul de date extern. Desigur, un astfel de model este un defect, deoarece acest defect nu permite utilizarea acestuia.

În acest ciclu de viață, pare logic să folosim instrumente DevOps: testare automată, implementare și monitorizare, proiectarea modelelor de calcule sub formă de microservicii separate. Dar există și o serie de caracteristici care împiedică utilizarea directă a acestor instrumente fără legare suplimentară ML.

MLOps: DevOps în lumea învățării automate

Cum să faci modelele să funcționeze și să fie profitabile

Ca exemplu în care vom demonstra utilizarea abordării MLOps, vom lua sarcina clasică de a robotiza un suport de chat pentru un produs bancar (sau orice alt). De obicei, un proces de afaceri de asistență prin chat arată astfel: un client introduce un mesaj cu o întrebare într-un chat și primește un răspuns de la un specialist într-un arbore de dialog predefinit. Sarcina de automatizare a unui astfel de chat este de obicei rezolvată folosind seturi de reguli definite de experți, care necesită foarte multă muncă de dezvoltat și de întreținut. Eficiența unei astfel de automatizări, în funcție de nivelul de complexitate al sarcinii, poate fi de 20–30%. În mod firesc, apare ideea că este mai profitabilă introducerea unui modul de inteligență artificială - un model dezvoltat folosind învățarea automată, care:

  • este capabil să proceseze un număr mai mare de solicitări fără participarea operatorului (în funcție de subiect, în unele cazuri eficiența poate ajunge la 70–80%);
  • se adaptează mai bine la formularea non-standard în dialog - este capabil să determine intenția, dorința reală a utilizatorului pe baza unei cereri neformulate clar;
  • știe să determine când răspunsul modelului este adecvat și când există îndoieli cu privire la „conștientizarea” acestui răspuns și trebuie să puneți o întrebare suplimentară de clarificare sau să treceți la operator;
  • poate fi instruit suplimentar automat (în loc ca un grup de dezvoltatori să adapteze și să corecteze constant scripturile de răspuns, modelul este instruit suplimentar de un specialist în știința datelor folosind bibliotecile de învățare automată corespunzătoare). 

MLOps: DevOps în lumea învățării automate

Cum să faci să funcționeze un model atât de avansat? 

Ca și în cazul rezolvării oricărei alte probleme, înainte de a dezvolta un astfel de modul, este necesar să definim un proces de afaceri și să descriem în mod formal sarcina specifică pe care o vom rezolva folosind metoda de învățare automată. În acest moment, începe procesul de operaționalizare, desemnat prin acronimul Ops. 

Următorul pas este ca Data Scientist, în colaborare cu Data Engineer, să verifice disponibilitatea și suficiența datelor și ipoteza de afaceri despre viabilitatea ideii de afaceri, dezvoltând un model prototip și testând eficiența reală a acestuia. Doar după confirmarea de către companie poate începe tranziția de la dezvoltarea unui model la integrarea acestuia în sisteme care realizează un anumit proces de afaceri. Planificarea implementării end-to-end, o înțelegere profundă în fiecare etapă a modului în care va fi utilizat modelul și a efectului economic pe care îl va aduce, este un punct fundamental în procesele de introducere a abordărilor MLOps în peisajul tehnologic al companiei.

Odată cu dezvoltarea tehnologiilor AI, numărul și varietatea problemelor care pot fi rezolvate folosind învățarea automată cresc exponențial. Fiecare astfel de proces de afaceri este o economie pentru companie datorită automatizării muncii angajaților în masă (call center, verificare și sortare documente etc.), este o extindere a bazei de clienți prin adăugarea de noi funcții atractive și convenabile, este economisește bani datorită utilizării optime a acestora și redistribuirii resurselor și multe altele. În cele din urmă, orice proces este axat pe crearea de valoare și, ca urmare, trebuie să aducă un anumit efect economic. Aici este foarte important să se formuleze clar ideea de afaceri și să se calculeze profitul așteptat din implementarea modelului în structura globală de creare a valorii a companiei. Există situații în care implementarea unui model nu se justifică, iar timpul petrecut de specialiștii în învățarea automată este mult mai costisitor decât locul de muncă al operatorului care îndeplinește această sarcină. De aceea este necesar să se încerce identificarea unor astfel de cazuri în fazele incipiente ale creării sistemelor AI.

În consecință, modelele încep să genereze profit numai atunci când problema afacerii a fost corect formulată în procesul MLOps, prioritățile au fost stabilite, iar procesul de introducere a modelului în sistem a fost formulat în fazele incipiente de dezvoltare.

Proces nou - noi provocări

Un răspuns cuprinzător la întrebarea fundamentală de afaceri despre modul în care modelele ML sunt aplicabile pentru rezolvarea problemelor, problema generală a încrederii în AI este una dintre provocările cheie în procesul de dezvoltare și implementare a abordărilor MLOps. Inițial, întreprinderile sunt sceptice cu privire la introducerea învățării automate în procese - este dificil să te bazezi pe modele în locurile în care anterior, de regulă, oamenii lucrau. Pentru afaceri, programele par a fi o „cutie neagră”, a cărei relevanță trebuie încă dovedită. În plus, în domeniul bancar, în afacerile operatorilor de telecomunicații și altele, există cerințe stricte ale autorităților de reglementare guvernamentale. Toate sistemele și algoritmii care sunt implementați în procesele bancare sunt supuși auditului. Pentru a rezolva această problemă, pentru a demonstra afacerilor și autorităților de reglementare validitatea și corectitudinea răspunsurilor inteligenței artificiale, instrumentele de monitorizare sunt introduse împreună cu modelul. În plus, există o procedură de validare independentă, obligatorie pentru modelele de reglementare, care îndeplinește cerințele Băncii Centrale. Un grup de experți independenți auditează rezultatele obținute de model luând în considerare datele de intrare.

A doua provocare este evaluarea și luarea în considerare a riscurilor modelului la implementarea unui model de învățare automată. Chiar dacă o persoană nu poate răspunde la întrebarea cu certitudine sută la sută dacă aceeași rochie era albă sau albastră, atunci și inteligența artificială are dreptul de a greși. De asemenea, merită luat în considerare faptul că datele se pot schimba în timp, iar modelele trebuie reinstruite pentru a produce un rezultat suficient de precis. Pentru a vă asigura că procesul de afaceri nu are de suferit, este necesar să gestionați riscurile modelului și să monitorizați performanța modelului, reantrenându-l în mod regulat pe date noi.

MLOps: DevOps în lumea învățării automate

Dar după prima etapă de neîncredere, începe să apară efectul opus. Cu cât mai multe modele sunt implementate cu succes în procese, cu atât apetitul afacerilor pentru utilizarea inteligenței artificiale crește - se găsesc probleme noi și noi care pot fi rezolvate folosind metode de învățare automată. Fiecare sarcină declanșează un întreg proces care necesită anumite competențe:

  • inginerii de date pregătesc și procesează datele;
  • oamenii de știință de date folosesc instrumente de învățare automată și dezvoltă un model;
  • IT implementează modelul în sistem;
  • Inginerul ML stabilește cum să integreze corect acest model în proces, ce instrumente IT să folosească, în funcție de cerințele pentru modul de aplicare a modelului, ținând cont de fluxul de solicitări, timpul de răspuns etc. 
  • Un arhitect ML proiectează modul în care un produs software poate fi implementat fizic într-un sistem industrial.

Întregul ciclu necesită un număr mare de specialiști înalt calificați. La un moment dat în dezvoltarea și gradul de pătrundere a modelelor ML în procesele de afaceri, se dovedește că scalarea liniară a numărului de specialiști proporțional cu creșterea numărului de sarcini devine costisitoare și ineficientă. Prin urmare, se pune problema automatizării procesului MLOps - definirea mai multor clase standard de probleme de învățare automată, dezvoltarea conductelor standard de procesare a datelor și formarea suplimentară a modelelor. Într-o imagine ideală, rezolvarea unor astfel de probleme necesită profesioniști care sunt la fel de pricepuți în competențe la intersecția Big Data, Data Science, DevOps și IT. Prin urmare, cea mai mare problemă din industria Data Science și cea mai mare provocare în organizarea proceselor MLOps este lipsa unei astfel de competențe pe piața de training existentă. Specialiștii care îndeplinesc aceste cerințe sunt în prezent rari pe piața muncii și își merită greutatea în aur.

Pe problema competențelor

În teorie, toate sarcinile MLOps pot fi rezolvate folosind instrumente clasice DevOps și fără a recurge la o extensie specializată a modelului. Apoi, după cum am menționat mai sus, un cercetător de date trebuie să fie nu numai un matematician și un analist de date, ci și un guru al întregii conducte - el este responsabil pentru dezvoltarea arhitecturii, programarea modelelor în mai multe limbi, în funcție de arhitectură, pregătirea un data mart și implementarea aplicației în sine. Cu toate acestea, crearea cadrului tehnologic implementat în procesul MLOps end-to-end necesită până la 80% din costurile forței de muncă, ceea ce înseamnă că un matematician calificat, care este un Data Scientist de calitate, își va dedica doar 20% din timp specialității sale. . Prin urmare, delimitarea rolurilor specialiștilor implicați în procesul de implementare a modelelor de învățare automată devine vitală. 

Cât de detaliat trebuie delimitate rolurile depinde de mărimea întreprinderii. Un lucru este atunci când un startup are un specialist, un muncitor din greu în rezerva de energie, care este propriul său inginer, arhitect și DevOps. Cu totul altceva este atunci când, într-o întreprindere mare, toate procesele de dezvoltare a modelelor sunt concentrate pe câțiva specialiști de nivel înalt în Data Science, în timp ce un programator sau un specialist în baze de date - o competență mai comună și mai puțin costisitoare pe piața muncii - poate lua pe majoritatea lucrărilor.sarcini de rutină.

Astfel, viteza și calitatea modelelor dezvoltate, productivitatea echipei și microclimatul din aceasta depind direct de locul în care se află granița în selecția specialiștilor care să susțină procesul MLOps și de modul în care este organizat procesul de operaționalizare a modelelor dezvoltate. .

Ceea ce echipa noastră a făcut deja

Am început recent să construim o structură de competențe și procese MLOps. Dar proiectele noastre privind managementul ciclului de viață al modelelor și utilizarea modelelor ca serviciu sunt deja în stadiul de testare MVP.

De asemenea, am determinat structura optimă de competențe pentru o întreprindere mare și structura organizatorică de interacțiune între toți participanții la proces. Au fost organizate echipe agile pentru a rezolva probleme pentru întreaga gamă de clienți business și a fost stabilit un proces de interacțiune cu echipele de proiect pentru a crea platforme și infrastructură, care este fundația clădirii MLOps în construcție.

Întrebări pentru viitor

MLOps este o zonă în creștere, care se confruntă cu o lipsă de competențe și va câștiga avânt în viitor. Între timp, cel mai bine este să construiți pe dezvoltările și practicile DevOps. Scopul principal al MLOps este utilizarea mai eficientă a modelelor ML pentru a rezolva problemele de afaceri. Dar asta ridică multe întrebări:

  • Cum să reduceți timpul de lansare a modelelor în producție?
  • Cum să reduceți frecarea birocratică între echipe cu competențe diferite și să creșteți accentul pe cooperare?
  • Cum să urmăriți modelele, să gestionați versiunile și să organizați o monitorizare eficientă?
  • Cum să creați un ciclu de viață cu adevărat circular pentru un model ML modern?
  • Cum să standardizezi procesul de învățare automată?

Răspunsurile la aceste întrebări vor determina în mare măsură cât de repede își vor atinge potențialul maxim MLOps.

Sursa: www.habr.com

Adauga un comentariu