Criar um projeto de rotulagem de dados e rótulos de exportação

Saiba como criar e executar projetos de rotulagem de dados para rotular imagens ou rotular dados de texto em Azure Machine Learning. Utilize a rotulagem de dados assistidos por aprendizagem automática, ou rotulagem humana no circuito, para ajudar na tarefa.

Capacidades de rotulagem de dados

Importante

As imagens de dados ou texto devem estar disponíveis numa loja de dados blob Azure. (Se não tiver uma loja de dados existente, poderá enviar ficheiros durante a criação do projeto.)

Os dados de imagem podem ser ficheiros com qualquer um destes tipos: ".jpg", ".jpeg", ".png", ".jpe", ".jfif", ".bmp", ".tif", ".tiff", ".dcm", ".dicom". Cada ficheiro é um item a ser rotulado.

Os dados de texto podem ser ficheiros ".txt" ou ".csv".

  • Para os ficheiros ".txt", cada ficheiro representa um item a ser rotulado.
  • Para os ficheiros ".csv", cada linha do ficheiro é um item a ser rotulado.

Azure Machine Learning rotulagem de dados é um local central para criar, gerir e monitorizar projetos de rotulagem:

  • Coordene dados, rótulos e membros da equipa para gerir eficientemente as tarefas de rotulagem.
  • Rastreia o progresso e mantém a fila de tarefas de rotulagem incompletas.
  • Inicie e pare o projeto e controle o progresso da rotulagem.
  • Reveja os dados e exportações rotulados no formato COCO ou como um conjunto de dados Azure Machine Learning.

Pré-requisitos

  • Os dados que pretende rotular, quer em ficheiros locais, quer no armazenamento de blob Azure.
  • O conjunto de etiquetas que pretende aplicar.
  • As instruções de rotulagem.
  • Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
  • Um espaço de trabalho Machine Learning. Ver Criar um espaço de trabalho Azure Machine Learning.

Criar um projeto de rotulagem de dados

Os projetos de rotulagem são geridos a partir de Azure Machine Learning. Utiliza a página de projetos de rotulagem para gerir os seus projetos.

Se os seus dados já estiverem no armazenamento da Azure Blob, deverá disponibilizá-lo como uma loja de dados antes de criar o projeto de rotulagem. Para um exemplo de utilização de uma loja de dados, consulte Tutorial: Crie o seu primeiro projeto de rotulagem de classificação de imagem.

Para criar um projeto, selecione Adicionar o projeto. Dê ao projeto um nome adequado e selecione o tipo de tarefa de rotulagem. O nome do projeto não pode ser reutilizado, mesmo que o projeto seja eliminado no futuro.

Projeto de rotulagem de imagem

  • Selecione Imagem para criar um projeto de rotulagem de imagem.

    Criação de projeto de rotulagem para rotulagem de mage

    • Escolha classificação de imagem multiclasse para projetos quando pretende aplicar apenas uma etiqueta de um conjunto de rótulos para uma imagem.
    • Escolha classificação de imagem Multi-label para projetos quando pretende aplicar uma ou mais etiquetas de um conjunto de rótulos para uma imagem. Por exemplo, uma foto de um cão pode ser rotulada com cão e durante o dia.
    • Escolha a identificação de objetos (Caixa de Delimitação) para projetos quando pretende atribuir uma etiqueta e uma caixa de delimitação a cada objeto dentro de uma imagem.
    • Escolha a Segmentação de Exemplo (Polygon) para projetos quando pretende atribuir uma etiqueta e desenhar um polígono em torno de cada objeto dentro de uma imagem.
  • Selecione a seguir quando estiver pronto para continuar.

Projeto de rotulagem de texto (pré-visualização)

Importante

A rotulagem de texto está atualmente em pré-visualização pública. A versão de pré-visualização é fornecida sem um acordo de nível de serviço, e não é recomendado para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

  • Selecione Texto para criar um projeto de rotulagem de texto.

    Criação de projeto de rotulagem para rotulagem de texto

    • Escolha classificação de texto multiclasse (pré-visualização) para projetos quando pretende aplicar apenas uma etiqueta de um conjunto de etiquetas a cada peça de texto.
    • Escolha classificação de texto multi-etiqueta (pré-visualização) para projetos quando pretende aplicar uma ou mais etiquetas de um conjunto de etiquetas para cada peça de texto.
  • Selecione a seguir quando estiver pronto para continuar.

