Machine Learning Operations: automatització i eficiència en el desplegament de models d’aprenentatge automàtic

Escrit per Cristina Jerez en 2024-04-18T11:09:17+02:00

Topics: DevOps & Automation , DevOps & Automation

Machine Learning Operations: automatització i eficiència en el desplegament de models d’aprenentatge automàtic

El món de l’aprenentatge automàtic (machine learning o ML) ha experimentat un creixement exponencial en els últims anys. No obstant això, fer arribar els models d’aprenentatge automàtic des del laboratori fins a producció continua representant un gran repte. Aquí, hi entra en joc MLOps (Machine Learning Operations), una disciplina que busca abordar precisament aquest problema.

Què és MLOps?

MLOps és un paradigma que es troba en la intersecció entre l’aprenentatge automàtic, DevOps i enginyeria de dades. El seu objectiu és implementar i mantenir models d’aprenentatge automàtic en producció de manera confiable i eficient. 

 

Cicle de vida MLOps

 

En aquest sentit, s’afegeix al cercle de vida de DevOps un nou bucle centrat en tots els processos vinculats amb l’aprenentatge automàtic com l’entrenament dels models, la paquetització, el desplegament i el monitoratge del seu estat de salut.

A continuació posarem èmfasis en les 5 fases del nou bucle ML:

 

Fases del cicle ML

 

  • Entrenament: és el procés que ha de ser sempre reproduïble en què, segons les dades, es generen i es construeixen models nous.
  • Empaquetatge: quan s’ha generat un model, el que hauríem de fer és empaquetar-lo per facilitar-ne el desplegament i poder fer-hi inferència.
  • Avaluació: en aquesta fase s’avalua que el paquet que hem desplegat funcioni correctament i es pugui desplegar amb garantia en els entorns operacionals en què s’executarà.
  • Desplegament: si l’avaluació és correcta, el pas següent és el desplegament del model en un entorn d’execució vàlid amb totes les garanties que ha de tenir un entorn productiu.
  • Monitoratge: finalment, hem de monitorar com actua el model a la fase d’inferència per garantir que la informació que s’ha proporcionat és vàlida i relativa a tota la informació d’entrenament en base a la qual s’ha generat.

Partint d’aquest nou bucle destacarem els aspectes que cal tenir en compte quan es dissenya una plataforma de ML:

  1. Automatització del cicle de vida del ML: les MLOps automatitzen processos com el desenvolupament de models, proves, integració, llançament i administració d’infraestructura. Això garanteix una implementació més ràpida i eficient.
  2. Control de versions: el seguiment de canvis en els actius de ML permet reproduir resultats i auditar el procés. Cada especificació de model o codi d’entrenament de ML té el seu número de versió.
  3. Integració amb DevOps: les MLOps estenen la metodologia DevOps per incloure-hi processos d’aprenentatge automàtic i ciència de dades. Això millora la confiabilitat i la productivitat del desenvolupament de ML.
  4. Gestió de les dades: les dades són imprescindibles per a la implementació de models ML en les seves diverses fases. Cal tenir en compte l’origen, l’emmagatzematge i processament d’aquestes dades durant tot el cicle de vida.
  5. Entorns de desenvolupament i proves: els analistes de dades que desenvolupen els models estan molt familiaritzats en utilitzar unes eines concretes com, per exemple, els Jupyter Notebook. Aquestes eines els permeten obtenir com a resultat final un model que s’ha de situar en un context d’execució adequat per tal d’avaluar-lo. Se li ha de proporcionar l’estructura que tingui recursos necessaris per complir amb els requisits: quantitat de memòria RAM, GPU, etc.

Consideracions per implementar MLOps en sistemes productius

Quan es tracta d’implementar models de ML en sistemes productius, hi ha diverses qüestions que cal tenir en compte:

  1. Estabilitat i escalabilitat: els sistemes productius han de ser estables i capaços de gestionar càrregues de treball en producció. Les MLOps han de garantir que els models de ML siguin escalables i no afectin negativament el rendiment del sistema.
  2. Monitoratge continu: és fonamental monitorar el rendiment del model en producció. Les MLOps han d’establir alertes per detectar anomalies i canvis en el comportament del model.
  3. Actualitzacions i reentrenament: els models de ML no són estàtics; els calen actualitzacions i reentrenaments. Les MLOps han de facilitar la implementació de noves versions de models i la gestió de dades actualitzades.
  4. Gestió d’errors: els erros es poden produir en sistemes productius. Les MLOps han d’incloure mecanismes per gestionar errors com, per exemple, la revisió a versions anteriors del model, si cal.
  5. Seguretat i privacitat: els models de ML poden processar dades sensibles. Les MLOps han de garantir la seguretat i la privacitat de les dades per tal de complir amb les regulacions com, per exemple, el RGPD.
  6. ML com a microservei: tenint en compte que els models de ML estan en evolució constant, és un bon enfocament afrontar la manera d’explotar-los com si fossin un microservei en què l’API ens ajudi tant a interactuar amb ells com en els pre i postprocessos que s’han de fer de les trucades i respostes.

A IThinkUPC treballem en la incorporació de les metodologies MLOps en el desenvolupament de sistemes que apliquen models d’aprenentatge automàtic. Actualment, la intel·ligència artificial és una peça fonamental per donar suport als processos que s’executen a IThinkUPC i és un segell de garantia per a la implementació d’entorns productius.