Blog

Hinter den Spiegeln: Erkundung des Wunderlandes des Testens von KI-Systemen

23 Apr, 2024
Xebia Background Header Wave

Dieser Blog ist zuerst bei Xebia Global erschienen. Er wurde von uns ins Deutsche übersetzt.

Systeme der künstlichen Intelligenz (KI) werden allgegenwärtig: von selbstfahrenden Autos über Risikobewertungen bis hin zu grossen Sprachmodellen (LLMs). Da wir stärker auf diese Systeme angewiesen sind, sollten Tests bei der Bereitstellung oberste Priorität haben.

*Software ungetestet zu lassen ist so, als würde man einen Scheck ausstellen, ohne den Betrag oder den Empfänger zu verifizieren; Sie können es gleich beim ersten Mal richtig machen, aber Sie sollten es lieber zweimal überprüfen, um böse Überraschungen oder sogar katastrophale Ergebnisse zu vermeiden. Nehmen wir zum Beispiel den Codefehler, der die Knight Capital Group bankrott machte, indem sie in weniger als einer Stunde 460 Millionen US-Dollar verlor. KI-Systeme sind sogar noch anfälliger, da sie neben Code auch Daten und Algorithmen nutzen. Daher müssen Sie alle Komponenten testen, um Probleme zu vermeiden.

KI ist jedoch die Domäne von Datenwissenschaftlern, die nicht für ihre Fähigkeiten beim Verfassen von Tests bekannt sind – im Vergleich zur Wissenschaft langweilige Details. Sie sollten beim Testen in multidisziplinären Teams unterstützt werden, da diese Systeme abteilungsübergreifend aufgebaut und gewartet werden.

Um Verlangsamungen zu vermeiden, müssen Tester eine durchgängige Verantwortung übernehmen und sich auf die Bereiche konzentrieren, in denen der geschäftliche Bedarf und das Risiko am grössten sind. Dieser Ansatz sorgt für wertvolles Buy-in. In diesem Artikel wird erklärt, wo man anfangen sollte und was erforderlich ist, um eine Überdosierung von Kamille zum Einschlafen in der Nacht zu vermeiden.*

Systeme der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) werden allgegenwärtig: von selbstfahrenden Autos über Risikobewertungen bis hin zu grossen Sprachmodellen (LLMs). Da wir zunehmend von diesen Systemen abhängig sind, sollten Tests für Organisationen und Regierungen, die sie verwenden, höchste Priorität haben. Wenn Sie sie nicht markieren, ist das so, als würden Sie einen Scheck ausstellen, ohne den Betrag oder den Empfänger zu bestätigen. Das Überprüfen kann lästig sein, aber ein Fehler kann tödlich sein.

Niederländische Eltern mit doppelter Staatsbürgerschaft wissen das gut. Ein von der Regierung darauf trainiertes KI-System, Betrug bei Kinderbetreuungsgeldern zu erkennen, diskriminierte letztendlich diese Elterngruppe. Das Ergebnis für die diskriminierten Familien war tragisch. Einige mussten ihre Häuser und Habseligkeiten verkaufen. Das niederländische Kabinett trat inmitten der Folgen schliesslich zurück.

Tests verhindern Überraschungen

Um Überraschungen zu vermeiden, sollten KI-Systeme getestet werden, indem ihnen realitätsnahe Daten zugeführt werden.

Wenn eine neue Systemversion fertig ist, stellen die Tests sicher, dass sie weiterhin ordnungsgemäss funktioniert. Und das Testen von Software ist für Regierungen und Unternehmen gleichermassen unerlässlich. Im Jahr 2012 verlor die Knight Capital Group aufgrund eines Fehlers in ihrer Handelssoftware 460 Mio. USD (damals 360 Mio. EUR). Da niemand den Fehler erkennen konnte, kam es schnell zum Chaos: Innerhalb einer Stunde ging das Unternehmen bankrott. Heute ist nur noch ein Wikipedia-Eintrag übrig, kaum ein Vermächtnis für einen Konzern mit einem Einkommen von Hunderten Millionen Dollar. Es ist mittlerweile ein Paradebeispiel dafür, warum man Software testen sollte.

Warum ist die Praxis dann nicht weiter verbreitet?

