Trainingsdaten für maschinelles Lernen
Was Künstliche Intelligenz oder etwas akademischer Maschinelles Lernen auszeichnet, ist, dass nicht jedes Ergebnis das Resultat eines komplett festgelegten Regelsystems ist, sondern dass die künstliche Intelligenz gelernt hat, was mit hoher Wahrscheinlichkeit das richtige Resultat ist. Das ist vor allem dann wichtig, wenn es kaum oder gar nicht möglich ist, alle möglichen Fälle in ein Regelwerk zu gießen, also z.B. wenn die Komplexität des Problems zu groß ist, beispielsweise, wenn ein Foto eines Gesichts einer Person zugeordnet werden soll.
Ein großer Teil der KI-Modelle lernt anhand von Beispielen. Bei der Gesichtserkennung können das z.B. ganz viele Bilder einer Person sein, auf denen man diese erkennt.
Überwachtes Lernen | Supervised Learning
Die Gesichtserkennung ist ein klassisches Beispiel für sogenanntes überwachtes Lernen. Das heißt, dass die Trainingsdaten aus Paaren bestehen, dem Input (das Foto vom Gesicht) und dem richtigen Ergebnis (der Name der Person, die auf dem Bild abgebildet ist). Weitere Beispiele für überwachtes Lernen sind z.B. KI-Modelle für das Sentiment (Stimmung: gut oder schlecht) eines Textes, bei denen die Trainingsdaten aus Paaren (Text + Stimmung) bestehen.
Dieses Lernen nennt sich dann überwacht, weil das richtige Ergebnis, man spricht hier auch von “Gold Label”, aus einer sicheren Quelle (also z.B. von einem menschlichen Überwacher) kommt. Bildlich gesprochen ist der Überwacher der Lehrer mit Lösungsheft (Problem + Gold Label bzw. “Lösung”) und kann die Versuche des Modells danach bewerten, sodass das geübte Modell weniger Fehler macht.
Selbst-überwachtes Lernen | Self-supervised Learning
Auch selbst-überwachtes Lernen benötigt Trainingsdaten und Beispiele. Hier zieht allerdings der Trainings-Algorithmus die wichtige Information einzig aus dem gegebenen Input. Dieses Lernverfahren ist z.B. oft bei den gerade sehr beliebten generativen Modellen (ChatGPT, Midjourney) im Einsatz. Bei Sprachmodellen wie denen, die hinter ChatGPT stecken, wird dann z.B. ein Teil eines vollständigen Textes “geschwärzt” (man sagt “maskiert”) und das Modell versucht zu erraten, was hinter dem geschwärzten (maskierten) Teil stecken könnte. Weil es auch ganz viele andere Texte schon “gesehen” hat, kann es sozusagen eine Statistik bilden. Und hier kann es ja selber durch Spicken hinter das Geschwärzte die richtige Antwort überprüfen. Weil bei den GPT-artigen Modellen der letzte Abschnitt des Textes maskiert wird, und sie dann ja quasi die Fortsetzung eines Textes vorhersagen, spricht man hier auch von generativen oder prediktiven Modellen.
Qualität und Quantität von Trainingsdaten
“Viel hilft viel” war auch im maschinellen Lernen ein passendes Mantra. Selbst wenn ein paar Trainingsdaten nicht optimal waren (z.B. nicht in der 100 % richtigen Form, oder mit nicht optimalem Gold Label), dann macht das im Schnitt nicht viel aus. Außerdem wurden immer größere neuronale Netze trainiert, die dazu tendieren, einfach die richtigen Ergebnisse “auswendig zu lernen”, wenn sie nicht genug Input bekommen, dass sie die Merkmale erkennen müssen, um richtige Voraussagen zu machen. Man spricht dann vom sogenannten “Overfitting”.
Viele Trainingsdaten bedeuten aber auch lange Trainingszeiten. Besonders dann, wenn man das Training auf teurer Hardware laufen lässt, kann man sich hier Fragen nach einer passenden Kosten-Nutzen-Relation stellen. Es gibt auch Untersuchungen, die zwischen der Größe der neuronalen Netze (also insbesondere der Anzahl der trainierbaren Parameter) und der optimalen Trainingsdaten-Anzahl eine Empfehlung abgeben (z.B. https://arxiv.org/abs/2203.15556).
Wenn nun aber unser “viel hilft viel” nicht mehr uneingeschränkt gilt, dann sollte man sich wohl doch auch um bessere Trainingsdaten bemühen, um Zeit und Geld zu sparen und trotzdem gut trainierte Modelle zu erhalten. Gerade beim Finetuning (mehr dazu später) kann das essentiell für den Erfolg sein.
Was sind typische Qualitätsmerkmale?
Zunächst einmal sollten die Trainingsdaten die “Realität”, d.h. die Anfragen, die das Modell später bearbeiten soll, gut repräsentieren. Wenn meine Kunden alle auf Deutsch Fragen stellen, ist ein rein englischer Trainingsdatensatz zumindest nicht optimal. Außerdem bedeutet es, dass die Daten vielseitig sein sollten, um die Spanne der späteren Inputs abzudecken. Zudem sollten verschiedene Arten von Anfragen nicht überrepräsentiert sein. Bei Sentiment-Klassifizierungen sollten also z.B. nicht nur 10 gut gelaunte und dafür 1000 schlecht gelaunte Texte unter den Beispielen sein.
Um es noch klarer auszudrücken: Wenn ich mit einem Bildererkennungs-Modell z.B. Krebs entdecken will, sollte ich weder ausschließlich Bilder von gesundem Gewebe noch nur Bilder von Krebserkrankungen im Trainingsdatensatz haben.
Testdaten vs. Trainingsdaten
Wenn man über Trainingsdaten liest oder hört, fällt manchmal der Begriff “Testdaten”, seltener auch noch “Dev-” bzw. “Entwicklerdaten”. Diese Daten unterscheiden sich (neben dem Umfang) vom Trainingsdatensatz lediglich in ihrer Funktion. Die Idee dahinter: Wenn man verifizieren will, ob ein KI-Modell gut funktioniert, sollte man das mit anderen Daten testen, als mit denen, mit denen man trainiert hat. Wenn wir uns z.B. an das Overfitting erinnern, würde man z.B. sonst nur checken, ob das Modell gut auswendig gelernt hat. Ähnlich sieht es mit dem Entwicklungsdatensatz aus - den nutzen KI-Entwickler:innen in der Phase, wenn noch nicht alle Feinheiten (z.B. die sogenannten Hyperparameter) eines Modells ausgearbeitet sind und man nach “guten Einstellungen” oder sogar dem besten Modell-Typ sucht. Die Idee ist aber die gleiche wie bei den Testdaten.
Wie man jetzt seine Daten in Trainings-/Test- und Dev-Daten aufteilt, hängt auch von der Art des Modells ab, das man trainiert oder dessen Einsatzzweck. Oft nehmen die Trainingsdaten den größten Teil der Daten ein, die Dev-Daten den kleinsten. Besonders bei den Large Language Modells wie GPT-4 und Konsorten ist der Trainingsdaten-Anteil um ganze Größenordnungen größer.
Testdaten und Trainingsdaten einfach erklärt anhand eines Beispiels:
Stell dir vor, du bist ein Mathelehrer und weißt, dass die Mathearbeit zum gleichen Thema aus dem letzten Jahr bei den Schüler:innen im Umlauf ist und fleißig auswendig gelernt wird. Jetzt kannst du natürlich dieselbe Mathearbeit noch mal stellen, hoffen, dass das Auswendiglernen allen besser liegt als das Problem zu verstehen. Du bekommst hoffentlich ein gutes Klausurergebnis. Aber der Pädagoge in dir wäre bestimmt nicht glücklich. Der will wissen, wie viel die Klasse verstanden hat. Also wirst du wohl nicht noch einmal genau dieselbe Arbeit stellen.
So verhält es sich auch beim Trainieren von KI-Modellen. Man hat genug "Aufgaben", also Trainingsdaten in petto, so dass man für das Lernen (“Training”) und die Klassenarbeit (“Testing”) unterschiedliche Daten nutzen kann. Das eine sind die Trainings- das andere die Testdaten.
In der KI gibt es noch weitere Unterteilung für die Daten(“Aufgaben”)-Sätze, denn bevor man ein Modell so richtig trainiert, will man noch überprüfen, ob man die richtige Art von Modell gewählt hat, oder ob man bestimmte Feineinstellungen (man spricht hier vom “Hyperparameter-Tuning”) verbessern kann. Denn ein “echtes” Training kann schon mal länger dauern oder teuer sein. Für diesen Zweck nimmt man gerne noch mal andere Daten, die sogenannten “Entwicklungsdatensätze”, die oft nicht so umfangreich sind wie die späteren Trainings- und Testdaten.
Als gute “KI-Modell-Lehrer:innen” hast du also:
- Entwicklungssätze,
- Trainingssätze,
- Testdatensätze.
Finetuning
In Zeiten, wo immer größere Modelle wie GPT-4 oder auch offene Varianten wie Alpaca gibt, die so groß sind, dass kleinere und auch mittlere bis große Firmen nicht die Ressourcen haben, diese zu trainieren, ist das Konzept des sogenannten Finetunings stark im Kommen. Dabei geht es darum, ein sehr großes Modell, das schon “out of the box” sehr gut mit allgemeinen Aufgaben zurechtkommt, etwas mehr zu spezialisieren. Damit erreicht man dann in der Spezialaufgabe noch bessere Leistungen. Es wundert natürlich nicht, dass auch das Finetuning anhand von Beispielen erfolgt. Wegen der herausragenden allgemeinen Fähigkeiten z.B. von Large Language Models (LLMs) reichen hier viel weniger Daten aus, als zuvor in das Training des eigentlichen Modells geflossen sind. Das macht das Finetuning so attraktiv, denn es ist oft auch für Firmen, Institutionen oder sogar Privatpersonen mit kleinerem Budget handhabbar.
Und beim Chatbot?
Es gibt ja nicht “den Chatbot”. Wir bei moinAI setzen in einem Chatbot durchaus verschiedene Arten von Modellen ein, die im Zusammenspiel eine hervorragende Qualität erreichen. Und auch hinter dem Aushängeschild ChatGPT stecken verschiedene Konzepte. Grundlage ist zwar GPT-3.5 bzw. GPT-4, was ein selbst-überwachtes Lernen nutzt. Aber es ist bekannt, dass hier auch mit sogenanntem Reinforcement-Learning gearbeitet wurde, wo stark vereinfacht Menschen direkt Feedback geben, ob der Output gut oder schlecht war, das würde man dann nicht als Trainingsdaten bezeichnen.
Im einfachsten Fall basiert ein Chatbot auf einer sogenannten Intent-Erkennung. Dabei handelt es sich um ein Modell auf Basis von überwachtem Lernen, wo es Paare aus Chat-Texten und dem richtigen zu erkennenden Intent (in unserer Sprache “Thema”) benötigt. Wie viele Beispiele hier benötigt werden, hängt auch von der Qualität der zugrunde liegenden Modelle ab.
In diesem Fall ist vielleicht noch zu erwähnen, dass hier wirklich nur trainiert wird, zu erkennen, um was für ein Thema sich der Kunde oder Chatpartner gerade interessiert. Die Antwort hat in so einem Fall hoffentlich ein versierter Redakteur schon im Vorfeld verfasst, sie ist nicht Teil der Trainingsdaten. Die sehen eher so aus:
1) Text: “Hallo, Du!”, Thema: “Begrüßung”
2) Text: “Mach es gut!”, Thema: “Verabschiedung”
Will man dann aber doch einen Chatbot wie ChatGPT trainieren, der auch “frei” antwortet, sehen die Trainingsdaten eher so aus:
Input:
“Kontext”: “Du bist ein Chatbot einer Firma, die Software as a Service anbietet, und versuchst, Kunden dabei zu helfen, sich bei dem Produkt zurechtzufinden."
“Bisheriger Verlauf”: “Kunde: Hallo; Chatbot: Moin, wie kann ich Dir helfen?”
“Anfrage”: “Wieviel kostet ein Abo bei Euch monatlich?”
Output:
“Das hängt von der gewählten Lizenz ab. Die Einsteiger-Lizenz fängt bei 100 Euro pro Monat an und unsere Premiumlizenzen kosten 2000 Euro für einen Monat”
Die Modelle, die wie ChatGPT funktionieren sind zum Glück schon von anderen “vortrainiert” worden und verstehen schon “von der Stange” eine ganze Menge, d.h. man fängt nicht bei Null an und braucht dann nicht die Billionen von Trainings- und Testdaten, die das Modell schon schlau gemacht haben. Siehe den Abschnitt über Finetuning. Stelle dir einen Hund vor, der schon vom Züchter stubenrein trainiert wurde und vielleicht einfache Kommandos wie “Sitz” oder “Stop” versteht. Wie der Hund dir die Zeitung zum Sofa bringt oder die Kinder selbstständig von der Schule abholt, das musst du ihm dann aber doch noch beibringen.
Oder dir eben eingestehen, dass ein Hund nicht dazu geeignet ist, Kinder von der Schule abzuholen. So in etwas verhält es sich z.B. ChatGPT und dem Einsatz in der Kundenkommunikation. Es ist ein vielseitiges Tool, das vielen Anforderungen gerecht wird – nicht aber den Anforderungen, die man an die Kundenkommunikation von Unternehmen hat.
Mehr zu diesem Thema gibt es im großen Vergleich “moinAI vs. ChatGPT”.
Fazit
Wir sehen: Auch wenn es immer mehr sehr gute, “allgemein-gebildete” große Sprachmodelle (LLMs) gibt, bestimmen die Menge und noch mehr die Qualität von Trainingsdaten auch den Erfolg eines “KI-Ökosystems”. Ein Chatbot, dessen Trainingsdaten mit Erfahrung und Branchenwissen (z.B. E-Commerce, Finance oder Verlage) ausgewählt wurden, erreicht einen deutlich höheren Grad an Automatisierung als ein Bot, der nur mit generischen, unkontrollierten Daten trainiert wurde.
Teste kostenlos und einfach, wie ein KI-Chatbot für deine Website aussehen könnte!