Treinar o modelo do Vowpal Wabbit versão 8

Treina um modelo usando a versão 8 do sistema de aprendizado de máquina Vowpal Wabbit

Categoria: análise de texto

Observação

Aplica-se a: Machine Learning Studio (clássico)

Esse conteúdo pertence apenas ao estúdio (clássico). Módulos de arrastar e soltar semelhantes foram adicionados ao designer de Azure Machine Learning. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como usar o módulo treinar Vowpal Wabbit versão 8 no Azure Machine Learning Studio (clássico) para criar um modelo de aprendizado de máquina usando Vowpal Wabbit (versão 8).

Para usar o Vowpal Wabbit para Machine Learning, formate sua entrada de acordo com os requisitos do Vowpal wabbit e salve os dados em um blob do Azure. Use este módulo para especificar argumentos de linha de comando Vowpal Wabbit.

Quando o experimento é executado, uma instância de Vowpal Wabbit é carregada no tempo de execução do experimento, junto com os dados especificados. Quando o treinamento for concluído, o modelo será serializado de volta para o espaço de trabalho. Você pode usar o modelo imediatamente para pontuar os dados. O modelo treinado também é mantido no armazenamento do Azure para que você possa usá-lo posteriormente sem precisar reprocessar os dados de treinamento.

Para treinar de forma incremental um modelo existente em novos dados, conecte um modelo salvo à entrada de modelo pré-treinado e adicione os novos dados à outra entrada.

Observação

Azure Machine Learning Studio (clássico) hospeda várias versões da estrutura Vowpal Wabbit. Este módulo usa a versão mais recente da estrutura Vowpal Wabbit, que é a versão 8. Para pontuar novos dados de entrada, você deve usar o modelo Score Vowpal Wabbit versão 8.

Vowpal Wabbit versões 7-4 ou 7-6: treinar Vowpal Wabbit 7-4 Model e pontuar Vowpal Wabbit 7-4 Model.

Vowpal Wabbit versão 7-10: treinar o modelo Vowpal Wabbit 7-10 e pontuar Vowpal Wabbit 7-10 Model.

O que é Vowpal Wabbit?

O VW (Vowpal Wabbit) é uma estrutura de aprendizado de máquina rápida e paralela que foi desenvolvida para a computação distribuída pelo Yahoo! Pesquisar. Posteriormente, foi transportado para o Windows e adaptado por John Langford (Microsoft Research) para computação científica nas arquiteturas paralelas.

Os recursos do Vowpal Wabbit que são importantes para o aprendizado de máquina incluem aprendizado contínuo (aprendizado online), redução de dimensionalidade e aprendizado interativo. Vowpal Wabbit também é uma solução de 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 usaram anteriormente a estrutura para tarefas de aprendizado de máquina, como classificação, regressão, modelagem de tópico ou fatoração de matriz. O wrapper do Azure para Vowpal Wabbit tem características de desempenho muito semelhantes para a versão local, para que você possa usar os recursos avançados e o desempenho nativo do Vowpal wabbit e publicar facilmente o modelo treinado como um serviço operacional.

O módulo hash de recurso também inclui a funcionalidade fornecida por Vowpal Wabbit, que permite transformar conjuntos de linhas de texto em recursos binários usando um algoritmo de hash.

Como configurar o modelo do Vowpal Wabbit versão 8

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

Ao contrário de outros módulos no estúdio (clássico), esse módulo Especifica os parâmetros do módulo e treina o modelo. Se você tiver um modelo existente, poderá adicioná-lo como uma entrada opcional para treinar o modelo de forma incremental.

O uso deste módulo requer autenticação em uma conta de armazenamento do Azure.

Preparar os dados de entrada

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

Os dados devem ser lidos do armazenamento do Azure. Não é possível usar exportar dados para salvar diretamente o arquivo de entrada no Azure para uso com Vowpal Wabbit, pois o formato requer alguma modificação adicional. Você deve garantir que os dados estejam no formato correto e, em seguida, carregar os dados no armazenamento de BLOBs do Azure.

No entanto, como um atalho, você pode usar o módulo converter para SVMLight para gerar um arquivo de formato SVMLight. Em seguida, você pode carregar o arquivo de formato SVMLight no armazenamento de BLOBs do Azure e usá-lo como entrada, ou pode modificar o arquivo ligeiramente para estar de acordo com os requisitos de arquivo de entrada do Wabbit Vowpal.

