Treinar o modelo Vowpal Wabbit versão 8

Importante

O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.

A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).

A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.

Treina um modelo usando a versão 8 do sistema de machine learning Vowpal Wabbit

Categoria: Análise de Texto

Observação

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

Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.

Visão geral do módulo

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

Para usar Vowpal Wabbit para aprendizado de máquina, forque sua entrada de acordo com os requisitos de Vowpal Wabbit e salve os dados em um blob do Azure. Use este módulo para especificar argumentos de linha de comando do Vowpal Wabbit.

Quando o experimento é executado, uma instância de Vowpal Wabbit é carregada no tempo de run-time do experimento, juntamente com os dados especificados. Quando o treinamento for concluído, o modelo será serializado novamente para o workspace. Você pode usar o modelo imediatamente para pontuar os dados. O modelo treinado também é persistido no armazenamento do Azure para que você possa usá-lo posteriormente sem precisar reprocessar os dados de treinamento.

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

Observação

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 Pontuar Vowpal Wabbit versão 8.

Vowpal Wabbit versões 7-4 ou 7-6: Treinar o modelo Vowpal Wabbit 7-4 e pontuar o modelo Vowpal Wabbit 7-4.

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

O que é Vowpal Wabbit?

O Vowpal Wabbit (VW) é uma estrutura de aprendizado de máquina rápida e paralela que foi desenvolvida para 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.

Recursos de 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 pelo Vowpal Wabbit, que permite transformar conjuntos de linhas de texto em recursos binários usando um algoritmo de hash.

Como configurar o modelo 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 Studio (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 maneira incremental.

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

Preparar os dados de entrada

Para treinar um modelo usando este módulo, o conjuntos 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 o 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 estão no formato correto e, em seguida, carregar os dados no armazenamento de blob do Azure.

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

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, confira a página wiki do Vowpal Wabbit.

Criar e treinar um modelo do Vowpal Wabbit

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

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

    • Para o 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 copie a chave fornecida para acessar a conta de armazenamento,

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

  3. Para o nome do contêiner do Azure, digite o nome de um único contêiner na conta de armazenamento do Azure especificada em que 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 e o nome completos do contêiner for https://myaccount.blob.core.windows.net/vwmodels, digite apenas vwmodels. Para obter mais informações sobre nomes de contêiner, consulte Nomeando e referenciando contêineres, blobs e metadados.

  4. Na caixa de texto Argumentos de VW, digite os argumentos de linha de comando para o executável do 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, confira a seção Parâmetros do Vowpal Wabbit.

  5. Nome do arquivo 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 blob 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 aceitá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 dentro da mesma conta de armazenamento e contêiner que o arquivo de entrada.

    Esse argumento corresponde ao parâmetro --readable_model na linha de comando do 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 invertido deve ser salva. O arquivo deve ser salvo dentro da mesma conta de armazenamento e contêiner que o arquivo de entrada.

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

  8. Especifique o tipo de arquivo: indique qual formato seus dados de treinamento usam. O Vowpal Wabbit permite esses dois formatos de arquivo de entrada:

    • VW representa o formato interno usado pelo Vowpal Wabbit. Confira 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 armazenados em cache, se você não quiser carregar os dados do armazenamento sempre que o experimento for reun. Supondo que nenhum outro parâmetro tenha sido alterado e um cache válido possa ser encontrado, o Studio (clássico) usa uma versão armazenada em cache dos dados.

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

  10. Execute o experimento.

  11. Quando o treinamento for concluído, clique com o botão direito do mouse na saída e selecione Salvar como Modelo Treinado para salvar o modelo no workspace do Studio (clássico).

Treinar novamente um modelo existente do Vowpal Wabbit

O Vowpal Wabbit permite 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 painel de navegação esquerdo do Studio (clássico) do grupo Modelos Treinados e arraste-o para o experimento.

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

  2. Conexão modelo treinado anteriormente para a porta de entrada de Train Vowpal Wabbit versão 8.

  3. No painel Propriedades de Treinar 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 acessível por humanos e outro nome para o arquivo de hash associado ao modelo atualizado.

    Observação

    Se houver um modelo Vowpal Wabbit existente ou um arquivo de hash no local especificado, os arquivos serão substituídos silenciosamente pelo novo modelo treinado. Para preservar modelos intermediários durante o novo treinamento, 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 Machine Learning workspace. Se você não especificar um novo nome, o modelo atualizado substituirá o modelo salvo existente.

Exemplos

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

  • Exemplo de Vowpal Wabbit

    Este experimento demonstra a preparação, o treinamento e a operacionalização de dados de um modelo VW.

Além disso, confira 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. Usar hashes faz pesquisas de pesos de regressão mais eficientes, que são essenciais para deslocamento descendente do gradiente estocástico efetivo.

Durante o treinamento, o módulo faz chamadas em 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 o armazenamento e são transmitidos para os alunos do VW. O modelo resultante geralmente é muito compacto devido à compactação interna feita pela VW. O modelo é copiado de volta para o workspace do experimento, no qual ele pode ser utilizado como outros modelos no Machine Learning.

Parâmetros compatíveis e incompatíveis

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

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

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

  • 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. Elas incluem --cbt, --lda e --wap.

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

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 do Vowpal Wabbit, em vez do formato de conjunto de dados usado por outros módulos.

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

Parâmetros do módulo

Nome 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 Obrigatório Digite o nome da conta de armazenamento do Azure
Chave de armazenamento do Azure any SecureString Obrigatório Forneça a chave de armazenamento do Azure
Nome do contêiner do Azure any String Obrigatório 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 Obrigatório 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) Cadeia de caracteres 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 ver uma lista de erros específicos dos módulos do Studio (clássico), consulte Machine Learning Códigos de erro.

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

Confira também

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