Sberbank AI Journey. Comment nous avons appris à un réseau de neurones à passer un examen

Si vous avez obtenu votre diplôme d'études secondaires au moment de l'USAGE, vous savez que toutes les tâches qu'il contient ont un ensemble de formulations standard et sont triées par type. D'une part, cela facilite la préparation à l'examen: l'étudiant sait déjà quoi faire dans le travail sans même lire ses conditions. En revanche, tout changement dans l'ordre des questions peut lui causer des problèmes. En gros, le résultat commence à être plus influencé par la quantité de décisions prises par un individu pour l'automatisme, et non par la façon dont il raisonne. L'examen devient comme un script.



image

Dans le cadre de la conférence AI Journey, nous avons décidé d'organiser un concours pour développer un algorithme qui puisse passer un examen pas pire qu'une personne. Les participants reçoivent des versions de test des tâches qui peuvent être utilisées pour valider les solutions et pour la formation. En tant qu'employés de Sberbank, nous ne pouvons pas prétendre à un fonds de prix , mais nous avons néanmoins essayé de résoudre ce problème et voulons parler de la façon dont nous l'avons fait. Spoiler - certificat que nous avons reçu.



Un peu de théorie


L'application des réseaux de neurones à n'importe quelle tâche aujourd'hui est déjà une histoire de la série: "Il n'y a jamais eu une telle chose, et la voici encore." Mais à quelles nouvelles tâches d'un réseau de neurones faut-il vraiment s'appliquer?


Historiquement, les théoriciens possèdent les capacités suivantes dans le concept de l'intelligence générale artificielle:


  • prise de décision face à l'incertitude
  • auto-apprentissage
  • exploiter une base de connaissances sur le monde
  • multidisciplinarité, traitement conjoint d'informations provenant de différentes sources (texte, images, son)

La métaphore «le cerveau en tant qu'ordinateur» a largement déterminé ces exigences, et aucune d'entre elles, à l'exception de la formation, n'a encore été pleinement mise en œuvre par l'IA ¯ \ (ツ) / ¯
Ces dernières années, vous pouvez observer les premières tentatives de création de systèmes plus complexes - par exemple, Aristo de Allen Institute 90% a terminé le test de connaissances générales pour la huitième année.


L'examen final en langue russe comprend 27 devoirs, dont 26 sont des devoirs avec un choix de réponse ou une réponse ouverte, dans lesquels vous pouvez entrer votre propre version, et le dernier est un essai sur le texte. C'est-à-dire que la première tâche concerne toujours la signification du texte, la quatrième - l'accentuation, la septième - les erreurs de langage courantes, etc. Cette tâche met les systèmes ML dans la situation d'un «élève du secondaire», où vous devez acquérir à l'avance un ensemble de compétences et de connaissances de base, puis répondre correctement aux questions en les utilisant.


Pour passer la langue russe, l'étudiant doit:


  • apprendre à écrire et à parler correctement,
  • apprendre à structurer vos pensées
  • comprendre les connexions logiques dans le texte, connaître le style, l'orthographe, l'orthoépie, etc.,
  • lire une liste impressionnante de la littérature des monuments les plus célèbres de la littérature russe ancienne à la moderne et opérer sur les principaux travaux, parcelles, problèmes ou radier .

Sachant que les méthodes modernes de PNL peuvent encore faire face à de nombreuses tâches de ce type, nous avons décidé de les essayer.


Toutes les données que nous avons reçues sont présentées au format json, normalisées et contiennent une formulation et un texte clairs sur lesquels vous devez effectuer la tâche, répondez aux options si elles sont prévues par la question.



Capture d'écran de Yandex.Tutor


Les questions dans les tâches sont formulées de manière trop floride pour que la machine - vous devez non seulement faire la tâche - pour trouver des erreurs dans le texte et les corriger, placer les lettres manquantes, trouver des phrases qui remplissent les conditions données, mais aussi écrire correctement la réponse. Cela peut être l'expression elle-même avec une erreur ou, inversement, des exemples sans erreurs, des nombres de ces exemples, des nombres de phrases en ordre croissant, etc. Et puis nous nous sommes souvenus du classique:


