QA ist ein Muss, aber wie wird sie in der KI durchgeführt?

Jul 29, 2021


Bei Intertec ist man sich einig, dass die Qualitätssicherung bei fast jedem Projekt durchgeführt werden sollte, unabhängig von der Domäne und dem Typ. Einige Leute sind der Meinung, dass der QS-Prozess ziemlich einfach ist und nur auf die so genannten konventionellen Anwendungen angewendet werden kann.

Um das Dilemma zu durchbrechen und zu zeigen, dass unkonventionelle Projekte besondere Aufmerksamkeit und Qualitätssicherung erfordern, haben mein QS-Kollege Gjorgji Karakolev und ich eine Sitzung mit den Mitgliedern unserer KI-Arbeitsgruppe initiiert.

Während der internen KI-Sitzung versuchten wir, die allgemeinen Merkmale eines KI-Projekts zu verstehen, wir diskutierten und beantworteten die wichtigsten Fragen, und im folgenden Artikel werden wir Ihnen die Schlussfolgerung über die Wirksamkeit der QS in der KI-Qualitätssicherung in der künstlichen Intelligenz vorstellen.

Was hat es also mit einem KI-Projekt auf sich?

Das Hauptziel der KI besteht darin, ein künstliches Wesen (ein Modell) zu erzeugen, das mehr oder weniger Teile des menschlichen intelligenten Verhaltens ersetzen kann. Dies ist ein Konzept, das als enge KI bekannt ist. Für den Moment lassen wir das Konzept der allgemeinen KI außer Acht und konzentrieren uns auf die Modelle, die bestimmte Aufgaben erfüllen, wie z. B. die Vorhersage von Werten anhand einiger Faktoren oder die Produktion natürlicher Sprache anhand einer Reihe von Parametern.

Der Zweck des Modells besteht also darin, automatisch etwas zu tun, was den Benutzer bei einer herkömmlichen Anwendung ersetzt. Damit es richtig genutzt werden kann, muss dieses Modell hinter einer API platziert werden, die wiederum von einem Dienst oder einem Prüfsubjekt (sprich QA) genutzt werden kann.

QA_Is_A_Must_But_How_Is_It_Done_in_AI_2.webp

Wenn es um die Durchführung der Qualitätssicherung geht, kann der erste Eindruck ermutigend sein. Sie ähnelt den Standard-API-Prüfungen, die nach dem Blackbox-Prinzip ablaufen: "Kümmere dich nicht darum, wie das Modell gelernt hat, sondern was es gelernt hat". Aber ist das wirklich so?

QA_Is_A_Must_But_How_Is_It_Done_in_AI_3.webp

Lassen Sie uns die Geschichte dahinter erzählen. Die Erstellung eines Modells bezieht sich in der Regel auf eine Variante des Standard-KI-Lebenszyklus, der in den meisten Fällen auf der CRISP-DM-Pipeline basiert. Das bedeutet, dass zur Erstellung eines Modells eine geordnete Reihe von Phasen und die darin enthaltenen Prozesse in mehreren Iterationen durchgeführt werden müssen. Jeder dieser Prozesse wird normalerweise durch Codeeinheiten abgedeckt, die unabhängig voneinander ausgeführt werden können.

Es stellt sich also die folgende Frage: Muss die Qualitätssicherung auch für jede dieser Einheiten durchgeführt werden? Und was ist mit den Daten?

KI kann einzigartig sein...

... und das kann einen großen Einfluss auf die Qualitätssicherung haben. Leider ist KI, so sehr wir auch versuchen, sie zu verallgemeinern, eine komplexe Disziplin, die viele verschiedene Teilbereiche, Techniken und Modelltypen umfasst. Daher kann die Prüfung eines solchen Projekts sehr unterschiedlich ausfallen.