O formato de dados Vowpal Wabbit tem a vantagem de não requerer um formato de coluna, 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 módulo treinar Vowpal Wabbit versão 8 ao seu experimento.

  2. Especifique a conta na qual os dados de treinamento são armazenados. O modelo treinado e o arquivo de hash são armazenados no mesmo local.

    • Para nome da conta de armazenamento do Azure, digite o nome da conta de armazenamento do Azure.

    • Para a chave de armazenamento do Azure, copie e cole a chave que é fornecida para acessar a conta de armazenamento,

    Se você não tiver uma chave, consulte como regenerar chaves de acesso de armazenamento

  3. Para nome do contêiner do Azure, digite o nome de um único contêiner na conta de armazenamento do Azure especificada onde os dados de treinamento do modelo são armazenados. Não digite o nome da conta ou nenhum prefixo de protocolo.

    Por exemplo, se o caminho completo do contêiner e o nome forem https://myaccount.blob.core.windows.net/vwmodels , você deverá digitar apenas vwmodels . Para obter mais informações sobre nomes de contêiner, consulte nomenclatura e referência de contêineres, BLOBs e metadados.

  4. Na caixa de texto argumentos de VW , digite os argumentos de linha de comando para o executável Vowpal Wabbit.

    Por exemplo, você pode adicionar –l para especificar a taxa de aprendizagem ou -b para indicar o número de bits de hash.

    Para obter mais informações, consulte a seção Vowpal Wabbit Parameters .

  5. Nome do arquivo de VW de entrada: digite o nome do arquivo que contém os dados de entrada. O arquivo deve ser um arquivo existente no armazenamento de BLOBs do Azure, localizado na conta de armazenamento e no contêiner especificados anteriormente. O arquivo deve ter sido preparado usando um dos formatos com suporte.

  6. Nome do arquivo de modelo legível de saída (--readable_model): digite o nome de um arquivo em que o modelo treinado deve ser salvo. O arquivo deve ser salvo na mesma conta de armazenamento e no mesmo contêiner que o arquivo de entrada.

    Esse argumento corresponde ao --readable_model parâmetro na linha de comando VW.

  7. Nome do arquivo de hash invertido de saída (--invert_hash): digite o nome do arquivo no qual a função de hash invertida deve ser salva. O arquivo deve ser salvo na mesma conta de armazenamento e no mesmo contêiner que o arquivo de entrada.

    Esse argumento corresponde ao --invert_hash parâmetro na linha de comando VW.

  8. Especifique o tipo de arquivo: indique qual formato usa seus dados de treinamento. Vowpal Wabbit dá suporte a esses 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 outras ferramentas de aprendizado de máquina.

  9. Selecione a opção usar resultados em cache, se você não quiser carregar os dados do armazenamento sempre que o experimento for rereun. Supondo que nenhum outro parâmetro tenha sido alterado e um cache válido possa ser encontrado, o estúdio (clássico) usa uma versão armazenada em cache dos dados.

    Se essa opção for desmarcada, o módulo sempre lerá os dados do armazenamento.

  10. Execute o experimento.

  11. Quando o treinamento estiver concluído, clique com o botão direito do mouse na saída e selecione salvar como modelo treinado para salvar o modelo no seu espaço de trabalho do estúdio (clássico).

Treinar novamente um modelo existente do Vowpal Wabbit

O Vowpal Wabbit dá suporte ao treinamento incremental adicionando novos dados a um modelo existente. Há duas maneiras de obter um modelo existente para treinar novamente:

  • Use a saída de outro módulo treinar Vowpal Wabbit versão 8 no mesmo experimento.

  • Localize um modelo salvo no grupo modelos treinados do painel de navegação esquerdo do Studio (clássico) e arraste-o para o experimento.

  1. Adicione o módulo treinar Vowpal Wabbit versão 8 ao seu experimento.

  2. Conecte o modelo treinado anteriormente à porta de entrada do Train Vowpal Wabbit versão 8.

  3. No painel Propriedades de Train Vowpal Wabbit versão 8, especifique o local e o formato dos novos dados de treinamento.

  4. Especifique um nome para o arquivo de saída do modelo legível por humanos e outro nome para o arquivo de hash associado ao modelo atualizado.

    Observação

    Se houver um arquivo de hash ou modelo Vowpal Wabbit existente no local especificado, os arquivos serão silenciosamente substituídos pelo novo modelo treinado. Para preservar os modelos intermediários ao treinar novamente, você deve alterar o local de armazenamento ou fazer uma cópia local dos arquivos de modelo.

  5. Execute o experimento.

  6. Clique com o botão direito do mouse no módulo e selecione salvar como modelo treinado para preservar o modelo atualizado em seu espaço de trabalho de Azure Machine Learning. Se você não especificar um novo nome, o modelo atualizado substituirá o modelo salvo existente.

Exemplos

Para obter exemplos de como o Vowpal Wabbit pode ser usado no aprendizado de máquina, consulte o Galeria de ia do Azure:

Além disso, consulte estes recursos:

Observações técnicas

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

Vantagens do Vowpal Wabbit

