Eseguire il training del modello Vowpal Wabbit

Questo articolo descrive come usare il componente Train Vowpal Wabbit Model in Azure Machine Learning Designer per creare un modello di Machine Learning usando Vowpal Wabbit.

Per usare Vowpal Wabbit per l'apprendimento automatico, formattare l'input in base ai requisiti di Vowpal Wabbit e preparare i dati nel formato richiesto. Usare questo componente per specificare gli argomenti della riga di comando Vowpal Wabbit.

Quando viene eseguita la pipeline, un'istanza di Vowpal Wabbit viene caricata nel runtime dell'esperimento, insieme ai dati specificati. Al termine del training, il modello viene serializzato nuovamente nell'area di lavoro. È possibile usare immediatamente il modello per assegnare un punteggio ai dati.

Per eseguire il training incrementale di un modello esistente sui nuovi dati, connettere un modello salvato alla porta di input del modello Vowpal Wabbit con training preliminare del modello Vowpal Wabbit e aggiungere i nuovi dati all'altra porta di input.

Che cos'è Vowpal Wabbit?

Vowpal Wabbit (VW) è un framework di Machine Learning rapido e parallelo sviluppato per il calcolo distribuito da Yahoo! Ricerca. Successivamente fu convertito in Windows e adattato da John Langford (Microsoft Research) per l'elaborazione scientifica in architetture parallele.

Le funzionalità di Vowpal Wabbit importanti per l'apprendimento automatico includono l'apprendimento continuo (apprendimento online), la riduzione della dimensionalità e l'apprendimento interattivo. Vowpal Wabbit è anche una soluzione per i problemi quando non è possibile adattare i dati del modello in memoria.

Gli utenti principali di Vowpal Wabbit sono data scientist che in precedenza hanno usato il framework per attività di Machine Learning, ad esempio classificazione, regressione, modellazione di argomenti o fattorizzazione della matrice. Il wrapper di Azure per Vowpal Wabbit presenta caratteristiche di prestazioni molto simili alla versione locale, in modo da poter usare le potenti funzionalità e le prestazioni native di Vowpal Wabbit e pubblicare facilmente il modello sottoposto a training come servizio operativo.

Il componente Feature Hashing include anche la funzionalità fornita da Vowpal Wabbit, che consente di trasformare i set di dati di testo in funzionalità binarie usando un algoritmo hash.

Come configurare il modello Vowpal Wabbit

Questa sezione descrive come eseguire il training di un nuovo modello e come aggiungere nuovi dati a un modello esistente.

A differenza di altri componenti nella finestra di progettazione, questo componente specifica entrambi i parametri del componente e esegue il training del modello. Se si dispone di un modello esistente, è possibile aggiungerlo come input facoltativo per eseguire il training incrementale del modello.

Preparare i dati di input

Per eseguire il training di un modello usando questo componente, il set di dati di input deve essere costituito da una singola colonna di testo in uno dei due formati supportati: SVMLight o VW. Ciò non significa che Vowpal Wabbit analizza solo i dati di testo, ma solo che le caratteristiche e i valori devono essere preparati nel formato di file di testo richiesto.

I dati possono essere letti da due tipi di set di dati, set di dati di file o set di dati tabulari. Entrambi i set di dati devono essere in formato SVMLight o VW. Il formato dei dati Vowpal Wabbit offre il vantaggio che non richiede un formato a colonne, che consente di risparmiare spazio quando si gestiscono dati di tipo sparse. Per altre informazioni su questo formato, vedere la pagina wiki di Vowpal Wabbit.

Creare ed eseguire il training di un modello Vowpal Wabbit

  1. Aggiungere il componente Train Vowpal Wabbit Model (Train Vowpal Wabbit Model) all'esperimento.

  2. Aggiungere il set di dati di training e connetterlo ai dati di training. Se il set di dati di training è una directory che contiene il file di dati di training, specificare il nome del file di dati di training con nome del file di dati di training. Se il set di dati di training è un singolo file, lasciare Vuoto il nome del file di dati di training.

  3. Nella casella di testo Argomenti VW digitare gli argomenti della riga di comando per l'eseguibile Vowpal Wabbit.

    Ad esempio, è possibile aggiungere –l per specificare la frequenza di apprendimento o -b per indicare il numero di bit di hashing.

    Per altre informazioni, vedere la sezione Parametri di Vowpal Wabbit.

  4. Nome del file di dati di training: digitare il nome del file che contiene i dati di input. Questo argomento viene usato solo quando il set di dati di training è una directory.

  5. Specificare il tipo di file: indicare il formato usato dai dati di training. Vowpal Wabbit supporta questi due formati di file di input:

    • VW rappresenta il formato interno utilizzato da Vowpal Wabbit. Per informazioni dettagliate, vedere la pagina wiki di Vowpal Wabbit.
    • SVMLight è un formato usato da altri strumenti di Machine Learning.
  6. File del modello leggibile di output: selezionare l'opzione se si vuole che il componente salvi il modello leggibile nei record del processo. Questo argomento corrisponde al --readable_model parametro nella riga di comando VW.

  7. File hash invertito di output: selezionare l'opzione se si vuole che il componente salvi la funzione hash invertita in un unico file nei record del processo. Questo argomento corrisponde al --invert_hash parametro nella riga di comando VW.

  8. Inviare la pipeline.

