Che cos'è un componente di Azure Machine Learning?

SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

Un componente di Azure Machine Learning è una parte autonoma di codice che esegue un passaggio in una pipeline di apprendimento automatico. Un componente è analogo a una funzione, con un nome, input, output e un corpo. I componenti sono i blocchi predefiniti delle pipeline di Azure Machine Learning.

Un componente è costituito da tre parti:

  • Metadati: nome, display_name, versione, tipo e così via.
  • Interfaccia: specifiche di input/output (nome, tipo, descrizione, valore predefinito e così via).
  • Comando, codice e ambiente: comando, codice e ambiente necessari per eseguire il componente.

Diagramma che mostra l'aspetto di un componente e come appare in una pipeline. Oltre ad alcuni screenshot di un componente nell'interfaccia della riga di comando, nell'SDK e nell’interfaccia utente del portale.

Perché occorre usare un componente?

È consigliabile creare una pipeline di Machine Learning per suddividere un'attività completa di Machine Learning in un flusso di lavoro a più passaggi. In questo modo, tutti possono lavorare sul passaggio specifico in modo indipendente. In Azure Machine Learning un componente rappresenta un passaggio riutilizzabile in una pipeline. I componenti sono progettati per migliorare la produttività della compilazione di pipeline. In particolare, i componenti offrono:

  • interfaccia ben definita: i componenti richiedono un'interfaccia ben definita (input e output). L'interfaccia consente all'utente di compilare i passaggi e connetterli facilmente. L'interfaccia nasconde anche la logica complessa di un passaggio e rimuove il carico di dover comprendere il modo in cui viene implementato il passaggio.

  • Condividere e riutilizzare: come i blocchi predefiniti di una pipeline, i componenti possono essere facilmente condivisi e riutilizzati tra pipeline, aree di lavoro e sottoscrizioni. I componenti creati da un team possono essere individuati e usati da un altro team.

  • Controllo della versione: i componenti sono con controllo delle versioni. I produttori di componenti possono continuare a migliorare i componenti e pubblicare nuove versioni. I consumer possono usare versioni specifiche dei componenti nelle pipeline. In questo modo è possibile garantire la compatibilità e la riproducibilità.

Unità testabile: un componente è una parte di codice autonomo. È facile scrivere unit test per un componente.

Componente e pipeline

Una pipeline di Machine Learning è il flusso di lavoro per un'attività di apprendimento automatico completa. I componenti sono i blocchi predefiniti delle pipeline di apprendimento automatico. Quando si pensa a un componente, deve trovarsi nel contesto della pipeline.

Per creare componenti, la prima cosa consiste nel definire la pipeline dell’apprendimento automatico. Ciò richiede la suddivisione dell'attività di apprendimento automatico completa in un flusso di lavoro in più passaggi. Ogni passaggio è un componente. Se, ad esempio, si considera una semplice attività di Machine Learning sull'uso di dati cronologici per eseguire il training di un modello di previsione delle vendite, è possibile creare un flusso di lavoro sequenziale che include passaggi per l'elaborazione dati, il training del modello e la valutazione del modello. Per le attività complesse, è consigliabile suddividerle ulteriormente. Ad esempio, suddividere un singolo passaggio di elaborazione dei dati in inserimento dati, pulizia dei dati, pre-elaborazione dei dati e procedure di definizione delle funzionalità.

Dopo aver definito i passaggi nel flusso di lavoro, è necessario specificare il modo in cui ogni passaggio è connesso nella pipeline. Ad esempio, per connettere il passaggio di elaborazione dati e il passaggio di training del modello, è possibile definire un componente di elaborazione dati per restituire una cartella contenente i dati elaborati. Un componente di training accetta una cartella come input e restituisce una cartella contenente il modello sottoposto a training. Queste definizioni di input e output diventeranno parte della definizione dell'interfaccia del componente.

A questo punto, è possibile sviluppare il codice di esecuzione di un passaggio. È possibile usare il linguaggio preferito (Python, R e così via). Deve essere possibile eseguire il codice da un comando della shell. Durante lo sviluppo, è possibile aggiungere alcuni input per controllare come verrà eseguito questo passaggio. Ad esempio, per un passaggio di training, è possibile aggiungere la frequenza di apprendimento, il numero di periodi come input per controllare il training. Questi input aggiuntivi e gli input e gli output necessari per connettersi con altri passaggi sono l'interfaccia del componente. L'argomento di un comando della shell viene usato per passare input e output al codice. L'ambiente per eseguire il comando e il codice deve essere specificato. L'ambiente può essere un ambiente di Azure Machine Learning curato o, un'immagine Docker o un ambiente Conda.

Infine, è possibile creare un pacchetto di tutto ciò che include codice, cmd, ambiente, input, output, metadati in un componente. Connette quindi questi componenti insieme per compilare pipeline per il flusso di lavoro di apprendimento automatico. Un componente può essere usato in più pipeline.

Per altre informazioni su come creare un componente, vedere:

Passaggi successivi