Wenn Sie zum Zeitpunkt der NUTZUNG die High School abgeschlossen haben, wissen Sie, dass alle darin enthaltenen Aufgaben eine Reihe von Standardformulierungen enthalten und nach Typ sortiert sind. Dies erleichtert zum einen die Vorbereitung auf die Prüfung: Der Student weiß bereits, was er in der Aufgabe tun soll, ohne die Bedingungen zu lesen. Andererseits kann jede Änderung der Reihenfolge der Fragen zu Problemen führen. Grob gesagt wird das Ergebnis mehr davon beeinflusst, wie sehr eine Person Entscheidungen zum Automatismus gebracht hat und nicht davon, wie sie argumentiert. Die Prüfung wird wie ein Skript.

Im Rahmen der AI Journey-Konferenz haben wir beschlossen, einen Wettbewerb abzuhalten, um einen Algorithmus zu entwickeln, der eine Prüfung nicht schlechter als eine Person bestehen kann. Die Teilnehmer erhalten Testversionen von Aufgaben, mit denen Lösungen validiert und Schulungen durchgeführt werden können. Als Mitarbeiter der Sberbank können wir keinen Preisfonds beanspruchen, haben aber dennoch versucht, dieses Problem zu lösen und möchten darüber sprechen, wie wir es gemacht haben. Spoiler - Zertifikat haben wir erhalten.
Ein bisschen Theorie
Die Anwendung neuronaler Netze auf Aufgaben heute ist bereits eine Geschichte aus der Serie: "So etwas gab es noch nie, und hier ist es wieder." Aber auf welche neuen Aufgaben eines neuronalen Netzwerks sollte wirklich angewendet werden?
Historisch gesehen haben Theoretiker die folgenden Fähigkeiten in das Konzept der künstlichen allgemeinen Intelligenz eingebracht:
- Entscheidungsfindung angesichts von Unsicherheit
- selbstlernend
- Betrieb einer Wissensbasis über die Welt
- Multidisziplinarität, gemeinsame Verarbeitung von Informationen aus verschiedenen Quellen (Text, Bilder, Ton)
Die Metapher „Gehirn als Computer“ hat diese Anforderungen weitgehend bestimmt, und keine von ihnen, außer für das Training, muss von AI ¯ \ (ツ) / ¯ noch vollständig implementiert werden
In den letzten Jahren konnten Sie die ersten Versuche beobachten, komplexere Systeme zu erstellen - zum Beispiel hat Aristo vom Allen Institute 90% den Test für Allgemeinwissen für die achte Klasse abgeschlossen.
Die Abschlussprüfung in russischer Sprache hat 27 Aufgaben, von denen 26 Aufgaben mit einer Auswahl an Antworten oder einer offenen Antwort sind, in die Sie Ihre eigene Version eingeben können, und die letzte ist ein Aufsatz über den Text. Das heißt, bei der ersten Aufgabe geht es immer um die Bedeutung des Textes, bei der vierten - um die Betonung, die siebte - um häufige Sprachfehler usw. Diese Aufgabe versetzt ML-Systeme in die Situation eines „Mittelschülers“, in dem Sie im Voraus grundlegende Fähigkeiten und Kenntnisse erwerben und dann Fragen mit diesen richtig beantworten müssen.
Um die russische Sprache zu bestehen, muss der Schüler:
- richtig schreiben und sprechen lernen,
- lerne deine Gedanken zu strukturieren
- Verstehen Sie die logischen Zusammenhänge im Text, kennen Sie den Stil, die Rechtschreibung, die Orthoepie usw.
- Lesen Sie eine beeindruckende Liste von Literatur von den berühmtesten Denkmälern der antiken russischen Literatur bis zur Moderne und bearbeiten Sie die Hauptwerke, Handlungen, Probleme oder
schreiben Sie ab .
Da wir wissen, dass moderne NLP-Methoden immer noch viele solcher Aufgaben bewältigen können, haben wir uns entschlossen, sie auszuprobieren.
Alle Daten, die wir erhalten haben, werden im JSON-Format präsentiert, sind standardisiert und enthalten einen klaren Wortlaut und Text, auf dem Sie die Aufgabe erledigen müssen. Beantworten Sie die Optionen, wenn sie in der Frage vorgesehen sind.

