Boas práticas na estruturação da IA (Intenções e Entidades)

Olá comunidade, existe algum conteúdo que detalhe boas práticas na construção de uma IA através do BLiP (algo genérico que atenda aos diversos motores cognitivos)?

Como construir intenções e suas frases de treinamento, por exemplo (é uma boa prática citar possíveis entidades nas frases de treinamento de determinada intenção?);

Exemplos de intenções x frases de treinamento, etc…

Desde já agradeço a colaboração.

5 curtidas

Ei @Italo_Brito_de_Morae tudo bem? Vou deixar algumas coisas aqui pra vocês:

Recomendações

  • Recorrentemente usuários tendem a interagir com o bot fazendo perguntas, então escrever os exemplos na forma de perguntas seria uma boa prática recomendada.

  • Utilizar a gramática mais correta possível.

  • Evitar exemplos muito curtos, com apenas uma ou duas palavras.

  • Garantir que os exemplos de uma mesma intenção tenham o mesmo sentido semântico (falem da mesma coisa).

  • Garantir que os exemplos de uma mesma intenção tenham variações relevantes na redação.

  • Evitar ao máximo variações simples na redação (colocar ou não um artigo na frase). (Ex.:Quero receber o extrato/Quero receber um extrato)

  • Procurar criar nomes de intenções que façam sentido e estejam relacionados aos exemplos.

    • Sugestão de um passo a passo para dar nomes para intenções seria ler os exemplos cadastrados buscando entender a ideia principal, explicar essa ideia em uma frase. Cortar em 30 caracteres: OU cortar nos primeiros 30 caracteres, OU resumir a frase em 3 palavras (até 30 caracteres na soma). E por fim, usar o resultado desse procedimento como novo nome da intenção.
  • Também uma boa recomendação geral dos provedores de NLP é ter em média 10 exemplos para cada intenção, pois poucos exemplos dificultam o processo de generalização, sendo esse número apenas uma estimativa para ser usado como referência, mas o importante mesmo é o modelo estar em bom funcionamento.

  • Balancear a quantidade de exemplos em cada intenção.

    • Intenções com muito mais exemplos que as outras podem:

      • Ser mais reconhecidas que as demais.

      • Podem ser incorretamente reconhecidas e não atingir níveis mínimos de confiança.

    • Intenções com muito menos exemplos que as outras podem:

      • Ter comportamento inesperado. (Ex: Exemplos serem reconhecidos com confiabilidade muito baixa mesmo sendo claramente de determinada intenção, ou exemplos de determinada intenção sendo reconhecido como outro com confiabilidade alta)

      • Nunca ser reconhecidas nas variações.

Dicas

  • Sempre ir do conteúdo para o exemplo, não o contrário.

  • Usar o conteúdo como fonte para geração de novos exemplos.

  • Quando o insumo para gerar a base for muito grande, busque priorizar os assuntos críticos e mais relevantes. Quantos menos exemplos para avaliar, melhor.

  • Garantir que os exemplos sejam respondidos pelo conteúdo proposto.

  • O trabalho não é linear, por isso é importante ressaltar o foco em um trabalho constante e incremental (fazer aos poucos, mas constantemente)

  • No momento de avaliar as variações sintáticas, testar variações dos exemplos (o texto exato do exemplo sempre é reconhecido pelo provedor)

Exceções

  • Algumas expressões podem ser colocadas na base de conhecimento mesmo que não sejam perguntas (afirmações, por exemplo).

  • Caso o vocabulário do cliente seja com gírias ou maneirismos atípicos de falar, não se faz necessário realizar a “correção ortográfica”.

  • Caso a intenção seja sobre um assunto muito específico, identificado por uma simples palavra ou expressão, ela pode ser adicionada como exemplo no modelo.

  • A regra do número de exemplos não deve ser “gravada em pedra”. O ideal é buscar um equilíbrio, evitando ao máximo que existam intenções com poucos exemplos.

4 curtidas

Uma boa dica também, @Italo_Brito_de_Morae é que agora no Blip já existe uma opção de importar Intenções e Entidades pré-definidas, pra você se basear mesmo.

O botão fica ao lado do botão de criar uma nova Intenção/Entidade.

3 curtidas

Maravilha @BrunoC , tudo bem e contigo?

Na documentação cheguei a ver essas dicas, mas é sempre bom relembrar :hugs:

Eu queria dicas mais específicas como: no cadastramento de entidades, inserimos a palavra como ela é na íntegra (quando houver acentuação), faz alguma diferença em cadastrar toda a palavra em minúsculo? Os sinônimos, cadastro em minúsculo, com acentuação, sem acentuação…

As intenções… Nelas podem conter entidades ou só a parte mais específica (predicado)? O uso de ponto de interrogação para perguntas faz alguma diferença?

Consegue me ajudar com essas dúvidas?

2 curtidas

@Italo_Brito_de_Morae posso ajudar sim! hahaha
Vou preparar por aqui

E venho com spoilers: no final do mês de Maio, vai ter um hands-on exatamente sobre isso.

3 curtidas

É indicado cadastrar sem acentuação, pra evitar conflitos no provedor. Por padrão, o Blip converte as palavras acentuadas em palavras sem acento, então as entidades pão e pao são consideradas as mesmas e não faz diferença cadastrar tudo em minúsculo.

Idealmente, as intenções não devem conter as entidades e devem ser mais genéricas.

Não necessariamente! Exemplos em forma de pergunta são feitas assim pois essa é a maneira que provavelmente o usuário falará com o bot. Mas isso varia de caso para caso.

3 curtidas

Maravilha @BrunoC
Muito agradecido. Consigo encontrar essas informações de boas práticas em alguma documentação? Caso negativo, o que acha de criarmos um tópico para esse tema?

3 curtidas

Amo essa ideia!
Inclusive, acho que o @BrunoC precisa escrever mais dicas de boas práticas pra gente :watching: just saying

2 curtidas

A voz da comunidade é uma ordem! :smileoh:

2 curtidas