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.


8 comentários

Reputação 7

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.



Reputação 7

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.

Maravilha @BrunoC , tudo bem e contigo?


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


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?

Reputação 7

@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.

Reputação 7

É 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.

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?

Reputação 7

Amo essa ideia!

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

Reputação 7

A voz da comunidade é uma ordem! :smileoh:

Comente