Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Qualitätssicherung in KI-basierten System – damit KI-Projekte nicht scheitern - Zahlreiche Beispiele aus verschiedenen Branchen - Viele praktische Übungen mit Beispiellösungen - Mit Exkursen auf Basis industrieller Projekterfahrungen Umfragen in der Industrie zeigen deutlich: KI-Projekte scheitern häufiger als angenommen. Eine kontinuierliche Qualitätssicherung für KI-basierte Systeme ist daher unabdingbar. Das Autorenteam bietet einen fundierten Überblick und einen praxisnahen Einstieg in die Konzepte, Best Practices, Problemstellungen und Lösungsansätze rund um die Qualitätssicherung von und mit KI-basierten Systemen. Im Einzelnen werden behandelt: - Einführung in KI - Qualitätsmerkmale KI-basierter Systeme - Maschinelles Lernen (ML) - ML-Daten - Funktionale Leistungsmetriken - Neuronale Netze und Testen - Testen KI-basierter Systeme - Testen KI-spezifischer Qualitätsmerkmale - Methoden und Verfahren für das Testen KI-basierter Systeme - Testumgebungen für KI-basierte Systeme - Einsatz von KI beim Testen Das Buch enthält mehrere Exkurse, z.B. »ChatGPT als Teammitglied?«, Praxisbeispiele und zu vielen Kapiteln auch praktische Übungen, wobei die Lerninhalte durch Codebeispiele und Programmierübungen in Python veranschaulicht werden. Die Aufgaben und Lösungen sind als Jupyter Notebooks auf GitHub verfügbar. Das Buch orientiert sich am ISTQB®-Syllabus »Certified Tester AI Testing« (CT-AI) und eignet sich daher nicht nur bestens zur Prüfungsvorbereitung, sondern dient gleichzeitig als kompaktes Grundlagenwerk zu diesen Themen in der Praxis und an Hochschulen.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 436
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Nils Röttger hat an der Universität in Göttingen Informatik studiert. Bereits während des Masterstudiums lag sein Schwerpunkt im Themengebiet Softwaretest und Qualitätssicherung, in dem er seit über 15 Jahren tätig ist. Seit 2008 arbeitet er bei der imbus AG in Möhrendorf, aktuell als Seniorberater und Projektleiter. Er ist u.a. für die fachliche Aus- und Weiterbildung sowie den Bereich Mobile Testing verantwortlich und als Scrum Master im internen KI-Team tätig. Außerdem beschäftigt er sich immer wieder mit neuen Themen und berichtet darüber in vielen Vorträgen, zuletzt insbesondere mit Bezug zur künstlichen Intelligenz.
Dr. Gerhard Runze hat an der Friedrich-Alexander-Universität Erlangen-Nürnberg Elektrotechnik studiert und dort im Bereich digitaler Signalverarbeitungsalgorithmen promoviert. Er hat über viele Jahre als Entwickler, Projekt- und Testteamleiter in der Telekommunikationsindustrie in klassischen und agilen Projekten gearbeitet. Seit 2015 ist er bei der imbus AG als Testmanager, Trainer für ISTQB®-Schulungen und Seniorberater für Qualitätssicherung von KI, Embedded Software und agiles Testen tätig. Seit 2020 ist er zudem Product Owner für KI-Themen und hält Schulungen zum Certified Tester AI Testing.
Verena Dietrich hat an der Friedrich-Alexander-Universität Erlangen-Nürnberg Integrated Life Sciences studiert. In ihrem Masterstudium wählte sie Vorlesungen aus den Bereichen Bioinformatik, biologisch inspirierte Algorithmen und maschinelles Lernen. Von 2019 bis 2021 war sie bei der imbus AG als Softwaretesterin und Trainerin für die A4Q-Schulung KI-Testen tätig. Als Mitglied im KI-Team hat sie mit Nils und Gerhard die Arbeiten an diesem Buch begonnen und auch nach ihrem Wechsel in die Bioinformatik mit großem Engagement fortgeführt.
Copyright und Urheberrechte:
Die durch die dpunkt.verlag GmbH vertriebenen digitalen Inhalte sind urheberrechtlich geschützt. Der Nutzer verpflichtet sich, die Urheberrechte anzuerkennen und einzuhalten. Es werden keine Urheber-, Nutzungs- und sonstigen Schutzrechte an den Inhalten auf den Nutzer übertragen. Der Nutzer ist nur berechtigt, den abgerufenen Inhalt zu eigenen Zwecken zu nutzen. Er ist nicht berechtigt, den Inhalt im Internet, in Intranets, in Extranets oder sonst wie Dritten zur Verwertung zur Verfügung zu stellen. Eine öffentliche Wiedergabe oder sonstige Weiterveröffentlichung und eine gewerbliche Vervielfältigung der Inhalte wird ausdrücklich ausgeschlossen. Der Nutzer darf Urheberrechtsvermerke, Markenzeichen und andere Rechtsvorbehalte im abgerufenen Inhalt nicht entfernen.
Nils Röttger · Gerhard Runze · Verena Dietrich
Qualität von und mit KI-basierten Systemen
Aus- und Weiterbildung zum Certified Tester AI Testing – Foundation Level Specialist nach ISTQB®-Standard
Nils Röttger
Gerhard Runze
Verena Dietrich
Lektorat: Christa Preisendanz
Lektoratsassistenz: Julia Griebel
Copy-Editing: Ursula Zimpfer, Herrenberg
Satz: inpunkt[w]o, Wilnsdorf (www.inpunktwo.de)
Herstellung: Stefanie Weidner, Frank Heidt
Umschlaggestaltung: Helmut Kraus, www.exclam.de
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Fachliche Beratung und Herausgabe von dpunkt.büchern zum Thema »ISTQB® Certified Tester«: Prof. Dr. Andreas Spillner · [email protected]
ISBN:
978-3-86490-947-4
978-3-96910-993-9
ePub
978-3-96910-994-6
1. Auflage 2024
Copyright © 2024 dpunkt.verlag GmbH
Wieblinger Weg 17
69123 Heidelberg
Schreiben Sie uns:
Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].
Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.
Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.
Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autoren noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.
In diesem Kapitel erzählen wir, wie es dazu kam, dieses Buch zu schreiben. Außerdem geben wir dir eine Art Bedienungsanleitung an die Hand, um dieses Buch zu lesen und damit zu arbeiten: Wo steht was, warum machen wir dies oder jenes? Und wir beschreiben das Zusammenspiel zwischen dem ISTQB®-Lehrplan [GTB 2021] und diesem Buch. Fachliche Inhalte findest du ab Kapitel 1.
Als die Idee entstand, dieses Buch zu schreiben, haben wir alle drei bei der imbus AG in Möhrendorf gearbeitet. imbus beschäftigt sich seit vielen Jahren u.a. mit der Qualitätssicherung (QS) von IT-Systemen. Um immer auf dem Laufenden zu bleiben, gibt es jedes Jahr neue interne Projekte, die sich mit neuen Technologien, neuen Methoden, neuen Testvorgehen etc. befassen. Vor etwa fünf Jahren wurde die Idee geboren, sich in diesem Rahmen intensiv dem Thema »künstliche Intelligenz« (KI) zu widmen. Kurz zuvor hatte Nils sich mit dem Thema Ethik im Kontext von QS für KI auseinandergesetzt. Nils wollte sein Wissen folglich in dieses Projekt einbringen. Gerhard hatte in seinem Berufsleben immer mal wieder mit KI zu tun und war ebenfalls von Beginn an dabei. Verena hatte sich bereits während ihres Studiums mit dem Thema künstliche Intelligenz beschäftigt. Ihre Expertise in diesem Bereich passte also sehr gut ins Team. Das interne Forschungsprojekt hatte und hat bis heute das Ziel, in das Thema Testen von und Testen mit KI einzutauchen. Wir wollten und wollen neue Methoden finden und etablieren, um erfolgreich KI-Systeme qualitätssichern zu können. Unsere Zusammenarbeit lief gut und wir schrieben gemeinsam Artikel oder hielten Vorträge auf Konferenzen. Verena und Gerhard übernahmen dann auch die KI-Schulung zum »A4Q AI and Software Testing« [A4Q 2019], die seit Dezember 2020 bei imbus angeboten wurde. Als dann im ISTQB® (International Software Testing Qualifications Board, istqb.org) der neue Lehrplan zum KI-Testen erstellt wurde und dessen Review anstand, engagierte sich Gerhard dort.
Wir flachsten immer mal wieder darüber, ein gemeinsames Buch zum Thema KI und QS zu schreiben. Aus diesen Scherzen wurde dann irgendwann Ernst. Wir hoffen, dass das Ergebnis nicht nur uns, sondern auch dir gefällt.
Ende des Jahres 2021 hat das ISTQB® den Lehrplan zum »Certified Tester AI Testing« (CT-AI) veröffentlicht [ISTQB 2021a]. Dieser beinhaltet im Wesentlichen zwei Themen:
Das Testen
von
KI-basierten Systemen
Das Testen
mit
KI-basierten Systemen, also die Testunterstützung durch KI-basierte Systeme
Das Buch deckt beide Bereiche ab. Da sich unser beruflicher Alltag aber viel häufiger um den Test von KI-basierten Systemen dreht, konzentrieren wir uns in diesem Buch – wie auch der Lehrplan selbst – darauf. Hier werden wir die einzelnen Passagen mit Praxisbeispielen aus unserem Projektalltag untermalen, viele Übungen beschreiben und Lösungsbeispiele aufzeigen.
Wir haben den Anspruch, dass dieses Buch dabei hilft, eine Schulung für den CT-AI mit anschließender Zertifizierungsprüfung erfolgreich zu absolvieren, und zugleich ein Nachschlagewerk für den Arbeitsalltag von Testerinnen und Testern darstellt. Häufig ist ein Lehrplan allein nicht geeignet, um den Kurs im Selbststudium zu absolvieren. In diesem Fall kann das Buch als Begleitmaterial zu einer Schulung oder zum Selbststudium verwendet werden. Das Buch wurde von uns so konzipiert, dass es die Inhalte des Lehrplans abdeckt, diese entsprechend mit weiteren Informationen anreichert sowie die im Lehrplan genannten Übungen aufzeigt und dabei hilft, sie zu meistern. An manchen Stellen erschien es uns sinnvoll, zusätzliche Übungen einzubauen.
Aufgrund unserer Erfahrungen als Trainerin und Trainer sowohl für den ISTQB® CT-AI als auch dessen Vorgänger »A4Q AI and Software Testing« [A4Q 2019] sind wir sicher, dass dieses Buch eine gute Unterstützung bei der Vorbereitung auf die Zertifizierungsprüfung sein wird. Um die eigenen Kenntnisse zu überprüfen, empfehlen wir die Bearbeitung der zusammen mit dem Lehrplan veröffentlichten ISTQB®-CT-AI-Übungsfragen [ISTQB 2023]. Die originale Veröffentlichung des Lehrplans ist in Englisch verfasst. Das German Testing Board (GTB) hat im darauffolgenden Jahr sowohl den Lehrplan als auch die Übungsfragen in deutscher Sprache veröffentlicht (vgl. [GTB 2021]; [ISTQB 2023]).
Die Kapitel in diesem Buch stimmen mit den zugehörigen Kapiteln des ISTQB®-CT-AI-Lehrplans überein. An einigen Stellen haben wir in den (Unter-)Kapiteln selbst Exkurse eingefügt. Diese ändern jedoch nichts an der Übereinstimmung der einzelnen Abschnitte mit dem Lehrplan. Die Schlüsselbegriffe für die einzelnen Kapitel führen wir in Englisch und Deutsch auf.
Das International Software Testing Qualifications Board (ISTQB®) ist eine global agierende Organisation, die das erfolgreichste Ausbildungs- und Zertifizierungsschema zum Testen von Software entwickelt hat. Es ist in regionalen bzw. nationalen Boards organisiert. Im deutschsprachigen Raum sind dies das Austrian Testing Board (ATB), das German Testing Board (GTB) und das Swiss Testing Board (STB). Das Ausbildungsschema des ISTQB® ist in drei Stufen organisiert: Foundation Level, Advanced Level und Expert Level. Innerhalb jeder Stufe gibt es Lehrpläne zu mehreren Themenbereichen rund um den (Software-)Test, die von ehrenamtlich tätigen Autorinnen und Autoren aus Industrie und Forschung erstellt werden. Neben diesen drei Stufen gibt es weitere Spezialmodule und Module zum Thema »Testen in agilen Projekten«.
Weitere Informationen zur Organisation, dem Ausbildungs- und Zertifizierungsschema sowie den Lehrplänen finden sich auf der Webseite des ISTQB® [URL: ISTQB] sowie auf den Seiten der nationalen Testing Boards (vgl. [URL: ATB]; [URL: GTB]; [URL: STB]).
Für den ISTQB® »Certified Tester Foundation Level« (CTFL) wurde im August 2023 ein neuer Lehrplan in der Version 4.0 – zunächst in englischer Sprache – veröffentlicht [GTB 2023]. In diesem sind beispielsweise Begriffe wie Testorakel entfallen. Der aktuelle CT-AI-Lehrplan bezieht sich noch auf den CTFL in der Version 3.1. Für dich als Leserin oder Leser ist es daher wichtig, zumindest für die Zertifikatsprüfung die Begrifflichkeiten der Version 3.1 des CTFL parat zu haben. Wir beziehen uns im Buch immer auf den CTFL 3.1 [GTB 2018].
Zu Beginn jedes Kapitels listen wir die Schlüsselbegriffe und die dazugehörigen Begriffe aus dem Lehrplan auf. Zusätzliche Begriffe, die uns wichtig erscheinen, ergänzen diese Auflistung.
Manche Begriffe verwenden wir im Projektalltag in der Regel in Englisch. Ein Beispiel ist Bias. Der Begriff wird auch im Deutschen oft verwendet, der deutsche Begriff Verzerrung hingegen eher weniger. Wir haben versucht, diesem Umstand im Buch gerecht zu werden, und verweisen dann bei solchen Begriffen auf den Projektalltag. In einer möglichen Zertifikatsprüfung solltest du auf jeden Fall den deutschen Begriff kennen.
Dieses Buch enthält zu vielen Kapiteln auch praktische Übungen. In den meisten veranschaulichen wir die Lerninhalte an Codebeispielen in der Programmiersprache Python. Die Aufgaben und Lösungen befinden sich auf GitHub unter https://github.com/KI-Testen/Uebungen, unserem KI-Testen-Repository. Wir verwenden hauptsächlich Jupyter Notebooks1, da diese es uns ermöglichen, den Code für dich anschaulich zu dokumentieren, und du ihn interaktiv ausführen kannst. Jupyter Notebooks finden nicht nur an (Hoch-)Schulen, sondern auch in Lehrmaterialien häufig Verwendung.
Um unsere Jupyter Notebooks nutzen zu können, benötigst du Zugriff auf eine JupyterLab-Umgebung. Wir empfehlen die Installation auf deinem eigenen PC oder Laptop. Dann kannst du darauf Python und die notwendigen Bibliotheken selbst installieren. Eine Anleitung dafür findest du in unserem GitHub-Repository.
Wenn du auf deinem PC nichts installieren kannst oder willst, gibt es verschiedene Möglichkeiten, auf bereits installierte JupyterLab-Umgebungen im Web zuzugreifen, wie z.B.:
GitHub Account: über
https://github.com/codespaces
einloggen und mit dem Jupyter Notebook-Template einen Codespace anlegen.
Mit Google-Konto: auf
https://colab.research.google.com/
mit deinem Google Account einloggen.
Auf
Jupyter.org
: ohne Login für Versuche ein JupyterLab über
https://jupyter.org/try-jupyter
starten.
Du musst in jeder dieser Varianten die Dateien aus unserem Git-Repository manuell dort hineinkopieren. Achte dabei darauf, die Verzeichnisstruktur beizubehalten. Wir können jedoch nicht garantieren, dass diese Umgebungen immer verfügbar sind und mit unseren Übungen funktionieren.
Wir arbeiten meist in jungen und agilen Teams, in denen wir Produkte mitentwickeln und testen. In diesen steht das Team im Mittelpunkt und der Kommunikationsstil ist so angepasst, dass sich in der Regel alle Teammitglieder duzen. Diesen Kommunikationsstil haben wir auch für dieses Buch übernommen und duzen daher die Leserin und den Leser. Selbstverständlich kann uns auch jeder duzen. Wir hoffen, dass du dich durch diesen Kommunikationsstil nicht unangemessen angesprochen oder sogar angegriffen fühlst. Sollte dies doch der Fall sein, möchten wir uns dafür entschuldigen.
Wie bereits in den vorangehenden Abschnitten zu sehen war, versuchen wir im gesamten Buch, eine geschlechtergerechte Sprache zu verwenden. Wir nutzen sowohl die weibliche als auch die männliche Form. Zum Beispiel schreiben wir die Nutzerin und der Nutzer. Auf die Verwendung von Gendersternchen oder Ähnlichem verzichten wir an dieser Stelle. Wir tun dies ausschließlich aus Gründen der besseren Lesbarkeit. Wir beabsichtigen damit keine Diskriminierung von Menschen unterschiedlichen Geschlechts. Sollten sich manche durch diese Entscheidung diskriminiert fühlen, möchten wir uns dafür entschuldigen und versichern, dass dies nicht unsere Absicht ist.
Die Praxisbeispiele stammen überwiegend aus unserer beruflichen Praxis. Um den Schutz der Kunden und deren Geschäftsgeheimnisse zu wahren, mussten wir abstrahieren oder kleinere Anpassungen vornehmen.
Einige Praxisbeispiele haben keinen direkten Bezug zu Projekten mit unserer Beteiligung. Sie sind, wie ein Spamfilter für E-Mails, aber Beispiele, die uns und vielleicht auch dir im täglichen Leben begegnen.
Die Praxisbeispiele sind folgendermaßen gekennzeichnet:
Praxisbeispiel 0–1:Beispielthema (ggf. Erweiterung)
So stellen wir Praxisbeispiele dar. Bei diesem Kasten handelt es sich um ein Anschauungsbeispiel, das zeigen soll, wie wir Situationen aus unserem (oder einem vergleichbaren) Projektalltag im weiteren Verlauf des Buches beschreiben.
Wir haben echte Screenshots eingefügt, um das Geschriebene bildlich zu verdeutlichen. Es gibt ein Bild nur mit englischem Inhalt. Da dieses Bild selbsterklärend ist und den Text ergänzen soll, wurde auf eine Übersetzung verzichtet.
Wir empfehlen dringend, die im Buch enthaltenen Übungen durchzuführen und nicht nur zu lesen. Diese selbst durchzuführen, fördert wesentlich das Verständnis der Lerninhalte. Theoretische Kenntnisse wirken nur unterstützend für die praktische Anwendung. Die Übungen helfen dir, Ideen zu generieren und festzulegen, wie du mit der aktuellen Aufgabenstellung im Projektkontext umgehen kannst. Vielleicht findet sich für die Übungen eine Sparringspartnerin oder -partner aus der Testing Community oder unter den Arbeitskollegen.
Alle Aufgaben und Lösungen zu den Übungen findest du im online verfügbaren GitHub-Repository (https://github.com/KI-Testen/Uebungen).
Solltest du im Buch auf einen dir unbekannten Begriff stoßen, empfehlen wir dir, direkt in unserem Glossar am Ende des Buches nachzuschlagen. Wir haben darin alle Begriffe, die unserer Meinung nach zum besseren Verständnis beitragen, aufgelistet und mit dem domänenspezifischen Glossar des CT-AI-Lehrplans [GTB 2021] und dem allgemeinen Glossar des ISTQB® [URL: Glossar] abgeglichen. Bei den Begriffen und/oder Definitionen kann es andere Formulierungen geben, die Inhalte stimmen jedoch aus unserer Sicht überein. Sollten in diesem Buch weitere unbekannte Wörter oder Begriffe auftauchen, empfehlen wir dir als erste Anlaufstelle die beiden genannten Quellen.
Quellen und Links wurden von uns zuletzt im August 2023 überprüft. Sollten sich nach diesem Datum Änderungen ergeben haben, sind diese nicht im Buch berücksichtigt.
Wir möchten Danke sagen: Ein großes Dankeschön geht an Anna, Brigitte und Felix für ihre Unterstützung, ihre Geduld und ihre Nachsicht während der letzten fast zweieinhalb Jahre.
Danke auch an Florian Fieber und Binia Sonnen für ihre vielen Anmerkungen und Tipps, die das Buch qualitativ deutlich aufgewertet haben. Ebenso bedanken wir uns bei Andreas Spillner, Mario Winter und Jonas Mönnich für ihre wertvollen Anmerkungen sowie bei unseren zahlreichen Kolleginnen und Kollegen, mit denen wir viele Gespräche über das Thema KI und damit auch über das Buch geführt haben.
Zu guter Letzt geht unser Dank auch an den dpunkt.verlag und Christa Preisendanz für die gute Betreuung während des Schreibens.
1Einführung in KI
2Qualitätsmerkmale KI-basierter Systeme
3Maschinelles Lernen (ML) – ein Einstieg
4ML-Daten – ein Einstieg
5Funktionale Leistungsmetriken – ein Einstieg
6Neuronale Netze und Testen
7Testen KI-basierter Systeme im Überblick
8Testen KI-spezifischer Qualitätsmerkmale – ein Einstieg
9Methoden und Verfahren für das Testen KI-basierter Systeme
10Testumgebungen für KI-basierte Systeme
11Einsatz von KI für Tests
Anhang
AAbkürzungen
BGlossar
CVerzeichnis der Praxisbeispiele
DVerzeichnis der Übungen
EVerzeichnis der Exkurse
FLiteraturverzeichnis
Index
1Einführung in KI
1.1Definition von KI und der KI-Effekt
1.2Schwache KI, starke KI und die künstliche Superintelligenz
1.3KI-basierte Systeme und klassische Systeme
1.4KI-Techniken
1.4.1Exkurs: KI-Techniken im Detail
1.5KI-Entwicklungs-Frameworks
1.6Hardware für KI-basierte Systeme
1.7KI als Service (AI as a Service, AIaaS)
1.8Vortrainierte Modelle
1.9Normen, Vorschriften und KI
1.9.1Exkurs: Liste einiger Normen und Standards mit KI-Bezug
2Qualitätsmerkmale KI-basierter Systeme
2.1Flexibilität und Anpassbarkeit
2.2Autonomie von Systemen
2.3Evolution
2.4Bias
2.4.1Exkurs: Weitere Arten des Bias
2.5Ethik
2.6Seiteneffekte und Reward Hacking
2.6.1Seiteneffekte
2.6.2Reward Hacking
2.7Transparenz, Interpretierbarkeit und Erklärbarkeit
2.8Funktionale Sicherheit und KI
3Maschinelles Lernen (ML) – ein Einstieg
3.1Arten des maschinellen Lernens (ML)
3.1.1Überwachtes Lernen
3.1.2Unüberwachtes Lernen
3.1.3Bestärkendes Lernen
3.1.4Exkurs: Das Wissen einer KI – der Unterschied zwischen Korrelation und Kausalität
3.2ML-Workflow
3.2.1Exkurs: Alternative Workflows
3.3Auswahl einer Art von ML
3.3.1Übung: Wahl der passenden ML-Art
3.4Faktoren, die bei der Auswahl von ML-Algorithmen eine Rolle spielen
3.5Overfitting und Underfitting
3.5.1Overfitting
3.5.2Underfitting
3.5.3Übung: Demonstration von Overfitting und Underfitting
4ML-Daten – ein Einstieg
4.1Datenvorbereitung als Teil des ML-Workflows
4.1.1Datenbeschaffung
4.1.2Vorverarbeitung der Daten
4.1.3Merkmalsermittlung
4.1.4Herausforderungen bei der Datenvorbereitung
4.1.5Übung: Datenvorbereitung für ML
4.2Trainings-, Validierungs- und Testdatensätze
4.2.1Übung: Identifizieren von Trainings- und Testdaten und Erstellen eines ML-Modells
4.2.2Exkurs: Aufteilungsmethoden für Trainings- und Validierungsdaten
4.3Probleme mit der Datensatzqualität
4.4Datenqualität und ihre Auswirkungen auf das ML-Modell
4.4.1Übung: Aspekte der Datenqualität
4.5Datenkennzeichnung für überwachtes Lernen
4.5.1Ansätze zur Datenkennzeichnung
4.5.2Falsch gekennzeichnete Daten in Datensätzen
5Funktionale Leistungsmetriken – ein Einstieg
5.1Konfusionsmatrix
5.1.1Übung: Metriken einsetzen
5.2Zusätzliche funktionale Leistungsmetriken von ML für Klassifikation, Regression und Clusterbildung
5.3Beschränkungen der funktionalen Leistungsmetriken von ML
5.4Auswahl funktionaler Leistungsmetriken von ML
5.4.1Übung: Evaluieren eines erstellten ML-Modells
5.5Benchmark-Suiten für ML
6Neuronale Netze und Testen
6.1Neuronale Netze
6.1.1Übung: Training eines neuronalen Netzes
6.2Überdeckungsmaße für neuronale Netze
7Testen KI-basierter Systeme im Überblick
7.1Spezifikation KI-basierter Systeme
7.2Teststufen für KI-basierte Systeme
7.2.1Eingabedatentest
7.2.2ML-Modelltest
7.2.3Komponententest
7.2.4Komponentenintegrationstest
7.2.5Systemtest
7.2.6Abnahmetest
7.3Testdaten zum Testen KI-basierter Systeme
7.4Testen auf Automatisierungsbias in KI-basierten Systemen
7.5Dokumentieren einer KI-Komponente
7.6Testen auf Konzeptdrift
7.7Auswahl einer Testvorgehensweise für ein ML-System
8Testen KI-spezifischer Qualitätsmerkmale – ein Einstieg
8.1Herausforderungen beim Testen selbstlernender Systeme
8.2Test von autonomen KI-basierten Systemen
8.3Testen auf algorithmischen, stichprobenartigen und unangemessenen Bias
8.4Herausforderungen beim Testen probabilistischer und nichtdeterministischer KI-basierter Systeme
8.5Herausforderungen beim Testen komplexer KI-basierter Systeme
8.5.1Übung: Herausforderungen bei der Verwendung eines künstlichen neuronalen Netzes
8.6Testen der Transparenz, Interpretierbarkeit und Erklärbarkeit KI-basierter Systeme
8.6.1Übung: Erklärbare KI
8.7Testorakel für KI-basierte Systeme
8.8Testziele und Akzeptanzkriterien
8.8.1Übung: Akzeptanzkriterien
9Methoden und Verfahren für das Testen KI-basierter Systeme
9.1Gegnerische Angriffe und Datenverunreinigung
9.1.1Gegnerische Angriffe
9.1.2Datenverunreinigung
9.2Paarweises Testen
9.2.1Übung: Paarweises Testen
9.3Vergleichendes Testen
9.4A/B-Testen
9.5Metamorphes Testen
9.5.1Übung: Metamorphes Testen
9.6Erfahrungsbasiertes Testen von KI-basierten Systemen
9.6.1Checklisten für den Test von KI-basierten Systemen
9.6.2Übung: Exploratives Testen und explorative Datenanalyse (EDA)
9.7Übersicht und Auswahl von Testverfahren für KI-basierte Systeme
9.7.1Übersicht der Verfahren
9.7.2Übung: Verfahren für das Testen KI-basierter Systeme
10Testumgebungen für KI-basierte Systeme
10.1Besonderheiten von Testumgebungen für KI-basierte Systeme
10.2Virtuelle Testumgebungen zum Testen KI-basierter Systeme
11Einsatz von KI für Tests
11.1KI-Techniken fürs Testen
11.1.1Algorithmische Methoden, mit denen KI unterstützt
11.1.2Übung: Der Einsatz von KI bei Tests
11.2Einsatz von KI zur Analyse gemeldeter Fehler
11.3Einsatz von KI für die Testfallgenerierung
11.4Einsatz von KI für die Optimierung von Regressionstestsuiten
11.5Einsatz von KI für die Fehlervorhersage
11.5.1Übung: Aufbau eines Fehlervorhersagesystems
11.6Einsatz von KI zum Testen von Benutzungsschnittstellen
11.6.1Einsatz von KI zum Testen über die GUI
11.6.2Einsatz von KI zum Testen der GUI
11.7Exkurs: ChatGPT als Teammitglied?
11.7.1Übung: ChatGPT zur Testfallgenerierung
11.7.2Mehrwert von großen Sprachmodellen im Test
Anhang
AAbkürzungen
BGlossar
CVerzeichnis der Praxisbeispiele
DVerzeichnis der Übungen
EVerzeichnis der Exkurse
FLiteraturverzeichnis
Index
»Dinge wahrzunehmen ist der Keim der Intelligenz.«
Laotse
In diesem Kapitel erklären wir allgemein den Begriff der künstlichen Intelligenz (KI) und die damit in Verbindung stehenden Systeme. Wir vermitteln, wie der Begriff entstand und sich bis heute entwickelt hat, aber auch was heutige künstlich intelligente Systeme charakterisiert und sie von konventioneller Software unterscheidet. Ebenso werfen wir einen Blick darauf, wie und mit welchen Frameworks KI-basierte Systeme entwickelt werden und was bei deren Betrieb zu beachten ist: als Service in der Cloud, auf dedizierter Hardware oder im regulatorischen Umfeld.
KI-spezifische Schlüsselbegriffe aus dem Lehrplan:
AI as a Service (AIaaS), KI-Entwicklungs-Framework (AI development framework), KI-Effekt (AI effect), KI-basiertes System (AI-based System), künstliche Intelligenz (KI, artificial intelligence), neuronales Netzwerk (neural network), Deep Learning (DL), tiefes neuronales Netzwerk (deep neural network), starke KI (general AI), Datenschutzgrundverordnung (DSGVO, General Data Protection Regulation, GDPR), maschinelles Lernen (ML, machine learning), schwache KI (narrow AI), vortrainiertes Modell (pre-trained model), künstliche Superintelligenz (super AI), technologische Singularität (technological singularity), Transfer-Lernen (transfer learning)
Weitere Schlüsselbegriffe in diesem Kapitel:
keine
Der Begriff der künstlichen Intelligenz (KI) ist in unserem Leben fast allgegenwärtig geworden. Wir haben ihn schon oft in den Nachrichten gehört, in Artikeln und Büchern dazu gelesen oder Filme darüber gesehen. So verwundert es nicht, wenn viele von sich sagen, den Begriff KI verstanden zu haben. Wir ordnen dann gerne KI als aktuelle Hightech-Innovation ein.
Neu ist die Idee einer von Menschen geschaffenen Intelligenz aber keinesfalls. Schon weit vor dem heute beobachtbaren gesellschaftlichen Hype führte die wissenschaftliche Forschung den Begriff der künstlichen Intelligenz ein. Er geht auf die 1950er-Jahre zurück, als Forscherinnen und Forscher der damals bereits wachsenden technischen Möglichkeiten ein besonderes Ziel vor Augen hatten: Rechenmaschinen zu bauen, die den Menschen und seine Fähigkeiten imitieren können. Als wichtigstes Ereignis wird heute der Workshop am Dartmouth College in New Hampshire im Jahr 1956 angesehen, der erstmals eine Studie zu künstlicher Intelligenz zum Thema hatte.1
Seitdem beschäftigt sich die Forschung in Theorie und Praxis mit diesem Ziel. Mit den Fortschritten in der mathematischen Modellierung, den technischen Möglichkeiten und neuen potenziellen Anwendungsgebieten hat sich auch die Definition des Begriffs der künstlichen Intelligenz ständig weiterentwickelt. Im derzeitigen Sprachgebrauch versteht man Folgendes darunter:
Künstliche Intelligenz (KI): Die Fähigkeit eines technischen Systems, Wissen und Fertigkeiten zu erwerben, zu verarbeiten, zu entwickeln und anzuwenden.a
a.Aus der englischen Definition des technischen Reports ISO/IEC TR 29119-11 [ISO/IEC TR 29119-11].
Der Wandel, dem die Definition des KI-Begriffs bis heute unterworfen ist, erklärt sich vor allem aus einer veränderten Wahrnehmung technischer Systeme und deren Leistungen. Insbesondere ist die Grenze zwischen konventioneller Software und Systemen mit künstlicher Intelligenz nicht festgeschrieben, sondern ebenfalls einem Wandel unterworfen.
Noch in den 1970er-Jahren konnten mäßig geübte Schachspielerinnen und -spieler die damaligen Schachcomputer besiegen. Ein Programm, das in der Lage gewesen wäre, einen Schachweltmeister zu schlagen, schien dagegen unmöglich. Das Schachspiel ist ein Paradebeispiel für eine ganze Reihe von Problemen, die trotz weniger Regeln und begrenztem Spielfeld eine hohe strategische Komplexität aufweisen. Als 1997 dann Deep Blue den damals amtierenden Schachweltmeister Garri Kasparow besiegte, wurde dies als Siegeszug der künstlichen Intelligenz gefeiert. Aus heutiger Sicht wird die damalige Software jedoch von vielen nicht mehr als KI bezeichnet. Deep Blue nutzte damals eine Brute-Force-Methode, also eine auf purer Rechenleistung beruhende Methode, um den nächsten Zug zu ermitteln. Ein Erwerben oder Weiterentwickeln der eigenen Fertigkeiten, wie nach der aktuellen Definition einer KI, war hier gar nicht vorgesehen.
Mit dem Begriff der künstlichen Intelligenz verbinden wir durchaus eine Art von Bewunderung für eine unerwartete Leistung. Insbesondere, wenn man diese nicht ohne Weiteres technisch, einfach und nachvollziehbar erklären kann. Eine kleine Anekdote dazu: Selbst die Entwicklerinnen und Entwickler von Deep Blue waren damals über bestimmte Züge ihres Programms überrascht. Später fanden sie heraus, dass einer diese Züge auf einen Programmierfehler zurückzuführen war, der die Maschine zunächst in eine Endlosschleife versetzte. Ein Notfallmechanismus hat dann die Zugsuche abgebrochen und per Zufall einen beliebigen ausgewählt. Just dieser völlig unorthodoxe Zug hatte Kasparow damals aus dem Konzept gebracht, weil er dahinter eine besondere Genialität vermutete. Das Blatt wendete sich und Kasparow verlor [Silver 2012].2
Ebenso zählte die Fachwelt Expertensysteme der 1970er- und 1980er-Jahre lange Zeit zu den Systemen mit künstlicher Intelligenz. Diese arbeiten mit klar beschriebenen Regeln, z.B. Wenn-dann-Bedingungen, sowie mit in Datenbanken gespeichertem Expertenwissen. Meist können sie komplizierte Fragestellungen aus einem bestimmten Wissensgebiet gut beantworten. Schon die ersten Expertensysteme zeigten, trotz einfach strukturierter Regelwerke, Fähigkeiten, die man damals nur menschlichen Fachexpertinnen und -experten zutraute. Heute werden die damaligen Expertensysteme nicht mehr zur KI gezählt, moderne Expertensysteme hingegen schon.
Die Verschiebung dieser Grenze, also die Wahrnehmung, ob man ein System als künstliche Intelligenz ansieht oder nicht, bezeichnet man als KI-Effekt[URL: Wikipedia]. Im Laufe der Zeit hat sich diese Einschätzung in der Gesellschaft verändert und sie verändert sich vermutlich auch weiterhin. Diesem Umstand trägt der alternative Begriff Lernende Systeme Rechnung, der sich in den vergangenen Jahren gerade in der Forschung etabliert hat.
In diesem Buch benutzen wir den Begriff KI sehr oft. Damit meinen wir die sehr weit gefasste Menge an Systemen im Sinne der oben genannten Definition. In den seltensten Fällen ist jedoch eine reine KI-Software allein im Einsatz. Meistens ist sie in konventionelle Software3 eingebettet. Um dies zu betonen, werden wir diese dann auch als KI-basierte Systeme bezeichnen. Im weiteren Verlauf des Buches müssen wir andererseits aber auch präziser werden und sprechen dann z.B. von logikbasierten Systemen (siehe Abschnitt 1.4) oder Systemen des maschinellen Lernens (ML-Systemen, ab Kap. 3).
Viele kennen die künstlichen Superintelligenzen in den Science-Fiction-Filmen wie 2001 – Odyssee im Weltraum oder Terminator. Sie greifen nicht nur auf übermenschliches Wissen zu, sondern sind sogar fähig, die Menschheit auszulöschen. Wenn du dir aber anschaust, wozu KI heute in der Lage ist, dann wird schnell klar, dass diese Superintelligenzen derzeit nicht realisierbar sind. KI, so wie sie heute eingesetzt und entwickelt wird, ist lediglich in der Lage, spezifische Aufgaben in einem limitierten Kontext auszuführen. Wir sprechen hier von begrenzter oder schwacher KI, da ihr Einsatzgebiet auf einen sehr begrenzten Problemraum beschränkt ist.
Schwache KI: KI, die auf eine einzelne klar definierte (engl. well-defined) Aufgabe konzentriert ist, um ein spezifisches Problem zu lösen.a
a.Übersetzt aus [ISO/IEC TR 29119-11].
Solche begrenzten KIs zeigen uns immer wieder beeindruckende Spielkünste in strategischen Spielen, wie z.B. AlphaZero, veröffentlicht von der Google-Firma DeepMind im Dezember 2017 [Silver et al. 2017]. AlphaZero kann innerhalb von wenigen Stunden eigenständig Spielstrategien verschiedener Brettspiele nur anhand der Spielregeln erlernen. Damit zeigt AlphaZero Fähigkeiten, die bei Weitem die eines Menschen übersteigen. Dennoch betrachten wir dieses System als begrenzte KI, da sie mit ihren Fähigkeiten auf das sehr spezifisches Aufgabenfeld der strategischen Brettspiele beschränkt ist.
In unserem Alltag finden wir alle mittlerweile viele Situationen, in denen schwache KIs Aufgaben übernehmen: Spamfilter, die unerwünschte E-Mails aussortieren, Sprachassistenten, die unsere Telefonate entgegennehmen, Bordcomputer in unseren Autos, die uns mitteilen, welcher Kundenservice ansteht. All diese KIs zeigen ihr Können nur in ihrem definierten Aufgabenbereich. Für neue Aufgaben außerhalb ihres vorgesehenen Einsatzgebiets sind sie nicht entwickelt.
Stell dir vor, du trainierst eine KI mit sehr vielen Hundebildern, um auf Bildern von Hunden deren Rasse erkennen zu können.4 Wenn du der KI Hundebilder präsentierst, funktioniert diese erstaunlich gut. Was passiert aber, wenn auf dem Bild kein Hund zu sehen ist? Dafür ist die KI nicht trainiert. Sie versucht dennoch, das Bild einer Hunderasse zuzuordnen, obwohl es sich bei dem Bild gar nicht um einen Hund handelt. Die offensichtlich begrenzte KI bleibt in ihrem eng gefassten Aufgabenbereich.
Die offene Forschungsplattform OpenAI hat mit GPT-3 im Juni 2020 eine KI zur Verarbeitung von Texten auf einem noch nicht dagewesenen Level veröffentlicht [Brown et al. 2020]. Seit Anfang 2023 ist die neuere Version GPT-3.5 als Chatbot ChatGPT für alle kostenlos verfügbar. GPT-3 ist ein durch Deep Learning trainiertes neuronales Netz5, das zur Textverarbeitung im weitesten Sinne eingesetzt werden kann. Das Einsatzgebiet für GPT-3 reicht von der Erstellung von journalistischen Artikeln über Gedichte bis hin zu Programmcode. Sind damit die Grenzen der begrenzten KI hin zur generellen KI überschritten?
Starke KI: KI, die über das gesamte Spektrum der kognitiven Fähigkeiten ein dem Menschen vergleichbares intelligentes Verhalten zeigt.a
a.Übersetzt aus [ISO/IEC TR 29119-11].
In der Definition der starken KI, angelehnt an die ISO/IEC TR 29119-11:2020 (der Lehrplan spricht hier von der allgemeinen KI), wird die Summe der menschlichen Fähigkeiten ins Zentrum gestellt. Im Gegensatz zur begrenzten KI sprechen wir von einer generellen KI, wenn die Fähigkeiten nicht auf eine Aufgabenstellung beschränkt ist. Eine starke KI hat weitreichende Fähigkeiten, vergleichbar mit denen eines Menschen, wie beispielsweise Begründungen zu formulieren, die Umwelt zu verstehen, Schlussfolgerungen zu ziehen und danach zu handeln.
Auch wenn die Fähigkeiten von GPT-3 so mächtig erscheinen, ist GPT-3 auf rein textuelle Aufgaben beschränkt und nicht in der Lage, wie ein Mensch Sachverhalte zu verstehen, sondern ahmt Formulierungen aus den Trainingsdaten, wie im Training gelernt, lediglich nach. Daher sprechen wir bei GPT-3 nicht von einer generellen KI. Gleiches gilt für die bessere Version GPT-4. Im Kontext der gegebenen Definitionen und nach Stand von August 2023 wurde noch keine starke KI realisiert, kurz: Es gibt keine.
Die oberste Stufe der künstlichen Intelligenz ist die der künstlichen Superintelligenz. Darin werden KIs zusammengefasst, die das Verhalten von uns Menschen nicht nur nachahmen können, sondern unsere Fähigkeiten durch die Verarbeitung von gewaltigen Datenmengen sogar übertreffen. Dazu nutzen sie einen praktisch unlimitierten Datenspeicher und Zugang zu allem menschlichen Wissen, wie es z.B. im Internet zu finden ist. Der Punkt, an dem die KI von der generellen KI zur künstlichen Superintelligenz übergeht, wird auch als technologische Singularität beschrieben.
Künstliche Superintelligenz: Eine KI, deren Fähigkeiten die Fähigkeiten des Menschen überschreiten bzw. weit übertreffen.
Auch wenn diese künstlichen Superintelligenzen bis jetzt nur in Filmen existieren, hielt Stephen Hawking sie in der Zukunft für realisierbar und warnt vor deren Fähigkeiten.
»Ich fürchte, dass die künstliche Intelligenz den Menschen insgesamt ersetzen könnte. Wenn Menschen Computerviren entwerfen, wird jemand eine künstliche Intelligenz entwerfen, die sich selbst verbessert und vermehrt. Das wird eine neue Lebensform sein, die den Menschen überragt.«
Stephen Hawking, 2017
»KI ist auch nur eine Software.« So hört man es des Öfteren. Das ist sicher richtig, aber KI-Systeme werden nicht wie klassische Software (auch konventionelle Software genannt) entwickelt. Denke an klassische Softwaresysteme, hier haben Menschen die darin enthaltenen logischen Zusammenhänge und Abläufe hergeleitet. Diese werden in Form von Anweisungen wie Wenn-dann-sonst-Konstrukten (engl. if-then-else) und Schleifen im Programmcode festgehalten. Die dafür verwendeten Programmiersprachen werden auch als imperative Programmiersprachen bezeichnet. So entscheiden die Entwicklerinnen und Entwickler, bei welchem Input sich die Software wie verhalten soll.
Für Menschen ist es im Normalfall relativ einfach, mit entsprechendem Vorwissen die logischen Zusammenhänge zu verstehen. Sie können nachvollziehen, wie die Softwareeingaben in Ausgaben6 umgewandelt werden und warum sich das System so verhält, wie es sich verhält. Selbst, wenn diese klassischen Softwaresysteme sehr komplex sind, sind doch Menschen mit Vorwissen in der Lage, diese Software zu verstehen und den Grund für ein bestimmtes Verhalten zu ermitteln.
KI-basierte Systeme, die durch maschinelles Lernen (engl. machine learning, ML) trainiert werden, erlernen während der Trainingsphase das gewünschte Verhalten. Um diese Systeme zu trainieren, gibt es eine Vielzahl von Techniken, auf die wir in Abschnitt 1.4 genauer eingehen. Unabhängig von der gewählten Technik, wird in der Trainingsphase eines KI-basierten Systems anhand von erlernten Datenmustern bestimmt, wie es in Zukunft auf neue Daten reagieren soll. Die zugrunde liegenden logischen Zusammenhänge werden nun nicht mehr von Entwicklerinnen oder Entwicklern vorgegeben, sondern automatisiert aus den Datenmustern durch das ML abgeleitet (für eine detaillierte Erklärung des maschinellen Lernens siehe Kap. 3). Du kannst dir leicht vorstellen, dass die Qualität der Daten einen wesentlichen Einfluss darauf hat, wie gut die KI in der Trainingsphase lernt. Wenn die Lernphase mit Daten, die keine repräsentativen Datenmuster und Merkmale beinhalten, stattgefunden hat, lernt die KI während der Trainingsphase unzureichende oder sogar falsche Regeln (siehe die Abschnitte 2.4 und 3.5).
Während bei der klassischen Softwareentwicklung die Entwicklerinnen und Entwickler direkten Einfluss auf die Logik der Software haben, haben sie bei KI-basierten Systemen nur indirekt Einfluss auf deren Verhalten, nämlich lediglich über die Wahl des Inputs während des Trainings und die Auswahl der KI-Technik und des dazugehörigen ML-Algorithmus (siehe Abb. 1–1). Ein ML-Algorithmus ist eine mathematische Vorgehensweise, die zur Erstellung eines ML-Modells aus einem Trainingsdatensatz verwendet wird.
Abb. 1–1Klassische und KI-basierte Software im Vergleich
KI-basierte Systeme haben im Vergleich zu klassischen Systemen meist den Nachteil, dass die logischen Regeln für Menschen weniger leicht bis überhaupt nicht nachvollziehbar sind – je nach Komplexität der KI-Technik (siehe Abschnitt 2.7). Daher spricht man bei KI-Software oft auch von einer Blackbox.
Um den Unterschied zwischen der Entwicklung von KI-basierten und klassischen Systemen noch deutlicher zu machen, schauen wir uns ein Praxisbeispiel aus dem Bereich des maschinellen Lernens an.
Praxisbeispiel 1–1:Testframework für eine Heizungssteuerung
Im Rahmen dieses Projekts ging es um funktionale Tests einer Heizungssteuerung (Smarthome-Steuerung). Auf einem Touchdisplay konnten die Raumtemperatur sowie viele andere Einstellungen der Heizung vorgenommen werden. Im Projekt musste für verschiedene Testszenarien bewertet werden, ob das Touchdisplay die richtigen Informationen anzeigt. Dafür wurde im Test der Smarthome-Steuerung jede Minute das Touchdisplay fotografiert und das Foto in einer Datenbank abgelegt. Mithilfe des KI-Systems sollte der Testaufwand für die manuelle Auswertung der Fotos reduziert werden. Es wurde ein Testframework entwickelt, das den Inhalt der Bilder automatisiert erkennen und auswerten sollte. Das Framework setzte sich aus klassischen und KI-Softwarekomponenten zusammen.
Ein Teil des Touchdisplays stellte eine Temperaturanzeige mit vier Sieben-Segment-Ziffern dar (siehe Abb. 1–2). Wir wählten für die sehr einfach aufgebaute Anzeige einen klassischen Softwareansatz für das Auslesen der Temperaturanzeige: Wir überlegten uns, welche Merkmale auf der Anzeige ausschlaggebend sind und welche Logik im Programmcode angewandt werden musste, um festzulegen, um welche Ziffer es sich an den einzelnen Positionen handelt. Dies gestaltete sich recht aufwendig, da die Software auch bei leicht variiertem Winkel des Fotos oder sich änderndem Lichteinfall fähig sein sollte, die Anzeige abzulesen. Nach langem Tüfteln mit den Belichtungszeiten und den Kontrasteinstellungen hatten wir eine zuverlässige Testautomatisierung entworfen. Diese war in der Lage, die auf der Temperaturanzeige abgebildete Zahl mit einem Sollwert zu vergleichen.
Die Anzeige enthielt neben der Temperaturanzeige auch deutlich kompliziertere Elemente, wie Warnsymbole, ein Zeichen für den Kalibrierungsmodus und eine Batteriezustandsanzeige. Der Aufwand mit der oben beschriebenen Herangehensweise wurde dadurch ungleich größer. Da die Logik im Programmcode zu komplex zu werden drohte, entschieden wir uns für einen ML-Ansatz. Wir wählten ein neuronales Netz, das sich für diese Klassifikationsaufgabe eignete. Um die KI zu trainieren, verwendeten wir den selbst erstellten Datensatz von Bildern dieser Heizungssteuerung. Anhand dieser Trainingsdaten lernte die KI, die Merkmale und Muster zu erkennen und sie den verschiedenen Symbolen zuzuordnen. Allerdings stellten wir beim Testen der KI fest, dass diese nicht die benötigte Genauigkeit hatte. Warum die KI so schlechte Ergebnisse lieferte, konnten wir anhand des Programmcodes der KI nicht mehr erkennen. Die Logik im neuronalen Netz war für uns Menschen nicht mehr nachvollziehbar.
Abb. 1–2Sieben-Segment-Anzeige auf dem Display einer Heizungssteuerung
Praxistipp
Auch wenn KIs beeindruckende Erfolge erzielt haben, haben sie den großen Nachteil, dass ihre Logik nur schwer bis gar nicht mehr nachvollziehbar ist. Es gibt Ansätze, die versuchen, KIs erklärbar zu machen (siehe Abschnitt 2.7). Bei sensiblen Aufgabenstellungen kann es dennoch sinnvoll sein, von der Verwendung einer KI ganz abzusehen und auf eine klassische Software zurückzugreifen. Diese ist möglicherweise aufwendiger in der Entwicklung der inneren Logik, der Entscheidungsprozess der Software ist dafür aber im Detail nachvollziehbar. Testerinnen und Tester können in einer solchen Software auch sehr einfach Reviews vornehmen und Whitebox-Tests durchführen. Reviews und Whitebox-Tests in einer KI sind im Gegensatz dazu sehr schwierig bis unmöglich.
Bei der Abgrenzung von konventionellen und KI-basierten Systemen musst du dir im Klaren darüber sein, dass sich in der Praxis die Wahrnehmung über KI-basierte Systeme in stetem Wandel befindet. Systeme, die man heute als KI-basierte Systeme bezeichnet, werden in Zukunft vielleicht den konventionellen Systemen zugeordnet (siehe Abschnitt 1.1).
Im vorangegangenen Abschnitt haben wir den wesentlichen Unterschied zwischen KI-basierter und konventioneller Software beschrieben. Insbesondere haben wir dort das maschinelle Lernen als eine der am weitverbreitetsten Entwicklungsmethoden erwähnt. Doch das ist nicht die einzige Methode. In Abbildung 1–3 zeigen wir eine Auswahl an KI-Techniken7 (der ISTQB®-Lehrplan spricht hier gar von Technologien).
Abb. 1–3Eine Auswahl an KI-Techniken, mit denen KI-Komponenten entwickelt werden können.
Wenn man eine KI-Komponente entwickeln will, muss man meist frühzeitig eine KI-Technik und einen der dazugehörigen ML-Algorithmen auswählen. Erst danach kann man mit dem Training beginnen. In Abschnitt 3.4 gehen wir näher darauf ein, welche Faktoren für die Auswahl eines Algorithmus zum Tragen kommen.
Jede KI-Technik hat ihre eigenen Vorzüge, aber auch Nachteile. Daher ist es nicht ungewöhnlich, dass man nach einem wenig erfolgreichen Training die Wahl des Algorithmus überdenken und mit einem vermutlich besser geeigneten Algorithmus das Training erneut beginnen muss.
Es kommt nicht selten vor, dass man in einem KI-basierten System auch mehr als eine einzige KI-Technik verwendet. Stell dir beispielsweise ein System vor, das eine Reisebuchung über einen Sprachdialog ermöglichen soll. Man wird es dort vermutlich mit neuronalen Netzen zur Spracherkennung zu tun haben. Die Auswahl des Reiseangebots könnte hingegen durch einen intelligenten Suchalgorithmus unterstützt werden.
Im Folgenden gehen wir auf die in Abbildung 1–3 gezeigten KI-Techniken näher ein und beschreiben auch in groben Zügen die ein oder andere Technik, damit du diese besser einordnen kannst.
Im ersten Moment würdest du wahrscheinlich keine KI hinter einer automatisierten Suche vermuten. Gerade intelligente Suchalgorithmen haben eine enorme Bedeutung erlangt. Dabei darfst du nicht nur an die klassische (z.B. lineare) Suche durch eine Liste von Elementen denken. Vielmehr kommen oft spezialisierte Suchalgorithmen zum Einsatz, wie etwa die folgenden:
Heuristische Suchalgorithmen
finden beispielsweise nicht alle mathematisch korrekten Treffer, ermitteln dafür aber diejenigen, die im aktuellen Kontext am besten passen – und das in erstaunlich kurzer Zeit. Denke hier nur an die Suche bei
.
Optimierende Suchen
finden innerhalb großer Parameterräume sehr effizient Kombinationen dieser Parameter, die eine möglichst niedrige Kostenfunktion ergeben – etwa bei Routenplanern.
Stark spezialisierte Suchen
nach Zeichenketten, etwa zum Auffinden ähnlicher Wörter oder Begriffe, sind ebenfalls Beispiele dieser KI-Techniken.
Suchalgorithmen zählt man verallgemeinert zu den Problemlösungsstrategien und Optimierungsverfahren.
Auf Logik basierende Techniken sind alle dadurch gekennzeichnet, dass sie Erfahrungswissen explizit maschinenlesbar erfassen und durch Regeln miteinander in Beziehung setzen:
Das
regelbasierte Schließen
(Regelmaschinen) greift in der klassischen Form auf Methoden der Aussagenlogik oder Prädikatenlogik zurück. Diese sind in der Lage, die Korrektheit einer neuen Aussage anhand elementarer bekannter Aussagen und Regeln zu deren Verknüpfung entweder zu beweisen oder zu widerlegen.
Deduktive Klassifikatoren
leiten beim sogenannten deduktiven Schließen neue Aussagen aus den bisher bekannten ab. Sie können dadurch beispielsweise Begriffe oder Gegebenheiten in Kategorien, Klassen oder Unterklassen einordnen. Aktuell gewinnen derartige Systeme wieder an Bedeutung, denn sie erlauben es, die seit einigen Jahren entstehenden und über das Internet geteilten Wissensdatenbanken von Begriffen und Bedeutungen (Ontologien) als Datengrundlage zu nutzen. Sie können damit zu mehr wissenschaftlicher Erkenntnis beitragen und sogar im Kampf gegen COVID-19 helfen
[Smith 2020]
.
Sowohl
fallbasiertes Schließen
(fallbezogene Argumentation) als auch
verfahrensorientiertes Schließen
(prozedurale Argumentation) erlauben es, die Lösungen für neue Problemsituationen durch den Vergleich mit bereits bekannten Problemen und den dafür bekannten Lösungsverfahren abzuleiten.
Neben der einfachen binären Logik (wahr oder falsch) existieren auch sogenannte mehrwertige Logiken, die in Verfahren des logischen Schließens angewandt werden. Diese verwenden für eine Aussage neben den Alternativen wahr und falsch auch Wahrheitswerte dazwischen. Beispielsweise können damit in einer Nachbildung der Logik digitaler Schaltkreise auch Zustände zwischen den beiden sonst verwendeten Spannungspegeln High und Low modelliert werden. Gerade in der Schaltungstechnik erweist sich das als sehr hilfreich.
Die sogenannte Fuzzy-Logik erlaubt darüber hinaus sogar beliebig viele Wahrheitswerte. Dennoch kann man auf diesen Werten weiterhin logische Operationen wie z.B. ˄ (Und), ˅ (Oder), ¬ (Nicht) anwenden.
Die derzeit wohl prominenteste Kategorie von KI-Techniken ist maschinelles Lernen. Ab Kapitel 3 widmen wir uns ausgiebig diesem Themenbereich. Im Folgenden veranschaulichen wir gleich an mehreren Stellen das Geschriebene anhand des Praxisbeispiels einer Wetterstation.
Praxisbeispiel 1–2:Wetterstation
Unsere Aufgabe ist es, für eine kleine ortsfeste Wetterstation eine Regenvorhersagefunktion zu programmieren. Unsere Wetterstation liefert täglich Messdaten zu Luftdruck, Temperatur und relativer Luftfeuchtigkeit an ihrem Standort. Aus diesen Messdaten soll unsere Regenvorhersage abgeleitet werden.
Zum maschinellen Lernen zählt eine Vielzahl von Techniken. In Projekten begegnen wir öfters den folgenden:
Neuronale Netze
haben aktuell eine große Verbreitung. Daher werden wir in
Abschnitt 6.1
noch genauer auf diese eingehen.
Die
Bayes-Netze
und
Bayes-Klassifikatoren
nutzen mathematische Herangehensweisen, die auf einer statistischen Betrachtung der vorhandenen Trainingsdaten einschließlich der jeweils erwarteten Ergebnisse (als Annotationen
8
) beruhen. Auf Basis der beobachteten Wahrscheinlichkeiten in den Trainingsdaten kann für eine neue Situation auf die (aus Trainingssicht) wahrscheinlichste Ergebnisklasse geschlossen werden. Das
Praxisbeispiel 1–3
skizziert die Grundidee dieser KI-Technik für eine Wetterstation.
Praxisbeispiel 1–3:Wetterstation (Erweiterung)
Für die Wetterstation aus Praxisbeispiel 1–2 wollen wir vorhersagen, ob es in den kommenden drei Stunden am Ort regnen wird oder nicht. Dies wollen wir statistisch betrachten: Größen wie Temperatur, Luftdruck und Luftfeuchtigkeit der letzten Stunden an diesem Ort stehen vermutlich damit im Zusammenhang; der Statistiker sagt, sie korrelieren mit dem Ereignis Regen. Je stärker diese Korrelation in der Statistik ausgeprägt ist, desto sicherer ist die Prognose auch für neue Messwerte der Wetterstation. Dabei fließen alle Parameter, hier die Wetterverhältnisse, zugleich in die Bewertung ein.
Entscheidungsbäume
nutzt man meist ebenfalls für eine Klassifikation wie etwa im obigen Beispiel zur Wetterprognose. Dabei zieht man in gleicher Weise annotierte Trainingsdaten heran. Der erzeugte Klassifikator berücksichtigt jedoch die einzelnen Einflussparameter Schritt für Schritt in Form von Wenn-dann-Bedingungen. So entsteht eine baumartig verzweigte Kaskade von Entscheidungen, an deren Ende die jeweils als am wahrscheinlichsten ermittelte Klasse benannt wird (siehe
Abb. 1–4
). Je nachdem, welche Strategie bei der Verzweigung oder Baumtiefe angewendet werden soll, kann man aus einer Reihe von konkreten Algorithmen wählen, z.B.
CART, ID3
oder
C4.5
[Knuth 2021]
.
Das Random-Forest-Verfahren geht noch einen Schritt weiter und nutzt gleich mehrere unabhängig voneinander trainierte Bäume zur Entscheidungsfindung.
Die
Support Vector Machine
(SVM) ist eine weitere Klassifikationsmethode, die ebenfalls auf bereits annotierten Trainingsdaten beruht. Das Grundprinzip besteht darin, dass der SVM-Klassifikator für z.B. in zwei Klassen eingeteilte Trainingsdaten eine möglichst gute Trennlinie im Parameterraum der zugehörigen Eigenschaften findet. Um eine solche Grenze in Form einer
Hyperebene
(engl. hyperplane) finden zu können, muss man ggf. durch Transformationen künstlich neue Parameter (Dimensionen) erzeugen.
In einem fiktiven Beispiel9 wollen wir anhand von Länge und Gewicht eines Grizzly-Oberschenkelknochens einordnen, ob dieser von einem urzeitlichen, groß gewachsenen Exemplar oder von einer heutigen Art stammt. Betrachten wir jede Eigenschaft für sich getrennt, überlappen sich die Wertebereiche und wir können allein anhand der Länge oder des Gewichts nicht gut genug unterscheiden. Betrachten wir beide gleichzeitig wird eine Trennung durch eine Gerade offensichtlich, wie in Abbildung 1–5 zu sehen. Muss die SVM mehr als zwei Parameter (Dimensionen) einbeziehen, wird diese Grenze zur Hyperebene.
Die
(lineare) Regression
zählt im Kontext von KI ebenso zu den Verfahren des maschinellen Lernens. Diese ermittelt im Gegensatz zur Klassifikation als Ergebnis eine Größen- oder Mengenabschätzung. Am Beispiel der Wetterprognose (siehe
Praxisbeispiel 1–4
) würde man etwa die erwartete Regenmenge in Liter pro Quadratmeter für die nächsten drei Stunden als Ergebnis erhalten. Die Regression beschreibt dann den Zusammenhang der Ergebnisse (abhängige Variablen) von den Trainingsdaten (unabhängigen Variablen). Die Lineare Regression optimiert hierbei lineare Gewichtungskoeffizienten von unabhängigen zu abhängigen Variablen.
Die
logistische Regression
ermittelt ebenso Größenabschätzungen wie die lineare Regression. Allerdings ist sie spezialisiert auf die Situation, in der Eingangs- oder Ausgangsgrößen nur wenige einzelne (diskrete) Werte statt eines kontinuierlichen Wertebereichs annehmen können.
Clustering-Algorithmen
decken zu den bisher genannten Verfahren einen neuen Aspekt ab: Manchmal steht man einer Klassifikationsaufgabe gegenüber, hat aber keine Trainingsdaten verfügbar, die die zu unterscheidenden Klassen vorab aufzeigen. In solchen Fällen bedient man sich der Clustering-Algorithmen. Hier gibt es verschiedene Methoden, die passend zur Problemsituation ausgewählt werden. Meist gibt eine von einer Datenanalytikerin oder einem -analytiker vorgenommene
explorative Datenanalyse
(engl. exploratory data analysis, EDA) die richtigen Hinweise zur Auswahl oder aber unterschiedliche Clustering-Verfahren werden direkt bei der EDA verglichen.
Genetische Algorithmen
, oder allgemeiner
evolutionäre Algorithmen,
sind in der KI-Forschung schon lange bekannt. Folglich gibt es auch hier viele Verfahren, die im Wesentlichen die Wirkungsweise der Evolution aus der Natur auf die Technik übertragen: Softwarevarianten, die sich durch
Mutationen
unterscheiden oder
Rekombinationen
neu bilden können, werden einer
Selektion
ausgesetzt. So
überleben
diejenigen Lösungen, die das gegebene Ziel besser erfüllen als die bisherigen. Letztlich hat man es wieder mit Optimierungsverfahren zu tun.
Abb. 1–4Grafische Darstellung eines Entscheidungsbaums zur Klassifikation einer Regenprognose (Ausgabe: Regen oder trocken) anhand der Eingabewerte relative Luftfeuchtigkeit, Temperatur und Luftdruck
Abb. 1–5Die Support Vector Machine trennt Grizzly-Arten anhand von Knochenlänge und -gewicht.
Du hast jetzt einige Techniken des maschinellen Lernens kennengelernt Im Folgenden zeigen wir dir, welche dieser Techniken wir für die Regenprognose in der Wetterstation ausgewählt haben.
Praxisbeispiel 1–4:Wetterstation (Erweiterung)
Weil wir für den vorgesehenen Standort (Portland in Australien, siehe Hinweis am Ende des Praxisbeispiels) viele Wetterdaten aus der Vergangenheit haben, entschließen wir uns, einen KI-Klassifikationsalgorithmus damit zu trainieren.
Zuerst trainieren wir einen sogenannten Naive-Bayes-Klassifikator. Dieser errechnet aus den historischen Daten, wie häufig beispielsweise bei Regenwetter am Tag zuvor bestimmte Temperatur-, Druck- oder Luftfeuchtigkeitsverhältnisse geherrscht haben. Aus diesen Wahrscheinlichkeiten ermitteln wir wiederum mathematisch, wie groß die Wahrscheinlichkeit für Regen am morgigen Tag ist bei Betrachtung des heutigen Wetters.
Der Klassifikator, den wir für unseren Beispielstandort Portland trainiert haben, sagt uns zu 77% richtig voraus, ob es am nächsten Tag regnen wird.
Wir sind uns nicht sicher, ob dieser Klassifikator gut genug ist, und wollen als Alternative einen Entscheidungsbaum trainieren. Hier entscheiden wir uns für einen Trainingsalgorithmus, der unter dem Namen C4.5 oder J48 bekannt ist. Dieser erzeugt uns ein Schema, wie unsere Wetterdaten die Vorhersage Regen oder trocken für den morgigen Tag beeinflussen. Schrittweise werden unsere Messdaten Luftdruck, Luftfeuchtigkeit und Temperatur nacheinander herangezogen, um am Ende zu entscheiden, ob es regnen wird oder nicht (siehe Abb. 1–4).
Auch hier ermitteln wir, wie gut unsere Vorhersagen zutreffen, und erhalten einen ähnlichen Wert mit 76,5%.
Hinweis: Damit du dieses Beispiel auch selbst nachvollziehen kannst, haben wir uns öffentlich verfügbarer Wetterdaten von kaggle.com bedient:
https://www.kaggle.com/datasets/sakshi20008/rainprediction-in-australia.
Im vorangehenden Abschnitt haben wir uns mit verschiedenen KI-Techniken beschäftigt. Dabei haben wir einen kleinen Einblick in die große Bandbreite von Techniken und den dazugehörigen Algorithmen gewonnen. Deren wissenschaftliche Erforschung wurde anfänglich eher an Universitäten oder in kleinen Forschungsabteilungen vorangetrieben. Seit einigen Jahren engagieren sich aber zunehmend große Firmen wie Amazon, Google, Facebook, Microsoft oder IBM – nicht zuletzt auch aus wirtschaftlichen Interessen. So liegt es nahe, dass heutige Entwicklungswerkzeuge für künstliche Intelligenz nicht nur an Hochschulen entstehen, sondern gerade von den eben genannten Global Playern im Maßstab ganzer Frameworks entwickelt und propagiert werden.
Solche KI-Entwicklungs-Frameworks haben jedes für sich Stärken und Schwächen oder sind auf bestimmte Domänen spezialisiert – so wie Certified Tester das bereits aus der Welt der Testwerkzeuge kennen. Die umfangreicheren KI-Entwicklungs-Frameworks10unterstützen uns bei vielen Arbeitsschritten im Entwicklungsprozess (siehe Abschnitt 3.2), wie z.B. bei
der Analyse und/oder Aufbereitung von Daten,
der Auswahl von KI-Algorithmen und
dem Training und dem Kompilieren
11
von Modellen für die Prozessorarchitektur des Zielsystems. Zum Beispiel
Grafikprozessoren
(engl. graphics processing unit, GPU) oder
Tensor-Prozessoren
12
(engl. tensor processing unit, TPU), die Berechnungen mit Vektoren oder Matrizen erheblich beschleunigen (siehe
Abschnitt 1.6
).
Daher ist es wichtig, dass du als einen der ersten Schritte ein adäquates Framework auswählst und neben der Unterstützung der Arbeitsschritte zusätzlich weitere Aspekte wie beispielsweise die Verfügbarkeit der Werkzeuge, deren Benutzerfreundlichkeit oder die unterstützten Programmiersprachen beachtest.
Die Auswahl eines KI-Entwicklungs-Frameworks hat aber noch einen weiteren Aspekt, der manchmal schwer einzuschätzen ist: Gerade bei Werkzeugen in diesem Bereich sehen wir aus unserer Erfahrung heraus eine sehr hohe Dynamik. Neue Entwicklungs-Frameworks kommen auf den Markt, werden in andere integriert oder verlieren an Bedeutung. So haben wir in Forschungsprojekten selbst erlebt, dass mehrere Entwicklungswerkzeuge noch innerhalb des ersten Projektjahrs mehrmals ausgetauscht wurden.
Dennoch gibt es KI-Entwicklungs-Frameworks, die insbesondere vom Lehrplan (April 2021) als beliebte Frameworks genannt werden und von denen einige von anhaltender Bedeutung sind:
Apache MxNet
Diese quelloffene Softwarebibliothek für Deep Learning (siehe Abschnitt 6.1) wird von der Apache Software Foundation (ASF) entwickelt und angeboten. Die ASF wird durch viele namhafte Sponsoren wie Amazon Web Services (AWS), Facebook, Google oder Microsoft unterstützt [URL: Mxnet].
IBM Watson Studio
13
Die integrierte Sammlung von Werkzeugen und Services unterstützt die Entwicklung von KI-Lösungen – auch in der Cloud – von der Datenanalyse bis zu deren Bereitstellung [URL: IBM-a].
Keras
Keras ist eine quelloffene Python-API, mit der Entwicklerinnen und Entwickler auf sehr hoher Beschreibungsebene schnell und unkompliziert Modelle trainieren und bereitstellen können. Keras nutzt selbst TensorFlow als darunterliegende ML-Plattform [URL: Keras].
TensorFlow
Diese quelloffene ML-Bibliothek von Google ist im Open-Source-Bereich eines der beliebtesten Frameworks und wird sowohl von Einsteigern oder in Schulungen als auch in großen Projekten verwendet. Mit ihr lassen sich ML-Modelle aus vorgegebenen Objekten zusammensetzen. Modell und Daten verknüpft sie zu einem Datenflussgraphen und unterstützt Entwicklerinnen und Tester von der Datenanalyse über das Training von Modellen bis hin zur Bereitstellung von KI-Komponenten für den Produktivbetrieb [URL: Tensorflow].
Scikit-learn
Die quelloffene Python-ML-Bibliothek setzt auf wissenschaftlichen Python-Bibliotheken wie numpy oder scipy auf und bietet Unterstützung von der Datenanalyse bis zur Evaluierung von trainierten Modellen [URL: Scikit-learn].
PyTorch
Diese quelloffene ML-Bibliothek [URL: Pytorch] wird von Facebook betrieben. Durch die ausgeprägten Debugging-Optionen wird PyTorch häufig auch in Wissenschaft und Forschung verwendet, meist für Anwendungen zur Bildoder Sprachverarbeitung (engl. natural language processing, NLP). Die Bibliothek unterstützt sowohl Python- als auch C++-/Java-Schnittstellen.
CNTK
Das Microsoft Cognitive Toolkit (CNTK) ist ein quelloffenes Deep Learning Toolkit [URL: Microsoft], das jedoch seit dem letzten Release v2.7 nicht mehr aktiv weiterentwickelt wird.
Praxistipp
Die Auswahl des passenden KI-Entwicklungs-Frameworks ist selten einfach und meist mit Versuch und Irrtum verbunden. Die meisten Frameworks erlauben eine kostenfreie Installation – entweder für einen begrenzten Zeitraum oder Funktionsumfang oder sie sind sogar als Open Source frei verfügbar. Damit man sich bei der Entwicklung nicht verzettelt, empfehlen wir mit allen Projektbeteiligten die Rahmenbedingungen möglichst gut einzugrenzen:
Welche Aufgaben soll das Framework genau übernehmen?Je genauer die Aufgaben bekannt sind, desto klarer kannst du die geeigneten Frameworks selektieren.
Welchen Nutzen erhoffst du dir mit dem Framework?Das Framework wird seinen Zweck erst dann gezielt erfüllen, wenn du dir dessen bewusst bist.
Wer soll das Framework benutzen?Datenanalystinnen und -analysten werden andere Ansprüche an das Framework haben als Entwicklerinnen, Tester oder Projektmanagerinnen und -manager.
Welche Schnittstellen und Programmiersprachen muss das Framework abdecken?Möglicherweise sind im Unternehmen etablierte Werkzeuge, Sprachen oder Schnittstellen bereits festgelegt und die Kompatibilität mit diesen hat hohe Priorität.
Was kennzeichnet das Produkt? Soll z.B. ein Cloud-Service, eine Datenbankanwendung oder ein Edge-Device mit GPU/TPU-Hardware entwickelt werden?Davon abhängig sollten unterschiedliche Arbeitsschritte im Entwicklungsprozess durch das Framework unterstützt werden.
Welche Dateneigenschaften müssen berücksichtigt werden?Wichtige Eigenschaften sind z.B. die Datenmenge, Variabilität, Häufigkeit der Aktualisierung, der Datendurchsatz oder eine notwendige Archivierung, um die Datentransparenz zu stärken.
Erst danach kannst du die unterschiedlichen KI-Entwicklungs-Frameworks sinnvoll evaluieren und mit einem einfach gehaltenen Proof of Concept beginnen.
Wir befassen uns in diesem Abschnitt mit der Frage, wann für KI-basierte Systeme spezielle Hardware benötigt wird und welche Eigenschaften dieser Hardware dafür besonders hilfreich sein werden.
Bei Systemen mit künstlicher Intelligenz denken viele Menschen unwillkürlich an Kinoszenen mit Supercomputern, riesige Datenmengen, großen Speicherbedarf und aufwendige und rechenintensive Algorithmen. Es kann eine große Rechenleistung erfordern, einen Algorithmus mithilfe des maschinellen Lernens (siehe Abschnitt 1.4) und mit einer umfangreichen Datenbank zu trainieren. Dagegen kann ein so entstandenes und fertig trainiertes ML-Modell aber so klein sein, dass man es auf einem einfachen Universalprozessor implementieren und darauf laufen lassen kann.
Nutzt man beispielsweise Endgeräte im Bereich von Embedded Systems, haben diese üblicherweise nur begrenzte Systemressourcen wie Rechenleistung, Datenoder Programmspeicher. In Projekten sprechen wir dann meist von Edge-Komponenten14 oder Edge-Devices. Für diese trainiert man daher das ML-Modell zuerst abseits auf hochperformanten Systemen, die z.B. auch als Service in der Cloud angeboten werden. Ist das Training abgeschlossen, reicht es, das fertige ML-Modell auf das Endgerät zu übertragen und dort auszuführen – insbesondere, wenn keine Verbindung zum Internet besteht.
Eine Digitalkamera mit einer Erkennung lächelnder Gesichter als Selbstauslöser kann beispielsweise auf einem stromsparenden Bildprozessor laufen, benötigt aber zum Trainieren eine umfangreiche Datensammlung und performante Trainingshardware.
Auch wenn sich die Rechenaufwände in der Trainings- und der Anwendungsphase von ML-Modellen unterscheiden, haben diese Gemeinsamkeiten, wie gleichförmig wiederholte arithmetische Operationen (Multiplikation, Addition usw.), die auf großen Datenmengen angewendet werden. Daher profitieren maschinelles Lernen und ML-Modelle gleichermaßen, wenn Prozessoren mit folgenden Eigenschaften verwendet werden:
Arithmetische Operationen mit geringer Genauigkeit
Für Berechnungen in ML-Modellen reicht im Regelfall eine geringe Genauigkeit von z.B. 8 Bits statt der üblichen 32 Bits aus. Die arithmetische Recheneinheit des Prozessors ist dadurch schneller, aber auch sparsamer in Energie- und Flächenverbrauch auf einem Prozessorchip. So finden mehr arithmetische Recheneinheiten auf der Chipfläche Platz (siehe parallele Verarbeitung weiter unten).
Operationen mit größeren Datenstrukturen (Vektoren, Matrizen)