BSI Lab: Frag die Maschine

Maschinen beantworten deine Fragen. Klingt spannend. Ist es auch realistisch? Ob und wie einfach das möglich ist, testen wir im BSI Lab.

Die Mission: Können wir mit Hilfe von Machine Learning Fragen beantworten? Die Methodik: Wir trainieren ein neuronales Netz, um aus einem Text die Antwort auf eine Frage zu extrahieren.
Der Mehrwert: Mit dieser Technik können intelligente Hilfe-Funktionen für unsere Produkte gebaut werden.

Florian Widmer, Christian Braun und Daniel Widmer beschäftigten sich in ihrem Lab-Projekt mit der Frage, wie einfach Maschinen unsere Fragen beantworten können.

Die Mission unseres BSI Labs

Unsere Mission war es, Machine Learning zur Beantwortung von Fragen einzusetzen. Dazu haben wir das von Google vortrainierte neuronale Netzwerk BERT mit einem Frage-Antwort-Datenset weiter trainiert. Unsere Vision war es, damit die Hilfe-Funktion von BSI CRM weiter zu verbessern. Der Benutzer soll eine Frage stellen können und daraufhin eine Stelle in der CRM-Dokumentation hervorgehoben bekommen, welche diese beantwortet. Diese Hilfe könnte auf beliebige Dokumentationen angewendet werden, beispielsweise auch auf einen Leitfaden für Call Center-Mitarbeiterinnern und -Mitarbeiter.

Welches Tool ist dafür geeignet?

BERT ist ein neuronales Netz, welches von Google als Open Source zur Verfügung gestellt wird. Es wurde auf einen sehr grossen Sprachkorpus trainiert und kann für verschiedene Tasks eingesetzt werden, indem Transfer Learning durchgeführt wird. Bei Transfer Learning werden einzelne Schichten eines neuronalen Netzes erneut trainiert. Man friert also quasi einige Schichten ein und trainiert gezielt einzelne andere Schichten.

Für das Transfer Learning verwendeten wir SQUAD, das Stanford Question Answering Dataset. Dieses enthält rund 100’000 Ausschnitte aus Wikipedia mit Fragen und entsprechenden Antworten. Um ein Transfer Learning durchzuführen und ein neuronales Netz wie BERT so zu trainieren, dass es Fragen beantwortet, kann ein solches Datenset eingesetzt werden.

Ausserdem haben wir PyTorch sowie BSI Brains genutzt. Ersteres ist eine Python-Implementierung verschiedener Neuronaler Netze und deren Komponenten, zweiteres eine AI-Lösung zum effizienten Aufsetzen von AI-Pipelines mit nahtloser Integration zu BSI CRM und BSI Studio.

Mission accomplished?

  • Wir konnten basierend auf BERT erfolgreich ein Transfer Learning mit dem SQUAD Datenset durchführen. Dieses trainierte Modell haben wir dann für weitere Tests verwendet.
  • Um das Frage-Antwort-Spiel erfolgreich anzuwenden, sind grosse Datensets nötig. Unsere Experimente mit kleineren Datensets (z.B. 1000 Frage-Antwort-Paare) lieferten keine zufriedenstellenden Resultate.
  • Wir haben eine Web-App entwickelt, welche neben der Abfrage an BERT auch versucht, einen passenden Wikipedia-Artikel zu finden. Zuerst klingt es verlockend: ein Neuronales Netz beantwortet Fragen. Es stellte sich jedoch heraus, dass dazu gute Input-Texte vonnöten sind, welche nicht so einfach zu beschaffen sind.

Fazit

Die Beschaffung der Trainingsdaten stellte sich in unserem Lab-Projekt als unlösbare Knacknuss heraus. Es zeigte sich schnell, dass wir nur mit grossem Aufwand an deutsche, für unseren Anwendungsfall zugeschnittene Trainingsdaten in Form von Fragen und Antworten herankommen würden. In einem Selbstversuch prüften wir, wie viele Fragen und Antworten wir aus Wikipedia-Einträgen erstellen können – mit ernüchterndem Ergebnis. Ein eigenes Datenset zu diesem Zweck zu erstellen, wäre schlicht zu aufwändig.

Das Training von BERT mit bestehenden Daten sowie die Integration einer ganzen Pipeline in BSI Brains zur Beantwortung von Fragen war hingegen unkompliziert. Die Herausforderung bei der Beantwortung von Fragen aus Wikipedia war es, genügend gute Textausschnitte zu finden, auf welchen das Neuronale Netz seine Berechnung ausführen konnte. Hier hat sich gezeigt, dass neben BERT auch andere Machine Learning Tools oder klassische Methoden der Spracherkennung notwendig sind, um das Ziel zu erreichen.

Es zeigte sich, dass moderne Modelle wie BERT sehr einfach zu verwenden sind. Die Beschaffung von Trainingsdaten und die Konfiguration der Input-Pipeline stellen dabei die grössten Hürden dar. BSI Brains bietet eine Plattform, um verschiedene Varianten schnell und unkompliziert auszuprobieren und auszuwerten. Somit steht der Verarbeitung von Texten mit BSI Brains in Anwendungsfällen, bei denen bereits genügend passende Trainingsdaten zur Verfügung stehen, nichts im Weg.