Dans l'art de poser des questions, le législateur Goracek était un véritable virtuose. Il a forcé les disciples à énumérer à l'envers les dix commandements du Seigneur ou a exigé:
- Ludwik, réponds vite, méchant, quel commandement est à la troisième place depuis la fin, avant "Ne tue pas"?
Yaroslav Hasek, «La leçon de la loi de Dieu»


Comment avons-nous géré cette situation de référence?


Réponse: ¡ɯǝɓn̯ɔ ʞɐɯ et



Puisqu'il n'y a pas plus de 27 types de tâches, sur les données de formation, nous avons créé un analyseur json qui sélectionne le libellé exact dans tout le texte de la tâche - quoi et comment faire - et a créé sur ces formulations le classificateur linéaire le plus simple sur n-grammes de mots et SVM (machines à vecteurs de support), qui prédisaient le numéro de la tâche, et le système a reçu le format de tâche et de réponse: https://github.com/sberbank-ai/ai-journey-2019 .


Potentiellement, je voudrais implémenter un mécanisme d'attention ou quelque chose de similaire dans cette partie de la solution afin de trouver des liens entre les formulations et les types de questions. Nous espérons que l'un des participants mettra en œuvre une telle solution.



Évaluation des décisions


Lors de l'évaluation d'une telle solution, par comparaison avec une personne, les mesures de classification habituelles (précision, mesure f) ne sont pas utilisées, mais une échelle de notation de 100 points est prise, où les points pour les tâches correctement accomplies sont résumés.


Les solutions aux problèmes sont vérifiées automatiquement et que faire de l'essai final? Des enseignants et méthodologistes de Moscou et de Novossibirsk participent à l'évaluation des essais dans le cadre du concours. Ils évaluent les essais collectés selon des critères indépendants, notamment l’orthographe, la ponctuation, la cohérence logique du texte, la présence d’arguments littéraires et la position de l’auteur. En général, tout est comme à l'école.


Conception de base


Après avoir implémenté l'analyseur json et le classificateur de questions, nous avons reçu des types de tâches spécifiques. Ils se résument à cette liste:


  • vérifier l'orthographe, insérer des lettres, corriger les erreurs (H et HH, NOT et NI, ensemble - séparément, racines avec alternance, etc.);
  • comprendre en contexte la signification d'un mot à valeurs multiples (choix de la réponse en contexte);
  • mettre en évidence les principales pensées du texte (sélection dans une liste de phrases);
  • mettre des signes de ponctuation (sélectionner les endroits où des virgules, des tirets, etc. sont nécessaires);
  • mettre l'accent sur les mots (trouver une erreur);
  • trouver des erreurs grammaticales dans les exemples et indiquer leur type (corréler);
  • radier les alliances entre les parties du texte (sur la base de la logique du texte);
  • rédiger un essai sur le texte (trouver le problème et le révéler).

En utilisant la méthode de peering plus loin, nous avons réduit tous les types de tâches à des méthodes de traitement de texte bien connues.


Embedders

Les embedders (word2vec, fasttext, GloVe) sont utilisés pour obtenir des représentations vectorielles de mots, phrases et textes individuels. Nous utilisons BERT sur pytorch - un transformateur universel, plus souvent utilisé pour obtenir les propriétés des mots (de Google). Un tel transformateur donne un résultat élevé sur les tâches où vous devez comprendre la signification d'un mot à valeurs multiples, mettre en évidence les phrases les plus significatives dans le texte, etc. - les tâches sont réduites au choix de l'incorporation la plus proche par mesure cosinusoïdale.


Modèles de langage

