Prospettiva di Azure Well-Architected Framework in Azure Machine Learning

Azure Machine Learning è un servizio cloud gestito che è possibile usare per eseguire il training, la distribuzione e la gestione di modelli di Machine Learning. Sono disponibili un'ampia gamma di opzioni e configurazioni per il training e la distribuzione di modelli, tra cui SKU di calcolo e configurazioni. È possibile distribuire modelli di Machine Learning nell'ambiente di calcolo di Machine Learning o in altri servizi di Azure, ad esempio servizio Azure Kubernetes (servizio Azure Kubernetes).

Questo articolo fornisce consigli sull'architettura per prendere decisioni informate quando si usa Machine Learning per eseguire il training, la distribuzione e la gestione di modelli di Machine Learning. Le linee guida si basano sui pilastri di Azure Well-Architected Framework.

Importante

Come usare questa guida

Ogni sezione include un elenco di controllo per la progettazione che presenta le aree di interesse dell'architettura insieme alle strategie di progettazione localizzate nell'ambito della tecnologia.

Sono inoltre incluse raccomandazioni sulle funzionalità tecnologiche che possono aiutare a materializzare tali strategie. Le raccomandazioni non rappresentano un elenco completo di tutte le configurazioni disponibili per Machine Learning e le relative dipendenze. Elencano invece le raccomandazioni principali mappate alle prospettive di progettazione. Usare i consigli per creare un modello di verifica o per ottimizzare gli ambienti esistenti.

L'architettura di base della baseline openAI di riferimento per la chat end-to-end illustra molte delle raccomandazioni principali.

Ambito della tecnologia

Questa revisione è incentrata sulle decisioni correlate per queste risorse di Azure:

  • Machine Learning
  • Cluster di calcolo di Machine Learning
  • Istanze di calcolo di Machine Learning

La revisione non risolve risorse connesse, ad esempio archivi dati o Key Vault di Azure.

Affidabilità

Lo scopo del pilastro Affidabilità è fornire funzionalità continue creando una resilienza sufficiente e la possibilità di recuperare rapidamente gli errori.

I principi di progettazione dell'affidabilità forniscono una strategia di progettazione di alto livello applicata per singoli componenti, flussi di sistema e il sistema nel suo complesso.

Elenco di controllo della progettazione

Iniziare la strategia di progettazione in base all'elenco di controllo della revisione della progettazione per l'affidabilità e determinarne la pertinenza per i requisiti aziendali. Estendere la strategia in modo da includere più approcci in base alle esigenze.

  • Resilienza: distribuire modelli in ambienti che supportano le zone di disponibilità, ad esempio il servizio Azure Kubernetes. Assicurando che le distribuzioni vengano distribuite tra zone di disponibilità, si garantisce che una distribuzione sia disponibile anche in caso di errore del data center. Per migliorare l'affidabilità e la disponibilità, prendere in considerazione una topologia di distribuzione in più aree.

  • Resilienza: assicurarsi di disporre di risorse di calcolo sufficienti per il training e l'inferenza. Tramite la pianificazione delle risorse, assicurarsi che le impostazioni dello SKU di calcolo e della scalabilità soddisfino i requisiti del carico di lavoro.

  • Resilienza: separare le aree di lavoro di Machine Learning usate per il lavoro esplorativo da quelle usate per la produzione.

  • Resilienza: quando si usano endpoint online gestiti per l'inferenza, usare una strategia di rilascio come le distribuzioni blu-verde per ridurre al minimo i tempi di inattività e ridurre il rischio associato alla distribuzione di nuove versioni.

  • Requisiti aziendali: selezionare l'uso di cluster di calcolo, istanze di calcolo e host di inferenza esternalizzati in base alle esigenze di affidabilità, considerando i contratti di servizio come fattore.

  • Ripristino: assicurarsi di avere funzionalità di riparazione automatica, ad esempio le funzionalità di checkpoint supportate da Machine Learning, durante il training di modelli di grandi dimensioni.

  • Ripristino: assicurarsi di avere una strategia di ripristino definita. Machine Learning non ha failover automatico. È quindi necessario progettare una strategia che includa l'area di lavoro e tutte le relative dipendenze, ad esempio Key Vault, Archiviazione di Azure e Registro Azure Container.

