Architektur eines serverlosen Modells für maschinelles Lernen

In dieser Artikelreihe wird die Architektur eines serverlosen Modells für maschinelles Lernen (ML) erläutert, mit dem Support-Tickets vor dem Eingang bei einem Supportmitarbeiter angereichert werden.

Wenn Ihre Mitarbeiter wichtige Geschäftsentscheidungen treffen müssen, benötigen sie Zugriff auf relevante Daten. Während Logs einen guten grundlegenden Einblick bieten, erhöht sich der Aussagegehalt durch Hinzufügen von angereicherten Daten erheblich. Die Implementierung eines solchen Systems kann eine Herausforderung darstellen. In dieser Reihe wird eine mögliche Lösung vorgestellt.

Anforderungen und Architektur

Die Verwaltung eingehender Support-Tickets kann eine Herausforderung darstellen. Bevor Supportmitarbeiter mit der Bearbeitung eines Support-Tickets beginnen können, ist Folgendes erforderlich:

  • Sie müssen den Kontext des Support-Tickets verstehen.
  • Sie müssen ermitteln, wie ernsthaft das Problem für den Kunden ist.
  • Sie müssen entscheiden, welchen Umfang an Ressourcen sie für die Lösung des Problems verwenden.

Supportmitarbeiter erhalten von Kunden, die ein Support-Ticket erstellen, in der Regel nur wenige Informationen. Weitere Details werden oft erst durch diverse Rückfragen beim Kunden ermittelt. Das Hinzufügen automatisierter Informationen basierend auf den Ticketdaten erleichtert Supportmitarbeitern strategische Entscheidungen bei der Bearbeitung von Supportanfragen.

Nutzer füllen zum Einreichen eines Tickets in der Regel ein Formular mit mehreren Feldern aus. Nehmen wir für diesen Anwendungsfall an, dass die Support-Tickets nicht durch maschinelles Lernen angereichert wurden. Nehmen wir außerdem an, dass mit dem aktuellen Supportsystem seit mehreren Monaten Tickets verarbeitet werden.

Um mit dem Anreichern von Support-Tickets zu beginnen, müssen Sie ein ML-Modell trainieren, das bereits vorhandene, mit Labels gekennzeichnete Daten verwendet. Das Trainings-Dataset besteht in diesem Fall aus den Verlaufsdaten geschlossener Support-Tickets. Die erforderlichen Daten befinden sich in zwei Arten von Feldern:

  • Eingabefelder: Sie enthalten vom Nutzer eingegebene Formulardaten.
  • Zielfelder: Diese werden während der Verarbeitung des Tickets ausgefüllt.

In Kombination ergeben die Daten in diesen Feldern Beispiele zum Trainieren eines Modells, das genaue Vorhersagen liefern kann. In diesem Anwendungsfall wird unter anderem vorhergesagt, wie lange das Ticket voraussichtlich geöffnet bleibt und welche Priorität dem Ticket zugewiesen werden soll.

In dieser Artikelreihe werden vier ML-Anreicherungen erläutert, mit denen Sie diese Ziele erreichen:

  • Analyse der Stimmung des Nutzers basierend auf der Ticketbeschreibung.
  • Automatisches Taggen entsprechend der Ticketbeschreibung.
  • Vorhersage, wie lange das Ticket geöffnet bleibt
  • Vorhersage der Priorität hinsichtlich der Ticketzuweisung

Während des ML-Anreicherungs-Workflows:

  1. Ein Nutzer erstellt ein Ticket.
  2. Dadurch wird eine Funktion ausgelöst, die Modelle für maschinelles Lernen aufruft, um Vorhersagen zu treffen.
  3. Die Ticketdaten werden mit der von den ML-Modellen zurückgegebenen Vorhersage angereichert.
  4. Der Supportmitarbeiter trifft anhand des angereicherten Support-Tickets effiziente Entscheidungen.

Das folgende Diagramm veranschaulicht den Workflow.

Workflow für ML-Anreicherung

Ticketsystem

