Train Vowpal Wabbit Model

Este artigo descreve como utilizar o componente Train Vowpal Wabbit Model no estruturador do Azure Machine Learning para criar um modelo de machine learning com o Vowpal Wabbit.

Para utilizar o Vowpal Wabbit para machine learning, formate a sua entrada de acordo com os requisitos do Vowpal Wabbit e prepare os dados no formato necessário. Utilize este componente para especificar argumentos da linha de comandos Vowpal Wabbit.

Quando o pipeline é executado, uma instância do Vowpal Wabbit é carregada para o tempo de execução da experimentação, juntamente com os dados especificados. Quando a preparação estiver concluída, o modelo é serializado novamente para a área de trabalho. Pode utilizar o modelo imediatamente para classificar dados.

Para preparar incrementalmente um modelo existente em novos dados, ligue um modelo guardado à porta de entrada do modelo Vowpal Wabbit Pré-preparado do Modelo Train Vowpal Wabbit e adicione os novos dados à outra porta de entrada.

O que é o Vowpal Wabbit?

Vowpal Wabbit (VW) é uma arquitetura rápida e paralela de machine learning desenvolvida para computação distribuída pela Yahoo! Pesquisa. Posteriormente, foi transferida para o Windows e adaptada por John Langford (Microsoft Research) para computação científica em arquiteturas paralelas.

As funcionalidades do Vowpal Wabbit que são importantes para machine learning incluem aprendizagem contínua (aprendizagem online), redução de dimensionalidade e aprendizagem interativa. O Vowpal Wabbit também é uma solução para problemas quando não consegue ajustar os dados do modelo à memória.

Os principais utilizadores do Vowpal Wabbit são cientistas de dados que já utilizaram a arquitetura para tarefas de machine learning, como classificação, regressão, modelação de tópicos ou fatorização de matriz. O wrapper do Azure para Vowpal Wabbit tem características de desempenho muito semelhantes à versão no local, pelo que pode utilizar as funcionalidades avançadas e o desempenho nativo do Vowpal Wabbit e publicar facilmente o modelo preparado como um serviço operacionalizado.

O componente Hashing de Funcionalidades também inclui funcionalidades fornecidas pelo Vowpal Wabbit, que lhe permitem transformar conjuntos de dados de texto em funcionalidades binárias com um algoritmo hashing.

Como configurar o Modelo Vowpal Wabbit

Esta secção descreve como preparar um novo modelo e como adicionar novos dados a um modelo existente.

Ao contrário de outros componentes no estruturador, este componente especifica os parâmetros do componente e prepara o modelo. Se tiver um modelo existente, pode adicioná-lo como uma entrada opcional para preparar o modelo de forma incremental.

Preparar os dados de entrada

Para preparar um modelo com este componente, o conjunto de dados de entrada tem de consistir numa única coluna de texto num dos dois formatos suportados: SVMLight ou VW. Isto não significa que o Vowpal Wabbit analise apenas os dados de texto, apenas que as funcionalidades e os valores têm de ser preparados no formato de ficheiro de texto necessário.

Os dados podem ser lidos a partir de dois tipos de conjuntos de dados, conjuntos de dados de ficheiros ou conjuntos de dados tabulares. Ambos os conjuntos de dados têm de estar no formato SVMLight ou VW. O formato de dados Vowpal Wabbit tem a vantagem de não necessitar de um formato de colunas, o que poupa espaço ao lidar com dados dispersos. Para obter mais informações sobre este formato, veja a página wiki Vowpal Wabbit.

Criar e preparar um modelo Vowpal Wabbit

  1. Adicione o componente Train Vowpal Wabbit Model à sua experimentação.

  2. Adicione o conjunto de dados de preparação e ligue-o aos dados de Preparação. Se o conjunto de dados de preparação for um diretório, que contém o ficheiro de dados de preparação, especifique o nome do ficheiro de dados de preparação com o Nome do ficheiro de dados de preparação. Se o conjunto de dados de preparação for um único ficheiro, deixe o Nome do ficheiro de dados de preparação vazio.

  3. Na caixa de texto argumentos VW , escreva os argumentos da linha de comandos para o executável Vowpal Wabbit.

    Por exemplo, pode adicionar –l para especificar o ritmo de aprendizagem ou -b para indicar o número de bits de hashing.

    Para obter mais informações, veja a secção Vowpal Wabbit parameters (Parâmetros Vowpal Wabbit ).

  4. Nome do ficheiro de dados de preparação: escreva o nome do ficheiro que contém os dados de entrada. Este argumento só é utilizado quando o conjunto de dados de preparação é um diretório.

  5. Especifique o tipo de ficheiro: indique o formato que os dados de preparação utilizam. O Vowpal Wabbit suporta estes dois formatos de ficheiro de entrada:

    • A VW representa o formato interno utilizado pelo Vowpal Wabbit. Veja a página wiki Vowpal Wabbit para obter detalhes.
    • O SVMLight é um formato utilizado por outras ferramentas de machine learning.
  6. Ficheiro de modelo legível de saída: selecione a opção se pretender que o componente guarde o modelo legível nos registos de tarefas. Este argumento corresponde ao --readable_model parâmetro na linha de comandos VW.

  7. Ficheiro hash invertido de saída: selecione a opção se pretender que o componente guarde a função hash invertida num ficheiro nos registos de tarefas. Este argumento corresponde ao --invert_hash parâmetro na linha de comandos VW.

  8. Submeta o pipeline.