Especificar os dados para rotular

Se já criou um conjunto de dados que contém os seus dados, selecione-os a partir da lista de drop-down existente do conjunto de dados. Ou, selecione Criar um conjunto de dados para utilizar uma loja de dados Azure existente ou para carregar ficheiros locais.

Nota

Um projeto não pode conter mais de 500.000 ficheiros. Se o seu conjunto de dados tiver mais, apenas os primeiros 500.000 ficheiros serão carregados.

Criar um conjunto de dados a partir de uma loja de dados Azure

Em muitos casos, não faz mal carregar ficheiros locais. Mas Explorador de Armazenamento do Azure fornece uma forma mais rápida e robusta de transferir uma grande quantidade de dados. Recomendamos Explorador de Armazenamento como a forma padrão de mover ficheiros.

Para criar um conjunto de dados a partir de dados que já armazenou no armazenamento da Azure Blob:

  1. Selecione Criar um conjunto de > dados a partir da datastore.
  2. Atribua um Nome ao seu conjunto de dados.
  3. Escolha o tipo de conjunto de dados. Apenas os tipos de conjunto de dados de ficheiros são suportados para imagens. Para um projeto de rotulagem de texto:
    • Selecione Tabular se estiver a utilizar um ficheiro .csv, onde cada linha é uma resposta.
    • Selecione 'Ficheiro' se estiver a utilizar ficheiros .txt separados para cada resposta.
  4. Selecione a datastore.
  5. Se os seus dados estiverem numa sub-dobragem dentro do armazenamento do seu blob, escolha procurar para selecionar o caminho.
    • Apecimento "/**" ao caminho para incluir todos os ficheiros nas sub-dobradeiras do caminho selecionado.
    • Apêndice "* / .*" para incluir todos os dados no recipiente atual e nas suas sub-dobradinhas.
  6. Forneça uma descrição para o seu conjunto de dados.
  7. Selecione Seguinte.
  8. Confirme os detalhes. Selecione Back para modificar as definições ou criar para criar o conjunto de dados.

Criar um conjunto de dados a partir de dados carregados

Para fazer o upload direto dos seus dados:

  1. Selecione Criar um conjunto de dados > a partir de ficheiros locais.
  2. Atribua um Nome ao seu conjunto de dados.
  3. Escolha o tipo de conjunto de dados. Apenas os tipos de conjunto de dados de ficheiros são suportados para imagens. Para um projeto de rotulagem de texto:
    • Selecione Tabular se estiver a utilizar um ficheiro .csv, onde cada linha é uma resposta.
    • Selecione 'Ficheiro' se estiver a utilizar ficheiros .txt separados para cada resposta.
  4. Opcional: Selecione definições avançadas para personalizar a datastore, o recipiente e o caminho para os seus dados.
  5. Selecione Navegar para selecionar os ficheiros locais para carregar.
  6. Forneça uma descrição do seu conjunto de dados.
  7. Selecione Seguinte.
  8. Confirme os detalhes. Selecione Back para modificar as definições ou criar para criar o conjunto de dados.

Os dados são enviados para a loja blob padrão ("workspaceblobstore") do seu espaço de trabalho Machine Learning.

Configurar atualização incremental

Se planeia adicionar novos ficheiros ao seu conjunto de dados, utilize a atualização incremental para adicionar estes novos ficheiros ao seu projeto. Quando a atualização incremental é ativada, o conjunto de dados é verificado periodicamente para que novas imagens sejam adicionadas a um projeto, com base na taxa de conclusão da rotulagem. A verificação de novos dados para quando o projeto contém o máximo de 500.000 ficheiros.

Para adicionar mais ficheiros ao seu projeto, utilize Explorador de Armazenamento do Azure para carregar na pasta apropriada no armazenamento do blob.

Verifique a caixa para Ativar a atualização incremental quando pretender que o seu projeto monitorize continuamente novos dados na datastore. Estes dados serão retirados do seu projeto uma vez por dia quando estiver ativado, pelo que terá de esperar depois de adicionar novos dados à datastore antes de aparecer no seu projeto. Pode ver um timetamp para quando os dados foram atualizados pela última vez no separador De atualização Incremental do seu projeto.

Desmarque esta caixa se não quiser que novos ficheiros que apareçam na datastore sejam adicionados ao seu projeto.