Bei der Bewertung eines Standard-Regressionsmodells für maschinelles Lernen (ML) geht es zum Beispiel um Zahlen als relativ einfache Ausgabe. In ähnlicher Weise können ML-Klassifizierungsprobleme mit Zeichenketten umgehen, allerdings als wohldefinierte und endliche Menge. Dies gilt nicht für die KI-Typen Bild-/Videoerkennung oder Verarbeitung/Generierung natürlicher Sprache (NLP/G), da der Bewertungsprozess mit weitaus komplexeren Ausgaben verbunden ist.

Werfen wir einen Blick auf die Herausforderungen eines NLG-Projekts, die die Ingenieure des KI-Teams auf der Sitzung beschrieben.

Eine der größten Herausforderungen beim Aufbau eines funktionalen und effektiven NLG-Systems ist das Testen (im Zusammenhang mit dem Testprozess des Lebenszyklus) und die abschließende Qualitätssicherung. Wie können wir sicherstellen, dass ein NLG-System stabil und zuverlässig ist? Dies ist bei kommerziellen NLG-Systemen oft von entscheidender Bedeutung und bei einigen akademischen und Forschungs-NLG-Systemen sogar sehr wünschenswert.

Wie können wir also ein NLG-Modell testen?

Im Allgemeinen scheint die Praxis in der künstlichen Intelligenz wie folgt zu sein: Man lässt ein System auf einer Reihe von Testfällen laufen und berichtet, wie viel Prozent der Testfälle das System richtig beantwortet hat. Eine Herausforderung besteht darin, dass wir das Worst-Case-Verhalten immer noch als Durchschnittsverhalten begreifen und anerkennen wollen.

Wertvolle Qualitätssicherung für NLG erfordert:

  • eine umfangreiche Sammlung von Unit-, Integrations- und Performance-Tests sowie eine genaue Definition von Fällen für Regressionstests;
  • eine automatische Überprüfung aller generierten Texte anhand von Qualitätskriterien, z. B. auf Rechtschreibfehler und die Verwendung von Schimpfwörtern;
  • manuelle Überprüfung von NLG-Texten durch Fachleute;
  • Fehler sollten in einer strukturierten und organisierten Weise aufgezeichnet, priorisiert und nachverfolgt werden, wahrscheinlich mit Hilfe eines Bug-Tracking-Tools.

Da es für Entwickler oft schwierig ist, ihren eigenen Code ordnungsgemäß zu testen, empfehlen wir, die Tests von engagierten Testern durchführen zu lassen.

Gute Anforderungen sind die Voraussetzung für zuverlässiges Testen

Anforderungen sind die Muse für alle Softwareentwicklungsbemühungen, da sie die neue Funktionalität definieren, die die Beteiligten erwarten und wie sich ihre Anwendung für die Benutzer verhalten wird. Die meisten Probleme, die bei der Entwicklung und Verfeinerung eines Produkts auftreten, lassen sich direkt auf Fehler in den Anforderungen zurückführen. Eine mangelhafte Anforderungsdefinition ist oft eine direkte Folge zu vieler Änderungen, und dies ist häufig ein schwerwiegender Grund für das Scheitern von Softwareprojekten.

Durch das Testen wird sichergestellt, dass eine Anwendung in Übereinstimmung mit dem Entwurf und den üblichen Erwartungen der Benutzer funktioniert. Dies geschieht häufig durch:

  • Überprüfung der korrekten Funktion aller kommunizierten Pfade innerhalb der Anwendung;
  • Identifizierung aller relevanten Daten, die alle möglichen Nutzungskontexte validieren können.

Die Testsuite muss darauf abzielen, eine vollständige Abdeckung aller Pfade und jeder Form von Daten zu liefern. Dies bedeutet, dass die Benutzer- und Systemanforderungen ausreichend detailliert sein müssen, damit die Testentwickler qualitativ hochwertige Testfälle erstellen können.

Da die technologische Komplexität immer weiter zunimmt, besteht ein akuter Bedarf an einer Lösung zur automatischen Generierung von Testfällen, die die Kosten in Grenzen hält und gleichzeitig eine angemessene Abdeckung komplexer Softwareanwendungen und -systeme gewährleistet.

Q&A für QA

Betrachten wir die Diskussionspunkte aus der Sicht von QA und Entwicklern.