Consigli
Recommendation Vantaggi
Distribuzione di modelli in più aree: per migliorare l'affidabilità e la disponibilità, prendere in considerazione un ambiente di distribuzione in più aree, quando possibile. Una distribuzione in più aree garantisce che i carichi di lavoro di Machine Learning continuino a essere eseguiti anche in caso di interruzione di un'area. La distribuzione in più aree migliora la distribuzione del carico tra aree, migliorando potenzialmente le prestazioni per gli utenti che si trovano in aree geografiche diverse. Per altre informazioni, vedere Failover per la continuità aziendale e il ripristino di emergenza.
Resilienza del training del modello: usare le funzionalità di checkpoint supportate da Machine Learning, tra cui Azure Container per PyTorch, la classe TensorFlow Estimator o l'oggetto Run e la classe FileDataset che supportano il checkpoint del modello. Il checkpoint del modello salva periodicamente lo stato del modello di Machine Learning durante il training, in modo che possa essere ripristinato in caso di interruzione, errore o terminazione. Per altre informazioni, vedere Aumentare la velocità dei checkpoint e ridurre i costi con Nebula.
Usare il livello macchina virtuale dedicato per i cluster di calcolo: usare il livello macchina virtuale dedicato per i cluster di calcolo per l'inferenza batch per assicurarsi che il processo batch non venga interrotto. Le macchine virtuali con priorità bassa hanno un prezzo ridotto, ma sono preemptible. I cluster che usano il livello macchina virtuale dedicata non vengono annullati.

Sicurezza

Lo scopo del pilastro Sicurezza è fornire garanzie di riservatezza, integrità e disponibilità al carico di lavoro.

I principi di progettazione della sicurezza forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi applicando approcci alla progettazione tecnica intorno a Machine Learning.

Elenco di controllo della progettazione

Avviare la strategia di progettazione in base all'elenco di controllo della revisione della progettazione per La sicurezza e identificare vulnerabilità e controlli per migliorare il comportamento di sicurezza. Estendere la strategia in modo da includere più approcci in base alle esigenze.

  • Disponibilità: ridurre la superficie di attacco dell'area di lavoro di Machine Learning limitando l'accesso all'area di lavoro alle risorse all'interno della rete virtuale.

  • Riservatezza: proteggersi dall'esfiltrazione dei dati dall'area di lavoro di Machine Learning implementando l'isolamento della rete. Assicurarsi che l'accesso a tutte le risorse esterne sia approvato in modo esplicito e che l'accesso a tutte le altre risorse esterne non sia consentito.

  • Integrità: implementare controlli di accesso che autenticano e autorizzano l'area di lavoro di Machine Learning per le risorse esterne in base al principio dei privilegi minimi.

  • Integrità: implementare la separazione dei casi d'uso per le aree di lavoro di Machine Learning configurando aree di lavoro in base a casi d'uso o progetti specifici. Questo approccio rispetta il principio dei privilegi minimi assicurando che le aree di lavoro siano accessibili solo a utenti che richiedono l'accesso ai dati e agli asset di sperimentazione per il caso d'uso o il progetto.

  • Integrità: regolare l'accesso ai modelli fondamentali. Assicurarsi che solo i registri approvati abbiano accesso ai modelli nel registro dei modelli.

  • Integrità: regolare l'accesso ai registri contenitori approvati. Assicurarsi che l'ambiente di calcolo di Machine Learning possa accedere solo ai registri approvati.

  • Integrità: regolare i pacchetti Python che possono essere eseguiti nel calcolo di Machine Learning. La regolazione dei pacchetti Python garantisce l'esecuzione solo di pacchetti attendibili.

  • Integrità: richiedere la firma del codice usato per il training negli ambienti di calcolo di Machine Learning. La richiesta di firma del codice garantisce che il codice in esecuzione proveni da un'origine attendibile e non sia stato manomesso.

  • Riservatezza: rispettare il principio dei privilegi minimi per il controllo degli accessi in base al ruolo all'area di lavoro di Machine Learning e alle risorse correlate, ad esempio l'account di archiviazione dell'area di lavoro, per garantire agli utenti solo le autorizzazioni necessarie per il proprio ruolo, riducendo al minimo i potenziali rischi per la sicurezza.

  • Integrità: stabilire l'accesso attendibile e verificato implementando la crittografia per i dati inattivi e i dati in transito.

