Sberbank AI Journey. Como ensinamos uma rede neural a fazer um exame

Se você se formou no ensino médio no momento do USO, sabe que todas as tarefas nele têm um conjunto de formulações padrão e são classificadas por tipo. Por um lado, isso facilita a preparação para o exame: o aluno já sabe o que fazer na tarefa sem sequer ler suas condições. Por outro lado, qualquer alteração na ordem das perguntas pode causar problemas. Grosso modo, o resultado começa a ser mais influenciado pelo quanto uma pessoa trouxe decisões para o automatismo, e não como ele reasones. O exame se torna como um roteiro.



imagem

Como parte da conferência AI Journey, decidimos organizar uma competição para desenvolver um algoritmo que não passasse em um exame pior que uma pessoa. Os participantes recebem versões de teste de tarefas que podem ser usadas para validar soluções e para treinamento. Como funcionários do Sberbank, não podemos reivindicar um fundo de prêmios , mas mesmo assim tentamos resolver esse problema e queremos conversar sobre como o fizemos. Spoiler - certificado que recebemos.



Pouco de teoria


A aplicação de redes neurais a qualquer tarefa hoje já é uma história da série: "Nunca houve tal coisa, e aqui está novamente." Mas a que novas tarefas de uma rede neural realmente devem ser aplicadas?


Historicamente, os teóricos estabelecem as seguintes habilidades no conceito de Inteligência Geral Artificial:


  • tomada de decisão diante da incerteza
  • auto-aprendizagem
  • operando uma base de conhecimento sobre o mundo
  • multidisciplinaridade, processamento conjunto de informações de diferentes fontes (texto, imagens, som)

A metáfora “cérebro como computador” determinou amplamente esses requisitos, e nenhum deles, exceto o treinamento, ainda não foi totalmente implementado pela IA ¯ \ (ツ) / ¯
Nos últimos anos, você pode observar as primeiras tentativas de criar sistemas mais complexos - por exemplo, Aristo , do Allen Institute, 90% completou o teste de conhecimentos gerais da oitava série.


Há 27 tarefas no exame final no idioma russo, das quais 26 são tarefas com uma opção de resposta ou uma resposta aberta, nas quais você pode inserir sua própria versão, e a última é um ensaio sobre o texto. Ou seja, a primeira tarefa é sempre sobre o significado do texto, a quarta - sobre a ênfase, a sétima - sobre erros de fala comuns, etc. Essa tarefa coloca os sistemas de ML na situação de um “aluno do ensino médio”, onde você precisa obter um conjunto básico de habilidades e conhecimentos com antecedência e, em seguida, responder corretamente às perguntas usando-os.


Para passar o idioma russo, o aluno deve:


  • Aprenda a escrever e falar corretamente,
  • Aprenda a estruturar seus pensamentos
  • entender as conexões lógicas no texto, conhecer o estilo, ortografia, ortografia, etc.,
  • leia uma lista impressionante de literatura, dos monumentos mais famosos da literatura russa antiga aos modernos e opere nas principais obras, enredos, problemas ou amortizações .

Sabendo que os métodos modernos de PNL ainda podem lidar com muitas dessas tarefas, decidimos experimentá-las.


Todos os dados que recebemos são apresentados no formato json, padronizados e contêm uma redação e um texto claros nos quais você precisa concluir a tarefa; responda às opções, se elas forem fornecidas pela pergunta.



Captura de tela do Yandex.Tutor


As perguntas nas tarefas são formuladas de maneira muito clara para a máquina - você precisa executar não apenas a tarefa - para encontrar erros no texto e corrigi-los, colocar as letras que faltam, encontrar frases que atendam às condições determinadas, mas também anote a resposta corretamente. Pode ser a própria expressão com erro ou, inversamente, exemplos sem erros, número desses exemplos, número de sentenças em ordem crescente, etc. E então nos lembramos do clássico:


Na arte de levantar questões, o legislador Goracek era um verdadeiro virtuoso. Ele forçou os discípulos a listar ao contrário os dez mandamentos do Senhor ou exigiu:
- Ludwik, responda rapidamente, vilão, que mandamento está em terceiro lugar no final, antes de "Não matar"?
Yaroslav Hasek, “A lição da lei de Deus”


Como lidamos com isso na linha de base?


Resposta: ¡ɯǝɓn̯ɔ ʞɐɯ e



Como não existem mais de 27 tipos de tarefas, nos dados de treinamento, criamos um analisador json que seleciona as palavras exatas de todo o texto da tarefa - o que e como fazer - e criamos nessas formulações o classificador linear mais simples em n-gramas de palavras e SVM (máquinas de vetores de suporte), que previam o número do trabalho e o sistema recebeu o formato de trabalho e resposta: https://github.com/sberbank-ai/ai-journey-2019 .


