- Documentos da API
- CLI
- Guias de integração
- Integração do Exchange com usuário do serviço do Azure
- Integração do Exchange com Autenticação de Aplicativo do Azure
- Automação em tempo real
- Como buscar dados para o Tableau com o Python
- Integração do Elasticsearch
- Integração do EWS auto-hospedado
- Estrutura de automação da UiPath
- Atividades do UiPath Marketplace
- Atividades oficiais da UiPath
- Blog
- Como as máquinas aprendem a entender as palavras: um guia para incorporações ao NLP
- Aprendizado baseado em solicitação com Transformers
- Efficient Transformers II: extração de conhecimento e ajustes finos
- Transformers eficientes I: mecanismos de atenção
- Modelagem de intenção hierárquica profunda não supervisionada: obtenção de valor sem dados de treinamento
- Corrigindo viés de anotação com Communications Mining
- Aprendizado ativo: melhores modelos de ML em menos tempo
- Está tudo nos números - avaliando o desempenho do modelo com métricas
- Por que a validação de modelos é importante
- Comparação do Communications Mining e do Google AutoML para inteligência de dados conversacional
Guia do desenvolvedor do Communications Mining
Aprendizado ativo: melhores modelos de ML em menos tempo
Treinar um modelo de machine learning do zero é difícil. É um equívoco comum que a construção do modelo em si seja a parte mais difícil do treinamento de um modelo. Na realidade, o processo de coleta de dados e anotação é muito mais difícil do que as pessoas supõem.
Determinar quais conceitos o modelo deve aprender, coletar os dados, fazer com que especialistas no assunto (SMEs) anotem, garantir que sejam consistentes para garantir a qualidade da anotação, são todos processos demorados e exigem a colaboração entre várias equipes e partes interessadas.
Esse coletor de tempo substancial atrasa o tempo de avaliação que você deveria obter do aprendizado de máquina. Além disso, muitas vezes, é uma limitação para usar o valor orientado por ML por meio de análise e automação. A diferença entre a dificuldade detectada e real da anotação de dados faz com que os projetos de ML falhem devido a restrições de tempo subestimadas. Se usar o aprendizado de máquina é uma jornada, é como sair sem um mapa, se perder e entregar antes de chegar ao destino.
Neste post, falaremos sobre uma maneira de mitigar esses problemas: o Active Learning, que fica no coração da plataforma Communications Mining.
Active learning em resumo
Em sua parte, o Active Learning é um conjunto de métodos que visa reduzir a quantidade de dados necessários para treinar um modelo de aprendizado de máquina. É um processo iterativo em que os alocadores humanos e o modelo trabalham em colaboração. A ideia fundamental é que nem todos os pontos de dados são igualmente informativos. Intuitivamente, um bom tutor pode criar um currículo que funcione melhor para um filho, em vez de fazer com que ele trabalhe no texto inteiro.
- Conceitos fáceis exigem menos dados para aprender bem do que os mais difíceis
- Se houver diferentes maneiras de expressar a mesma ideia, é mais valioso mostrar ao modelo uma grande variedade de exemplos em vez da mesma frase várias vezes
- Após um modelo entender com confiança um conceito, é muito mais valioso treiná-lo em outros conceitos do que alimentá-lo com mais dados que só ajudam a consolidar sua compreensão
Há muitos métodos específicos para o Active Learning, mas todos dependem da definição de uma ideia de erro do modelo, que quantifica o quão confiável o modelo está em suas previsões. Você pode encontrar implementações e descrições de uma ampla variedade de métricas de margem de erro comuns na biblioteca python modal ou pode saber mais sobre a pesquisa de Aprendizado Ativo neste artigo de pesquisa. Recomendamos que você verifique ambos.
O loop do Active Learning clássico tem a seguinte aparência:
Mas isso já é demais para você, vamos colocar isso em prática.
O conjunto de dados da Reputação
Para fins de demonstração, usamos o corpus da Regress disponível ao público, fornecido pelo NLTK. É uma coleção de 10.788 artigos de notícias marcados com 90 categorias, e qualquer artigo pode ter uma ou mais tags.
grain
, ship
e wheat
.
EXPORTADORES FRANCES AUMENTAR AS V Corridas de Trigo Para a China
Exportadores francesas estimam que cerca de 600.000 t de Trigo leve francês foram vendidas para a China para entrega no ano de 1986/87 (julho/junho). Cerca de 300.000 t foram exportadas para a China entre julho de 1986 e fevereiro deste ano. Outras 100.000 a 150.000 t serão enviadas durante este mês, e aproximadamente a mesma quantidade em abril, afirmaram. A França exportou cerca de 250.000 t de Trigo leve para a China em 1985/86, de acordo com dados da aduana. No entanto, certos exportadores temem que a China renuncie a parte de seu contrato com a França após ter recebido a oferta de um milhão de t de Trigo leve dos EUA sob o Programa de Melhoria de Exportações em janeiro e de ter feito algumas compras sob a iniciativa.
Você pode encontrar nossos dados limpos/processados aqui. Sinta-se à vontade para experimentar por conta própria.
Uma comparação simples do Active Learning
Vamos comparar a estratégia de Active Learning do Communications Mining com amostra aleatória do conjunto de treinamento, que é a linha de base padrão para a coleta de dados.
Para todos os experimentos, nossa configuração é:
- Selecionamos as 20 tags mais comuns e só coletamos essas
- Para nossa divisão treinamento/teste, usamos aquela fornecida pelo conjunto de dados
- Relatamos a média e o desvio padrão de 10 execuções
- O modelo de machine learning subjacente é exatamente idêntico. A única diferença é a estratégia de anotação
Ambos os métodos começam com os mesmos 100 exemplos selecionados aleatoriamente — o conjunto inicial. O Active Learning precisa de uma pequena quantidade de dados iniciais para obter estimativas de margem de erro confiáveis antes de podermos usá-los para guiar o processo de treinamento. Na prática, esse conjunto inicial geralmente é criado usando Clusters na página Descubra no Communications Mining, mas para tornar a comparação o mais leal possível, usamos o mesmo conjunto inicial aleatório para ambos os métodos neste post.
Para o Active Learning, escolhemos iterativamente os 50 exemplos mais informativos, conforme estimado pela estratégia Communications Mining Active Learning, retreinamos um modelo e repetimos. Para a linha de base, amostramos aleatoriamente 50 exemplos dos dados restantes não anotados a cada iteração.
A cada etapa de tempo, comparamos o desempenho de ambos os modelos no mesmo conjunto de testes, e usamos a Precisão Média Média (MAP) como nossa métrica principal.
O Active Learning claramente supera a linha de base aleatória. O último atinge 80% de MAP após 3050 exemplos de treinamento, enquanto o treinamento orientado por aprendizado ativo o atinge após apenas 1750 exemplos, ou uma redução de 1,7x.
Demonstramos empiricamente que o Active Learning pode reduzir os requisitos de dados para produzir um bom modelo, mas é isso mesmo que queremos alcançar?
Entendemos que o verdadeiro objetivo do Active Learning deve ser reduzir o tempo necessário para produzir um bom modelo de machine learning. Esse tempo é dividido entre a coordenar diferentes equipes e o gerenciamento de agendamentos, o desenvolvimento do modelo e o treinamento por cientistas de dados, e a anotação de dados por SMEs.
Falificações no aprendizado ativo acadêmico
A maior parte das pesquisas em Active Learning visa criar métodos que reduzam ainda mais os requisitos de dados para um modelo. Eles geralmente fazem suposições que não estão necessariamente corretas em um ambiente do mundo real.
Os anotadores não usam o mesmo tempo para rotular todas as entradas
Buscar apenas reduzir o número de pontos de treinamento ignora o fato de que o tempo para anotar diferentes entradas varia drasticamente, mesmo para a mesma pessoa. Entradas com texto mais longo ou fraseado mais complicado levam mais tempo para ler. Entradas com mais conceitos levam mais tempo para serem anotadas, porque é preciso acompanhar muitos temas diferentes durante a leitura do texto.
A troca de contexto também tem um custo. Solicitar a um rotulador que anote o mesmo conceito 20 vezes seguidas será mais rápido do que anotar 20 conceitos diferentes, pois o anotador terá que alternar constantemente o contexto visual e não poderá entrar em um bom fluxo de anotação.
Olhar apenas para o número de exemplos anotados pode ser enganoso. De fato, se uma entrada tiver a metade do informativo, mas for dez vezes mais rápida para anotar do que outra, anotar é uma melhor contrapartida em termos de tempo de PME ativo. Em última análise, essa é a métrica mais importante a ser minimizada.
Os anotadores não estão bem integrados no loop
A pesquisa de Active Learning pressupõe que pedir a um anotador para rotular uma entrada revelado pelo modelo treinado mais recente pode acontecer instantaneamente. Neste mundo, o anotador humano está totalmente integrado ao loop do Active Learning e está apenas esperando receber uma entrada para anotar, como uma máquina de anotar.
Na realidade, porém, as PMEs responsáveis pela anotação de dados raramente são as mesmas pessoas que controlam o treinamento do modelo. Cada iteração requer organização entre PMEs e cientistas de dados para passar os dados de um para o outro e fornecer acesso ao novo modelo, sincronizando com os calendários ocupados de todos.
O retreinamento do modelo não é instantâneo
Como o Active Learning requer muitas iterações para melhorar o modelo de maneira otimizada, uma suposição comum é de que o retreinamento de um modelo acontece instantaneamente e que a única atividade demorada é a anotação de dados. No entanto, se o retreinamento do modelo for controlado por uma equipe de ciências de dados separada ou estiver sendo fornecido por uma solução de nuvem de última geração, como o Google AutoML, o tempo para treinar novamente um modelo pode ser significativo. O Google AutoML estima que o treinamento de um modelo leva de 6 a 24 horas. Isso é fundamentalmente incompatível com iterações rápidas. Se toda vez que as PMEs rotularem um lote precisarem esperar 6h antes de receber o próximo lote, o treinamento de um modelo levará semanas, se não meses.
PMEs não sabe quando interromper o treinamento
Para estabelecer referências e produzir pesquisas comparáveis, o desempenho geralmente é referenciado em relação a um conjunto de testes bem definido. Isso é necessário para a pesquisa autônoma, mas no mundo real esse conjunto de testes não existe, pois começamos sem nenhum dado anotado. Saber quando o modelo atingiu desempenho suficiente para ser usado na produção e, assim, quando as PMEs podem parar de anotar mais dados e começar a obter valor, é uma tarefa difícil.
Os conjuntos de dados acadêmicos têm um conjunto conhecido de rótulos que eles estão tentando aprender, o que torna a precisão do conjunto de testes um bom indicador de progresso. No mundo real, as PMEs muitas vezes não têm certeza de quais conceitos existem dentro de seus dados e descobrem novos à medida que anodam. Um bom relatório de progresso precisa levar essa dúvida em consideração.
Aprendizado ativo para o mundo real
Na Communications Mining, criamos um produto que Desabilita essas suposições e leva em consideração a realidade de treinar um modelo de aprendizado de máquina em um ambiente de negócios com várias partes interessadas e requisitos desafiadores.
A interface do usuário do Communications Mining foi projetada para ajudar PMEs a anotar dados o mais rápido possível. A interface gráfica revela rótulos sugeridos com base nas previsões dos modelos mais recentes, permitindo que os usuários atribuam ou descartem rapidamente previsões, em vez de ter que selecionar entre todo o conjunto de rótulos. À medida que o modelo melhora, as sugestões ficam melhores, tornando cada vez mais rápida para os anotadores revisarem mais dados.
O segundo fator chave é que os modelos do Communications Mining são rápidos para treinar, levando dois minutos ou menos em média. Os modelos são treinados continuamente em segundo plano, acionados por SMEs anotando dados.
A classificação do modelo do Communications Mining
A estratégia de Aprendizado ativo da Communications Mining é orientada pela Classificação do modelo. A ideia por trás dela é fornecer uma classificação holística que seja fácil de entender, fornecendo uma visão geral de quão bem o modelo está funcionando e qual é a melhor maneira de melhorá-lo.
-
Balanceamento rastreia a forma como os dados de treinamento para um modelo representam o conjunto de dados como um todo
-
Cobertura rastreia a precisão com que a taxonomia do conceito abrange todos os conceitos nos dados
-
Todos os rótulos acompanha o desempenho preditivo em todos os rótulos
-
Os Rótulos com baixo desempenho acompanham o desempenho preditivo dos rótulos com o menor desempenho. Em um conjunto de dados perfeito, até os rótulos de menor desempenho devem funcionar bem
Os dois últimos são bastante semelhantes ao desempenho do conjunto de testes usado no meio acadêmico, embora modificados para serem estimados a partir dos dados revisados disponíveis em vez de um conjunto de testes conhecido a priori. As duas primeiras foram projetadas para ajudar a mitigar possíveis armadilhas da anotação iterativa com um conjunto de rótulos em constante evolução. Os leitores interessados podem saber mais sobre isso lendo os próximos posts do nosso blog sobre Saldo e Cobertura.
Combinamos todos esses fatores em uma única pontuação, a Classificação do modelo. Isso tenta responder à pergunta de quando interromper o treinamento, fornecendo uma pontuação definida que pode ser usada para acompanhar o progresso.
É melhor para as PMEs anotarem muitas entradas um pouco menos informativas com facilidade do que ficar esgotadas socialmente de anotar entradas muito complexas e parar depois de apenas alguns exemplos.
As ações são agrupadas para que, ao realizar uma ação, as PMEs tentem melhorar uma área específica de um modelo, minimizando a troca de contexto, esforço, frustração e tempo gasto anotando.
Vamos voltar ao conjunto de dados da Regress, mas reformular nossa comparação anterior em termos de horas humanas em vez de pontos de dados.
Com que rapidez se pode anotar ?
Para fazer isso, precisamos determinar quanto tempo leva, em média, para anotar uma entrada. Pesquisamos o comportamento de nossos usuários conforme eles usaram a plataforma para fazer essas estimativas e concluímos que os dois principais fatores que entram em ação para determinar a velocidade da anotação são a previsão dos rótulos e se a tarefa envolve troca de contexto.
Na plataforma Communications Mining, algumas exibições de treinamento, como Aleatório, Baixa confiança, Recente e Rebalancear envolvem entradas à tona que não são agrupadas por nenhum tema específico, o que significa mudança frequente de contexto. Outros, como Discover, Ensinar Rótulo ou classificação por uma probabilidade de rótulo específica, entradas de superfície que estão todas relacionadas e, assim, levam a uma experiência mais concentrada.
A tabela a seguir mostra o tempo mediano estimado por anotação em segundos, dividido por esses dois fatores.
Atribuição manual |
CONFIRMAÇÃO DAS previsões | |
---|---|---|
Comutação de contexto |
7.10 |
2.95 |
Destaque |
5.56 |
2.66 |
Observamos que confirmar previsões é muito mais rápido do que atribuir rótulos manualmente, e que a anotação aleatória sem ferramentas pode ser até 2,5 vezes mais lenta do que confirmar previsões em uma ferramenta dedicada! Porém, mesmo sem previsões, uma tarefa direcionada é em média 22% mais rápida do que uma em que a troca de contexto é necessária.
Fique ligado para um post de blog de acompanhamento onde nos aprofundaremos nesses dados e descobriremos o que torna ou quebra uma experiência de anotação rápida.
Usando esses dados, podemos estimar as horas humanas ativas necessárias para construir um bom modelo.
Como comparar estratégias por tempo de anotação ativo
Vamos voltar para a nossa comparação inicial. Para entender completamente o impacto de diferentes fatores, além dos dois métodos que comparamos anteriormente, pesquisamos três cenários adicionais.
-
Active Learning do Communications Mining, que usamos em nossa comparação anterior. Guiados pela Classificação do modelo, a cada etapa de tempo, rotulamos as primeiras dez amostras de cada uma das cinco principais ações recomendadas antes de treinar novamente o modelo. Na realidade, os modelos do Communications Mining geralmente terminam o retreinamento antes que 50 novas anotações sejam fornecidas; portanto, na prática, o modelo estaria realmente mais atualizado do que em nossa simulação.
-
Aprendizado ativo sem sugestões, que usa a estratégia do Communications Mining, mas não uma Interface Gráfica de anotação dedicada que acelera a anotação revelando previsões.
-
Amostragem aleatória sem sugestões, que foi nossa linha de base na comparação anterior. A cada etapa de tempo, amostramos aleatoriamente 50 dos candidatos não anotados restantes e não usamos uma interface gráfica de anotação dedicada.
-
Amostragem aleatória com sugestões, idêntica à estratégia anterior, mas aumentada com uma interface gráfica de anotação dedicada.
-
Aprendizado em lote aleatório, como seria esperado em uma situação em que as PMEs não estão totalmente integradas no processo de aprendizado ativo e não têm acesso a ferramentas adequadas, como a interface do usuário do Communications Mining. Nessa situação, assumimos que o treinamento do modelo é um processo longo e, portanto, a anotação acontece em lotes grandes para reduzir o tempo de treinamento. A cada etapa de tempo, amostramos aleatoriamente 1.000 novas entradas e as anotamos.
Primeiro, examinamos o que aconteceria se olhêssemos apenas o tempo ativo das PMEs, quando elas estão em frente a um computador anotando dados para o treinamento do modelo.
Observamos que ferramentas de anotação dedicadas e o Active Learning individualmente produzem melhorias substancialmente mais significativas em relação à linha de base aleatória. Combinar Active Learning com boa UX nos permite tanto melhorar a eficiência dos dados quanto reduzir o tempo necessário para rotular cada entrada, combinando assim ambos os benefícios e produzindo aceleradores ainda maiores.
No entanto, os cenários intermediários são um pouco artificiais. Na realidade, uma empresa que deseja começar a aproveitar o aprendizado de máquina provavelmente comprará uma ferramenta como o Communications Mining, que vem com ambos os recursos, ou criará uma prova de conceito internamente que estará muito mais próxima do cenário de lote aleatório. Assim, para nossas comparações subsequentes, nos concentramos no Communications Mining e Random Batch.
Marcamos como referência o delta de tempo entre os dois cenários, produzindo um modelo que atinge 80% do MAP.
Communications Mining gera uma aceleração de 3,1 vezes em comparação com a anotação em lote aleatório, permitindo que PMEs atinjam o MAP necessário em 3 horas, em vez de 9 horas e 25 minutos. Essa é a diferença entre uma manhã e um dia útil e meio gasto anotando!
Estimando tempo para obter valor
A estimativa anterior ainda é comparativamente optimista, uma vez que só analisa o período em que as PME estão a anotar ativamente. Embora o tempo de SME ativo seja um fator importante a ser considerado, a geração de valor de um projeto de machine learning também é medida em tempo de espera, ou o tempo em dias entre o início de um projeto e a entrega de um modelo que valha a pena usar. Ao considerar o tempo de instalação, precisamos levar outros fatores em consideração.
Como mencionado anteriormente, se fornecido por uma solução de nuvem de terceiros, como o Google AutoML, o tempo de treinamento pode levar até 24h. Em uma comparação recente dos modelos do Communications Mining com o AutoML, verificamos que o treinamento em exemplos de 400 a 5000 geralmente levava cerca de 4 horas. Portanto, usaremos isso como nossa estimativa.
Além disso, mesmo ao usar uma solução de ML em nuvem, o treinamento do modelo precisa ser acionado por uma equipe interna de ciências de dados. Nessa situação, cada etapa de anotação envolve as seguintes etapas:
- Colete dados de todos os SMEs envolvidos na anotação
- Envie os dados para a equipe de ciências de dados
- Os cientistas de dados verificam manualmente se os novos dados estão formatados corretamente e se todos os campos necessários foram preenchidos
- Potencialmente, peça a PMEs que corrijam quaisquer problemas nos dados
- Mesclar os dados existentes com o conjunto recém-criado
- Treinar um novo modelo
- Valide o desempenho do novo modelo e certifique-se de que a execução do treinamento terminou com sucesso
- Use o novo modelo para buscar um novo lote de dados não anotados para serem anotados por SMEs
- Envie os dados para anotação
Todas essas etapas precisam acontecer durante a integração de várias equipes com prioridades e programações diferentes, o que leva a muito tempo de inatividade. A partir de nossas interações com parceiros, estimamos que cada iteração leve no mínimo 48h, mas já observamos que isso pode levar semanas se as prioridades da equipe não estiverem alinhadas.
Usando 48h como nosso tempo de inatividade médio devido à comunicação entre equipes, podemos produzir uma estimativa realista do tempo de avaliação para um projeto de aprendizado de máquina.
Esta tarefa pode ser concluída em 3h com o Communications Mining, mas sem as ferramentas adequadas pode levar até 270 h ou 89 vezes mais lento.
A diferença entre gerar valor após meio dia de trabalho envolvendo uma pessoa, ou mais de duas semanas úteis envolvendo várias equipes, pode impulsionar ou impedir a adoção do machine learning em uma empresa, podendo perder o valor que ele pode gerar.
Cobrimos alguns tópicos neste post do blog, mas as principais informações são:
- O Active Learning pode ajudar a reduzir o número de pontos de dados necessários para treinar um bom modelo de machine learning
- A pesquisa de Active Learning faz suposições que nem sempre são realistas
- Ao enfrentar essas suposições e incluir mais anotadores humanos no processo de anotação, podemos reduzir drasticamente o tempo de avaliação de um projeto de machine learning
- Priorizar a experiência humana é vital para uma estratégia de Active Learning bem-sucedida
Se você quiser tentar usar o Communications Mining para acelerar a adoção do valor orientado por aprendizado de máquina para sua empresa, entre em contato com UiPath.