Preparar novamente um modelo Vowpal Wabbit existente

O Vowpal Wabbit suporta a preparação incremental ao adicionar novos dados a um modelo existente. Existem duas formas de obter um modelo existente para a nova preparação:

  • Utilize a saída de outro componente Train Vowpal Wabbit Model no mesmo pipeline.

  • Localize um modelo guardado na categoria Conjuntos de dados do painel de navegação esquerdo do estruturador e arraste-o para o pipeline.

  1. Adicione o componente Train Vowpal Wabbit Model ao seu pipeline.

  2. Ligue o modelo previamente preparado à porta de entrada Do Modelo Vowpal Wabbit Pré-preparado do componente.

  3. Ligue os novos dados de preparação à porta de entrada de dados de Preparação do componente.

  4. No painel de parâmetros do Modelo Train Vowpal Wabbit, especifique o formato dos novos dados de preparação e também o nome do ficheiro de dados de preparação se o conjunto de dados de entrada for um diretório.

  5. Selecione o ficheiro de modelo legível saída e as opções de ficheiro hash invertido de saída se os ficheiros correspondentes precisarem de ser guardados nos registos de tarefas.

  6. Submeta o pipeline.

  7. Selecione o componente e selecione Registar conjunto de dados no separador Saídas+registos no painel direito para preservar o modelo atualizado na área de trabalho do Azure Machine Learning. Se não especificar um novo nome, o modelo atualizado substitui o modelo guardado existente.

Resultados

Nota

Se precisar de implementar o modelo preparado no estruturador, certifique-se de que Score Vowpal Wabbit Model em vez de Score Model está ligado à entrada do componente Saída do Serviço Web no pipeline de inferência.

Notas técnicas

Esta secção contém detalhes de implementação, sugestões e respostas a perguntas mais frequentes.

Vantagens do Vowpal Wabbit

O Vowpal Wabbit proporciona uma aprendizagem extremamente rápida sobre funcionalidades não lineares, como n-gramas.

O Vowpal Wabbit utiliza técnicas de aprendizagem online , como o gradiente descendente estocástico (SGD) para se ajustar a um modelo um registo de cada vez. Assim, itera muito rapidamente os dados não processados e pode desenvolver um bom preditor mais rapidamente do que a maioria dos outros modelos. Esta abordagem também evita ter de ler todos os dados de preparação para a memória.

O Vowpal Wabbit converte todos os dados em hashes, não só dados de texto, mas também outras variáveis categóricas. Utilizar hashes torna a procura de pesos de regressão mais eficiente, o que é crítico para um gradiente descendente estocástico eficaz.

Parâmetros suportados e não suportados

Esta secção descreve o suporte para parâmetros da linha de comandos Vowpal Wabbit no estruturador do Azure Machine Learning.

Geralmente, todos menos um conjunto limitado de argumentos são suportados. Para obter uma lista completa dos argumentos, utilize a página wiki Vowpal Wabbit.

Os seguintes parâmetros não são suportados:

  • As opções de entrada/saída especificadas em https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments

    Estas propriedades já estão configuradas automaticamente pelo componente.

  • Além disso, qualquer opção que gere múltiplas saídas ou recebe múltiplas entradas não é permitida. Estes incluem --cbt, --ldae --wap.

  • Apenas são suportados algoritmos de aprendizagem supervisionados. Por conseguinte, estas opções não são suportadas: –active, --rank, etc --search .

Restrições

Uma vez que o objetivo do serviço é suportar utilizadores experientes do Vowpal Wabbit, os dados de entrada têm de ser preparados antecipadamente com o formato de texto nativo Vowpal Wabbit, em vez do formato do conjunto de dados utilizado por outros componentes.

Passos seguintes

Veja o conjunto de componentes disponíveis para o Azure Machine Learning.