Projetos finais do curso Deep Learning in Natural Language Processing (por DeepPavlov Lab)

Concluiu recentemente " Deep Learning in Natural Language Processing ", um curso educacional aberto sobre processamento de linguagem natural. Tradicionalmente, os curadores do curso são funcionários do projeto DeepPavlov , uma biblioteca aberta para inteligência artificial falada, que está sendo desenvolvida no laboratório de sistemas neurais e aprendizado profundo do MIPT. O curso foi realizado com o apoio informativo da comunidade Open Data Science . Se precisar de mais detalhes sobre o formato do curso, clique aqui . Um dos elementos-chave de EAD em PNL é a oportunidade de se sentir como um pesquisador e implementar seu próprio projeto.



Conversamos periodicamente no Mediumsobre projetos que os participantes criam como parte de nossos programas educacionais, por exemplo, como construir um oráculo falado . Hoje estamos prontos para compartilhar os resultados do curso do semestre da primavera de 2020.







Alguns dados e análises



Este ano batemos todos os recordes de número do curso: no início de fevereiro, eram cerca de 800 inscritos . Sejamos honestos, não estávamos prontos para tantos participantes, então criamos muitos momentos em movimento com eles. Mas escreveremos sobre isso na próxima vez.



Voltemos aos participantes. Todos terminaram o curso? A resposta é, obviamente, óbvia. A cada nova designação, o número de pessoas dispostas diminuía cada vez mais. Como resultado, ou por causa da quarentena, ou por outros motivos, mas no meio do curso apenas metade permaneceu. Bem, então eu tive que decidir sobre os projetos. Setenta obras foram anunciadas pelos participantes. E o projeto mais popular - extração de sentimento de tweet - dezenove equipes tentaram concluir a tarefa no Kaggle .



Mais sobre os projetos apresentados



Na semana passada realizamos uma sessão final do curso onde várias equipes apresentaram seus projetos. Se você perdeu o seminário aberto, preparamos uma gravação . E a seguir tentaremos descrever brevemente os casos implementados.



Kaggle Jigsaw: Classificação multilíngue de comentários tóxicos



Roman Shchekin (QtRoS), Denis Grushentsev (Evilden), Maxim Talimanchuk (mtalimanchuk)



Esta competição é uma continuação da competição popular de Jigsaw para determinar texto tóxico, mas, neste caso, o treinamento ocorre em dados em inglês e testes - em dados multilíngues (incluindo russo). A avaliação é baseada na métrica ROC AUC. A equipe conquistou o bronze (132 de 1621) com um ROC AUC de ~ 0,9463. O modelo final foi um conjunto de classificadores:



  • XLMRoberta grande
  • Baías ingénuas
  • Base de bert
  • Bert base multilíngue
  • USE multilíngue


XLMRoberta grande com uma camada linear de 1024 * 1 foi treinada em um conjunto de dados básico com o otimizador AdamW. O modelo USE multilíngue foi usado na versão básica (treinado em 16 idiomas) sem treinamento adicional. A utilização da base Bert foi possível devido à tradução automática do conjunto de dados do teste para o inglês. O conjunto de treinamento foi expandido com conjuntos de dados adicionais.



A apresentação do projeto está disponível aqui .

O GitHub do projeto está disponível neste link .



Na destilação bert



Nikita Balaganskiy



Como você sabe, os modelos baseados na arquitetura BERT, embora alcancem classificações de qualidade impressionantes, ainda ficam muito atrás em desempenho. Isso porque o BERT é um modelo com um grande número de pesos. Existem várias maneiras de reduzir o modelo, uma delas é a destilação. A ideia por trás da destilação é criar um modelo menor de “aluno” que imita o comportamento do modelo maior de “professor”. O modelo do estudante russo foi treinado em quatro cartões 1080ti por 100 horas, em um conjunto de dados de notícias. Como resultado, o modelo do aluno acabou sendo 1,7 vezes menor do que o modelo original.... Uma comparação da qualidade dos modelos de alunos e professores foi feita em um conjunto de dados para determinar a coloração emocional do texto Mokoron. Como resultado, o modelo do aluno teve um desempenho comparável ao modelo do professor. O script de treinamento foi escrito usando o pacote de catalisador . Você pode ler mais sobre o projeto no Medium .



A apresentação do projeto está disponível aqui .

O GitHub do projeto está disponível neste link .