Especificar classes de etiquetas

Na página de classes Label, especifique o conjunto de classes para categorizar os seus dados. A precisão e velocidade dos seus rotuladores são afetadas pela sua capacidade de escolher entre as classes. Por exemplo, em vez de soletrar o género e as espécies completas para plantas ou animais, utilize um código de campo ou abreveve o género.

Introduza uma etiqueta por linha. Utilize o + botão para adicionar uma nova linha. Se tiver mais de 3 ou 4 etiquetas mas menos de 10, pode querer pré-afixar os nomes com números ("1: " "2: ") para que os rotuladores possam utilizar as teclas numeradas para acelerar o seu trabalho.

Descreva a tarefa de rotulagem de dados

É importante explicar claramente a tarefa de rotulagem. Na página de instruções de rotulagem, pode adicionar um link a um site externo para instruções de rotulagem ou fornecer instruções na caixa de edição da página. Mantenha as instruções orientadas para a tarefa e apropriadas ao público. Considere estas questões:

  • Quais são os rótulos que verão e como vão escolher entre eles? Existe um texto de referência a que se refere?
  • O que devem fazer se nenhuma etiqueta parecer adequada?
  • O que devem fazer se várias etiquetas parecerem adequadas?
  • Que limiar de confiança devem aplicar-se a um rótulo? Queres o "melhor palpite" deles, se não tiverem a certeza?
  • O que devem fazer com objetos de interesse parcialmente obstruídos ou sobrepostos?
  • O que devem fazer se um objeto de interesse for cortado pela borda da imagem?
  • O que devem fazer depois de apresentarem um rótulo se acham que cometeram um erro?

Para as caixas de delimitação, questões importantes incluem:

  • Como é definida a caixa de delimitação para esta tarefa? Deve ser inteiramente no interior do objeto, ou deve estar no exterior? Deve ser cortada o mais perto possível, ou algum apuramento é aceitável?
  • Que nível de cuidado e consistência espera que os rotuladores apliquem na definição de caixas de delimitação?
  • Como rotular o objeto que é parcialmente mostrado na imagem?
  • Como rotular o objeto que parcialmente coberto por outro objeto?

Nota

Tenha em atenção que os rótulos poderão selecionar as primeiras 9 etiquetas utilizando as teclas 1-9.

Utilizar a rotulagem de dados assistidos por ML

A página de rotulagem assistida por ML permite-lhe acionar modelos automáticos de aprendizagem automática para acelerar as tarefas de rotulagem. Só está disponível para rotulagem de imagem. As imagens médicas (".dcm") não estão incluídas na rotulagem assistida.

No início do seu projeto de rotulagem, os itens são baralhados numa ordem aleatória para reduzir o preconceito potencial. No entanto, quaisquer enviesamentos que estejam presentes no conjunto de dados serão refletidos no modelo treinado. Por exemplo, se 80% dos seus itens forem de uma única classe, então aproximadamente 80% dos dados utilizados para treinar o modelo serão dessa classe. Esta formação não inclui a aprendizagem ativa.

Selecione Enable ML rotulagem assistida e especifique uma GPU para permitir a rotulagem assistida, que consiste em duas fases:

  • Agrupamento (para rotulagem de imagem)
  • Pré-etiqueta

O número exato de dados rotulados necessários para iniciar a rotulagem assistida não é um número fixo. Isto pode variar significativamente de um projeto de rotulagem para outro. Para alguns projetos, por vezes é possível ver tarefas de pré-selo ou cluster depois de 300 itens terem sido rotulados manualmente. ML Rotulagem Assistida usa uma técnica chamada Transfer Aprendizagem, que usa um modelo pré-treinado para iniciar o processo de treino. Se as aulas do seu conjunto de dados forem semelhantes às do modelo pré-treinado, as pré-etiquetas podem estar disponíveis após apenas algumas centenas de itens etiquetados manualmente. Se o seu conjunto de dados for significativamente diferente dos dados utilizados para pré-treinar o modelo, pode demorar muito mais tempo.

Uma vez que as etiquetas finais ainda dependem da entrada do rótulo, esta tecnologia é por vezes chamada humana na rotulagem do loop.

Nota

ML rotulagem de dados assistidos não suporta contas de armazenamento predefinidas protegidas por trás de uma rede virtual. Deve utilizar uma conta de armazenamento não padrão para ML rotulagem assistida de dados. A conta de armazenamento não padrão pode ser protegida por trás da rede virtual.