Unabhängig davon, ob Sie Ihr System von Grund auf neu erstellen, Open-Source-Code oder eine handelsübliche Lösung verwenden, wird in diesem Artikel von Folgendem ausgegangen:

  • Die Support-Tickets werden über eine markenspezifische, kundenorientierte UI generiert. Nicht alle Helpdesk-Tools bieten eine solche Option. Verwenden Sie in diesem Fall eine einfache Formularseite.
  • Das Helpdesk-Tool des Drittanbieters ist über eine RESTful API zugänglich, die ein Ticket erstellen kann. Ihr System verwendet diese API zum Aktualisieren des Ticket-Back-Ends.
  • Wenn Ereignisse auftreten, wird Ihre benutzerdefinierte Kunden-UI automatisch in Echtzeit aktualisiert.

Für diese Art der Implementierung bietet sich Firebase an:

  • Firebase ist eine Echtzeitdatenbank, die durch einen Client aktualisiert werden kann. Sie zeigt Echtzeitaktualisierungen für andere abonnierte Clients an.
  • Firebase kann mithilfe von Cloud Functions eine externe API aufrufen, die beispielsweise von Ihrer Helpdesk-Plattform zur Verfügung gestellt wird.
  • Firebase funktioniert auf Desktop- und mobilen Plattformen und kann in verschiedenen Sprachen entwickelt werden. Wenn Firebase unzuverlässige Internetverbindungen feststellt, kann es Daten im lokalen Cache speichern.

Serverlose Technologie und ereignisbasierte Auslösung

"Serverlose Technologie" kann auf verschiedene Arten definiert werden. In der Regel wird jedoch Folgendes angenommen:

  • Server sollten ein entferntes Konzept und für Kunden unsichtbar sein.
  • Aktionen werden normalerweise durch Funktionen ausgeführt, die von Ereignissen ausgelöst wurden.
  • Funktionen führen in der Regel kurzlebige Aufgaben aus, die nur wenige Sekunden oder Minuten dauern.
  • Funktionen dienen meist einem einzigen Zweck.

Zusammen optimieren Firebase und Cloud Functions die DevOps, indem sie die Infrastrukturverwaltung minimieren. Der operative Ablauf funktioniert wie folgt:

  1. Sie erstellen anhand von Datenbankaktualisierungen durch Firebase ein Cloud Functions-Ereignis.
  2. Der Client schreibt ein Ticket an die Firebase-Datenbank.
  3. Ein Auslöser in Cloud Functions führt verschiedene Hauptaufgaben aus:

    • Er erstellt mithilfe von maschinellen Lernalgorithmen Vorhersagen.
    • Er aktualisiert die Firebase-Echtzeitdatenbank mit angereicherten Daten.
    • Er erstellt mithilfe der konsolidierten Daten ein Ticket in Ihrem Helpdesk-System.

Support-Tickets anreichern

Sie können das automatische Taggen, die Sentimentanalyse sowie die Vorhersage der Priorität und der Zeit bis zur Lösung in zwei Kategorien gruppieren. Diese Kategorien basieren darauf, wie die maschinellen Lernaufgaben ausgeführt werden:

  • Für die Sentimentanalyse und das automatische Taggen werden von Google erstellte und bereits trainierte APIs für maschinelles Lernen verwendet. Vortrainierte Modelle bieten gegenüber eigenen Modellen möglicherweise weniger Anpassungsmöglichkeiten, sind aber sofort einsatzbereit.
  • Damit die Zeit bis zur Lösung und die Priorität von Tickets vorhergesagt werden können, muss ein Modell erstellt oder ein gespeichertes Modell verwendet werden und dieses mit benutzerdefinierten Daten wie Eingaben und Zielfeldern trainiert werden.

Sentimentanalyse und automatisches Taggen

Für Supportmitarbeiter kann es beim Logging von Support-Tickets von Vorteil sein, zu wissen, wie sich der Kunde fühlt. Eine Sentimentanalyse der Ticketbeschreibung hilft, diese Informationen zu ermitteln.