Consigli
Recommendation Vantaggi
Baseline di sicurezza: per migliorare la sicurezza e la conformità del servizio Machine Learning, applicare la baseline di sicurezza di Azure per Machine Learning. La baseline di sicurezza fornisce indicazioni personalizzate su aspetti cruciali della sicurezza, ad esempio la sicurezza di rete, la gestione delle identità, la protezione dei dati e l'accesso con privilegi. Per una sicurezza ottimale, usare Microsoft Defender for Cloud per monitorare questi aspetti.
Isolamento rete virtuale gestita: configurare l'isolamento della rete virtuale gestita per Machine Learning. Quando si abilita l'isolamento della rete virtuale gestita, viene creata una rete virtuale gestita per l'area di lavoro. Le risorse di calcolo gestite create per l'area di lavoro usano automaticamente questa rete virtuale gestita. Se non è possibile implementare l'isolamento della rete virtuale gestita, è necessario seguire le raccomandazioni sulla topologia di rete per separare il calcolo in una subnet dedicata dal resto delle risorse nella soluzione, inclusi gli endpoint privati per le risorse dell'area di lavoro. L'isolamento della rete virtuale gestita migliora la sicurezza isolando l'area di lavoro da altre reti, riducendo il rischio di accesso non autorizzato. In uno scenario in cui si verifica una violazione in un'altra rete all'interno dell'organizzazione, la rete isolata dell'area di lavoro di Machine Learning rimane invariata, proteggendo i carichi di lavoro di Machine Learning.
Isolamento rete di Machine Learning: configurare un endpoint privato per l'area di lavoro di Machine Learning e connettersi all'area di lavoro tramite tale endpoint privato. L'isolamento della rete di Machine Learning migliora la sicurezza garantendo che l'accesso all'area di lavoro sia sicuro e controllato. Con un endpoint privato configurato per l'area di lavoro, è quindi possibile limitare l'accesso all'area di lavoro solo sugli indirizzi IP privati.
Consenti solo l'accesso in uscita approvato: configurare la modalità in uscita nell'area di lavoro di Machine Learning per l'accesso in uscita gestito per Allow only approved outbound ridurre al minimo il rischio di esfiltrazione dei dati. Configurare endpoint privati, tag di servizio o nomi di dominio completi (FQDN) per le risorse a cui è necessario accedere. Questa configurazione riduce al minimo il rischio di esfiltrazione dei dati, migliorando la sicurezza dei dati. Con questa configurazione abilitata, un attore malintenzionato che ottiene l'accesso al sistema non può inviare i dati a una destinazione esterna non approvata.
Isolamento della rete virtuale per i servizi dipendenti: configurare servizi dipendenti, ad esempio Archiviazione, Key Vault e Registro Contenitori con endpoint privati e disabilitare l'accesso pubblico. L'isolamento della rete rafforza la sicurezza limitando l'accesso alle soluzioni PaaS (Platform as a Service) di Azure solo a indirizzi IP privati.
Identità gestita: usare le identità gestite per l'autenticazione tra Machine Learning e altri servizi. Le identità gestite migliorano la sicurezza eliminando la necessità di archiviare le credenziali e gestire e ruotare manualmente le entità servizio.
Disabilitare l'autenticazione locale: disabilitare l'autenticazione locale per i cluster di calcolo e le istanze di Machine Learning. La disabilitazione dell'autenticazione locale aumenta la sicurezza dell'ambiente di calcolo di Machine Learning e fornisce il controllo centralizzato e la gestione delle identità e delle credenziali delle risorse.
Disabilitare la porta SSH pubblica: assicurarsi che la porta SSH (Secure Shell) pubblica sia chiusa nel cluster di calcolo di Machine Learning impostando remoteLoginPortPublicAccess su Disabled. Applicare una configurazione simile se si usa un calcolo diverso. La disabilitazione dell'accesso SSH consente di impedire agli utenti non autorizzati di ottenere l'accesso e potenzialmente causare danni al sistema e protegge l'utente da attacchi di forza bruta.
Non effettuare il provisioning di indirizzi IP pubblici per il calcolo di Machine Learning: impostare enableNodePublicIp su false quando si esegue il provisioning di cluster di calcolo o istanze di calcolo di Machine Learning. Applicare una configurazione simile se si usa un calcolo diverso. Evitare di effettuare il provisioning di indirizzi IP pubblici per migliorare la sicurezza limitando il potenziale per l'accesso non autorizzato all'istanza di calcolo o ai cluster.
Ottenere l'immagine più recente del sistema operativo: ricreare le istanze di calcolo per ottenere l'immagine più recente del sistema operativo. L'uso delle immagini più recenti garantisce di mantenere un ambiente coerente, stabile e sicuro, tra cui assicurarsi di avere le patch di sicurezza più recenti.
Controlli rigorosi di accesso all'area di lavoro di Machine Learning: usare i gruppi di Microsoft Entra ID per gestire l'accesso all'area di lavoro e rispettare il principio del privilegio minimo per il controllo degli accessi in base al ruolo. I controlli di accesso alle aree di lavoro rigorosi migliorano la sicurezza assicurando che gli utenti dispongano solo delle autorizzazioni necessarie per il proprio ruolo. Un data scientist, ad esempio, potrebbe avere accesso a esperimenti di esecuzione, ma non per modificare le impostazioni di sicurezza, riducendo al minimo i potenziali rischi di sicurezza.
Limitare le distribuzioni del catalogo dei modelli: limitare le distribuzioni dei modelli a registri specifici. Limitare le distribuzioni dal catalogo di modelli a registri specifici garantisce la distribuzione solo dei modelli nei registri approvati. Questo approccio consente di regolare l'accesso ai modelli di base open source.
Crittografare i dati inattivi: è consigliabile usare chiavi gestite dal cliente con Machine Learning. La crittografia dei dati inattivi migliora la sicurezza dei dati garantendo che i dati sensibili vengano crittografati usando chiavi gestite direttamente dall'utente. Se si dispone di un requisito normativo per gestire le proprie chiavi di crittografia, usare questa funzionalità per rispettare tale requisito.
Ridurre al minimo il rischio di esfiltrazione dei dati: implementare la prevenzione dell'esfiltrazione dei dati. Ad esempio, creare criteri di endpoint di servizio per filtrare il traffico di rete virtuale in uscita e consentire l'esfiltrazione dei dati solo a account di archiviazione di Azure specifici. Ridurre al minimo il rischio di esfiltrazione dei dati limitando i requisiti in ingresso e in uscita.
Advisor