Les modèles de langage peuvent fournir des informations utiles sur la probabilité du mot suivant, la multiplication des phrases. En conjonction avec les examens, ils peuvent être utilisés pour détecter et corriger les erreurs de parole (remplacer les fragments non fréquentiels par des fragments de fréquence similaire) et pour générer des textes. En référence, nous avons utilisé la base de fréquence du n-gramme du corpus national de la langue russe, en y choisissant des mots normatifs, et ceux qui étaient absents étaient considérés comme des candidats à l'erreur. Nous utilisons également cette base pour remplacer les lettres manquantes par des mots. Pour générer les textes d'essai, nous avons également utilisé le «modèle universel» - ULMFit . C'est le LSTM à abandon multiple de fast.ai, très bon pour générer des séquences. Nous l'avons formée aux essais scolaires sur la littérature, que nous avons collectés en ligne. Il s'est avéré, bien que inutile, mais presque sans erreurs.


Analyseurs de morphologie et de syntaxe

Pour déterminer la partie du discours, les cas, le nombre, le sexe, la forme normale du mot et les connexions entre les mots, nous avons utilisé pymorphy2 et UDPipe.


Classificateurs

Les tâches de ponctuation peuvent être réduites à la classification - mettez une virgule à un endroit spécifique ou non, selon quelle règle un tiret est défini, etc.


Nous avons résolu deux types de tâches avec les types d'architectures suivants:


Le réseau neuronal siamois reçoit deux entrées BERT d'une paire de phrases à l'entrée, décide si les tirets, les deux-points ou non sont définis selon une règle.


Le classificateur CatBoost reçoit une fenêtre d'entrée pour les balises d'une partie du discours de longueur 6 (de la forme «NOM VERBE NOM ADJ NOM NOM») et décide de mettre ou non une virgule au milieu.


Bases de connaissances

Ce que les élèves doivent retenir et apprendre, nous les avons collectés à partir de sources ouvertes:


1 Dictionnaire orthoépique (stress) - comme dans le programme scolaire.


2 Dictionnaire des tropes - moyens littéraires: synonymes, antonymes, paronymes, unités phraséologiques, etc., collectés sur des sites sur la littérature.


3 Collection d'essais scolaires sur la littérature - pour la formation continue du modèle génératif.


Modèles de composition

Génération de texte, synthèse, modélisation thématique. Ici, la marge de réflexion était grande. Au final, nous avons pris, comme déjà mentionné, ULMFit pour générer du texte. Mais l'essai doit être dans le texte et répondre à de nombreux critères. Si nous considérons que nous obtenons l'orthographe et la cohérence du texte grâce à ULMFit, alors au moins la position de l'auteur et la cohérence thématique de notre travail et ce texte restent.



Nous avons résolu ces sous-tâches comme suit:


  • LDA + a préparé la première phrase . Les versions rassemblées des essais scolaires sont regroupées sur la base du mot n-gramme en 30 sujets que nous avons interprétés. Chacun des sujets s'est avéré être lié au travail d'un ou deux écrivains sur un sujet connexe - des travaux sur le sort de la Russie, sur la situation du peuple, sur les œuvres de Dostoïevski, sur le travail d'A. Akhmatova et son importance pour la culture russe du XXe siècle, etc.
  • Modèles TextRank + . L'algorithme de récapitulation extrait les 2-3 phrases les plus significatives du texte donné, et ces phrases sont insérées dans un ensemble de modèles encadrant les citations avec la position de l'auteur.

Dernier pipeline: le modèle thématique détermine le sujet du texte et donne la première phrase au modèle génératif. Le modèle génératif reçoit la première phrase et la poursuit jusqu'à la fin de la composition. Ensuite, le modèle de synthèse insère un deuxième paragraphe dans ce texte, qui reflète la position de l'auteur.


Voici un exemple de composition typique que nous avons obtenue sur un tel modèle (les modèles sont en italique, la première phrase du modèle thématique est en gras).


