Anzeige
Anzeige

Más contenido relacionado

Similar a Machine learning models continuous deployment on azure using devops(20)

Anzeige

Machine learning models continuous deployment on azure using devops

  1. 18 Febbraio 2021
  2. Machine Learning Models Continuous Deployment On Azure Using DevOps approaches Luca Milan & Igor Antonacci
  3. Agenda  Introduzione al Machine Learning – (Luca)  ML.NET Framework – (Luca)  Pratiche DevOps & ML Operations – (Igor)  Tools (Github Actions, Pulumi) – (Igor)  Demo Time – (Luca, Igor)  Question Time – (Tutti Insieme)
  4. Continuous Delivery per ML IT Staff Customer
  5. Top 15 Emerging Jobs U.S. (by Linkedin)  #1 Artificial Intelligence Specialist +74% Skills required: Machine Learning, Deep Learning, TensorFlow, Python, Natural Language Processing  #2 Robotics Engineer +40% Skills required: Robotic Process Automation, UiPath, Blue Prism, Automation Anywhere, Robotics  #3 Data Scientist +37% Skills required: Machine Learning, Data Science, Python, R, Apache Spark  #5 Site Reliability Engineer +34% Amazon Web Services, Ansible, Kubernetes, Docker Products, Terraform  … Full Stack, JavaScript, Backend Developer, Cybersecurity specialist, etc…
  6. Perché il ML è così popolare oggi? Business Case Modelli e Teorie Matematiche a supporto Dati Potenza di Calcolo
  7. Peculiarità del Machine Learning E' collegato alla "Scienza dei Dati", servono "Specialisti" con conoscenze matematiche e statistiche approfondite Possiede metodologie di sviluppo e strumenti dedicati non sempre allineati con gli approcci moderni di Software Development Il ciclo di vita di un progetto di ML è differente da quello di un «software tradizionale» Generalmente i modelli di ML sono distribuiti come «Black Box» e non "integrabili" nel codice e nel processo che esegue l’applicazione
  8. Artificial Intelligence Machine Learning Deep Learning AI Machine Learning Deep Learning
  9. Il ciclo di vita di un progetto ML Training Prediction Model Evaluation Re-Training Data
  10. Tipologie del Machine Learning Machine Learning Supervised (labelled) Regression Classification Unsupervised (no labels) Anomaly Detection Clustering Analysis
  11. y = f(x1,x2,x3,x4,….) FEATURES LABEL Feature = rappresentazione numerica di una proprietà individuale e misurabile del dataset
  12. Tecniche del Machine Learning
  13. Fare Machine Learning senza Python  Nasce da un progetto di Microsoft Research (10 anni fa)  La prima versione è del Maggio 2018, oggi siamo alla 1.5.4  E’ scritto in C# e alcune parti in C++  Open Source, supportato da Microsoft e dalla Community  Basato su .NET Standard (Mac / Linux / Windows)  API flessibile (approccio «low code» e tradizionale)  Supporta il Deep Learning (Transfer Learning / ONNX)
  14. Usare ML.NET Regole di Ingaggio API CLI Model Builder Codificare la pipeline (basta referenziare il pacchetto nuget e si può iniziare a codificare la pipeline di training, fare il training, la predizione, etc.) Auto-ML Engine (strumento da linea di comando per il “discovery” dei modelli più performanti partendo dal datase di input e altri parametri come output abbiamo il modello trainato e il codice pe usarlo) low code (da visual studio in maniera guidata si procede all’importazione del dataset e alla scelta dell’algoritmo poi la procedura produce il codice necessario ad usare il modello) Outputs Training Pipeline Model Prediction Code Codice C# che rappresenta le fasi di Build e Training da effettuare su un dataset per risolvere il task oggetto dell’analisi. In formato binario è l’artefatto prodotto della training pipeline. Rappresenta la descrizione analitica dell’algoritmo traninato. Codice C# utilizzato per la fase di predizione, deve essere incluso nelle applicazioni finali.
  15. Raccolta (Load & Transform) Model Improvement (Evaluate) Featuring & Learning (Append) Model Training (Fit) Salvataggio (Save) Caricamento Modello (Load) Make Prediction (PredictionEngine) SERVING webapi, webapp, iot, desktop BULD & TRAINING Trasformer Trasformer DataView Estimator Trasformer
  16. Training del Modello
  17. Training del Modello - Test
  18. “Serving” del Modello
  19. ”Serving” del Modello – Prediction
  20. ”Serving” del Modello – Metriche
  21. “Serving” del Modello – Test
  22. Pulumi & IaC
  23. Igor Antonacci
  24. Obiettivo organizzativo All’interno di un Team di sviluppo, facilitare il dispiegamento di Modelli di IA attraverso: • la COOPERAZIONE tra Data Scientists e IT Operations • L’AUTOMAZIONE del processo di Analisi, Sviluppo, Test e rilascio di un modello
  25. DevOps e MLOps DevOps “DevOps (dalla contrazione inglese di development, "sviluppo", e operations, qui simile a "messa in produzione" o "deployment") è un metodologia di sviluppo del software che punta alla comunicazione, collaborazione e integrazione tra sviluppatori e addetti alle operations della information technology (IT). DevOps vuole rispondere all'interdipendenza tra sviluppo software e IT operations, puntando ad aiutare un'organizzazione a sviluppare in modo più rapido ed efficiente prodotti e servizi software.” (cit. DevOps - Wikipedia)
  26. DevOps e MLOps MLOps “With Machine Learning Model Operationalization Management (MLOps), we want to provide an end-to-end machine learning development process to design, build and manage reproducible, testable, and evolvable ML-powered software.” (cit. ML Ops: Machine Learning Operations (ml-ops.org))
  27. Continuous Integration / Continuous Delivery Continuous Integration:  Integrazione dei cambiamenti (al codice) con la baseline esistente  Build  Test (Unit, Integration, Security … ) Continuous Delivery: • Produzione di Artefatti (ML) POTENZIALMENTE rilasciabili in produzione in maniera • Sicura • Riproducibile • Affidabile • Rapida COMMIT FEEDBACK – GREEN / RED COMMIT  Build  Test  Training  Build  Test  Training
  28. The Last Mile - Deploy  Deploy  portare il valore all’utente attraverso il dispiegamento degli artefatti sull’infrastruttura  Riprodicibile  Automatico  Idempotente COMMIT R E L E A S E SETUP INFRA Automatic (Approved) Deploy “Old” Deploy approach  Model (Code)  Test  Dataset  Build  Test  Training  Trained Model  Dataset Release 0.1.0-3e82c10
  29. Infrastructure-As-Code «Infrastructure as code è il processo di gestione e provisioning dei data center dei computer attraverso file di definizione leggibili dalla macchina, piuttosto che configurazione hardware fisica o strumenti di configurazione interattiva»  Hashicorp Terraform  Pulumi SETUP INFRA PUSH PULL IaC CI / CD Pipeline
  30. Ciclo di vita di un progetto di ML Training Pipelines T rained Models Training / Test Dataset Azure Resources 33 validation Model Created Training Pipeline GitHub Release Prediction Pipeline  Trained Model  Dataset Release 0.1.0-3e82c10
  31. Tools – GitHub Actions  on push  on pull-request  … Job #1 Job #2 Action 1 – Setup .NET Core Action 2 – Build project Action 3 – Test project Action N – … Action 1 – GitVersion Action 2 – Create Release Action 3 – Publish Artifacts Action N – …
  32. Tools – GitHub Actions  on push  on pull-request  … Job #1 Job #2 Action 1 – Setup .NET Core Action 2 – Build project Action 3 – Test project Action N – … Action 1 – GitVersion Action 2 – Create Release Action 3 – Publish Artifacts Action N – … Depends on Environment
  33. Tools – GitHub Actions - Environments  Definiti staticamente all’interno di ogni repo GH  Definisce una FASE del processo di sviluppo  Development  QA  Production  Scoped resources  Protection Rules – Workflow di approvazione  Branch (è possibile limitare l’uso di un “Environment” a specifici branch)  Secrets – variabili criptate con validità limitata al singolo Environment
  34. Tools – GitHub Actions - Environments
  35. Ciclo di vita di un progetto di ML – Training Pipeline in dettaglio – 1 COMMIT  Model (Code)  Test  Dataset  Build  Test  Training  Trained Model  Dataset Pull-request  Review  Approve  Merge Dispatch Message  event_type: model-created  message: | { "ML_MODEL_VERSION": vX.Y.Z-xxxx, "ML_MODEL_URI": https://github.com/igoran/.../${{ env.VERSION_NAME }}.zip } Approvazione Promozione  Review  Approve Serving “Environment”
  36. Ciclo di vita di un progetto di ML – Serving Pipeline in dettaglio SETUP INFRA  Build  Test Azure Resources model-created  Trained Model  Dataset Download Model
  37. Tools – Pulumi – 1  Infrastructure-as-Code Framework  Multi-Platform Providers (AWS, Azure, GCP … )  (Multi-)Language oriented  C#, Python, Go …  CLI ed Engine multi piattaforma (pulumi)  NO YAML   Ambienti “sandboxed” Stacks
  38. Tools – Pulumi – 2  Pulumi Service Backend (Pulumi Servers)  Self-Managed Service Backend (Pulumi Enterprise)  Language-Agnostic  Multi-Cloud Resource Provider  Multi-platform Engine  Multi-Platform CLI  Windows  Linux  MacOSX
  39. Tools – Pulumi – State & Stacks Pulumi State  metadata dell’Infrastruttura  Memorizzata in “Backend services” Pulumi Stack(s) • Istanza isolata, configurata in maniera indipendente di un programma Pulumi • Utilizzata, principalmente, per separare le risorse delle diverse fasi di sviluppo (Dev, QA, Prod … ) o di diverse feature
  40. DEMO
  41. Domande e Risposte

Hinweis der Redaktion

  1. Sottolineare l’importanza del feedback loop
  2. Nel ML le cose si complicano perché dobbiamo tenere conto di altri fattori per poter gestire in maniera appropriata il processo di CICD: Dati (Volumi e Gestione dello schema e dei suoi cambiamenti) Modello (Algoritmo) Codice (Come prima) Versioning del modello: Chi l’ha creato ? Qual è la versione più aggiornata ? Che performance possiede una specifica versione ? Tracciare le dipendenze tra: Modello (schema) e dati usati per il training Codice di training e Modello trainato Persone ? Verificare il modello tramite test Unit Integration
  3. Contesto attuale. Il mondo del lavoro chiede nuovi profili legati all’intelligenza artificale e la penetrazione nei vari settori industriali è pressochè ubiquitaria.
  4. Applicazioni più intelligenti Sono passati circa 60 anni da quando Alan Turing propose al mondo l’idea di una macchina in grado di apprendere e diventare «intelligente» nel modo in cui noi umani percepiamo l’intelligenza. Ma solo oggi, a discapito di fiction e romanzi, cominciamo a sentire reale l’idea di realizzare «applicazioni più intelligenti». Questo sentimento come sviluppatori ed esperti del settore software possiamo toccarlo con mano perché ad ogni conferenza o meetup tecnico a cui partecipiamo cominciamo a trovare talk su AI, ML o DL. Dati > 10^18 byte = exabyte (milione di terabyte / trilione di byte) Ad oggi abbiamo una mole di dati immensa a cui attingere a cui fino ad ora solo le Big hanno potuto attingere in modo produttivo. Le piccole e medie imprese non hanno ancora budget e conoscenze adatte a sfruttarle. Esiste la tecnologia ma non è ancora alla portato di tutti. Il ML ci fornisce un primo modo per caso d’uso concreto per cominciare a sfruttare questi dati. Machine Learning (Data Mining Predittivo) Se pensiamo al ML possiamo osservare che abbiamo Conoscenza (+50 anni di teorie matematiche e statistiche che lo supportano), Dati e Tecnologie/Strumenti (Cloud) ora quello che rimane da fare è trovare casi d’uso dove utilizzarlo.
  5. 1 > Sfida organizzativa, c’è necessità di creare team cross-funzionali e multi-disciplinari, facendo coesistere skills e persone tra loro distanti. 2 > Sfida tecnica, incanalare il ciclo di vita di un progetto di machine learning verso le pratiche Agili e DevOps tradizionali (Pair Programming, Code Review, PR, pattern di release con A/B, Canary, Feature-Toggling, ecc.) 3 > Dati, Modello, Codice vs Codice e basta 4 > La distribuzione dei modelli di ML (binding e chiamate RPC)
  6. Un ramo della scienza che studia la possibilità di evolvere le macchine a tal punto da riuscire a svolgere, in completa autonomia, compiti che fino ad oggi erano assegnati agli essere umani (guida autonoma, possibilità di riconoscere oggetti o voce, fare diagnosi di problemi medici, etc.). E’ un subset dell’AI ed Usa approcci statistici per migliorare la capacità di apprendimento di algoritmo. Usa dataset di dimensioni ridotte, limitata potenza di calcolo e necessita una fase di feature engineering. Fa parte del ML e Usa dataset di grandi dimensioni e hardware dedicato per fare computazioni intensive (usa algoritmi del ML) tramite reti neurali multi strato. Non richiede la fase di feature engineering. Rendere il processo: osservabile tracciabile e riproducibile in ogni sua parte.
  7. Community Il ML nasce in ambito accademico, la parte teoria di matematica e statistica è stata sviluppato nelle università ed usa Pyton come linguaggio privilegiato. Microsoft MS aveva casi d’uso concreti in cui utilizzare la conoscenza legata al ML quindi ha deciso di creare internamente un framework di ML per creare e distribuire i modelli di ML all’interno di tanti prodotti da Excel a Bing che potesse giare su device / piattaforme diverse da Azure a Xbox a Windows. ML.NET Nasce dall’esperienza di 10 anni di sviluppo di ML e da quella di centinaia di data scientist e developer che hanno lavorato su questi progetti. E’ multipiattaforma, CODE ORIENTED e open source e possiamo far girare i modelli di ML all’interno dei processi delle applicazioni e non come black box separate. Production For Everyone L’idea è quella di rendere il ML più popolare e alla portata di tutti, in questo modo diverrà più facile integrare i modelli all’interno delle applicazioni e anche sostenibile in termini di costi e accessibilità.
  8. curl -L “https://fxappdev6f822e30.azurewebsites.net/api/predict” -d "{ sentimentText:'I recommend this place' }"
Anzeige