Di seguito sono riportati alcuni esempi delle raccomandazioni consigliate per la sicurezza di Advisor per Machine Learning:

  • Le aree di lavoro devono essere crittografate con una chiave gestita dal cliente (CMK).
  • Le aree di lavoro devono usare collegamento privato di Azure.
  • Le aree di lavoro devono disabilitare l'accesso alla rete pubblica.
  • Il calcolo deve trovarsi in una rete virtuale.
  • Le istanze di calcolo devono essere ricreate per ottenere gli aggiornamenti software più recenti.
Criteri di Azure

Di seguito sono riportati esempi di definizioni di Criteri di Azure predefinite per la sicurezza di Machine Learning:

Ottimizzazione dei costi

L'ottimizzazione dei costi è incentrata sul rilevamento di modelli di spesa, sulla priorità degli investimenti in aree critiche e sull'ottimizzazione in altri utenti per soddisfare i requisiti aziendali dell'organizzazione.

Leggere i principi di progettazione dell'ottimizzazione dei costi per comprendere gli approcci per raggiungere tali obiettivi e i compromessi necessari nelle scelte tecniche di progettazione correlate al training e alla distribuzione di modelli negli ambienti.

Elenco di controllo della progettazione

Avviare la strategia di progettazione in base all'elenco di controllo della progettazione per l'ottimizzazione dei costi per gli investimenti e ottimizzare la progettazione in modo che il carico di lavoro sia allineato al budget allocato per il carico di lavoro. La progettazione deve usare le funzionalità di Azure appropriate, monitorare gli investimenti e trovare opportunità per ottimizzare nel tempo.

  • Ottimizzazione utilizzo: scegliere le risorse appropriate per assicurarsi che siano allineate ai requisiti del carico di lavoro. Ad esempio, scegliere tra CPU o GPU, vari SKU o macchine virtuali con priorità regolare o bassa rispetto alle macchine virtuali con priorità regolare.

  • Ottimizzazione dell'utilizzo: assicurarsi che le risorse di calcolo non usate vengano ridimensionate o arrestate quando inattive per ridurre i rifiuti.

  • Ottimizzazione utilizzo: applicare criteri e configurare le quote per rispettare i limiti superiori e inferiori della progettazione.

  • Ottimizzazione utilizzo: testare i carichi di lavoro di training per determinare se i requisiti di training possono essere soddisfatti sugli SKU a costi inferiori.

  • Ottimizzazione frequenza: acquistare istanze di macchine virtuali riservate di Azure se si dispone di una buona stima dell'utilizzo nei prossimi tre anni.

  • Monitorare e ottimizzare: monitorare l'utilizzo delle risorse, ad esempio l'utilizzo della CPU e della GPU durante il training dei modelli. Se le risorse non vengono usate completamente, modificare il codice per usare meglio le risorse o ridurre le prestazioni scegliendo dimensioni di macchine virtuali più piccole o più convenienti.