O Vowpal Wabbit fornece aprendizado extremamente rápido sobre recursos não lineares como n-gramas.

O Vowpal Wabbit usa técnicas de aprendizado online, como stochastic gradient descent (SGD) para ajustar um modelo em um registro de cada vez. Assim, ele itera rapidamente sobre dados brutos e pode desenvolver um bom indicador com mais rapidez do que a maioria dos outros modelos. Essa abordagem também evita a necessidade de ler todos os dados de treinamento na memória.

O Vowpal Wabbit converte todos os dados em hash, não apenas os dados de texto, mas outras variáveis categóricas. O uso de hashes torna a pesquisa de pesos de regressão mais eficiente, o que é crítico para descendente de gradiente estocástico em vigor.

Durante o treinamento, o módulo faz chamadas para um wrapper Vowpal Wabbit desenvolvido para o Azure. Os dados de treinamento são baixados em blocos do Azure, utilizando a alta largura de banda entre as funções de trabalho que executam os cálculos e a loja e são transmitidos para os aprendizes do VW. O modelo resultante geralmente é muito compacto devido à compactação interna feita pelo VW. O modelo é copiado de volta para o espaço de trabalho experimento, onde pode ser utilizado como outros modelos no Azure Machine Learning.

Parâmetros com e sem suporte

Esta seção descreve o suporte para parâmetros de linha de comando Vowpal Wabbit no Azure Machine Learning Studio (clássico).

Em geral, há suporte para todos, exceto para um conjunto limitado de argumentos. Para obter uma lista completa de argumentos, use a página wiki do Vowpal Wabbit.

Os parâmetros a seguir não são há suporte:

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

    Essas propriedades já estão configuradas automaticamente pelo módulo.

  • Além disso, qualquer opção que gera várias saídas ou usa várias entradas não é permitida. Isso inclui --cbt , --lda e --wap .

  • Há suporte apenas para algoritmos de aprendizado supervisionados. Portanto, não há suporte para essas opções: –active , --rank , --search etc. # # # Restrições

Restrições

Como o objetivo do serviço é dar suporte a usuários experientes do Vowpal Wabbit, os dados de entrada devem ser preparados antecipadamente usando o formato de texto nativo Vowpal Wabbit, em vez do formato de conjunto de dados usado por outros módulos.

Em vez de usar dados no espaço de trabalho do Azure ML, os dados de treinamento são transmitidos diretamente do Azure, para obter o desempenho máximo e a sobrecarga de análise mínima. Por esse motivo, há apenas uma interoperabilidade limitada entre os módulos VW e outros módulos no Azure ML.

Parâmetros do módulo

Name Intervalo Tipo Opcional Padrão Descrição
Especifique o tipo de arquivo VW

SVMLight
Tipo de dados Necessária VW Indique se o tipo de arquivo é SVMLight ou Vowpal Wabbit.
Nome da conta de armazenamento do Azure any String Necessária Digite o nome da conta de armazenamento do Azure
Chave de armazenamento do Azure any SecureString Necessária Forneça a chave de armazenamento do Azure
Nome do contêiner do Azure any String Necessária Digite o nome do contêiner do Azure
Argumentos VW any String Opcional Especifique quaisquer argumentos do Vowpal Wabbit. Não inclua-f.
Nome do arquivo de entrada VW any String Necessária Especifique o nome de um arquivo de entrada no formato Vowpal Wabbit
Nome do arquivo de modelo legível de saída (-readable_model) any String Opcional Se especificado, gera um modelo legível novamente no contêiner do Azure.
Nome do arquivo hash invertido de saída (-invert_hash) String String Opcional Se especificado, gera um arquivo que contém a função hash invertida novamente no contêiner do Azure.

Saídas

Nome Tipo Descrição
Modelo treinado Interface ILearner Aprendiz treinado

Exceções

Exceção Descrição
Erro 0001 Ocorrerá uma exceção se uma ou mais das colunas especificadas do conjunto de dados não puder ser encontrada.
Erro 0003 Ocorrerá uma exceção se uma ou mais das entradas for nula ou estiver vazia.
Erro 0004 Ocorrerá uma exceção se o parâmetro for inferior ou igual ao valor específico.
Erro 0017 Ocorrerá uma exceção se uma ou mais das colunas especificadas tiver um tipo sem suporte por módulo atual.

Para obter uma lista de erros específicos para módulos do Studio (clássicos), consulte Machine Learning códigos de erro.

Para obter uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.

Consulte também

Análise de Texto
Hash de recurso
Reconhecimento de entidade nomeada
Pontuar o modelo Vowpal Wabbit 7-4
Score Vowpal Wabbit versão 8 modelo.
Treinar modelo do Vowpal Wabbit 7-4
Lista de Módulo A-Z