Conteúdo


Meça o desempenho do serviço cognitivo

Use o Watson Annotation Assist para ajudar a avaliar o desempenho de sistemas cognitivos rapidamente

Comments

Como nos sistemas de aprendizado de máquina, a qualidade dos sistemas cognitivos depende dos dados com os quais eles foram treinados. Os sistemas cognitivos usam algoritmos complicados (e, às vezes, altamente complexos) de inteligência artificial para treinar o sistema. Para dificultar ainda mais a situação, existem diversos serviços cognitivos — como é possível acompanhar a forma como cada serviço funciona em diferentes cenários operacionais? Felizmente, se o sistema cognitivo for considerado como uma caixa preta seu comportamento pode ser medido e entendido. Assim como uma pessoa dirige um carro sem saber exatamente como o motor funciona, é possível treinar um bom sistema cognitivo sem saber exatamente como o algoritmo funciona.

O IBM Watson Annotation Assist é um aplicativo da web de software livre que oferece avaliação, quase sem intervenção humana, das respostas de humanos em sistemas cognitivos. Neste tutorial, aprenda como é possível criar e usar uma instância do Annotation Assist no IBM Bluemix™ para treinar e avaliar o desempenho de sistemas cognitivos de modo iterativo.

O ciclo de desenvolvimento cognitivo

É importante que os desenvolvedores sigam uma metodologia que permita:

  • Preparar ('autoinicialização') e implementar um sistema cognitivo
  • Coletar interações de usuários com o sistema
  • Julgar e avaliar tais interações
  • Adaptar as configurações de dados e algoritmos
  • Treinar a próxima versão do sistema novamente

A figura a seguir mostra como essas etapas ficam organizadas em um ciclo de desenvolvimento cognitivo.

Image showing the steps of the cognitive development cycyle
Image showing the steps of the cognitive development cycyle

Indiscutivelmente, a etapa mais enfadonha do ciclo é a tarefa de julgar e avaliar. A maioria das outras tarefas pode ser roteirizada e automatizada até certo ponto, mas é necessária uma participação humana para avaliar a eficácia de um sistema com dados reais não vistos que chamamos de dados selvagens. Por exemplo, em nosso estudo inicial, três pessoas levaram aproximadamente seis semanas para examinar e rotular 5.000 pares de perguntas e respostas para formar parte do valor de referência, um termo utilizado no aprendizado de máquina que indica exemplos positivos conhecidos que supervisionaram os algoritmos de aprendizado de máquina usados para treinar modelos. Precisaram usar planilhas e editores de texto para investigar e avaliar os dados. Além do tempo que tudo isso levou, o trabalho foi enfadonho, propenso a erros e encadeamento simples (pessoas não podiam trabalhar juntas nos mesmos dados). Por outro lado, utilizando o Watson Annotation Assist, nossa equipe reduziu significativamente o nível de esforço para 20 horas de trabalho para 1.000 perguntas.

É possível usar o Watson Annotation Assist para avaliar rapidamente se os pares de Pergunta/Resposta (Q/A) de um sistema cognitivo estão corretos. O Annotation Assist é baseado na web e permite que diversos usuários examinem e anotem simultaneamente perguntas de um único datacenter. Apresenta o menor número possível de informações desnecessárias; também minimiza a quantia de interação com o usuário necessária para avaliar um par de Pergunta/Resposta. A figura a seguir mostra a interface com o usuário do Annotation Assist.

Annotation Assist user interface
Annotation Assist user interface

O que será necessário para executar o Annotation Assist

Implementando o Watson Annotation Assist