Außerdem ist es wichtig, eine allgemeine Vorstellung davon zu bekommen, was im Ticket erwähnt wird. Kunden geben beim Erstellen eines Support-Tickets in der Regel diverse Parameter aus einer Drop-down-Liste an. Bei der Beschreibung des Problems werden jedoch häufig weitere Informationen hinzugefügt. Mithilfe eines Tools, das die wichtigsten Wörter in der Beschreibung identifiziert, kann der Supportmitarbeiter die Thematik eingrenzen. Dieses Verfahren wird als automatisches Taggen bezeichnet.

Bei beiden Verfahren handelt es sich um allgemeine Lösungen, die sich einfach beschreiben lassen. Sie von Grund auf neu zu erstellen, ist jedoch eine Herausforderung. Die Verwendung eines leistungsfähigen trainierten Modells bietet bei umfassenden Textanalysen einen klaren Vorteil. Es verkürzt die Entwicklungszeit und vereinfacht die Infrastrukturverwaltung.

Eine gute Lösung für beide Anreicherungsformen ist die Cloud Natural Language API. Sie ist über Cloud Functions auf einfache Weise als RESTful API zugänglich. Bei der Natural Language API handelt es sich um ein vortrainiertes Modell, das erweiterte Google-Datasets verwendet, die mehrere Operationen ausführen können:

  • Sentimentanalyse
  • Entitätsanalyse mit Auffälligkeitsberechnung
  • Syntaxanalyse

In diesem Artikel wird sowohl die Sentiment- als auch die Entitätsanalyse verwendet. Für das automatische Taggen werden Wörter gespeichert, deren Auffälligkeit einen benutzerdefinierten Schwellenwert überschreitet.

Wenn Sie ein Modell verwenden möchten, das bestimmte Tags automatisch zurückgeben kann, erstellen Sie ein benutzerdefiniertes NLP-Modell (Natural Language Processing), das Sie individuell trainieren. Sie können auf diese Weise eine beliebige Tag-Kennzeichnung verwenden, da das Ziel darin besteht, die Beschreibung schnell zu analysieren und nicht das Ticket vollständig zu kategorisieren.

Zeit bis zur Lösung und Priorität von Tickets vorhersagen

Die Zeit bis zur Lösung eines Tickets und sein Prioritätsstatus hängen von den jeweiligen Eingaben (Ticketfeldern) in ein Helpdesk-System ab. Folglich können Sie nicht wie zum Taggen und für die Sentimentanalyse der englischen Sprache ein vortrainiertes Modell verwenden. Sie müssen stattdessen eigene maschinelle Lernfunktionen trainieren.

Während der Workflow für die Vorhersage der Zeit bis zur Lösung und der Priorität ähnlich ist, repräsentieren die beiden Aktionen zwei verschiedene Arten von Werten:

  • Die Zeit bis zur Lösung ist ein kontinuierlicher Wert.
  • Für die Priorität gibt es je nach Helpdesk-System mehrere vordefinierte Optionen.

Im Abschnitt zum maschinellen Lernen unter "Support-Tickets durch ein Modell für serverloses maschinelles Lernen verbessern" wird erläutert, wie Sie beide Probleme durch Regression und Klassifizierung lösen können.

Wählen Sie eine Architektur aus, die Folgendes ermöglicht:

  • Modelle mit benutzerdefinierten Daten trainieren
  • Modelle einsetzen und als RESTful API für Cloud Functions bereitstellen
  • Modelle nach Bedarf skalieren

Cloud Datalab ist ein von Google verwaltetes Tool, das Jupyter Notebooks in der Cloud ausführt. Cloud Datalab lässt sich in andere Produkte der Google Cloud Platform (GCP) integrieren. Sie können mit Cloud Datalab außerdem ML Workbench ausführen (hier ein paar Notebook-Beispiele). ML Workbench ist eine Python-Bibliothek, die die Verwendung zweier wichtiger Technologien ermöglicht: TensorFlow und AI Platform.

