Partilhar via


Características e limitações para o uso da compreensão da linguagem conversacional

Importante

Traduções que não sejam em inglês são fornecidas apenas por conveniência. Consulte a EN-US versão deste documento para obter a versão vinculativa.

O desempenho com compreensão de linguagem conversacional (CLU) varia de acordo com o cenário, os dados de entrada e os recursos habilitados. As seções a seguir foram criadas para ajudar o leitor a entender os principais conceitos sobre desempenho à medida que se aplicam à CLU.

Compreender e medir o desempenho

O desempenho da CLU é medido examinando as intenções e entidades previstas para um determinado enunciado e quão bem o sistema reconhece os conceitos personalizados de processamento de linguagem natural (NLP) (em um valor limite em comparação com um juiz humano). No processo de construção de um modelo, os conjuntos de treinamento e teste são definidos pelos desenvolvedores durante a marcação ou escolhidos aleatoriamente durante o treinamento. O conjunto de treinamento é usado para treinar o modelo personalizado, enquanto o conjunto de testes é usado como um conjunto cego para avaliar o desempenho do modelo.

O processo de avaliação do modelo é desencadeado após a conclusão bem-sucedida da formação. O processo de avaliação ocorre usando o modelo treinado para prever entidades definidas pelo usuário a partir do conjunto de testes e compará-las com as tags de dados fornecidas (verdade básica). Os resultados são devolvidos ao desenvolvedor para analisar o desempenho do modelo.

O primeiro passo para calcular a avaliação do modelo é categorizar as entidades extraídas em uma das seguintes categorias: verdadeiros positivos, falsos positivos ou falsos negativos. A tabela a seguir mostra as opções usando como exemplo a intenção "Fazer chamada".

Período Correto/Incorreto Definição Exemplo
Verdadeiro positivo Corrigir O sistema retorna os mesmos resultados que seriam esperados de um juiz humano. Para a frase "Faça uma chamada telefônica para Sarah", o sistema prevê corretamente a intenção como "Fazer chamada".
Falso positivo Incorreto O sistema retorna um resultado incorreto onde um juiz humano não o faria. Para a frase "Apagar as luzes", o sistema prevê incorretamente a intenção como "Fazer chamada".
Falso negativo Incorreto O sistema não retorna um resultado quando um juiz humano devolveria um resultado correto. Para o enunciado "Preciso ligar para Sarah para dizer que estou atrasado", o sistema prevê incorretamente esse enunciado como uma intenção de "agendar reunião".

As categorias anteriores são então usadas para calcular precisão, recall e pontuação F1. Essas métricas são fornecidas aos desenvolvedores como parte da avaliação do modelo do serviço. Aqui estão as definições de métricas e como elas são calculadas:

  • Precisão: A relação entre os verdadeiros positivos e todos os positivos. Das classes positivas previstas, a precisão revela quantos deles são positivos reais (pertencem ao tipo de entidade certo, conforme previsto).
  • Recall: A medida da capacidade do modelo de extrair entidades positivas reais. É a relação entre os verdadeiros positivos previstos e os positivos realmente etiquetados. Entre as entidades realmente marcadas, o recall revela quantas delas são previstas corretamente.
  • Pontuação F1: Uma função de precisão e recordação. Você precisa dela quando busca um equilíbrio entre precisão e recordação.

Os erros que acontecem com a CLU dependem principalmente dos enunciados fornecidos como dados de treinamento. Qualquer modelo de CLU apresenta erros falsos negativos e falsos positivos. Os desenvolvedores precisam considerar como cada tipo de erro afeta o sistema geral e pensar cuidadosamente em cenários onde eventos verdadeiros não serão reconhecidos e eventos incorretos serão reconhecidos. Os clientes devem avaliar os efeitos a jusante que ocorrem na implementação e compreender as consequências de ambos os tipos de erros na sua aplicação cliente. Os desenvolvedores devem criar maneiras de identificar, relatar e responder a cada tipo de erro.

Dado que uma resposta de previsão da CLU aciona o aplicativo cliente para executar uma ação específica, se a previsão estiver incorreta, o aplicativo cliente executará uma ação diferente da pretendida. Dependendo do cenário, a precisão ou o recall podem ser uma métrica mais adequada para avaliar o desempenho do seu modelo.

Por exemplo, suponha que a frase do usuário fosse "Eu necessito fazer uma chamada telefónica para a Sarah" e a intenção prevista da CLU fosse "Agendar reunião". Nesse caso, o aplicativo cliente não passará pela lógica "fazer uma chamada" e não poderá executar a ação esperada corretamente. O sistema deveria então ser mais sensível aos falsos positivos, e a precisão seria uma métrica mais relevante para avaliação neste cenário. Lidar com esse erro do lado do aplicativo cliente é a solução de curto prazo. O sistema esperaria outra entrada clara do usuário semelhante aos exemplos de declarações dadas ao sistema antes do treinamento como "Fazer chamada".