O Watson Annotation Assist é um aplicativo da web Python CF de software livre que foi projetado para execução no IBM Bluemix. As etapas a seguir mostram como implementar o Annotation Assist no Bluemix, bem como todos os serviços que forem pré-requisito.

  1. Caso ainda não tenha feito isto, instale a ferramenta de interface da linha de comando do Cloud Foundry (CLI cf)cf .
  2. Utilize o comando a seguir para efetuar login na sua conta do Bluemix .
    cf api https://api.ng.bluemix.net
    cf login -u <ibmid> -o <ibmid> -s dev
  3. Clone o repositório GitHub do Annotation Assist.
    1. Crie uma pasta no seu computador para o projeto. Nós escolhemos uma pasta nomeada "demo-aa".
    2. Acesse a pasta e clone o repositório usando a ferramenta de linha de comando cf:
      git clone https://github.com/cognitive-catalyst/annotation-assist.git
  4. Designe um nome do host e nome do aplicativo exclusivos no arquivo manifest.yml.
  5. Confira se tem acesso a uma instância do DB2.

    É possível usar qualquer instância do DB2 que desejar. Uma maneira de obter facilmente uma instância do DB2 é implementar um contêiner do DB2 no Bluemix. As etapas exatas dependem do sistema operacional do seu computador local. É possível seguir as etapas no arquivo README.md no repositório Git que acabou de ser clonado; por exemplo, demo-aa/annotation-assist/db2container/README.md.

  6. Modifique o arquivo properties.ini com as informações de conexão do DB2.

    O arquivo properties.ini está em demo-aa/annotation-assist/config/properties.ini e deve ser modificado com as informações de conexão do DB2. É nesse arquivo que se configuram as informações de credencial para os usuários efetuarem login no aplicativo.

    [propriedades]
        username (nome de usuário no nível do aplicativo)
        password (senha no nível do aplicativo)
    [db2]
        hostname (o nome do host do seu db2)
        username (o usuário do db2)
        password (a senha para o usuário do db)
        port (a porta para acessar o banco de dados; o padrão é 50.000)
        db (nome do banco de dados)
  7. Utilize a ferramenta de linha de comando cf para realizar o push do aplicativo para o Bluemix.
    cf push

    Esse processo pode demorar até 15 minutos. Quando a implementação for concluída, o aplicativo Annotation Assist deve começar a funcionar na URL criada na etapa 4.

Avaliando o Desempenho do Sistema

Depois que o Annotation Assist estiver em execução, é necessário preparar os dados e iniciar o processo de anotação.

Preparando seus dados

O app Annotation Assist precisa de um arquivo CSV que contenha os cabeçalhos exatos a seguir:

QuestionTextTopAnswerTextTopAnswerConfidence
.........

Use sua ferramenta favorita de data wrangling (como R ou Pandas) para formatar seus dados de Pergunta/Resposta. É possível ter diversos arquivos, um para cada sistema ou versão de um sistema que deseja comparar. O upload é feito diretamente na própria ferramenta.

Uploading data window in Annotation Assist
Uploading data window in Annotation Assist

Anotando perguntas

Clique no ícone do lápis no app para acessar a interface de anotação. A anotação consiste em duas etapas:

  1. A pergunta está na alçada ou fora da alçada?
  2. Se a pergunta estiver na alçada, até que ponto a resposta está correta?

Na maioria dos casos, cada pergunta seguirá esse padrão. Ocasionalmente, o Annotation Assist perguntará se uma pergunta é uma reformulação de outra pergunta semelhante. Em caso afirmativo, é possível clicar em "sim" e reduzir ainda mais a quantia de cliques.

Annotating questions window
Annotating questions window

Obtendo resultados provisórios e finais

O ícone de página (terceiro ícone) permite visualizar o progresso feito na anotação. Também possibilita fazer o download dos resultados provisórios. Os resultados finais podem ser transferidos por download dessa página depois que a anotação for concluída.

É possível fazer o download dos resultados como um único sistema para todos os sistemas ou optar por fazer o download apenas das perguntas anotadas para um único arquivo de entrada. Existe a possibilidade de escolher quais perguntas serão incluídas com base nos dados da anotação; por exemplo, apenas perguntas na ou fora da alçada e perguntas corretas ou incorretas.

Download window
Download window

Avaliando o desempenho com curvas ROC e de precisão

Os resultados da anotação podem ser visualizados na página de gráficos (quarto ícone). Normalmente, a maioria dos sistemas cognitivos tem um valor limite de confiança. As respostas cuja confiança está abaixo desse valor limite devem ser consideradas como não sendo definitivas. Por exemplo, se o limite estiver configurado como 20% e o sistema cognitivo der uma resposta com 19% de confiança, o sistema deverá responder com uma declaração do tipo "Não tenho certeza". A escolha do valor limite de confiança tem enormes implicações para o desempenho e a inteligência percebida do sistema.