KI-Systeme sind komplizierter als Software allein; Sie enthalten Daten, Code und Algorithmen. Der Algorithmus ist ein mathematisches Verfahren, das beschreibt, wie von den Daten zur Ausgabe gelangt. Um beispielsweise zu wissen, wie viel Steuern wir schulden, wendet das Finanzamt einen Algorithmus an, der unser Bruttoeinkommen in eine geringere Version seines Einkommens (das Nettoeinkommen) umrechnet. Die Lücke, wie viel wir schulden, ist die Ausgabe des Algorithmus. Der Code ist die Übersetzung des Algorithmus in Befehle, die ein Computer verstehen und ausführen kann. Beim maschinellen Lernen gibt es noch eine weitere Zutat: Algorithmen werden basierend auf den Mustern in den Daten optimiert. Wenn beispielsweise die Muster verzerrt sind, wird auch das Ergebnis verzerrt sein – wie im Fall des Betrugs bei Kinderbetreuungsgeldern in den Niederlanden.

Testen Sie die Daten, den Code und den Algorithmus.

Alle drei Komponenten – Daten, Code und Algorithmus – müssen getestet werden, um sicherzustellen, dass das System ordnungsgemäss funktioniert.

Beginnen wir mit den Daten. Zu den Dingen, die schiefgehen können, gehören:

  • Verzerrung in den Daten – als mangelnde Repräsentation einer Minderheitengruppe.
  • Möglicherweise interpretieren wir Variablen falsch – ist der „Betrag“ in USD oder EUR?
  • Die zugrunde liegenden Daten könnten abweichen – vielleicht tritt ein Wettbewerber in den Markt ein und zerstört die Genauigkeit der Umsatzprognose. Fangen diese Leistung Drifts früh Ist unterschätzt.

Auf der Codeseite könnten wir Fehler haben, die so einfach sein könnten wie die Vertauschung von Einnahmen und Kosten bei der Berechnung des Gewinns.

Und auf der Seite des Algorithmus gehören zu den häufigsten Problemen:

  • Verwendung eines Algorithmus, der für die Daten nicht geeignet ist. Statistische Eigenschaften der Daten, wie etwa der Durchschnitt und der Median, schliessen möglicherweise einige Algorithmusklassen aus.
  • Vergessen zu untersuchen, ob verschiedene Parameter die Modellleistung verbessern.

Diese Listen sind leider nicht vollständig. Suresh und Guttag, zwei Forscher am MIT, haben kürzlich einen Artikel veröffentlicht, der sich auf die Auswirkung von Voreingenommenheit in ML-Systemen konzentriert. Das Ergebnis war ein Überblick über sieben Bereiche des ML-Lebenszyklus, die von Voreingenommenheit beeinflusst werden.

Für einen technischeren Überblick haben Sato, Wider und Windheuser, drei ML-Praktiker, die bei Thoughtworks und Databricks arbeiten, einen umfassenden Artikel über Continuous Delivery von ML-Anwendungen geschrieben.

Was ist mit LLMs?

Das jüngste Interesse an LLMs hat gezeigt, dass sie zusätzliche Herausforderungen mit sich bringen, denn:

  • Die Verarbeitung natürlicher Sprache ist mehrdeutig, und da LLMs nicht
    verstehen, was wir ihnen sagen, ist die Reproduzierbarkeit nicht von vornherein gegeben.
  • Die Abwärtskompatibilität kann nicht garantiert werden; Möglicherweise sind zusätzliche Arbeiten erforderlich, um sicherzustellen, dass während der Produktion keine Probleme auftreten. Wenn beispielsweise die Entwickler hinter dem LLM, das Sie nutzen, einige Prüfungen hinzufügen, um die Beantwortung einer Klasse von Fragen zu verweigern, könnte Ihr System kaputt gehen, wenn Sie die Änderung nicht frühzeitig erkennen.

OpenAI unangefochtener Marktführer in diesem Bereich, wurde kurz nach seiner Einführung von unerwünschtem Verhalten in seinem Bing AI- Chatbot heimgesucht. Sie haben jedoch ihre Lektion gelernt und die richtigen Checks and Balances – Tests! – eingeführt, um sicherzustellen, dass neue Versionen nicht dieselben Macken aufweisen.

Eine entmutigende Aussicht

Das Ausmass und die Breite des Problems erscheinen entmutigend, insbesondere wenn man die Hauptkraft hinter KI-Systemen berücksichtigt: Datenwissenschaftler. Ihre Rolle wurde kürzlich klar. Wie der Name schon sagt, kommen die meisten aus der Wissenschaft, wo Softwaretests im Gegensatz zu Veröffentlichungen nicht gerade in Mode sind. Und um erfolgreich zu veröffentlichen, muss die Arbeit besser sein als frühere Arbeiten. Alle Aufmerksamkeit gilt daher der Logik und Methodik und nicht der Korrektheit des Codes. Das Testen wird zu einem irrelevanten Ärgernis. In der Branche ist das Hauptziel jedoch nicht die Leistung, sondern der Wert, den das Modell generiert. Ein Modell für maschinelles Lernen, das 5 % weniger genau ist als die Konkurrenz, ist immer noch nützlich; Unternehmen machen den Unterschied anderswo wett. Um jedoch Überraschungen wie bei der Knight Capital Group zu vermeiden, sind Tests erforderlich.