Welchen Aufwand sollte ein Qualitätsingenieur betreiben, um von einer Standardanwendung zu einer Anwendung zu wechseln, die ein KI-Modell verarbeitet?

Wie üblich sollten Qualitätsingenieure die Prinzipien der KI-Modellierung von Grund auf verstehen, sich an die dynamischen Testdaten und den ständigen Bedarf an Aktualisierungen und Verbesserungen gewöhnen. Wenn das Testen des Front-End-Teils einer konventionellen Anwendung in Bezug auf die Erfüllung der UI/UX-Kriterien flexibel sein kann, dann ist die Durchführung der Qualitätssicherung für einen KI-Modus hinter einer API sogar noch flexibler, abhängig von der erwarteten Qualität und Leistung, was etwas anderes ist als ein fest definiertes Szenario für Standard-Back-End-API-Tests.

Ist es vernünftig zu behaupten, dass eine höhere AT-Abdeckung den manuellen Aufwand verringert?

Ja, mit intelligenten Automatisierungstests wird die Entwicklung den manuellen Aufwand verringern, aber letztendlich sollten zumindest in einigen Fällen des Endergebnisses manuelle Prüfungen durchgeführt werden.

Kann das Testen redundanter werden?

Natürlich nicht, QS ist ein notwendiger Bestandteil der Softwareentwicklung. Bei der QS geht es um viel mehr als nur um das Testen von Code.

Welche Technologien können zur Unterstützung der manuellen QS eingesetzt werden?

Wir können nicht sagen, welche Tools oder Technologien derzeit besser sind, da dies immer von der Person, dem Team oder der Firma/Organisation abhängt, die sie einsetzt.

Welche Technologien können zur Unterstützung von AT eingesetzt werden?

Die Antwort ist mehr oder weniger dieselbe wie bei der manuellen Qualitätssicherung, allerdings sollten die Nutzungsmuster innerhalb des Teams starrer sein.

Sollte die QS für die Qualität der Daten verantwortlich sein?

Wenn wir diese Frage nach Vorschrift beantworten, dann - nein. Es gibt nämlich spezielle Stellenbeschreibungen, die für die Qualität der Daten verantwortlich sind, wie z. B. Datenanalysten oder Dateningenieure.

Die meisten Unternehmen haben jedoch nicht den Luxus, solche Experten in einem Team zu haben, das sich mit einem KI-Projekt befasst, und neigen dazu, Kompromisse einzugehen, indem sie die Qualitätssicherung oder in geringerem Maße Entwickler und Domänenexperten damit beauftragen, sich um die Datenqualität zu kümmern. Seien wir ehrlich, Leute mit diesen JDs sind wirklich schwer zu finden, und wenn man anfängt, ist Improvisation der empfohlene Weg.

Zu welchem Zeitpunkt sollte ein QA seinen Beitrag zum Projekt leisten?

So bald wie möglich. Warten Sie nicht, bis die erste Iteration des KI-Lebenszyklus abgeschlossen ist, denn es ist besser, einen Prozess oder eine Phase selbst zu verbessern, als eine unnötige Iteration zu durchlaufen, bevor Sie ein Problem entdecken. Das bedeutet, dass unmittelbar nach der Entwicklung des ersten gut definierten und testbaren Codeschnipsels eine Qualitätssicherung erfolgen muss.

Sollte die manuelle QA für das Lesen von Protokollen innerhalb der Anwendung verantwortlich sein?

Das wäre ein großer Vorteil für die QS, denn das Modell wird die Fehler nicht melden". Auch die Protokolle der Prozesse, die zur Modellerstellung führen, sollten erfasst werden. Die Verwendung eines spezialisierten Überwachungswerkzeugs wird den QA-Prozess verbessern. Voraussetzung ist vor allem ein gut strukturiertes und leicht verständliches Format, zu dem die QS stets Vorschläge und aktive Beiträge leisten und nicht alles den Entscheidungen der Entwickler und Produktmanager überlassen sollte.

