Automazione dei flussi di lavoro di Machine Learning per offrire l'intelligenza artificiale in Visual Studio

Scopri in che modo i data scientist e i tecnici nella divisione per lo sviluppo Microsoft hanno trasformato un esperimento riuscito in una funzionalità per prodotti a traffico elevato con procedure di MLOps (Machine Learning Operations).

La sfida: dal prototipo alla produzione su larga scala

Dopo sei mesi di esperimenti relativi a intelligenza artificiale e Machine Learning con lo scopo di migliorare la produttività degli sviluppatori, un piccolo team di applied data scientist nella divisione per lo sviluppo Microsoft ha ottenuto un modello in grado di prevedere attivamente i metodi C# che uno sviluppatore avrebbe probabilmente chiamato durante la codifica.

Questo prototipo di Machine Learning ottimale è diventato la base per Visual Studio IntelliCode, una funzionalità di previsione del codice basata su intelligenza artificiale, ma solo dopo avere superato test rigorosi per qualità, disponibilità e scalabilità, per rispettare i requisiti degli utenti di Visual Studio. Il team di progettazione è stato coinvolto per creare una piattaforma di Machine Learning e automatizzare tale processo. Entrambi i team hanno dovuto adottare una cultura MLOps, estendendo i principi DevOps al ciclo di vita end-to-end di Machine Learning.

I team responsabili della scienza applicata e della progettazione hanno creato una pipeline di Machine Learning per eseguire l'iterazione del processo di training dei modelli e automatizzare la maggior parte del lavoro eseguito manualmente dal team responsabile della scienza applicata nella fase di prototipo. Tale pipeline ha consentito a IntelliCode di dimensionare e supportare 6 linguaggi di programmazione ed eseguire regolarmente il training di nuovi modelli con esempi di codice da un set esteso di repository open source di GitHub.

"Clearly, we were going to be doing a lot of compute-intensive model training on very large data sets every month—making the need for an automated, scalable, end-to-end machine learning pipeline all that more evident."

Gearard Boland, Principal Software Engineering Manager, Team responsabile di dati e intelligenza artificiale

Sfruttamento delle informazioni dettagliate con MLOps

Durante l'implementazione di IntelliCode, i team hanno individuato un'opportunità per la progettazione di un'esperienza utente ancora migliore, ovvero la creazione di modelli di completamenti per team basati sulle abitudini di codifica specifiche di ogni cliente. La personalizzazione di questi modelli di Machine Learning richiederebbe il training e la pubblicazione on demand di modelli in modo automatico a ogni richiesta di un utente di Visual Studio o Visual Studio Code. Per eseguire queste funzioni su larga scala usando la pipeline esistente, i team hanno usato servizi di Azure quali Azure Machine Learning, Azure Data Factory, Azure Batch e Azure Pipelines.

"When we added support for custom models, the scalability and reliability of our training pipeline became even more important"

Gearard Boland, Principal Software Engineering Manager, Team responsabile di dati e intelligenza artificiale

Combinazione di due prospettive diverse

Per creare la pipeline di Machine Learning, i team hanno dovuto definire standard comuni e linee guida per potere usare un linguaggio comune, condividere procedure consigliate e migliorare la collaborazione. Hanno dovuto anche comprendere gli approcci reciproci al progetto. Mentre il team di data science ha lavorato in modo sperimentale, con iterazioni rapide sulla creazione di modelli, il team di progettazione si è concentrato sull'assicurare che IntelliCode rispondesse alle aspettative degli utenti di Visual Studio per funzionalità a livello di produzione.

L'intera pipeline di Machine Learning, ovvero training, valutazione, creazione di pacchetti e distribuzione, viene attualmente eseguita automaticamente e gestisce più di 9.000 richieste mensili di creazione di modelli da utenti di Visual Studio e Visual Studio Code. I team sono alla ricerca di nuove soluzioni per usare la pipeline in modo da inserire altre funzionalità di intelligenza artificiale in altri prodotti Microsoft e arricchire ulteriormente le esperienze dei clienti.

Scopri tutti i passaggi seguiti dai team per implementare MLOps.

Leggi la storia completa