Consigli
Recommendation Vantaggi
Ottimizzare le risorse di calcolo: ottimizzare le risorse di calcolo in base ai requisiti del carico di lavoro. Scegliere lo SKU più adatto al carico di lavoro:
  • per utilizzo generico : rapporto cpu bilanciato a memoria, buono per tutti gli scopi.
  • Compute Optimized: rapporto elevato di CPU a memoria, valido per i calcoli matematici pesanti.
  • Memoria ottimizzata: memoria elevata alla CPU, valida per i calcoli in memoria o le applicazioni di database.
  • Serie M: macchine molto grandi con grandi quantità di memoria e CPU.
  • GPU: migliore per i modelli con un numero elevato di variabili che possono trarre vantaggio da istruzioni di base e parallelismo più elevate. Le applicazioni tipiche sono deep learning, immagini o elaborazione video, simulazioni scientifiche, data mining e vantaggio dei framework di sviluppo GPU. Testare con più famiglie e documentare i risultati come baseline. Man mano che il modello e i dati si evolve, la risorsa di calcolo più adeguata potrebbe cambiare. Monitorare i tempi di esecuzione e rivalutare in base alle esigenze.
La selezione del calcolo corretto è fondamentale perché influisce direttamente sul costo dell'esecuzione del carico di lavoro. La scelta di una GPU o di uno SKU ad alte prestazioni senza un utilizzo appropriato può causare una spesa eccessiva, mentre la scelta di un calcolo sottodimensionato può causare tempi di training e prestazioni eccessivamente lunghi.
Ottimizzare il ridimensionamento del calcolo: configurare i cluster di calcolo per la scalabilità automatica per garantire l'uso solo degli elementi necessari.

Per i cluster di training, impostare il numero minimo di nodi su 0 e configurare la quantità di tempo inattiva del nodo in un tempo appropriato. Per una sperimentazione meno iterativa, ridurre il tempo per risparmiare sui costi. Per una sperimentazione più iterativa, usare un tempo più alto per evitare di pagare per aumentare o ridurre dopo ogni modifica.
Configurare la scalabilità automatica per i cluster di calcolo da ridurre quando l'utilizzo è basso.

Impostare il numero minimo di nodi su 0 per i cluster di training da ridurre a 0 quando non in uso.
Impostare i criteri di terminazione del training: impostare criteri di terminazione anticipata per limitare la durata delle esecuzioni di training o terminarli in anticipo. L'impostazione dei criteri di terminazione consente di risparmiare sui costi arrestando le esecuzioni non in anticipo.
Usare macchine virtuali con priorità bassa per i carichi di lavoro batch: è consigliabile usare macchine virtuali con priorità bassa per i carichi di lavoro batch che non sono sensibili al tempo e in cui le interruzioni sono recuperabili. Le macchine virtuali con priorità bassa consentono di usare una grande quantità di potenza di calcolo per un costo basso. Sfruttano la capacità in eccedenza in Azure.
Abilitare l'arresto inattiva per le istanze di calcolo: abilitarel'arresto inattiva per le istanze di calcolo o pianificare un'ora di inizio e arresto se il tempo di utilizzo è noto. Per impostazione predefinita, le istanze di calcolo sono disponibili per l'utente, accumulando costi. Configurazione delle istanze di calcolo da arrestare quando inattivo o configurando una pianificazione per loro consente di risparmiare costi quando non sono in uso.
Parallelizzare i carichi di lavoro di training: valutare la parallelizzazione dei carichi di lavoro di training. Testare l'esecuzione di tali componenti con l'aiuto dei componenti paralleli in Machine Learning. I carichi di lavoro paralleli possono essere eseguiti in più istanze più piccole, potenzialmente con risparmi sui costi.
Istanze di vm riservate di Azure: acquistare istanze di vm riservate di Azure se si ha una buona stima dell'utilizzo nei prossimi tre anni. Sfruttare le opzioni di capacità riservate per i servizi quando si hanno stime valide sull'utilizzo. Acquistare istanze di macchine virtuali riservate di Azure per pagare in anticipo l'utilizzo delle macchine virtuali e offrire sconti con pagamento in base al consumo. Lo sconto viene applicato automaticamente per l'utilizzo della macchina virtuale corrispondente alla prenotazione.

