Treinar o modelo Vowpal Wabbit versão 7-10

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 7-10 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 7-10 no Machine Learning Studio (clássico) para criar um modelo de machine learning usando uma instância do Vowpal Wabbit (versão 7-10).

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 7-10 da estrutura Vowpal Wabbit.

Se você precisar criar ou pontuar um modelo com base em uma versão anterior (7-4 ou 7-6), use estes módulos: Treinar o Modelo Vowpal Wabbit 7-4 e Pontuar Modelo Vowpal Wabbit 7-4.

Para a versão mais recente, use Treinar Modelo Vowpal Wabbit versão 8, junto com seu módulo de pontuação, Pontuar Modelo Vowpal Wabbit 8.

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 no Machine Learning 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 à versão local, o que significa que os usuários podem continuar a criar modelos, treinar e pontuar usando os recursos avançados e o desempenho nativo de Vowpal Wabbit, ao mesmo tempo que ganha a capacidade de publicar facilmente o modelo treinado como um serviço operacionalizado.

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 7-10

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 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 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 7-10 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, consulte a seção parâmetros .

  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. Depois que o modelo tiver sido gerado, clique com o botão direito do mouse na saída e selecione Salvar como modelo treinado, para que você possa usar e treinar o modelo mais tarde.

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 grupo Modelos Treinados no Studio (clássico) 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 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 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:

  • Exemplo de Wabbit de Vowpal

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

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. 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 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 a loja e as funções de trabalho que executam os cálculos 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 Machine Learning.

Parâmetros compatíveis e incompatíveis

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

você não pode usar os seguintes argumentos de linha de comando no Machine Learning Studio (clássico).

  • As opções de entrada/saída especificadas em Vowpal Wabbit wiki-Command-line-Arguments

    Essas propriedades são configuradas automaticamente pelo módulo.

  • Qualquer opção que gera várias saídas ou usa várias entradas não é permitida. Estão incluídos:

    --cbt, --lda, --wap

  • Há compatibilidade apenas com algoritmos de aprendizado supervisionados. Portanto, não há suporte para opções como essas:

    –active, --rank, --search

Todos os argumentos que não sejam os descritos acima são permitidos.

Para obter uma lista de argumentos completa, use a página wiki do Vowpal Wabbit.

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 espaço de trabalho ML do azure, 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

Nome Intervalo Type Padrão Descrição
Nome da conta de armazenamento do Azure any Cadeia de caracteres Digite o nome da conta de armazenamento do Azure
Chave de armazenamento do Azure any SecureString Forneça a chave de armazenamento do Azure
Nome do contêiner do Azure any String Digite o nome do contêiner do Azure
Argumentos VW any String Especifique quaisquer argumentos do Vowpal Wabbit.

Não há suporte para o argumento – f.
Nome do arquivo de entrada VW any String 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 Se especificado, gera um modelo legível novamente no contêiner do Azure.

Esse argumento é opcional.
Nome do arquivo hash invertido de saída (-invert_hash) any String Se especificado, gera um arquivo que contém a função hash invertida novamente no contêiner do Azure.

Esse argumento é opcional.
Especifique o tipo de arquivo VW

SVMLight
Tipo de dados VW Indique se o tipo de arquivo usa o formato SVMLight ou o formato Vowpal Wabbit.

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 7-10
Treinar o modelo Vowpal Wabbit 7-4
Lista de Módulo A-Z