Clustering

Após a submissão de um certo número de rótulos, o modelo de machine learning para classificação começa a agrupar itens semelhantes. Estas imagens semelhantes são apresentadas aos rotuladores no mesmo ecrã para acelerar a marcação manual. O agrupamento é especialmente útil quando o rótulo está a visualizar uma grelha de 4, 6 ou 9 imagens.

Uma vez treinado um modelo de machine learning nos seus dados etiquetados manualmente, o modelo é truncado até à sua última camada totalmente ligada. As imagens não identificadas são então passadas através do modelo truncado num processo vulgarmente conhecido como "incorporação" ou "apetência". Isto incorpora cada imagem num espaço de alta dimensão definido por esta camada de modelo. As imagens que são vizinhos mais próximos do espaço são usadas para tarefas de agrupamento.

A fase de agrupamento não aparece para modelos de deteção de objetos, nem para classificação de texto.

Pré-etiqueta

Depois de serem apresentadas etiquetas suficientes, um modelo de classificação é usado para prever tags. Ou um modelo de deteção de objetos é usado para prever caixas de delimitação. O rotulador vê agora páginas que contêm etiquetas previstas já presentes em cada item. Para a deteção de objetos, as caixas previstas também são mostradas. A tarefa é então rever estas previsões e corrigir quaisquer imagens mal rotuladas antes de submeter a página.

Uma vez treinado um modelo de machine learning nos seus dados etiquetados manualmente, o modelo é avaliado num conjunto de testes de itens etiquetados manualmente para determinar a sua precisão em diferentes limiares de confiança. Este processo de avaliação é utilizado para determinar um limiar de confiança acima do qual o modelo é suficientemente preciso para apresentar pré-etiquetas. O modelo é então avaliado com dados não rotulados. Os itens com previsões mais confiantes do que este limiar são utilizados para pré-rotulagem.

Inicializar o projeto de rotulagem de dados

Após a inicial do projeto de rotulagem, alguns aspetos do projeto são imutáveis. Não é possível alterar o tipo de tarefa ou o conjunto de dados. Pode modificar as etiquetas e o URL para a descrição da tarefa. Reveja cuidadosamente as definições antes de criar o projeto. Depois de submeter o projeto, é devolvido à página inicial da Rotulagem de Dados, que mostrará o projeto como Initializing.

Nota

Esta página pode não ser automaticamente atualizada. Assim, após uma pausa, refresque manualmente a página para ver o estado do projeto como Criado.

Executar e monitorizar o projeto

Depois de rubricar o projeto, o Azure começará a executá-lo. Selecione o projeto na página principal de Rotulagem de Dados para ver detalhes do projeto

Para interromper ou reiniciar o projeto, altere o estado de Funcionamento no topo direito. Só é possível rotular dados quando o projeto está em execução.

Dashboard

O separador Dashboard mostra o progresso da tarefa de rotulagem.

Painel de rotulagem de dados

O gráfico de progresso mostra quantos itens foram rotulados e quantos ainda não foram feitos. Os artigos pendentes podem ser:

  • Ainda não adicionado a uma tarefa
  • Incluído numa tarefa que é atribuída a um rotulador mas ainda não concluída
  • Na fila de tarefas ainda por atribuir

A secção central mostra a fila de tarefas ainda por atribuir. Quando ML rotulagem assistida está desligada, esta secção mostra o número de tarefas manuais a atribuir. Quando ML rotulagem assistida estiver em cima, isto também mostrará:

  • Tarefas que contenham itens agrupados na fila
  • Tarefas que contenham itens pré-rotulados na fila

Além disso, quando ML rotulagem assistida está ativada, uma pequena barra de progresso mostra quando ocorrerá o próximo treino. As secções experimentos dão links para cada uma das máquinas de aprendizagem.

  • Formação - treina um modelo para prever os rótulos
  • Validação - determina se a previsão deste modelo será utilizada para pré-rotulagem dos itens
  • Inferência - previsão para novos itens
  • Caracterização - clusters itens (apenas para projetos de classificação de imagem)

Do lado direito está uma distribuição dos rótulos para as tarefas que estão completas. Lembre-se que em alguns tipos de projetos, um item pode ter várias etiquetas, caso em que o número total de etiquetas pode ser maior do que o número total de itens.

Separador de dados