Eccellenza operativa

L'eccellenza operativa si concentra principalmente sulle procedure per le procedure di sviluppo, l'osservabilità e la gestione delle versioni.

I principi di progettazione dell'eccellenza operativa forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi verso i requisiti operativi del carico di lavoro.

Elenco di controllo della progettazione

Avviare la strategia di progettazione in base all'elenco di controllo di revisione della progettazione per l'eccellenza operativa per definire i processi per l'osservabilità, i test e la distribuzione correlati a Machine Learning.

  • Standard di sviluppo: sfruttare i cataloghi e i registri dei modelli di Machine Learning per archiviare, versione e condividere asset di Machine Learning.

  • Automatizzare per l'efficienza: seguire le procedure di Machine Learning (MLOps). Quando possibile, compilare pipeline automatizzate end-to-end per i processi di preparazione dei dati, training e assegnazione dei punteggi. In fase di sviluppo, usare gli script anziché i notebook per i modelli di training, poiché gli script sono più facili da integrare nelle pipeline automatizzate.

  • Distribuire in tutta sicurezza: implementare l'infrastruttura come codice (IaC) per aree di lavoro di Machine Learning, cluster di calcolo, istanze di calcolo e altri ambienti di distribuzione.

  • Osservabilità: monitorare le prestazioni dei modelli distribuiti, inclusa la deriva dei dati.

  • Osservabilità: se i modelli vengono distribuiti in endpoint online, abilitare Application Insights per monitorare gli endpoint e le distribuzioni online. Monitorare l'infrastruttura di training per assicurarsi di soddisfare i requisiti di base.

  • Semplicità: usare ambienti curati ottimizzati per Machine Learning, se disponibili.

Consigli
Recommendation Vantaggi
Ridurre al minimo le istanze dell'area di lavoro di Machine Learning: ridurre al minimo il numero di aree di lavoro, quando possibile, per ridurre la manutenzione. La limitazione del numero di aree di lavoro riduce le attività di manutenzione e il costo dell'operazione. Per i requisiti, ad esempio la sicurezza, potrebbero essere necessarie più aree di lavoro separate. Ridurre al minimo il numero di aree di lavoro quando possibile.
Sfruttare i cataloghi e i registri dei modelli: sfruttare i cataloghi e i registri dei modelli di Machine Learning per archiviare, versione e condividere asset di Machine Learning.

Usare i cataloghi dei modelli di Machine Learning per implementare test e distribuzione di modelli A/B.
Usare i registri dei modelli di Machine Learning per archiviare e modificare la versione dei modelli di Machine Learning per tenere traccia delle modifiche e mantenere la derivazione con il processo e i set di dati usati per il training.

Con i cataloghi dei modelli di Machine Learning, i team di data science possono individuare, valutare e ottimizzare i modelli di Machine Learning di base con training preliminare.

L'archiviazione di modelli con controllo delle versioni nei registri dei modelli di Machine Learning supporta strategie di distribuzione come le versioni A/B, le versioni canary e i rollback.
Monitorarele prestazioni del modello: monitorare le prestazioni dei modelli distribuiti e rilevare la deriva dei dati nei set di dati. Il monitoraggio dei modelli distribuiti garantisce che i modelli soddisfino i requisiti di prestazioni.

Il monitoraggio della deriva dei dati consente di rilevare le modifiche nei dati di input che possono causare un calo delle prestazioni del modello. La gestione della deriva dei dati consente di garantire che il modello fornisca risultati accurati nel tempo.
Monitorare l'infrastruttura: se i modelli vengono distribuiti in endpoint online, abilitare Application Insights per monitorare gli endpoint e le distribuzioni online.

Monitorare l'infrastruttura di training per assicurarsi di soddisfare i requisiti di base.

Assicurarsi di raccogliere i log delle risorse per Machine Learning.
Gli endpoint di monitoraggio offrono visibilità sulle metriche, ad esempio la latenza delle richieste e le richieste al minuto. È possibile confrontare le prestazioni rispetto alla baseline e usare queste informazioni per apportare modifiche alle risorse di calcolo di conseguenza. Il monitoraggio delle metriche, ad esempio i byte di rete, può avvisare se si avvicinano i limiti di quota e si impedisce la limitazione.