Potencialmente, eu gostaria de implementar um mecanismo de atenção ou algo semelhante nesta parte da solução, a fim de encontrar conexões entre formulações e tipos de perguntas. Esperamos que um dos participantes implemente essa solução.



Avaliação da Decisão


Ao avaliar essa solução, para comparação com uma pessoa, as métricas de classificação usuais (precisão, f-measure.) Não são usadas, mas é feita uma escala de classificação de 100 pontos , onde são resumidos os pontos para as tarefas concluídas corretamente.


As soluções de problemas são verificadas automaticamente e o que fazer com o ensaio final? Professores e metodologistas de Moscou e Novosibirsk participam da avaliação de ensaios no âmbito da competição. Eles avaliam os ensaios coletados de acordo com critérios independentes, incluindo ortografia, pontuação, coerência lógica do texto, presença de argumentos literários e posição do autor. Em geral, tudo é como na escola.


Design da linha de base


Após implementar o analisador json e o classificador de perguntas, recebemos tipos específicos de tarefas. Eles se resumem a esta lista:


  • verificar ortografia, inserir letras, corrigir erros (H e HH, NOT e NI, juntos - separadamente, raízes com alternância, etc.);
  • entender no contexto o significado de uma palavra com vários valores (escolha da resposta no contexto);
  • destacar as principais reflexões do texto (seleção de uma lista de frases);
  • colocar sinais de pontuação (selecione locais onde vírgulas, traços, etc. são necessários);
  • enfatize palavras (encontre um erro);
  • encontre erros gramaticais nos exemplos e indique seu tipo (correlato);
  • anular alianças entre partes do texto (com base na lógica do texto);
  • escrevendo um ensaio sobre o texto (encontre o problema e revele-o).

Usando o método de peering adicional, reduzimos todos os tipos de tarefas para métodos de processamento de texto conhecidos.


Embedders

Os incorporadores (word2vec, fasttext, GloVe) são usados ​​para obter representações vetoriais de palavras, frases e textos individuais. Usamos o BERT no pytorch - um transformador universal, usado com mais frequência para obter as propriedades das palavras (do Google). Esse transformador fornece um alto resultado em tarefas nas quais você precisa entender o significado de uma palavra com vários valores, destacar as frases mais significativas no texto etc. - as tarefas são reduzidas à escolha da incorporação mais próxima por medida de cosseno.


Modelos de linguagem

Os modelos de linguagem podem fornecer informações úteis sobre a probabilidade da próxima palavra, multiplicação de sentenças. Em conjunto com os exames, eles podem ser usados ​​para detectar e corrigir erros de fala (substituir fragmentos que não sejam de frequência por fragmentos de frequência semelhantes) e gerar textos. Basicamente, usamos a base de frequência do n-grama do corpus nacional do idioma russo, escolhendo palavras normativas e os ausentes foram considerados candidatos a erro. Também usamos essa base para substituir as letras que faltam em palavras. Para gerar os textos dos ensaios, também adotamos o “modelo universal” - ULMFit . Este é o LSTM de abandono múltiplo do fast.ai, muito bom para gerar sequências. Nós a treinamos em ensaios escolares sobre literatura, que coletamos on-line. Acabou sendo inútil, mas quase sem erros.


Analisadores de morfologia e sintaxe

Para determinar a parte da fala, casos, número, sexo, forma normal da palavra e as conexões entre as palavras, utilizamos pymorphy2 e UDPipe.


Classificadores

As tarefas de pontuação podem ser reduzidas à classificação - coloque uma vírgula em um local específico ou não, de acordo com qual regra um traço é definido etc.


Resolvemos dois tipos de tarefas com os seguintes tipos de arquiteturas:


A rede neural siamesa recebe duas entradas BERT de um par de sentenças na entrada, decide se traços, dois pontos ou não são definidos de acordo com uma regra.


O classificador CatBoost recebe uma janela de entrada para as tags de uma parte do discurso de comprimento 6 (no formato “ NOUN VERBO NOUN ADJ NOUN NOUN ”) e decide se deve ou não colocar uma vírgula no meio.


Bases de conhecimento

O que os alunos precisam lembrar e aprender, coletamos de fontes abertas:


1 Dicionário Orthoepic (stress) - como no currículo escolar.


2 Dicionário de tropos - meios literários: sinônimos, antônimos, parônimos, unidades fraseológicas, etc., coletados em sites da literatura.


3 Coleção de ensaios escolares sobre literatura - para a educação continuada do modelo generativo.


Modelos de composição

Geração de texto, sumarização, modelagem temática. Aqui o escopo para o pensamento foi ótimo. No final, adotamos, como já mencionado, o ULMFit para gerar texto. Mas o ensaio deve estar no texto e atender a muitos critérios. Se considerarmos que temos ortografia e coerência do texto devido ao ULMFit, pelo menos a posição do autor e a coerência temática do nosso trabalho e este texto permanecem.



