Partilhar via


Train Vowpal Wabbit Model

Este artigo descreve como usar o componente Train Vowpal Wabbit Model no designer do Azure Machine Learning para criar um modelo de aprendizado de máquina usando Vowpal Wabbit.

Para usar o Vowpal Wabbit para aprendizado de máquina, formate sua entrada de acordo com os requisitos do Vowpal Wabbit e prepare os dados no formato necessário. Use este componente para especificar argumentos de linha de comando Vowpal Wabbit.

Quando o pipeline é executado, uma instância do Vowpal Wabbit é carregada no tempo de execução do experimento, juntamente com os dados especificados. Quando o treinamento é concluído, o modelo é serializado de volta para o espaço de trabalho. Você pode usar o modelo imediatamente para pontuar os dados.

Para treinar incrementalmente um modelo existente em novos dados, conecte um modelo salvo à porta de entrada do modelo Vowpal Wabbit pré-treinado do Modelo Train Vowpal Wabbit e adicione os novos dados à outra porta de entrada.

Qual é Vowpal Wabbit?

Vowpal Wabbit (VW) é uma estrutura de aprendizado de máquina rápida e paralela que foi desenvolvida para computação distribuída pelo Yahoo! Investigação. Mais tarde foi portado para Windows e adaptado por John Langford (Microsoft Research) para computação científica em arquiteturas paralelas.

Os recursos do Vowpal Wabbit que são importantes para o aprendizado de máquina incluem aprendizado contínuo (aprendizado on-line), redução de dimensionalidade e aprendizado interativo. Vowpal Wabbit também é uma solução para problemas quando você não pode ajustar os dados do modelo na memória.

Os principais usuários do Vowpal Wabbit são cientistas de dados que já usaram a estrutura para tarefas de aprendizado de máquina, como classificação, regressão, modelagem de tópicos ou fatoração matricial. O wrapper do Azure para Vowpal Wabbit tem características de desempenho muito semelhantes à versão local, para que você possa usar os recursos poderosos e o desempenho nativo do Vowpal Wabbit e publicar facilmente o modelo treinado como um serviço operacionalizado.

O componente Feature Hashing também inclui a funcionalidade fornecida pelo Vowpal Wabbit, que permite transformar conjuntos de dados de texto em recursos binários usando um algoritmo de hash.

Como configurar o modelo Vowpal Wabbit

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

Ao contrário de outros componentes no designer, este componente especifica os parâmetros do componente e treina o modelo. Se você tiver um modelo existente, poderá adicioná-lo como uma entrada opcional, para treinar incrementalmente o modelo.

Preparar os dados de entrada

Para treinar um modelo usando esse componente, o conjunto de dados de entrada deve consistir em uma única coluna de texto em um dos dois formatos suportados: SVMLight ou VW. Isso não significa que o Vowpal Wabbit analisa apenas dados de texto, apenas que os recursos e valores devem ser preparados no formato de arquivo de texto necessário.

Os dados podem ser lidos a partir de dois tipos de conjuntos de dados, conjunto de dados de arquivo ou conjunto de dados tabular. Ambos os conjuntos de dados devem estar no formato SVMLight ou VW. O formato de dados Vowpal Wabbit tem a vantagem de não exigir um formato colunar, o que economiza espaço ao lidar com dados esparsos. Para obter mais informações sobre esse formato, consulte a página wiki do Vowpal Wabbit.

Criar e treinar um modelo Vowpal Wabbit

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

  2. Adicione o conjunto de dados de treinamento e conecte-o aos dados de treinamento. Se o conjunto de dados de treinamento for um diretório que contém o arquivo de dados de treinamento, especifique o nome do arquivo de dados de treinamento com Nome do arquivo de dados de treinamento. Se o conjunto de dados de treinamento for um único arquivo, deixe Nome do arquivo de dados de treinamento vazio.

  3. Na caixa de texto Argumentos VW, digite os argumentos de linha de comando 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, consulte a seção Parâmetros Vowpal Wabbit.

  4. Nome do arquivo de dados de treinamento: digite o nome do arquivo que contém os dados de entrada. Esse argumento só é usado quando o conjunto de dados de treinamento é um diretório.

  5. Especificar tipo de arquivo: indique o formato usado pelos dados de treinamento. Vowpal Wabbit suporta estes dois formatos de arquivo de entrada:

    • VW representa o formato interno usado por Vowpal Wabbit . Consulte a página wiki do Vowpal Wabbit para obter detalhes.
    • SVMLight é um formato usado por algumas outras ferramentas de aprendizado de máquina.
  6. Arquivo de modelo legível de saída: selecione a opção se desejar que o componente salve o modelo legível nos registros de trabalho. Este argumento corresponde ao --readable_model parâmetro na linha de comando VW.

  7. Arquivo de hash invertido de saída: selecione a opção se quiser que o componente salve a função de hash invertido em um arquivo nos registros de trabalho. Este argumento corresponde ao --invert_hash parâmetro na linha de comando VW.

  8. Envie o pipeline.

Retreinar um modelo Vowpal Wabbit existente

O Vowpal Wabbit suporta treinamento incremental adicionando novos dados a um modelo existente. Existem duas formas de obter um modelo existente de reciclagem:

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

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

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

  2. Conecte o modelo treinado anteriormente à porta de entrada do modelo Wabbit Vowpal pré-treinado do componente.

  3. Conecte os novos dados de treinamento à porta de entrada de dados de treinamento do componente.

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

  5. Selecione as opções Arquivo de modelo legível de saída e Arquivo hash invertido de saída se os arquivos correspondentes precisarem ser salvos nos registros de trabalho.

  6. Envie o pipeline.

  7. Selecione o componente e selecione Registrar conjunto de dados na guia Saídas+logs no painel direito, para preservar o modelo atualizado em seu espaço de trabalho do Azure Machine Learning. Se você não especificar um novo nome, o modelo atualizado substituirá o modelo salvo existente.

Resultados

Nota

Se você precisar implantar o modelo treinado no designer, certifique-se de que Score Vowpal Wabbit Model em vez de Score Model esteja conectado à entrada do componente Web Service Output no pipeline de inferência.

Notas técnicas

Esta seção contém detalhes de implementação, dicas e respostas para perguntas frequentes.

Vantagens do Vowpal Wabbit

Vowpal Wabbit fornece aprendizagem extremamente rápida sobre recursos não lineares como n-gramas.

Vowpal Wabbit usa técnicas de aprendizagem on-line, como descida de gradiente estocástico (SGD) para ajustar um modelo um registro de cada vez. Assim, ele itera muito rapidamente sobre dados brutos e pode desenvolver um bom preditor mais rápido do que a maioria dos outros modelos. Essa abordagem também evita ter que ler todos os dados de treinamento na 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 seção descreve o suporte para parâmetros de linha de comando Vowpal Wabbit no designer do Azure Machine Learning.

Geralmente, todos os argumentos, exceto um conjunto limitado, são suportados. Para obter uma lista completa de argumentos, use 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

    Essas propriedades já são configuradas automaticamente pelo componente.

  • Além disso, qualquer opção que gere várias saídas ou tenha várias entradas não é permitida. Estes incluem --cbt, --lda, e --wap.

  • Apenas algoritmos de aprendizagem supervisionada são suportados. Portanto, essas opções não são suportadas: –active, --rank, --search etc.

Restrições

Como o objetivo do serviço é oferecer suporte a usuários experientes do Vowpal Wabbit, os dados de entrada devem ser preparados com antecedência usando o formato de texto nativo do Vowpal Wabbit, em vez do formato de conjunto de dados usado por outros componentes.

Próximos passos

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