Nossa experiência com DeepPavlov: um assistente de voz em 20 dias e recebendo 5.000 ligações na linha direta

Quando o regime de auto-isolamento foi anunciado , a linha direta do coronavírus no Tartaristão recebeu muitas perguntas dos residentes. Para aliviar os operadores do call center, nós do Centro de Transformação Digital da república, juntamente com o comissário da IA ​​no Tartaristão, desenvolvemos um assistente de voz que respondia a perguntas simples.







Para receber ligações, utilizamos a plataforma Voximplant , e para reconhecer as perguntas e respostas - DeepPavlov . O assistente de voz foi lançado em duas semanas e meia e ajudou a processar 5.000 ligações. Conseguimos lançar um produto que ajudou os residentes do Tartaristão a receber informações confiáveis ​​das autoridades e simplesmente sair para a rua. A seguir, contaremos como fizemos isso.



Qual era a tarefa



Originalmente, planejamos fazer um assistente de voz que ajudasse as pessoas a receber serviços do governo e responder às perguntas mais frequentes. Mas quando todo o truque com o coronavírus começou, percebemos que Lilia ajudaria a descarregar o call center: por exemplo, aconselhar sobre a linha direta, ajudar a conseguir passes digitais e seguro-desemprego. Tudo o que uma pessoa pode descobrir no site dos serviços estaduais pode ser descoberto na Lilia, e você também pode simplesmente bater um papo com ela.



. 1 -: , . : , , , . 12.



. , . , . , , , — « »
.




Além de emitir passes digitais, Lilia teve que responder a perguntas de residentes do Tartaristão. Concebemos um assistente de voz que responderia a perguntas comuns como "O que você precisa fazer para obter uma aprovação" e "O gengibre ajuda com o coronavírus?"



Para resolver este problema, também poderíamos fazer um IVR normal. Mas o IVR leva muito tempo e, se você fizer isso normalmente, precisará estabelecer uma arquitetura complexa. Em geral, não havia tempo para isso. Achamos que seria mais fácil fazer um assistente de voz (que pode traduzir a fala em texto, processá-la, classificar intenções e fornecer uma resposta de voz). Ele Ele.



Como parece da perspectiva do usuário



Tudo é simples aqui.



  1. O homem liga para a linha direta, ele pode escolher entre uma conversa com a operadora e Lilia. A qualquer momento, você pode mudar para um operador ao vivo.
  2. .
  3. , . , -.








Para receber ligações e implementar scripts, utilizamos a plataforma Voximplant: escrevemos um script e conectamos um sinal de secretária eletrônica. Lily cumprimentou o homem e perguntou o que ele queria.



O chamador faz uma pergunta ao telefone. Então Lilia começou a ouvir. Na VoxImplant, usamos o módulo ASR para traduzir a fala em texto, ele chama o modelo Yandex.SpeechKit por baixo do capô. Assim, o fluxo de áudio é traduzido em texto, que então passa por tokenização e lematização. Também tentamos extrair recursos: NER, POS e Chunk para métodos básicos de ML, mas tudo isso demorou muito.







Por exemplo, inicialmente, a partir da pergunta "Por favor, diga-me como se proteger do coronavírus", extraímos "proteção" e "coronavírus" e os transformamos em representação vetorial. A representação vetorial de entidades está incluída no classificador para coronavírus (e posteriormente, serviços públicos). Agora DeepPavlov está fazendo tudo isso.



Então, existem várias opções, dependendo do nível de confiança (confiança):



  1. Se a rede classificou a questão com confiança suficiente (com base no estudo, os limites foram selecionados individualmente, por classe), então Lilia responderá à questão.
  2. Se a rede tiver uma resposta de baixa confiança, presumimos que essa é uma questão que não cobrimos em nosso conjunto de dados (mas a questão ainda se refere ao domínio do coronavírus) ou a pessoa apenas deseja falar sobre outro tópico. Por exemplo, ele perguntou "Quem é Elon Musk."


Para tais questões, usamos o modelo BERT treinado no despejo da Wikipedia para o problema de resposta às perguntas da base de conhecimento.