No separador Dados, pode ver o conjunto de dados e rever os dados rotulados. Se vir dados rotulados incorretamente, selecione-os e escolha Rejeitar, que removerá as etiquetas e colocará os dados de volta na fila não identificada.

Separador de detalhes

Veja os detalhes do seu projeto. Neste separador pode:

  • Ver detalhes do projeto e conjuntos de dados de entrada
  • Permitir atualização incremental
  • Veja os detalhes do recipiente de armazenamento utilizado para armazenar saídas etiquetadas no seu projeto
  • Adicione etiquetas ao seu projeto
  • Editar instruções que dê às suas etiquetas
  • Editar detalhes de ML rotulagem assistida, incluindo ativar/desativar

Acesso aos rotuladores

Qualquer pessoa que tenha acesso ao seu espaço de trabalho pode rotular dados no seu projeto. Também pode personalizar as permissões para os rotuladores para que possam aceder à rotulagem, mas não a outras partes do espaço de trabalho ou ao seu projeto de rotulagem. Para mais detalhes, consulte Gerir o acesso a um espaço de trabalho Azure Machine Learninge aprender a criar o papel personalizado do labeler.

Adicione nova classe de rótulo a um projeto

Durante o processo de rotulagem de dados, poderá descobrir que são necessárias etiquetas adicionais para classificar as suas imagens. Por exemplo, pode querer adicionar uma etiqueta "Desconhecido" ou "Outro" para indicar imagens confusas.

Utilize estes passos para adicionar um ou mais rótulos a um projeto:

  1. Selecione o projeto na página principal de Rotulagem de Dados.
  2. No topo direito da página, alternar Running to Paused para impedir que os rotuladores da sua atividade.
  3. Selecione o separador Detalhes.
  4. Na lista à esquerda, selecione Label classes.
  5. No topo da lista, selecione + Adicionar etiquetas  Adicionar uma etiqueta
  6. No formulário, adicione a sua nova etiqueta e escolha como proceder. Uma vez que alterou as etiquetas disponíveis, escolhe como tratar os dados já rotulados:
    • Comece de novo, removendo todas as etiquetas existentes. Escolha esta opção se quiser começar a rotular desde o início com o novo conjunto completo de etiquetas.
    • Comece de novo, mantendo todas as etiquetas existentes. Escolha esta opção para marcar todos os dados como não rotulados, mas mantenha as etiquetas existentes como uma etiqueta padrão para imagens que foram previamente rotuladas.
    • Continue, mantendo todas as etiquetas existentes. Escolha esta opção para manter todos os dados já rotulados como está, e comece a usar a nova etiqueta para dados ainda não rotulados.
  7. Modifique a página de instruções conforme necessário para a nova etiqueta.
  8. Depois de ter adicionado todas as novas etiquetas, no topo direito da página alternar Pausa para Correr para reiniciar o projeto.

Exportar as etiquetas

Utilize o botão Exportação na página de detalhes Project do seu projeto de rotulagem. Pode exportar os dados do rótulo para Machine Learning experimentação a qualquer momento.

Acesso a conjuntos de dados Azure Machine Learning exportados na secção datasets de Machine Learning. A página de detalhes do conjunto de dados também fornece código de amostra para aceder às suas etiquetas a partir de Python.

Conjunto de dados exportado

Resolução de problemas

Use estas dicas se vir algum destes problemas.

Problema Resolução
Apenas podem ser utilizados conjuntos de dados criados nas datas-do-canal blob. Esta é uma limitação conhecida da libertação atual.
Após a criação, o projeto mostra "Inicialização" durante muito tempo. Refresque manualmente a página. A inicialização deve prosseguir em cerca de 20 pontos de dados por segundo. A falta de auto-defesa é uma questão conhecida.
Ao rever imagens, imagens recentemente rotuladas não são mostradas. Para carregar todas as imagens etiquetadas, escolha o botão First. O botão First irá levá-lo de volta para a frente da lista, mas carrega todos os dados rotulados.
Premir a tecla Esc durante a rotulagem para deteção de objetos cria uma etiqueta de tamanho zero no canto superior esquerdo. Enviar etiquetas neste estado falha. Elimine a etiqueta clicando na marca transversal ao lado.
Não é possível atribuir o conjunto de tarefas a um rotulador específico. Esta é uma limitação conhecida da libertação atual.

Passos seguintes