Das Problem für Datenwissenschaftler mit akademischem Hintergrund wird – wie wir in unserer Praxis regelmässig beobachten – durch Manager verschärft, die sich auf neue Funktionen konzentrieren und Tests als Hindernis betrachten. Hinzu kommt die weit verbreitete Unerfahrenheit darüber, wie man gut testet, und es entsteht ein Bild, in dem alle Beteiligten mit dem Finger aufeinander zeigen.

through-the-looking-glass-exploring-the-wonderland-of-testing-ai-systems-fingers

Und nicht nur Datenwissenschaftler sollten testen.

Da sich KI-Systeme abteilungsübergreifend erstrecken, tragen mehrere Rollen zu ordnungsgemässen Tests bei: Software- und Plattformingenieure für den Code und die Plattform, auf der er ausgeführt wird, und Dateningenieure (eine besondere Art von Ingenieuren, die auf datenintensive Anwendungen spezialisiert sind) für die Daten. Leider verstehen sich diese Profile nicht immer. Wenn es Datenwissenschaftlern schwerfällt zu verstehen, warum Sie testen sollten, erkennen Ingenieure oft nicht, wie sich ML-Systeme von reinen Softwaresystemen unterscheiden und wie sie damit umgehen sollen. Und jeder sollte sich darüber im Klaren sein, dass das Testen von Daten eine Herausforderung ist, die immer wichtiger wird, insbesondere wenn man bedenkt, wie viel wir produzieren (siehe Abbildung zur Datenvolumenprognose). Unternehmen investieren in Datenkompetenzprogramme, um das daraus resultierende Chaos zu entschärfen und das gegenseitige Verständnis bei der Diskussion über Daten und KI sicherzustellen.


Datenvolumenprognose

End-to-End testen

Ein KI-System umfasst in der Regel mehrere Komponenten: Daten befinden sich in Datenbanken, der Code und der Algorithmus in zentralen Repositories (spezialisierte Datenbanken) und das Wissen über die Daten und Prozesse rund um sie bei den Geschäftsinteressenten. Und nicht von einer einzelnen Abteilung: Verkaufsdaten könnten in maschinellen Lernmodellen verwendet werden, die von der Finanzabteilung verwendet werden, um Marketingausgaben besser zuzuordnen.

Diese oktopusähnlichen Systeme sind jedoch effizienter, wenn ein einzelnes Team sie ohne externe Blocker End-to-End testet.

Um dies zu erreichen, sollten interne Barrieren und die Silomentalität durchbrochen werden. Zyniker werden argumentieren, dass es einfacher ist, einen Schneemann in der Wüste vor dem Schmelzen zu bewahren, aber die Herausforderung zu ignorieren bedeutet, den Kopf in den Wüstensand zu stecken. Ein Top-Down-Ansatz könnte sich als praktischer erweisen: Wenn die Führungskräfte den Plan skizzieren, wird die Organisation diese starren Barrieren durchbrechen und flexibler sein – hoffentlich anders als unser Schneemann.

Gewinnen Sie die Skeptiker

Die Organisation zu ändern, um die Sicherheit von KI-Systemen zu gewährleisten, scheint entmutigend.

Aber so wie ein Lehrling langsam in sein Handwerk eingeführt wird, müssen Unternehmen nicht alles auf einmal ändern. Sie können dort beginnen, wo die Auswirkungen grösser und das Risiko geringer sind, und iterieren. Einige Komponenten werden möglicherweise zunächst manuell oder mit anderen Abteilungen getestet – auf Kosten der Geschwindigkeit. Wenn das Vertrauen der Organisation zunimmt, unternehmen Sie einen zusätzlichen Schritt. Automatisieren Sie einen manuellen Prozess oder erhöhen Sie die Eigenverantwortung des Teams. Wenn das KI-System für eine Abteilung von entscheidender Bedeutung ist, machen Sie sie zu Ihrem Partner. Offen zu sein und zu erklären, warum Tests notwendig sind (Sie können sie gerne auf diesen Artikel verweisen), wird viele Skeptiker überzeugen. Sagen Sie ihnen, was schief gehen könnte, wenn die Dinge schief gehen. Und wenn alles andere fehlschlägt, fragen Sie sie, ob sie aufgrund ihrer Sturheit diejenigen sind, die das Unternehmen in den Bankrott treiben.

Questions?

Get in touch with us to learn more about the subject and related solutions