Ao final, Lilia necessariamente verifica a exatidão do reconhecimento da intenção e da qualidade da resposta, perguntando: "Eu respondi sua pergunta?" Se o usuário responder sim, Lilia aguardará a próxima pergunta. Caso contrário, solicitaremos que reformule a pergunta e repita todo o ciclo. Acontece que isso não funciona. Em seguida, os operadores ao vivo entram na batalha.



Agora Lilia fala com uma voz agradável de um sintetizador de voz da Yandex - mudamos um pouco a tonalidade e aumentamos a velocidade. Às vezes, Lily confunde o sotaque, mas isso pode ser corrigido com marcação. Claro, eu gostaria de adicionar Tatar, mas até agora é difícil.



No total, o projeto durou duas semanas e meia, levando em consideração os conjuntos de dados: surgiu uma ideia, discutimos o projeto com o ministro e, como dizemos, com a alga. Uma semana foi gasta em estimativa e pesquisa, o desenvolvimento levou outros 10 dias, então finalizamos e acrescentamos funções adicionais. Os cavalos principais eram Nvidia RTX2070. Os BERTs exigiam cerca de 12-16 GB de memória de vídeo.



De LSVM e catboost para DeepPavlov



No processo de desenvolvimento, usamos diferentes modelos de classificadores. Primeiro, tentamos modelos de aprendizado de máquina, como floresta aleatória, LSVM, catboost, logreg. Em geral, a precisão dos modelos de aprendizado de máquina não era muito alta. Por que é que? Porque muitas das perguntas do usuário são muito semelhantes entre si: a pergunta “meu filho pegou o coronavírus, o que fazer” é bastante semelhante à questão “é possível andar com uma criança durante o coronavírus”, embora essas sejam categorias diferentes e sejam necessárias respostas diferentes.



Poderíamos fazer extração de entidade, amostragem, pesquisa. Mas tínhamos pressa. Portanto, decidimos usar a biblioteca DeepPavlov do MIPT em nosso trabalho, que deu uma acurácia de 78% com regressão logística e BERT - 84%.







A precisão das respostas depende da marcação dos conjuntos de dados. Tínhamos uma lista de 200 perguntas que as pessoas fizeram na linha direta, mas não foram devidamente segregadas. Por exemplo, as pessoas perguntavam o que fazer se um de seus parentes adoecesse, e a pergunta era quais são os sintomas do coronavírus. Os modelos de ML ficaram confusos.



Resultados e planos para o futuro



Lilia trabalhou por 2 semanas e processou 5.000 ligações. Nesse período, Lilia facilitou muito o trabalho dos operadores da linha direta - eles não precisaram responder a perguntas triviais e repetitivas. Graças à Lilia, os usuários receberam passes, respostas a dúvidas e acabaram de conversar. Claro, houve usuários que xingaram e pediram para transferir para a operadora.



O regime de auto-isolamento foi cancelado, os passes digitais não são mais válidos, mas Lilia ainda está nas fileiras. Ela continua respondendo a perguntas sobre o coronavírus, mas agora a capacidade de responder a perguntas relacionadas aos serviços públicos foi adicionada a ela.



Somos um ministério e, de fato, temos duas tarefas: para que outros departamentos normalmente usem tecnologias e para que os residentes do Tartaristão possam se comunicar de maneira fácil e simples com o estado. A segunda tarefa é perfeitamente realizada pelo portal de serviços estaduais - nosso, local, não federal. Mas esse portal é um site e um aplicativo que ainda é difícil para alguns acessarem. E se os residentes não vão ao portal, então o portal vai para o residente, ou seja, estamos a caminhar no sentido de simplificar a interacção com o portal para pessoas que não utilizam particularmente a Internet.



Agora, o Ministério de Assuntos Digitais do Tartaristão está trabalhando para garantir que as pessoas possam receber serviços governamentais por voz e por chat. Queremos fazer um assistente universal para quem você pode ligar / escrever e obter respostas para todas as perguntas importantes.



Até agora, Lilia pode dizer por quanto tempo o cartório está aberto, e no futuro planejamos que ela possa fazer as leituras dos medidores (mas isso só quando resolvermos a questão da segurança da transferência desses dados). Em geral, estamos transformando Lilia em um produto separado.



Se você tem interesse em ensinar Lilia, seja bem-vindo ao nosso time.




All Articles