Zu den TensorFlow-Features gehören:

  • TensorFlow-Grafiken: Diese ausführbaren Dateien sind portabel und auf verschiedener Hardware ausführbar.
  • Estimator API: Hiermit können Sie vordefinierte oder benutzerdefinierte Modelle verwenden. In diesem Artikel wird ML Workbench verwendet, um Konzepte wie das Zuordnen von Daten zu einem Modell zu erläutern.
  • Experiment-Feature: Hiermit können Sie ein Modell in einer verteilten Umgebung trainieren und bewerten.

AI Platform ist ein verwalteter Dienst, der TensorFlow-Grafiken ausführen kann. Der Dienst erleichtert unter anderem die folgenden maschinellen Lernaufgaben:

  • Das Trainieren von Modellen in einer verteilten Umgebung mit minimalen DevOps
  • Die Integration in andere GCP-Produkte
  • Die Optimierung von Hyperparametern zur Verbesserung des Modelltrainings
  • Das Bereitstellen von Modellen als RESTful APIs, um Vorhersagen anhand von umfassenden Analysen zu treffen

ML Workbench verwendet im Hintergrund die Estimator API. Die Anwendung vereinfacht jedoch einen Großteil des Standardcodes, um Herausforderungen hinsichtlich der Vorhersage anhand von strukturierten Daten zu lösen. Die Estimator API bietet mehrere interessante Optionen wie das Verknüpfen von Merkmalen (Feature Crossing), die Diskretisierung zur Erhöhung der Genauigkeit und die Möglichkeit, benutzerdefinierte Modelle zu erstellen. Unser momentaner Anwendungsfall erfordert jedoch nur Regressor und Klassifikator und kaum Feature Engineering. Dieser Ansatz eignet sich gut für ML Workbench-Features, die auch ein verteiltes Training, das Lesen von Daten in Batches sowie die bedarfsorientierte vertikale Skalierung mit AI Platform unterstützen.

Je nachdem, wie tief Sie in TensorFlow und das Coding einsteigen möchten, können Sie zwischen ML Workbench und der TensorFlow Estimator API wählen. In den übrigen Teilen dieser Reihe wird schwerpunktmäßig ML Workbench behandelt, da es vornehmlich darum geht, ML-Modelle in einer serverlosen Umgebung aufzurufen. Sie finden darin jedoch auch Informationen zu TensorFlow und AI Platform.

Synchronisierung mit der Helpdesk-Plattform

Die Synchronisierung zwischen den beiden Systemen erfolgt in beide Richtungen:

Ausgehend
Wenn ein Kunde ein Ticket öffnet oder aktualisiert, löst Cloud Functions einen Firebase-Schreibvorgang aus. Cloud Functions aktualisiert auch die Helpdesk-Plattform von Drittanbietern, indem sie deren RESTful API aufruft.
Eingehend
Wenn ein Supportmitarbeiter die Helpdesk-Plattform zum Aktualisieren eines Tickets verwendet, löst die Plattform ein eigenes Ereignis aus und ruft einen Cloud Functions-HTTP-Handler auf, der Firebase und die Client-UI in Echtzeit aktualisiert.

Architektur

Die Architektur funktioniert mit folgendem Ablauf:

  1. Ein Nutzer schreibt ein Ticket an Firebase, das eine Cloud-Funktion auslöst.
  2. Die Cloud Functions-Funktion ruft drei verschiedene Endpunkte auf, um das Ticket anzureichern:

    • Einen AI Platform-Endpunkt, an dem die Priorität vorhergesagt werden kann
    • Einen AI Platform-Endpunkt, an dem die Zeit bis zur Lösung vorhergesagt werden kann
    • Die Natural Language API für die Sentimentanalyse und die Auffälligkeitsberechnung von Wörtern
  3. Die Cloud Function aktualisiert für jede Antwort die Firebase-Echtzeitdatenbank.

  4. Anschließend erstellt die Cloud Function mithilfe der RESTful API auf der Helpdesk-Plattform ein Ticket.

Diese Architektur wird im folgenden Diagramm veranschaulicht.

Serverlose Architektur

Nächste Schritte