Screenshot von Yandex.Tutor
Die Fragen in den Aufgaben sind für die Maschine zu florid formuliert - Sie müssen nicht nur die Aufgabe erledigen -, um Fehler im Text zu finden und zu korrigieren, die fehlenden Buchstaben zu platzieren, Sätze zu finden, die die gegebenen Bedingungen erfüllen, aber auch die Antwort richtig zu schreiben. Dies kann der Ausdruck selbst mit einem Fehler sein oder umgekehrt Beispiele ohne Fehler, die Anzahl dieser Beispiele, die Anzahl der Sätze in aufsteigender Reihenfolge usw. Und dann erinnerten wir uns an den Klassiker:
In der Kunst, Fragen zu stellen, war der Gesetzgeber Goracek ein echter Virtuose. Er zwang die Jünger, die zehn Gebote des Herrn umgekehrt aufzulisten oder forderte:
- Ludwik, antworte schnell, Bösewicht, welches Gebot steht am Ende an dritter Stelle, bevor "Nicht töten"?
Jaroslaw Hasek, "Die Lehre aus dem Gesetz Gottes"
Wie sind wir in der Grundlinie damit umgegangen?
Antwort: ¡ɯǝɓn̯ɔ ʞɐɯ und

Da es nicht mehr als 27 Arten von Aufgaben gibt, haben wir für die Trainingsdaten einen JSON-Parser erstellt, der den genauen Wortlaut aus dem gesamten Aufgabentext auswählt - was und wie zu tun ist - und für diese Formulierungen den einfachsten linearen Klassifikator für n-Gramm Wörter und SVM erstellt (Support Vector Machines), die die Jobnummer vorhersagten, und das System erhielt das Job- und Antwortformat: https://github.com/sberbank-ai/ai-journey-2019 .
Möglicherweise möchte ich in diesem Teil der Lösung einen Aufmerksamkeitsmechanismus oder ähnliches implementieren, um Verbindungen zwischen Formulierungen und Fragetypen zu finden. Wir hoffen, dass einer der Teilnehmer eine solche Lösung umsetzt.
Entscheidungsbewertung
Bei der Bewertung einer solchen Lösung werden zum Vergleich mit einer Person die üblichen Klassifizierungsmetriken (Genauigkeit, f-Maß) nicht verwendet, sondern es wird eine 100-Punkte-Bewertungsskala verwendet , in der die Punkte für korrekt erledigte Aufgaben zusammengefasst werden.
Problemlösungen werden automatisch überprüft und was ist mit dem letzten Aufsatz zu tun? Lehrer und Methodologen aus Moskau und Nowosibirsk nehmen im Rahmen des Wettbewerbs an der Bewertung von Aufsätzen teil. Sie bewerten die gesammelten Aufsätze nach unabhängigen Kriterien, einschließlich Rechtschreibung, Zeichensetzung, logischer Kohärenz des Textes, Vorhandensein literarischer Argumente und Position des Autors. Im Allgemeinen ist alles wie in der Schule.
Basisdesign
Nach der Implementierung des JSON-Parsers und des Klassifikators von Fragen erhielten wir bestimmte Arten von Aufgaben. Sie kommen auf diese Liste:
- Rechtschreibprüfung durchführen, Buchstaben einfügen, Fehler korrigieren (H und HH, NOT und NI zusammen - getrennt, Wurzeln abwechselnd usw.);
- im Kontext die Bedeutung eines mehrwertigen Wortes verstehen (Wahl der Antwort im Kontext);
- Markieren Sie die Hauptgedanken im Text (Auswahl aus einer Liste von Sätzen).
- Setzen Sie Satzzeichen (wählen Sie Stellen aus, an denen Kommas, Bindestriche usw. benötigt werden);
- Wörter betonen (Fehler finden);
- Finden Sie grammatikalische Fehler in den Beispielen und geben Sie deren Typ an (korrelieren).
- Allianzen zwischen Teilen des Textes abschreiben (basierend auf der Logik des Textes);
- Schreiben Sie einen Aufsatz über den Text (finden Sie das Problem und decken Sie es auf).
Mit der Methode des weiteren Peerings haben wir alle Arten von Aufgaben auf bekannte Textverarbeitungsmethoden reduziert.
EmbeddersEmbedder (word2vec, fasttext, GloVe) werden verwendet, um Vektordarstellungen einzelner Wörter, Sätze und Texte zu erhalten. Wir verwenden BERT für Pytorch - einen universellen Transformator, der häufiger verwendet wird, um die Eigenschaften von Wörtern zu erhalten (von Google). Ein solcher Transformator liefert ein hohes Ergebnis bei Aufgaben, bei denen Sie die Bedeutung eines mehrwertigen Wortes verstehen, die aussagekräftigsten Sätze im Text hervorheben usw. müssen. - Aufgaben werden auf die Wahl der nächstgelegenen Einbettung durch Kosinusmaß reduziert.
SprachmodelleSprachmodelle können nützliche Informationen über die Wahrscheinlichkeit des nächsten Wortes, der Satzmultiplikation, liefern. In Verbindung mit Prüfungen können sie verwendet werden, um Sprachfehler zu erkennen und zu korrigieren (nichtfrequente Fragmente durch Fragmente mit ähnlichen Frequenzen zu ersetzen) und Texte zu generieren. In der Grundlinie verwendeten wir die Frequenzbasis des n-Gramms des nationalen Korpus der russischen Sprache und wählten normative Wörter aus, und diejenigen, die abwesend waren, wurden als Kandidaten für Fehler angesehen. Wir verwenden diese Basis auch, um fehlende Buchstaben in Wörter zu ersetzen. Zur Erstellung der Aufsatztexte haben wir auch das „Universalmodell“ - ULMFit - verwendet . Dies ist das Multiple-Dropout-LSTM von fast.ai, das sich sehr gut zum Generieren von Sequenzen eignet. Wir haben sie in Schulaufsätzen über Literatur geschult, die wir online gesammelt haben. Es stellte sich heraus, obwohl sinnlos, aber fast ohne Fehler.
Parser von Morphologie und SyntaxUm den Teil der Sprache, Fälle, Anzahl, Geschlecht, normale Form des Wortes und die Verbindungen zwischen Wörtern zu bestimmen, verwendeten wir pymorphy2 und UDPipe.
KlassifikatorenInterpunktionsaufgaben können auf Klassifizierung reduziert werden - setzen Sie ein Komma an eine bestimmte Stelle oder nicht, nach welcher Regel ein Bindestrich gesetzt wird usw.
Wir haben zwei Arten von Aufgaben mit den folgenden Arten von Architekturen gelöst:
Das siamesische neuronale Netzwerk empfängt zwei BERT-Einbettungen eines Satzpaars am Eingang und entscheidet, ob Striche, Doppelpunkte oder nicht nach einer Regel gesetzt werden.
Der CatBoost-Klassifizierer empfängt ein Eingabefenster für die Tags eines Wortteils der Länge 6 (in der Form „NOUN VERB NOUN ADJ NOUN NOUN“) und entscheidet, ob ein Komma in die Mitte gesetzt wird oder nicht.
WissensdatenbankenWas die Schüler beachten und lernen müssen, haben wir aus offenen Quellen gesammelt:
1 Orthoepisches Wörterbuch (Stress) - wie im Lehrplan.
2 Wörterbuch der Tropen - literarische Mittel: Synonyme, Antonyme, Paronyme, Ausdruckseinheiten usw., die von Literaturstellen gesammelt wurden.
3 Sammlung von Schulaufsätzen zur Literatur - zur Weiterbildung des generativen Modells.
KompositionsmodelleTexterzeugung, Zusammenfassung, thematische Modellierung. Hier war der Denkspielraum groß. Am Ende haben wir, wie bereits erwähnt, ULMFit verwendet, um Text zu generieren. Der Aufsatz sollte jedoch im Text enthalten sein und viele Kriterien erfüllen. Wenn wir bedenken, dass wir aufgrund von ULMFit Rechtschreibung und Kohärenz des Textes erhalten, bleiben zumindest die Position des Autors und die thematische Kohärenz unserer Arbeit und dieses Textes erhalten.
Wir haben diese Unteraufgaben wie folgt gelöst:
- LDA + bereitete den ersten Satz vor . Die gesammelten Versionen von Schulaufsätzen werden auf der Grundlage des Wortes n-Gramm in 30 Themen gruppiert, die wir interpretiert haben. Es stellte sich heraus, dass jedes der Themen mit der Arbeit eines oder zweier Schriftsteller zu einem verwandten Thema zusammenhängt - Arbeiten über das Schicksal Russlands, über die Situation des Volkes, über die Werke Dostojewskis, über die Arbeit von A. Achmatowa und seine Bedeutung für die russische Kultur des 20. Jahrhunderts usw.
- TextRank + Vorlagen . Der Zusammenfassungsalgorithmus zieht die 2-3 aussagekräftigsten Sätze aus einem bestimmten Text heraus, und diese Sätze werden in eine Reihe von Vorlagen eingefügt, die Zitate mit einer Autorenposition umrahmen.
Letzte Pipeline: Das thematische Modell bestimmt das Thema des Textes und gibt dem generativen Modell den ersten Satz. Das generative Modell erhält den ersten Satz und setzt ihn bis zum Ende der Komposition fort. Anschließend fügt das Zusammenfassungsmodell einen zweiten Absatz in diesen Text ein, der die Position des Autors widerspiegelt.
Hier ist ein Beispiel für eine typische Komposition, die wir für ein solches Modell erhalten haben (Vorlagen sind kursiv gedruckt, der erste Satz aus dem thematischen Modell ist fett gedruckt).
Das Schicksal des Menschen im Krieg, die Liebe zu seiner Heimat, seine Liebe zu seiner Mutter sind Themen, die Tolstoi , die ihn verlassen haben, interessieren . und zwei Fürsten Andrei Tolstoi - Pierre und Andrei - gingen durch den Krieg. Böse menschliche Beziehungen sind auch nicht in ihrem Verlauf, sondern in Bezug auf Leben, bürgerliche und moralische Standards. Freiheit liegt in der Tatsache, dass sie eine freundliche und schreckliche Person sind, ein Gefühl der Offenheit und des Verrats. Sie sind Freiheit - von Gott - für Napoleon, für ihn - Napoleon. Es bringt ihnen Gut und Böse, also bilden große Helden Vertreter desselben Volkes.
Der Autor veranschaulicht dieses Problem am Beispiel der Sätze: "Wenn ich sage, dass eine Person nicht gegen ihr Gewissen verstoßen, keinen Deal mit ihr machen sollte, meine ich überhaupt nicht, dass eine Person keine Fehler machen kann oder sollte, stolpern." und "Ich antwortete ihr, dass es nicht nur möglich, sondern auch notwendig ist, über die Fehler großer Menschen zu schreiben, dass ein Mann großartig ist, nicht weil er sich in nichts geirrt hat." Meiner Meinung nach beobachtet der Leser die Position des Autors im Satz: "Aber selbst wenn Sie die Ehre Ihrer Jugend nicht bewahrt haben, können und müssen Sie sie im Erwachsenenalter wiedererlangen, sich brechen, den Mut und den Mut finden, Fehler zuzugeben."
Krieg ist der Teil der Persönlichkeit, der einer Person die Möglichkeit eines anderen Universaldienstes geben sollte. Die Zukunft ist Befreiung, der Wunsch nach Freiheit, eine leidenschaftliche Liebe zum Heimatland. Dies ist ein Glaube an die Möglichkeit des Vaterlandes. Wir können sagen, dass Pierre trotz des Christentums den Lauf der Geschichte nicht stören kann, aber er tat es tatsächlich. Der Krieg von 1812 Tolstoi zeigt, wie der Kampf des neuen Napoleon mit einer einfachen Volksumgebung und mit den Menschen.
Wir sind mit ganz Russland konfrontiert, und Nowgorod ist ein Teil Russlands. Die Hauptidee, die er hat, ist die Verbindung des russischen Volkes mit der Natur. Tolstois Roman "Krieg und Frieden" ist ein Werk, in dem soziale Probleme eng miteinander verbunden sind. Das Leben besteht in der Tatsache, dass Stimmen, gut und böse - all dies verbirgt Tolstoi nicht. Dostojewski schrieb, dass dies für Tolstoi eine politische Position sei. Der Autor nimmt seinen Platz im Roman ein: Hier zeigt der Schriftsteller Menschen, die sich hinter den Mauern des Vaterlandes befinden. Tolstoi gibt ein Beispiel dafür und gibt ein Beispiel für die erste und Hauptfigur.
Die resultierende Basisarchitektur
Die endgültige Lösung hat die folgende Logik:
- Der eingehende Job wird vom Klassifizierer eingegeben - er erhält einen Typ von 1 bis 27.
- Jede der 27 Aufgaben hat ihren eigenen Löser - ein Skript mit Analyse der Aufgabenformulierungen, das die erforderlichen Informationen aus dem Pool verfügbarer ML-Modelle und Wissensdatenbanken erhält und die Antwort im richtigen Format ausgibt.
Der Pool von Modellen und Wissensdatenbanken für alle Löser ist gemeinsam, er wird einmal in den Speicher geladen.

Was ist das Ergebnis?
Die Baseline (bisher ohne Überprüfung des Aufsatzes) ergibt 27 von 100 Punkten - mehr als 60 Teams nutzten die Basislösung. Gemäß den Kriterien der Abschlussprüfung müssen Sie 24 Punkte erzielen, um ein Zertifikat zu erhalten. Um jedoch Dokumente an die Universität zu senden, benötigen Sie mindestens 36 Punkte. Diese Marke hat jetzt die 2 besten Teams bestanden.

Viele Teilnehmer verwenden unsere Lösung als grundlegende, verbessernde und verfeinernde Ansätze. Wenn Sie sich für künstliche Intelligenz interessieren und bereit sind, sich an einer so interessanten Aufgabe zu versuchen, haben Sie noch ein paar Wochen Zeit! Und wir selbst verbessern unsere Modelle weiter und setzen uns unter dem Spitznamen CDS_team von der Konkurrenz ab
Das Finale des Wettbewerbs findet am 8. und 9. November auf der AI Journey-Konferenz in Moskau statt. Melden Sie sich hier für den Wettbewerb und die Konferenz an .