Imagem: rasa.com



Resposta a perguntas de ciência de dados aberta



Ilya Sirotkin, Yuri Zelensky, Ekaterina Karpova



Tudo começou com uma postagem de Ekaterina Karpova no ODS. A ideia era bastante ambiciosa - criar uma resposta automática para perguntas na comunidade do slack ODS com base no conjunto de dados de perguntas e respostas coletados. No entanto, uma análise preliminar revelou que a maioria das questões são bastante únicas, e criar uma amostra de teste rotulada para avaliar a qualidade é uma tarefa bastante trabalhosa. Portanto, foi decidido primeiro criar um classificador para determinar se a pergunta feita pertence ao canal de folga ODS. Ele ajudaria os recém-chegados ODS a fazer perguntas no tópico do canal relevante. A métrica pwROC-AUC foi escolhida como uma avaliação de qualidade.



No âmbito do projeto, foi realizada uma análise comparativa de modelos populares de classificação de textos. O melhor deles - o modelo baseado em RuBERT da DeepPavlov - mostrou uma qualidade de 0,995 pwROC-AUC. Esses números elevados de qualidade de modelo indicam um alto grau de separação (e separabilidade) dos dados originais. O único canal problemático para todos os modelos que testei é _call_4_colaboration. Mas por que exatamente ele, não foi possível descobrir ainda.



Tendo lidado com essa tarefa, a equipe não deixa esperanças de retornar à tarefa original de responder às perguntas dos usuários do ODS.



A apresentação do projeto está disponível aqui .

O GitHub do projeto está disponível neste link .



Análise de sentimento baseada em aspectos russos



Dmitry Bunin



No âmbito deste projeto, foi resolvido o problema de determinar o sentimento relativo a um determinado objeto no texto (problema C do concurso Dialogue Evaluation 2015). Os dados russos e ingleses foram usados ​​como conjuntos de dados. Basicamente, modelos modernos baseados nas arquiteturas ELM® (do pacote RusVectores) e BERT (do pacote DeepPavlov ) foram comparados . O modelo ELM® + CNN em russo mostrou qualidade comparável ao melhor modelo da competição, apesar da pequena amostra de treinamento e forte desequilíbrio de dados.



A apresentação do projeto está disponível aqui .

O GitHub do projeto está disponível neste link .







Kaggle: extração de sentimento de tweet



Kirill Gerasimov



De acordo com os termos do concurso , a tarefa era extrair uma palavra ou frase-chave do texto do tweet que definiria o clima desse tweet. O Jaccard Score no nível da palavra foi usado como uma métrica de qualidade. Nesta competição, todos os participantes enfrentaram dados ruidosos e marcação ambígua. A equipe usou um modelo de laptop público baseado na base RoBERTa como modelo básico. Este modelo utiliza uma abordagem de compreensão de leitura, em que o início e o fim da frase-chave são destacados (com a condição obrigatória de que o fim seja depois do início). De acordo com a tradição aceita, o conjunto de vários modelos teve um desempenho mais rápido do que os modelos individuais. Como resultado, bronze (135º lugar em 2100)... Na experiência do vencedor da competição, a anotação de dois níveis oferece velocidades ainda melhores.



A apresentação do projeto está disponível aqui .

O GitHub do projeto está disponível neste link .



Solução automática do exame



Mikhail Teterin e Leonid Morozov



O objetivo deste projeto é melhorar as métricas de qualidade em três tarefas da competição AI Journey 2019 (solução automática do exame), a saber:



  • pesquisar as principais informações do texto;
  • determinar o significado de uma palavra em um determinado contexto;
  • colocação de sinais de pontuação nas frases.


Nos três problemas, a melhor solução na competição foi superada. Muitas das melhorias se devem ao uso de dados de treinamento adicionais. Nas soluções, os modelos baseados em RuBERT da DeepPavlov mostraram a melhor qualidade .



A apresentação do projeto está disponível aqui .

O GitHub do projeto está disponível neste link .







Neste artigo, tentamos contar sobre alguns dos projetos que foram apresentados no seminário, mas é claro que foram mais.



Obrigado a todos que participaram ativamente do curso e não desistiram. Bem, para aqueles que estão apenas aprendendo e procurando problemas interessantes no campo da PNL, recomendamos considerar o projeto DeepPavlov Contribute .O futuro da IA ​​de conversação está em suas mãos!



All Articles