Resolvemos essas subtarefas da seguinte maneira:


  • LDA + preparou a primeira frase . As versões coletadas dos ensaios escolares são agrupadas com base na palavra n-grama em 30 tópicos que interpretamos. Cada um dos tópicos mostrou-se relacionado ao trabalho de um ou dois escritores sobre um tópico relacionado - obras sobre o destino da Rússia, sobre a situação do povo, sobre as obras de Dostoiévski, sobre o trabalho de A. Akhmatova e seu significado para a cultura russa do século XX, etc.
  • Modelos TextRank + . O algoritmo de resumo seleciona as 2-3 frases mais significativas do texto fornecido e essas frases são inseridas em um conjunto de modelos que enquadram aspas com a posição do autor.

Pipeline final: o modelo temático determina o tópico do texto e dá a primeira frase ao modelo generativo. O modelo generativo recebe a primeira frase e continua até o final da composição. Em seguida, o modelo de resumo insere um segundo parágrafo neste texto, que reflete a posição do autor.


Aqui está um exemplo de uma composição típica que obtivemos nesse modelo (os modelos estão em itálico, a primeira frase do modelo temático está em negrito).


O destino do homem na guerra, o amor de sua terra natal, seu amor por sua mãe são temas de interesse de Tolstoi , aqueles que o deixaram. e dois príncipes Andrei Tolstoi - Pierre e Andrei - passaram pela guerra. As más relações humanas também não estão em seu curso, mas na vida, em padrões civis e morais. A liberdade reside no fato de serem uma pessoa gentil e terrível, uma sensação de abertura e traição. Eles são a liberdade - de Deus - para Napoleão, para ele - Napoleão. Traz a eles o bem e o mal, de modo que grandes heróis compõem o que são representantes das mesmas pessoas.

O autor ilustra esse problema com o exemplo das frases "Quando digo que uma pessoa não deve contrariar sua consciência, não deve fazer um acordo com ela, não quero dizer de forma alguma que uma pessoa não possa ou não cometa erros, tropeçar". e "respondi que não é apenas possível, mas também necessário escrever sobre os erros de grandes pessoas, que um homem é ótimo não porque não se enganou em nada". Na minha opinião, o leitor observa a posição do autor na frase: "Mas mesmo se você não preservou a honra de sua juventude, você pode e deve recuperá-la na idade adulta, se quebrar, encontrar coragem e coragem para admitir erros".

A guerra é a parte da personalidade que deve dar a uma pessoa a possibilidade de outro serviço universal. O futuro é a libertação, o desejo de liberdade, um amor ardente pela pátria. Esta é uma crença na possibilidade da Pátria. Podemos dizer que, apesar do cristianismo, Pierre não pode atrapalhar o curso da história, mas ele o fez de fato. A guerra de 1812 Tolstoi mostra como a luta do novo Napoleão com um ambiente folclórico simples e com o povo.

Estamos diante de toda a Rússia e Novgorod faz parte da Rússia. A idéia principal que ele tem é a conexão do povo russo com a natureza. O romance de Tolstoi, "Guerra e Paz", é um trabalho em que os problemas sociais estão intimamente relacionados, a vida consiste no fato de que vozes, bem e mal - tudo isso não esconde Tolstoi. Dostoiévski escreveu que para Tolstói essa é uma posição política. O autor coloca seu lugar no romance: aqui o escritor mostra pessoas que estão por trás dos muros da pátria. Tolstoi dá um exemplo disso e dá um exemplo do primeiro e do personagem principal.

A arquitetura de linha de base resultante


A solução final tem a seguinte lógica:


  1. O trabalho recebido é digitado pelo classificador - ele obtém um tipo de 1 a 27.
  2. Cada uma das 27 tarefas possui seu próprio solucionador - um script com análise de formulações de tarefas, que recebe as informações necessárias do pool de modelos de ML disponíveis e bases de conhecimento e emite a resposta no formato correto.

O conjunto de modelos e bases de conhecimento para todos os solucionadores é comum, ele é carregado na memória uma vez.



Qual é o resultado?


A linha de base (até agora sem verificação de ensaio) fornece 27 pontos em 100 - mais de 60 equipes aproveitaram a solução básica. De acordo com os critérios do exame final, para obter um certificado, você precisa marcar 24, mas para enviar documentos para a universidade, você precisa de um mínimo de 36 pontos. Esta marca passou agora pelas 2 melhores equipes.




Muitos participantes usam nossa solução como uma abordagem básica, melhorando e refinando. Se você está interessado em inteligência artificial e está pronto para tentar uma tarefa tão interessante, terá mais algumas semanas! E nós mesmos continuamos a melhorar os modelos, saindo da competição com o apelido CDS_team


A final da competição será realizada nos dias 8 e 9 de novembro na conferência AI Journey, em Moscou. Registre-se para a competição e a conferência aqui .

Source: https://habr.com/ru/post/pt471742/


All Articles