Limitações do sistema e práticas recomendadas para melhorar o desempenho do sistema

  • Entenda as limitações do serviço: Esteja ciente das limitações do serviço, como o número de intenções por projeto e o número de expressões de exemplo por intenção. Saiba mais sobre limites de serviço
  • Esquema do plano: Pense nos enunciados do usuário e nas principais ações que o aplicativo cliente executará com base nesses enunciados. Os desenvolvedores precisam planejar o esquema do projeto CLU de acordo com as intenções, expressões de exemplo e entidades a serem extraídas. Este passo é essencial e aconselhamos todos os utilizadores da CLU a fazê-lo. Mais informações
  • Use bons dados de treinamento: A qualidade dos enunciados de exemplo fornecidos durante o treinamento afeta os resultados finais. Escolha cuidadosamente exemplos realistas de enunciados para treinar o modelo. Capture uma variedade de diferentes exemplos de enunciados que se espera que sejam enviados pelos usuários com terminologias variadas e diferenças contextuais. Tenha cuidado ao usar informações sensíveis em exemplos de frases que são adicionadas durante a marcação. Por exemplo, não adicione um número de cartão de crédito real em um enunciado de exemplo. Exemplos de enunciados são guardados em contas de armazenamento da CLU para treinar modelos.
  • Crie modelos usando dados do mundo real: Evite usar dados gerados automaticamente porque, em seguida, o modelo aprende uma gramática fixa, o que diminui a capacidade do modelo de generalizar entre diferentes maneiras de falar. Uma boa prática é implantar um modelo simples e começar a coletar dados que são usados no treinamento do modelo final. Essa prática ajuda a entender como os usuários estão mudando e como eles podem expressar coisas diferentes ao longo do tempo.
  • Rever a avaliação e melhorar o modelo: Depois que o modelo foi treinado com sucesso, verifique a avaliação do modelo e a matriz de confusão. Esta análise ajuda-o a compreender onde o seu modelo correu mal e a saber mais sobre entidades/intenções que não estão a ter um bom desempenho. Também é considerado uma prática recomendada revisar o conjunto de testes e visualizar as entidades previstas e marcadas lado a lado. Ele ajuda você a avaliar o desempenho do modelo e decidir se quaisquer alterações no esquema ou nas tags são necessárias.
  • Forneça caminhos secundários: A CLU pode não ter um bom desempenho quando usada com fala para texto em situações com muito ruído de fundo ou para pessoas com dificuldades de fala e deficiências de fala. Certifique-se de que há sempre um caminho secundário para os usuários executarem comandos quando a nuvem não tiver o desempenho esperado.

Orientações gerais para compreender e melhorar o desempenho

As diretrizes a seguir ajudam você a entender e melhorar o desempenho na CLU.

Compreender os índices de confiança

Se você estiver satisfeito com o desempenho do modelo após o treinamento, o modelo deverá ser implantado para ser consumido em um ambiente de produção. Implantar um modelo significa disponibilizá-lo para uso por meio da API analyze-conversation para detetar a intenção e extrair entidades de um determinado texto. A API retorna um objeto JSON contendo uma lista de todas as intenções que foram criadas, juntamente com suas pontuações de confiança e as entidades extraídas, cada uma com seu índice inicial, comprimento e pontuação de confiança.

Essas pontuações servem como um indicador de quão confiante o serviço está com a resposta do sistema. Um valor mais alto indica que o serviço está mais confiante de que o resultado é preciso. Um escore de confiança está entre zero (0) e um (1), sendo zero sem confiança e 1 sendo alta confiança. A pontuação retornada é diretamente afetada pelos dados fornecidos durante a marcação de dados.

As duas principais intenções podem ter uma diferença de pontuação muito pequena entre elas. CLU não indica proximidade. Ele retorna apenas as pontuações para cada intenção criada, que é calculada de forma independente.

Se a entrada do usuário for semelhante a enunciados nos dados de treinamento, uma intenção com uma pontuação mais alta será retornada e entidades mais precisas serão extraídas. Se a entrada do usuário for diferente dos enunciados nos dados de treinamento, as pontuações serão mais baixas. Para obter uma previsão precisa e um alto índice de confiança, forneça múltiplas variações de um enunciado com o mesmo significado.

Definir limites de pontuação de confiança