Le sort de l'homme à la guerre, l'amour de sa patrie, son amour pour sa mère sont des sujets d'intérêt pour Tolstoï , ceux qui l'ont quitté. et deux princes Andrei Tolstoy - Pierre et Andrei - ont traversé la guerre. Les mauvaises relations humaines ne sont pas non plus dans leur cours, mais dans la vie, les normes civiles et morales. La liberté réside dans le fait qu’ils sont une personne gentille et terrible, un sentiment d’ouverture et de trahison. Ils sont la liberté - de Dieu - pour Napoléon, pour lui - Napoléon. Cela leur apporte le bien et le mal, donc de grands héros composent ce qui sont les représentants du même peuple.

L'auteur illustre ce problème avec l'exemple des phrases «Quand je dis qu'une personne ne doit pas aller contre sa conscience, ne doit pas faire affaire avec elle, je ne veux pas du tout dire qu'une personne ne peut pas ou ne doit pas faire d'erreurs, trébucher.» et "je lui ai répondu qu'il était non seulement possible, mais aussi nécessaire d'écrire sur les erreurs des gens formidables, qu'un homme est grand non parce qu'il ne s'est trompé en rien." À mon avis, le lecteur observe la position de l'auteur dans la phrase: "Mais même si vous n'avez pas préservé l'honneur de votre jeunesse, vous pouvez et devez le retrouver à l'âge adulte, vous casser, trouver le courage et le courage d'admettre vos erreurs."

La guerre est cette partie de la personnalité qui devrait donner à une personne la possibilité d'un autre service universel. L'avenir est la libération, le désir de liberté, un amour ardent pour la patrie. C'est une croyance en la possibilité de la patrie. On peut dire que, malgré le christianisme, Pierre ne peut pas perturber le cours de l'histoire, mais il l'a fait en fait. La guerre de 1812 Tolstoï montre comment la lutte du nouveau Napoléon avec un environnement folklorique simple et avec le peuple.

Nous sommes confrontés à l'ensemble de la Russie, et Novgorod fait partie de la Russie. L'idée principale qu'il a est la connexion du peuple russe avec la nature. Le roman de Tolstoï «Guerre et paix» est une œuvre dans laquelle les problèmes sociaux sont étroitement liés, la vie consiste dans le fait que les voix, le bien et le mal - tout cela ne cache pas Tolstoï. Dostoïevski a écrit que pour Tolstoï, c'est une position politique. L'auteur met sa place dans le roman: ici l'écrivain montre des gens qui sont derrière les murs de la patrie. Tolstoï en donne un exemple et donne un exemple du premier et du personnage principal.

L'architecture de base résultante


La solution finale a la logique suivante:


  1. Le travail entrant est tapé par le classificateur - il obtient un type de 1 à 27.
  2. Chacune des 27 tâches a son propre solveur - un script avec des formulations de tâches d'analyse, qui reçoit les informations nécessaires du pool de modèles ML disponibles et des bases de connaissances et émet la réponse dans le format correct.

Le pool de modèles et de bases de connaissances pour tous les solveurs est commun, il est chargé en mémoire une fois.



Quel est le résultat?


La ligne de base (jusqu'à présent sans vérification de dissertation) donne 27 points sur 100 - plus de 60 équipes ont profité de la solution de base. Selon les critères de l'examen final, pour obtenir un certificat, vous devez obtenir 24 points, mais pour soumettre des documents à l'université, vous avez besoin d'un minimum de 36 points. Cette marque a désormais dépassé les 2 meilleures équipes.




De nombreux participants utilisent notre solution comme une approche de base, d'amélioration et d'affinage. Si vous êtes intéressé par l'intelligence artificielle et êtes prêt à vous essayer à une tâche aussi intéressante, vous avez encore quelques semaines! Et nous continuons nous-mêmes à améliorer les modèles, sortant de la compétition sous le surnom CDS_team


La finale du concours aura lieu les 8 et 9 novembre lors de la conférence AI Journey à Moscou. Inscrivez-vous au concours et à la conférence ici .

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


All Articles