As curvas de Característica de Operação do Receptor (ROC) e de precisão são úteis para determinar a influência que o limite de confiança de um sistema cognitivo exerce na precisão e no comportamento do sistema. Uma curva ROC compara a probabilidade de responder corretamente a uma pergunta sobre o tema com a probabilidade de dar uma resposta errada a uma pergunta fora do tema. O canto superior esquerdo de uma curva ROC representa o melhor desempenho possível, enquanto a linha diagonal que vai do canto inferior esquerdo ao canto superior direito indica o desempenho de adivinhações aleatórias. As curvas de precisão mostram a porcentagem de perguntas que foram respondidas corretamente e que tinham valores de confiança acima do valor limite com relação ao número total de perguntas respondidas.

Utilizando essas curvas, o efeito que uma mudança no valor do limite de confiança causa no desempenho pode ser investigado. É possível escolher o melhor valor limite para produzir um ponto operacional que permite que o sistema se comporte da forma esperada. Uma boa diretriz é configurar o ponto operacional o mais perto possível do canto superior esquerdo para produzir um desempenho equilibrado, mas é possível experimentar.

A window showing ROC and precision curves
A window showing ROC and precision curves

Práticas recomendadas de anotação

Anotar grandes quantias de dados pode ser algo assustador. Recomendamos algumas práticas que nossa própria equipe segue quando estamos utilizando o Watson Annotation Assist:

  • Anotar em equipes: Se apenas uma pessoa fizer as anotações, os resultados poderão ficar tendenciosos ou distorcidos. Se possível, anote em equipe.
  • Muitas sessões mais curtas são melhores do que sessões longas: Anotar perguntas é uma tarefa mentalmente exaustiva, o que permite que ocorram erros de julgamento. Constatamos que sessões de 45 minutos funcionam bem.
  • Conversar com frequência: Às vezes, um par de Pergunta/Resposta é ambíguo. Para lidar com esse problema, anotamos em conjunto (mas de forma independente) como uma equipe, seja pessoalmente ou por telefone. Ao compartilhar suas opiniões sobre exemplos reais, você ajuda todo mundo a decidir o melhor caminho a seguir, além de assegurar consistência em futuros pares de Pergunta/Resposta.

Conclusão

Com a instalação do aplicativo Annotation Assist, seu projeto Watson consegue coletar facilmente julgamentos sobre pares de Pergunta/Resposta. Esses julgamentos já permitem:

  • Comparar o desempenho relativo de uma liberação anterior do seu sistema Watson com a liberação atual.
  • Ajustar o limite do ponto operacional de quando o Watson vai responder com base no desempenho desejado do seu sistema Watson.
  • Incluir todos os pares de Pergunta/Resposta que são classificados do "Bom" ou "Perfeito" no valor de referência.
  • Focar na melhoria do sistema nos pares de Pergunta/Resposta que foram considerados "Ruim" ou "Insatisfatório". Para cada uma das perguntas que estavam nessa categoria, se a resposta adequada estiver no corpus, o par de Pergunta/Resposta correto pode ser incluído no valor de referência. Caso a resposta não esteja localizada no corpus, é possível aumentá-lo com o material apropriado e, em seguida, aumentar o valor de referência com o par de Pergunta/Resposta correto.
  • Treine novamente seu sistema Watson com o novo valor de referência, implemente outra vez e, depois, inicie o próximo ciclo da sua jornada de desenvolvimento cognitivo.

No novo paradigma da computação cognitiva, coletar dados de qualidade para treinar sua instância do Watson é fundamental para melhorar o desempenho do serviço. O app Annotation Assist é o complemento perfeita para ajudá-lo a melhorar o valor de referência e controlar o desempenho do seu sistema Watson enquanto atualiza continuamente os modelos de aprendizado de máquina e o corpus com os quais o sistema foi desenvolvido. Uma feliz computação cognitiva para você!


Recursos para download


Temas relacionados


Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cognitive computing
ArticleID=1034100
ArticleTitle=Meça o desempenho do serviço cognitivo
publish-date=06242016