Kann die manuelle QS für die Überprüfung des Outputs zuständig sein, wenn AT die gleichen Fälle abdeckt?

Die Entwicklung einer intelligenteren Automatisierung wird dazu führen, dass die manuelle QS automatisch benachrichtigt wird, wenn etwas nicht stimmt.

Sind manuelle Tests am besten für die Erkundung geeignet?

Manuelle und explorative Tests hängen vollständig von einem Tester ab, um durch einen Testpfad zu navigieren. Auch wenn ein erfahrener Tester nicht in freier Form vorgeht, wird der Test nur in der Geschwindigkeit der menschlichen manuellen Ausführung fortgesetzt, und diese kann oft durch Unterbrechungen behindert werden. Manuellen Tests mangelt es in der Regel an Spezifität und Wiederholbarkeit.

Ein entscheidender Vorteil beim Testen neuer Funktionen besteht darin, dass der menschliche Tester sich in die Art des Benutzers hineinversetzen kann. Dies kann sich natürlich von einem Skript unterscheiden, das nur einen Pfad verfolgen kann. Der frustrierendste Aspekt manueller/explorativer Tests ist der hohe Kosten- und Energieaufwand, der damit verbunden ist. Da die Software immer umfangreicher und komplexer wird, scheint das Testen ohne Skripte, nun ja, Unsinn zu sein. Sie sind weitreichend und variabel, wenn auch selten unbeabsichtigt. Fragt man andererseits erfahrene Automatisierungsingenieure und QS-Fachleute nach der Rechtfertigung solcher Tests, wird man wahrscheinlich feststellen, dass geskriptete Tests im Gegensatz zu explorativen Tests eine ewige Debatte sind.

Welche Regeln werden bei AT-Tests auf NLG angewandt?

Obwohl der Charakter der NLG-Projekte dafür sorgt, dass manuelle Prüfungen unvermeidlich sind, führt die Erstellung von mehr automatisierten Tests für jeden Prozess, insbesondere für den Validierungsteil, der für die Erhöhung des Standards des Modells verantwortlich ist, zu weniger Anwendungsfällen für manuelle Tests.

Schlussfolgerung: Wie kann man QA in der KI durchführen?

Wir hoffen, dass wir zumindest einige der Barrieren und Tabus für die QS in einem KI-Projekt durchbrochen haben. Die erste Voraussetzung ist, dass derjenige, der die QS durchführt, hoch motiviert ist und keine Angst vor diesem kleinen Monster hat. Hier sind unsere zusammengefassten Tipps:

  • Trainieren Sie mehr als ein Modell mit unterschiedlichen Daten und scheuen Sie sich nicht, auch falsche Informationen einzubeziehen, und machen Sie dann mehrere Vergleiche und Vorschläge auf der Grundlage der Metriken;
  • Lernen Sie, die Protokolle oder versteckten Ausgaben des Modells und den projektbezogenen Code zu lesen, während Sie die Ergebnisse vergleichen;
  • die Funktionen innerhalb des Codes zu verstehen und immer zu versuchen, sie zu brechen;
  • Wenn Sie sich mit zu vielen Informationen über das Projekt überfordert fühlen, lassen Sie sich von den Blackbox-Prinzipien leiten, aber nicht auf der Modellebene;
  • Neigen Sie immer dazu, Ihr Wissen in der QA in KI-Spezifika zu erweitern.

Sind Sie jemand, der auf der Suche nach einer neuen Herausforderung ist? Möchten Sie in einem Unternehmen arbeiten, in dem unkonventionelles Denken gefördert wird? Sehen Sie sich unsere aktuellen Stellenangebotean.

Kristijan Miloshevski

Kristijan Miloshevski

Buchen Sie eine kostenlose Beratung

Wählen Sie Ihre Branche*

Bitte wählen Sie Ihre Branche*

Wählen Sie Ihren Servicetyp

Bitte wählen Sie Ihren Servicetyp

calendarWann passt es Ihnen am besten für ein kurzes Gespräch

Die mit * gekennzeichneten Felder sind Pflichtfelder

Alle Beiträge anzeigen