Analogamente, il monitoraggio dell'ambiente di training fornisce le informazioni necessarie per apportare modifiche all'ambiente di training. Usare queste informazioni per decidere di aumentare o ridurre le prestazioni, aumentare o ridurre le prestazioni con SKU con prestazioni diverse o scegliere tra CPU o GPU.
Curare gli ambienti di training dei modelli: usare ambienti curati ottimizzati per Machine Learning, se disponibili. Gli ambienti curati sono ambienti creati in modo preliminare da Machine Learning che velocizzano i tempi di distribuzione e riducono la latenza di distribuzione e training. L'uso di ambienti curati migliora le percentuali di successo del training e della distribuzione ed evita le compilazioni di immagini non necessarie.

Gli ambienti curati, ad esempio Azure Container per PyTorch, possono anche essere ottimizzati per il training di modelli di grandi dimensioni in Machine Learning.

Efficienza delle prestazioni

L'efficienza delle prestazioni riguarda la gestione dell'esperienza utente anche quando si verifica un aumento del carico gestendo la capacità. La strategia include il ridimensionamento delle risorse, l'identificazione e l'ottimizzazione di potenziali colli di bottiglia e l'ottimizzazione per le prestazioni di picco.

I principi di progettazione dell'efficienza delle prestazioni forniscono una strategia di progettazione di alto livello per raggiungere tali obiettivi di capacità rispetto all'utilizzo previsto.

Elenco di controllo della progettazione

Iniziare la strategia di progettazione in base all'elenco di controllo della revisione della progettazione per l'efficienza delle prestazioni per definire una baseline basata sugli indicatori di prestazioni chiave per i carichi di lavoro di Machine Learning.

  • Obiettivi di prestazioni: determinare il tempo di training accettabile e la frequenza di ripetizione del training per il modello. L'impostazione di una destinazione chiara per il tempo di training, insieme ai test, consente di determinare le risorse di calcolo, la CPU e la GPU e gli SKU della CPU necessari per soddisfare l'obiettivo del tempo di training.

  • Obiettivi di prestazioni: definire gli obiettivi di prestazioni accettabili per i modelli distribuiti, inclusi il tempo di risposta, le richieste al secondo, la frequenza degli errori e il tempo di attività. Gli obiettivi di prestazioni fungono da benchmark per l'efficienza del modello distribuito. Le destinazioni consentono di determinare la CPU rispetto alle GPU, le scelte degli SKU della CPU e i requisiti di scalabilità.

  • Soddisfare i requisiti di capacità: scegliere le risorse di calcolo appropriate per il training del modello.

  • Soddisfare i requisiti di capacità: scegliere le risorse di calcolo appropriate per le distribuzioni di modelli.

  • Soddisfare i requisiti di capacità: scegliere gli ambienti di distribuzione con funzionalità di scalabilità automatica per aggiungere e rimuovere capacità man mano che la domanda varia.

  • Ottenere e sostenere le prestazioni: monitorare continuamente le prestazioni dei modelli distribuiti, esaminare i risultati ed eseguire azioni appropriate.

  • Ottenere e sostenere le prestazioni: monitorare continuamente le prestazioni dell'infrastruttura dei modelli distribuiti, esaminare i risultati ed eseguire azioni appropriate. Monitorare l'infrastruttura di training per assicurarsi di soddisfare i requisiti per il tempo di training.

Consigli
Recommendation Vantaggi
Selezionare i servizi di calcolo appropriati per il training del modello: prendere in considerazione i cluster di calcolo di Machine Learning su istanze di calcolo per il training del modello se è necessaria la scalabilità automatica.

Ottimizzare le risorse di calcolo in base ai requisiti di training. Scegliere prima di tutto tra CPU e GPU. L'impostazione predefinita è CPU, ma prendere in considerazione gpu per carichi di lavoro, ad esempio deep learning, elaborazione di immagini o video o grandi quantità di dati. Scegliere quindi lo SKU dell'immagine più adatto al carico di lavoro.

Usare i test per scegliere l'opzione di calcolo che ottimizza i costi rispetto al tempo di training durante la determinazione della baseline.
La selezione del calcolo corretto è fondamentale perché influisce direttamente sul tempo di training. La scelta dello SKU e della CPU appropriata rispetto alla GPU garantisce che il training del modello possa soddisfare i requisiti e gli obiettivi di prestazioni. La scelta di uno SKU a prestazioni ridotte che viene sovrautilata può causare problemi di training e tempi di training eccessivamente lunghi.