Você pode optar por tomar decisões no sistema com base na pontuação de confiança de intenção que o sistema retorna. O limite de pontuação de confiança que o sistema usa pode ser ajustado para atender às necessidades do seu cenário. Se for mais importante identificar todas as intenções potenciais do texto, use um limite mais baixo. Como resultado, você pode obter mais falsos positivos, mas menos falsos negativos. Se for mais importante para o sistema reconhecer apenas as verdadeiras intenções do texto que está sendo analisado, use um limite mais alto.

Diferentes cenários de intenção exigem abordagens diferentes. Por exemplo, se houver uma intenção para saudações ou iniciar o bot, você pode aceitar um limite mais baixo (0,40, por exemplo) porque deseja aceitar várias variações do texto recebido. Mas se houver uma intenção para uma ação específica, como fazer uma chamada telefônica, convém definir um limite mais alto (0,95, por exemplo) para garantir a precisão do texto previsto. Retornar e revisar todas as pontuações de intenção é uma boa maneira de verificar se a intenção correta está identificada. A diferença entre os escores de confiança da intenção retornada superior e da próxima melhor intenção retornada deve ser significativa.

Se várias intenções tiverem pontuações de previsão próximas, convém revisar e adicionar mais expressões de exemplo para cada intenção. Defina um limite para a diferença entre as duas principais intenções. Se a diferença for menor do que o limite definido, faça escolhas programáticas sobre como lidar com esses casos.

É fundamental testar o sistema com quaisquer limites sendo adicionados usando dados reais que o sistema processará na produção para determinar os efeitos de vários valores de limite. A qualquer momento, você sempre pode continuar a adicionar expressões de exemplo com uma variedade maior de diferenças contextuais e treinar novamente e reimplantar seu modelo.

Diferentes sessões de formação e alterações na avaliação

Retreinar o mesmo modelo sem alterações nos dados marcados resulta na mesma saída do modelo e, como resultado, nas mesmas pontuações de avaliação. Se você adicionar ou remover tags, o desempenho do modelo será alterado de acordo. As pontuações de avaliação podem então ser comparadas com a versão anterior do modelo porque ambas têm os mesmos arquivos nos conjuntos de treinamento e teste, desde que nenhum novo arquivo tenha sido adicionado durante a marcação.

Adicionar novos arquivos ou treinar um modelo diferente com divisões aleatórias de conjuntos leva a arquivos diferentes em conjuntos de treinamento e teste. Embora as mudanças nas pontuações de avaliação possam ser notadas, elas não podem ser comparadas diretamente com outros modelos porque o desempenho é calculado em diferentes divisões para conjuntos de testes.

A qualidade do texto recebido no sistema afeta os resultados

A CLU processa apenas texto. A fidelidade e formatação do texto recebido afeta o desempenho do sistema. Certifique-se de considerar o seguinte:

  • A qualidade da transcrição da fala pode afetar a qualidade dos resultados. Se os dados de origem forem voz, use a combinação da mais alta qualidade de transcrição automática e humana para garantir o melhor desempenho. Considere o uso de modelos de fala personalizados para obter resultados de melhor qualidade.
  • A ausência de pontuação padrão ou uso de maiúsculas pode afetar a qualidade dos resultados. Se estiver a utilizar um sistema de voz, como o Azure AI Speech to Text, selecione a opção para incluir pontuação.
  • Erros ortográficos frequentes nos dados de treinamento podem afetar a confiança da resposta. Considere usar um serviço de verificação ortográfica para corrigir palavras com erros ortográficos. No entanto, a introdução da verificação ortográfica pode não ser a melhor solução. Em todos os casos, o uso de dados reais, incluindo erros ortográficos, fornece os melhores resultados.
  • Os dados de treinamento para modelos CLU são fornecidos pelo desenvolvedor. Os dados usados na produção que mais se assemelham aos dados de treinamento produzem o melhor desempenho.

O desempenho varia entre recursos e idiomas

A CLU oferece aos usuários a opção de usar dados em vários idiomas. Os desenvolvedores podem ter vários arquivos em um conjunto de dados com idiomas diferentes. Um modelo treinado com um idioma pode ser usado para consultar texto em outros idiomas. Habilite a opção multilíngue durante a criação do projeto. Se forem notadas pontuações baixas em um determinado idioma, considere adicionar mais dados nesse idioma ao seu conjunto de treinamento.

Nem todas as funcionalidades estão na mesma paridade de idiomas. Por exemplo, o suporte linguístico na CLU varia para entidades pré-construídas. Você pode achar que o desempenho de um recurso específico não é consistente com outro recurso. Além disso, você pode achar que, para um recurso específico, o desempenho não é consistente em vários idiomas. Compreenda o suporte a idiomas em toda a CLU.

Próximos passos