Ripetere il training di un modello Vowpal Wabbit esistente

Vowpal Wabbit supporta il training incrementale aggiungendo nuovi dati a un modello esistente. Esistono due modi per ottenere un modello esistente per ripetere il training:

  • Usare l'output di un altro componente Train Vowpal Wabbit Model nella stessa pipeline.

  • Individuare un modello salvato nella categoria Set di dati del riquadro di spostamento sinistro della finestra di progettazione e trascinarlo nella pipeline.

  1. Aggiungere il componente Train Vowpal Wabbit Model alla pipeline.

  2. Connettere il modello sottoposto a training in precedenza alla porta di input del modello Vowpal Wabbit con training preliminare del componente.

  3. Connettere i nuovi dati di training alla porta di input dei dati di training del componente.

  4. Nel riquadro dei parametri di Train Vowpal Wabbit Model specificare il formato dei nuovi dati di training e anche il nome del file di dati di training se il set di dati di input è una directory.

  5. Selezionare le opzioni Output readable model file (File modello leggibile output) e Output inverted hash file (File hash invertito) se i file corrispondenti devono essere salvati nei record del processo.

  6. Inviare la pipeline.

  7. Selezionare il componente e selezionare Registra set di dati nella scheda Output e log nel riquadro destro per mantenere il modello aggiornato nell'area di lavoro di Azure Machine Learning. Se non si specifica un nuovo nome, il modello aggiornato sovrascrive il modello salvato esistente.

Risultati

  • Per generare punteggi dal modello, usare Score Vowpal Wabbit Model.To generate scores from the model, use Score Vowpal Wabbit Model.

Nota

Se è necessario distribuire il modello sottoposto a training nella finestra di progettazione, assicurarsi che Score Vowpal Wabbit Model invece di Score Model sia connesso all'input del componente Output del servizio Web nella pipeline di inferenza.

Note tecniche

Questa sezione contiene informazioni dettagliate sull'implementazione, suggerimenti e risposte alle domande frequenti.

Vantaggi di Vowpal Wabbit

Vowpal Wabbit offre un apprendimento estremamente rapido rispetto a caratteristiche non lineari come n-grammi.

Vowpal Wabbit usa tecniche di apprendimento online, ad esempio la discesa del gradiente stocastico (SGD) per adattare un modello a un record alla volta. Di conseguenza, scorre molto rapidamente i dati non elaborati e può sviluppare un buon predictor più velocemente rispetto alla maggior parte degli altri modelli. Questo approccio evita inoltre di dover leggere tutti i dati di training in memoria.

Vowpal Wabbit converte tutti i dati in hash, non solo i dati di testo, ma anche altre variabili categoriche. L'uso degli hash rende più efficiente la ricerca dei pesi di regressione, che è fondamentale per una discesa efficace del gradiente stocastico.

Parametri supportati e non supportati

Questa sezione descrive il supporto per i parametri della riga di comando di Vowpal Wabbit nella finestra di progettazione di Azure Machine Learning.

In genere, sono supportati tutti gli argomenti, ma solo un set limitato di argomenti. Per un elenco completo degli argomenti, usare la pagina wiki di Vowpal Wabbit.

I parametri seguenti non sono supportati:

  • Opzioni di input/output specificate in https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments

    Queste proprietà sono già configurate automaticamente dal componente.

  • Inoltre, qualsiasi opzione che genera più output o accetta più input non è consentita. Questi includono --cbt, --ldae --wap.

  • Sono supportati solo algoritmi di apprendimento supervisionati. Di conseguenza, queste opzioni non sono supportate: –active, e --rank--search così via.

Restrizioni

Poiché l'obiettivo del servizio è supportare utenti esperti di Vowpal Wabbit, i dati di input devono essere preparati in anticipo usando il formato di testo nativo Vowpal Wabbit, anziché il formato del set di dati usato da altri componenti.

Passaggi successivi

Vedere il set di componenti disponibili per Azure Machine Learning.