Share via


Eseguire il training del modello Vowpal Wabbit

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

Per usare Vowpal Wabbit per Machine Learning, 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 di Vowpal Wabbit.

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

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

Informazioni su Vowpal Wabbit

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

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

Gli utenti principali di Vowpal Wabbit sono data scientist che in precedenza hanno usato il framework per le attività di Machine Learning, ad esempio classificazione, regressione, modellazione di argomenti o fattorizzazione matrice. Il wrapper di Azure per Vowpal Wabbit ha 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 Hashing funzionalità include anche funzionalità fornite da Vowpal Wabbit, che consente di trasformare i set di dati di testo in funzionalità binarie usando un algoritmo di hashing.

Come configurare il modello Wabbit di Vowpal

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, solo che le funzionalità 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 file o set di dati tabulari. Entrambi questi set di dati devono essere in formato SVMLight o VW. Il vantaggio del formato di dati di Vowpal Wabbit è che non richiede un formato a colonne. Questo 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 Wabbit di Vowpal

  1. Aggiungere il componente 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 Di wabbit di Vowpal.

    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 Wabbit di Vowpal .

  4. Nome del file di dati di training: digitare il nome del file contenente 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 usato 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 modello leggibile di output: selezionare l'opzione se si vuole che il componente salva il modello leggibile nei record del processo. Questo argomento corrisponde al --readable_model parametro nella riga di comando DI VW.

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

  8. Inviare la pipeline.

Ripetere il training di un modello Wabbit esistente

Vowpal Wabbit supporta il training incrementale aggiungendo nuovi dati a un modello esistente. Esistono due modi per ottenere un modello esistente per 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 precedente alla porta di input Del modello Wabbit con training preliminare del componente.

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

  4. Nel riquadro 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 file del modello leggibile di output e 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 Outputs+logs 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

Nota

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

Note tecniche

Questa sezione contiene i dettagli, i suggerimenti e le risposte all'implementazione alle domande frequenti.

Vantaggi di Vowpal Wabbit

Vowpal Wabbit consente un apprendimento estremamente veloce rispetto alle funzioni non lineari come gli n-grammi.

Vowpal Wabbit usa tecniche di apprendimento online, come i valori descent con sfumatura stocastica (SGD, Stochastic Gradient Descent), per adattare un modello un record alla volta. In questo modo esegue l'iterazione molto velocemente sui dati non elaborati e può sviluppare un valido predittore più rapidamente della 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 le altre variabili categoriche. L'uso degli hash rende più efficiente la ricerca dei pesi di regressione, che è fondamentale per una discesa della sfumatura stocastica efficace.

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, tutti ma un set limitato di argomenti sono supportati. Per un elenco completo di 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 con supervisione. Pertanto, queste opzioni non sono supportate: –active, --ranke --search così via.

Restrizioni

Poiché l'obiettivo del servizio è supportare gli utenti esperti di Vowpal Wabbit, i dati di input devono essere preparati in anticipo usando il formato di testo nativo di 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.