I cluster di calcolo offrono la possibilità di migliorare le prestazioni aumentando il numero di carichi di lavoro che supportano la scalabilità orizzontale. Questo metodo offre flessibilità per la gestione dei carichi di lavoro con richieste diverse e consente di aggiungere o rimuovere computer in base alle esigenze.
Ridimensionamento dell'ambiente di distribuzione del modello: usare le funzionalità di scalabilità automatica dell'ambiente di distribuzione. Per gli ambienti di distribuzione del servizio Azure Kubernetes, usare il ridimensionamento automatico del cluster per soddisfare la domanda. Per gli endpoint online, ridimensionare automaticamente tramite l'integrazione con la funzionalità di scalabilità automatica di Monitoraggio di Azure. La scalabilità automatica regola il numero di istanze del modello distribuito in base alla domanda.
Monitorare le prestazioni del modello: monitorare le prestazioni dei modelli distribuiti. Tenere traccia delle prestazioni dei modelli negli avvisi di produzione per potenziali problemi, ad esempio deviazione dei dati, deviazione della stima, qualità dei dati e deriva dell'attribuzione delle caratteristiche.

Il monitoraggio della deriva dei dati consente di rilevare le modifiche nei dati di input che possono causare un calo delle prestazioni del modello. La gestione della deriva dei dati consente di garantire che il modello fornisca risultati accurati nel tempo.
Monitorare l'infrastruttura: monitorare gli endpoint online e integrarsi con Monitoraggio per tenere traccia e monitorare le metriche e i log appropriati. Abilitare Application Insights durante la creazione di distribuzioni online.

Monitorare l'infrastruttura di training ed esaminare l'utilizzo delle risorse, ad esempio l'utilizzo di memoria e CPU o GPU durante il training dei modelli per assicurarsi di soddisfare i requisiti di base.
Gli endpoint di monitoraggio offrono visibilità sulle metriche, ad esempio la latenza delle richieste e le richieste al minuto. È possibile confrontare le prestazioni rispetto alla baseline e usare queste informazioni per apportare modifiche alle risorse di calcolo di conseguenza. Il monitoraggio delle metriche, ad esempio i byte di rete, può avvisare se si avvicinano i limiti di quota e si impedisce la limitazione.

Analogamente, il monitoraggio dell'ambiente di training fornisce le informazioni necessarie per apportare modifiche all'ambiente di training. Usare queste informazioni per decidere di aumentare o ridurre le prestazioni, aumentare o ridurre le prestazioni con SKU con prestazioni diverse o scegliere tra CPU o GPU.

Criteri di Azure

Azure offre un ampio set di criteri predefiniti correlati a Machine Learning e alle relative dipendenze. Alcune delle raccomandazioni precedenti possono essere controllate tramite i criteri di Azure. Considerare i criteri seguenti correlati alla sicurezza:

Considerare i criteri seguenti correlati all'ottimizzazione dei costi:

Considerare i criteri seguenti correlati all'eccellenza operativa:

Per la governance completa, esaminare le definizioni predefinite di Criteri di Azure per Machine Learning.

Elementi consigliati di Advisor

Advisor è un consulente cloud personalizzato che illustra come seguire le procedure consigliate per ottimizzare le distribuzioni di Azure. I consigli di Advisor consentono di migliorare l'affidabilità, la sicurezza, l'efficacia dei costi, le prestazioni e l'eccellenza operativa di Machine Learning.

Prendere in considerazione i consigli di Advisor seguenti per la sicurezza:

  • Le aree di lavoro devono essere crittografate con una chiave gestita dal cliente (CMK).
  • Le aree di lavoro devono usare il collegamento privato.
  • Le aree di lavoro devono disabilitare l'accesso alla rete pubblica.
  • Il calcolo deve trovarsi in una rete virtuale.
  • Le istanze di calcolo devono essere ricreate per ottenere gli aggiornamenti software più recenti.

Prendere in considerazione la raccomandazione di Advisor seguente per l'eccellenza operativa:

  • I log delle risorse nelle aree di lavoro di Machine Learning devono essere abilitati.

Passaggi successivi

Considerare questi articoli come risorse che illustrano le raccomandazioni evidenziate in questo articolo.