Unsere Erfahrung mit DeepPavlov: Ein Sprachassistent in 20 Tagen, der 5000 Anrufe über die Hotline erhält

Als das Selbstisolationsregime angekündigt wurde , erhielt die Coronavirus-Hotline in Tatarstan viele Fragen von Anwohnern. Um die Call-Center-Betreiber zu entlasten, haben wir im Digital Transformation Center der Republik zusammen mit dem KI-Kommissar in Tatarstan einen Sprachassistenten entwickelt, der einfache Fragen beantwortet.







Um Anrufe entgegenzunehmen, haben wir die Plattform Voximplant verwendet und die Fragen und Antworten erkannt - DeepPavlov . Der Sprachassistent wurde in zweieinhalb Wochen gestartet und half bei der Verarbeitung von 5.000 Anrufen. Wir haben es geschafft, ein Produkt auf den Markt zu bringen, mit dem die Einwohner von Tatarstan zuverlässige Informationen von den Behörden erhalten und einfach auf die Straße gehen konnten. Im Folgenden erfahren Sie, wie wir es gemacht haben.



Was war die Aufgabe?



Wir hatten ursprünglich geplant, einen Sprachassistenten zu entwickeln, der den Menschen hilft, Regierungsdienste zu erhalten und häufig gestellte Fragen zu beantworten. Aber als die ganze Spielerei mit Coronavirus begann, wurde uns klar, dass Lilia beim Entladen des Callcenters helfen würde: zum Beispiel bei der Hotline beraten, digitale Ausweise erhalten und Arbeitslosengeld erhalten. Alles, was eine Person auf der Website der staatlichen Dienste herausfinden kann, kann von Lilia erfahren werden, und Sie können auch einfach mit ihr chatten.



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



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




Neben der Ausstellung digitaler Ausweise musste Lilia auch Fragen von Bewohnern Tatarstans beantworten. Wir haben einen Sprachassistenten konzipiert, der häufig gestellte Fragen wie "Was müssen Sie tun, um einen Pass zu erhalten?" Und "Hilft Ihnen Ingwer bei Coronaviren?" Beantwortet.



Um dieses Problem zu lösen, könnten wir eine regelmäßige IVR durchführen. IVR dauert jedoch lange, und wenn Sie dies normal tun, müssen Sie eine komplexe Architektur erstellen. Im Allgemeinen war dafür keine Zeit. Wir dachten, es wäre einfacher, einen Sprachassistenten zu erstellen (der Sprache in Text übersetzen, verarbeiten, Absichten klassifizieren und eine Sprachantwort bereitstellen kann). Hehe.



Wie es aus der Sicht des Benutzers aussieht



Hier ist alles einfach.



  1. Der Mann ruft die Hotline an, ihm wird angeboten, zwischen einem Gespräch mit dem Operator und Lilia zu wählen. Sie können jederzeit zu einem Live-Operator wechseln.
  2. .
  3. , . , -.








Um Anrufe entgegenzunehmen und Skripte zu implementieren, haben wir die Voximplant-Plattform verwendet: Wir haben ein Skript geschrieben und ein Anrufbeantwortersignal angeschlossen. Lily begrüßte den Mann und fragte, was er wollte.



Der Anrufer stellt telefonisch eine Frage. Dann fing Lilia an zuzuhören. Bei VoxImplant haben wir das ASR-Modul verwendet, um Sprache in Text zu übersetzen. Es nennt sich das Yandex.SpeechKit-Modell unter der Haube. Auf diese Weise wird der Audiostream in Text übersetzt, der dann mit einem Token versehen und gestoppt wird. Wir haben auch versucht, Funktionen zu extrahieren: NER, POS und Chunk für grundlegende ML-Methoden, aber all dies hat sehr lange gedauert.







Ausgehend von der Frage "Bitte sagen Sie mir, wie Sie sich vor Coronavirus schützen können" werden zunächst "Schutz" und "Coronavirus" gestoppt und in eine Vektordarstellung umgewandelt. Die Vektordarstellung von Entitäten ist im Klassifikator für Coronavirus (und später für öffentliche Dienste) enthalten. Jetzt macht DeepPavlov das alles.



Ferner sind je nach Vertrauensniveau verschiedene Optionen möglich:



  1. Wenn das Netzwerk die Frage mit ausreichender Sicherheit klassifiziert hat (basierend auf der Studie wurden die Schwellenwerte individuell nach Klassen ausgewählt), wird Lilia die Frage beantworten.
  2. Wenn das Netzwerk eine Antwort mit geringem Vertrauen hat, gehen wir davon aus, dass dies eine Frage ist, die wir nicht in unserem Datensatz behandelt haben (die Frage bezieht sich jedoch immer noch auf die Coronavirus-Domäne), oder dass die Person nur über ein anderes Thema sprechen wollte. Zum Beispiel fragte er "Wer ist Elon Musk?"


Für solche Fragen haben wir das auf dem Wikipedia-Dump trainierte BERT-Modell für das Problem der Beantwortung von Fragen zur Wissensbasis verwendet.



Am Ende überprüft Lilia notwendigerweise die Richtigkeit der Erkennung der Absicht und die Qualität der Antwort, indem sie fragt: "Habe ich Ihre Frage beantwortet?" Wenn der Benutzer mit Ja antwortet, wartet Lilia auf die nächste Frage. Wenn nicht, werden wir Sie bitten, die Frage neu zu formulieren und den gesamten Zyklus erneut zu durchlaufen. Es kommt also vor, dass dies nicht funktioniert. Dann treten Live-Operatoren in die Schlacht ein.



Jetzt spricht Lilia mit einer angenehmen Stimme eines Sprachsynthesizers von Yandex - wir haben die Tonart leicht geändert und die Geschwindigkeit erhöht. Manchmal verwechselt Lily den Akzent, aber dies kann mit Markup behoben werden. Natürlich möchte ich Tatar hinzufügen, aber bisher ist es schwierig.



Insgesamt dauerte das Projekt unter Berücksichtigung von Datensätzen zweieinhalb Wochen: Eine Idee kam auf, wir diskutierten das Projekt mit dem Minister und, wie wir sagen, Algen. Eine Woche wurde für Schätzung und Forschung aufgewendet, die Entwicklung dauerte weitere 10 Tage, dann haben wir zusätzliche Funktionen fertiggestellt und angeschraubt. Die Hauptpferde waren Nvidia RTX2070. BERTs benötigten ca. 12-16 GB Videospeicher.



Von LSVM und Catboost bis DeepPavlov



Während des Entwicklungsprozesses haben wir verschiedene Klassifikatormodelle verwendet. Zuerst haben wir maschinelle Lernmodelle wie Random Forest, LSVM, Catboost und Logreg ausprobiert. Im Allgemeinen war die Genauigkeit von Modellen für maschinelles Lernen nicht sehr hoch. Warum so? Da viele der Benutzerfragen einander sehr ähnlich sind: Die Frage „Mein Kind hat Coronavirus, was zu tun ist“ ähnelt der Frage „Ist es möglich, während des Coronavirus mit einem Kind zu gehen?“, Obwohl dies unterschiedliche Kategorien sind und unterschiedliche Antworten erforderlich sind.



Wir könnten Entitätsextraktion, Probenahme und Forschung durchführen. Aber wir hatten es eilig. Aus diesem Grund haben wir uns für die Verwendung der DeepPavlov-Bibliothek von MIPT in unserer Arbeit entschieden, die eine Genauigkeit von 78% bei logistischer Regression und BERT - 84% ergab.







Die Genauigkeit der Antworten hängt vom Markup der Datensätze ab. Wir hatten eine Liste mit 200 Fragen, die die Leute an die Hotline stellten, aber sie waren nicht richtig getrennt. Zum Beispiel fragten die Leute, was zu tun ist, wenn einer ihrer Verwandten krank wird, und die Frage war, was die Symptome des Coronavirus sind. ML-Modelle wurden verwirrt.



Ergebnisse und Pläne für die Zukunft



Lilia arbeitete 2 Wochen und verarbeitete 5000 Anrufe. Während dieser Zeit erleichterte Lilia die Arbeit der Hotline-Betreiber erheblich - sie mussten keine trivialen und sich wiederholenden Fragen beantworten. Dank Lilia erhielten Benutzer Ausweise, beantworteten Fragen und sprachen nur. Natürlich gab es Benutzer, die sie beschimpften und darum baten, zum Betreiber zu wechseln.



Das Selbstisolationsregime wurde aufgehoben, digitale Ausweise sind nicht mehr gültig, aber Lilia ist immer noch in den Reihen. Sie beantwortet weiterhin Fragen zum Coronavirus, aber jetzt wurde ihr die Möglichkeit hinzugefügt, Fragen im Zusammenhang mit öffentlichen Diensten zu beantworten.



Wir sind ein Ministerium, und wir haben tatsächlich zwei Aufgaben: Damit andere Abteilungen normalerweise Technologien einsetzen und die Bewohner von Tatarstan einfach und unkompliziert mit dem Staat kommunizieren können. Die zweite Aufgabe wird perfekt vom Portal der staatlichen Dienste erledigt - unsere, lokale, nicht föderale. Dieses Portal ist jedoch eine Website und eine Anwendung, die für manche immer noch schwer zu erreichen ist. Und wenn die Bewohner nicht zum Portal gehen, geht das Portal zum Bewohner. Das heißt, wir bemühen uns, die Interaktion mit dem Portal für Personen zu vereinfachen, die das Internet nicht besonders nutzen.



Jetzt arbeitet das Ministerium für digitale Angelegenheiten von Tatarstan daran, dass die Menschen Regierungsdienste per Sprache und Chat erhalten können. Wir möchten einen universellen Assistenten schaffen, den Sie anrufen / schreiben und Antworten auf alle wichtigen Fragen erhalten können.



Bisher kann Lilia sagen, wie lange das Standesamt geöffnet ist, und wir planen, dass sie in Zukunft Zählerstände ablesen kann (dies ist jedoch nur dann der Fall, wenn wir das Problem mit der Sicherheit der Übertragung dieser Daten entscheiden). Im Allgemeinen verwandeln wir Lilia in ein separates Produkt.



Wenn Sie Lilia unterrichten möchten, heißen wir Sie in unserem Team willkommen.




All Articles