Der Wirbel um die jüngst publizierten Künstliche Intelligenz (KI) Sprachmodelle hat viele Firmen unter Zugzwang gesetzt. Soll man schnell ein Prototyp einsetzen? Verpasst man den Anschluss, wenn man wartet? Diese Frage stellt sich bei vielen Technologien. Wir beleuchten hier deshalb kurz die angepriesenen Lösungen unter dem Gesichtspunkt der IT-Sicherheit und schlagen Regeln für den Umgang mit KI Sprachmodellen vor.
Grundlegende Funktionsweise
Das Forschungsgebiet der Künstlichen Intelligenz besteht aus vielen weiteren Algorithmus Familien. Dazu gehören alle wissensbasierten Systeme, Musteranalyse, Robotik oder auch Sprachmodelle, die jetzt im Rampenlicht stehen. Microsoft® ChatGPT, Google Bard und Verwandte stützen sich rein auf die Analyse von Sprachstrukturen. Alle Modelle verwenden frei zugängliche Daten als Bibliothek für ihre Auskünfte. Bei GPT‑4 sind die Daten auf dem Stand von September 2021. Die Quellen sind nicht offengelegt. Das Vorgängermodell GPT‑3 lernte an zwei Kollektionen von Büchern, der kompletten Wikipedia, Datensätzen von Web-Crawlern (3,15 Milliarden Webseiten) und der WebText2 Sammlung (ca. 70 Millionen Texten aus dem Web). Diese Daten werden durch das Sprachmodell nach Eingabe von Aufforderungen (sogenannte Prompts) beauskunftet. Dabei entsteht zwangsläufig eine Mischung aus verschiedensten Quellen. Dadurch sind die Modelle ein Filter für Big Data Archive. Ein wichtiges Detail am Rande ist, dass das Training der Algorithmen aufgrund der Größe der Quelldaten ohne Überwachung oder Kontrolle geschieht.
Wichtig dabei ist, dass die Aufarbeitung der Daten rein auf der sprachlichen Ebene erfolgt. Die Modelle versuchen, die von Menschen verwendete Sprache nachzubilden. Kognitive Prozesse werden nicht modelliert, d.h. das Modell kann weder ein Verständnis entwickeln noch den Kontext von Informationen verstehen. Dies ist eine Schwachstelle, die beispielsweise gezielt zum “Vergiften” der Datensammlungen durch Falschinformationen verwendet werden kann.
Lernfähig — ja oder nein?
Ein weiteres Risiko bei öffentlich verfügbaren Sprachmodellen ist die Lernfähigkeit. Wenn der Algorithmus eingegebene Daten und Dokumente zur internen Datensammlung hinzufügen, dann hat man es mit einem Datenleck zu tun. Je nach Prompt können dann andere Informationen über diese importierten Daten abfragen. Man sollte also, wie bei Suchmaschinen, aufpassen, welche Daten per Formular an Drittanbieter gesendet werden. Deren allgemeine Geschäftsbedingungen mögen zwar Datenschutz versichern, aber die Bedingungen können jederzeit Änderungen unterworfen werden. Zusätzlich ist oft nicht klar, ob Daten zur Diagnose von Fehler doch gespeichert und verarbeitet werden.
Programmierende Sprachmodelle
Programmiersprachen haben ebenso Vokabeln und eine Grammatik wie natürliche Sprachen. Da man in der Softwareentwicklung ohnehin seit 1951 Sprachgeneratoren in Form von Compilern einsetzt, ist die Erzeugung von Code eine naheliegende Anwendung. Auch Umformungen von einer Sprache in eine andere sind möglich und jetzt schon Teil von Standardtools. Der wichtigste Unterschied dabei: AI Sprach Modelle folgen keinen starren Regeln, sondern die liefern eine gut lesbare Mischung aus vielen Quellen. Tests haben ergeben, dass meistens lauffähiger Code generiert wird, der die Anforderung erfüllt. Laut einer Studie baut das Sprachmodell aber in etwas 30% aller Fälle Fehler einbaut, die teilweise zu Schwachstellen führen. Zwar lassen sich diese Fehler leicht finden, weil sie nur zu bestimmten Fehlerklassen gehören, aber sie illustrieren damit, dass es einen Prozess zur manuellen Kontrolle benötigt.
Viele integrierte Entwicklungsumgebungen bieten jetzt schon die Möglichkeit während dem Programmieren solche Vorschläge zu erhalten. Bei der Übernahme des generierten Codes muss man vorsichtig sein. Automatisiert komplette Anwendungen mit wenigen Angaben zu bauen, ist noch nicht möglich. Man kann sich aber Templates erstellen lassen, die man dann weiterverarbeitet. Voraussetzung dafür ist, dass der generierte Code nicht zu groß ist. Ansonsten ist die Überprüfung aufwändiger als den Code gleich selbst zu erstellen.
Eine mögliche Anwendung liegt bei Tests von Software durch Generierung von veränderten Eingabedaten. Dieses “AI fuzzing” könnte für die Quality Assurance Phase herangezogen werden, benötigt aber Erfahrung im Umgang mit den Sprachmodellen.
Richtiger Umgang mit Sprachmodellen
Wenn Firmen jetzt Erfahrungen mit den Sprachalgorithmen sammeln möchten, so sollte man sich an einige Regeln halten.
- Keine Eingabe von sensitiven Daten in öffentliche Chat-Portale. Das schließt die programmatische Eingabe über Programmierschnittstellen ein.
- Generierten Code niemals unverändert in eigene Software übernehmen.
(Entwicklungsumgebung limitieren jetzt schon Cut & Paste wegen Secure Coding Regeln) - Antworten der Sprachmodelle lassen sich als Filter oder zur Recherche verwenden. Damit kann man Code verstehen lernen und mit dem Wissen den eigenen Code schreiben.
- Die Verwendung von AI Sprachmodellen als Filter für interne Datensammlungen erzwingen den Betrieb firmenintern — ganz analog zu Suchmaschinen, die interne Firmendaten auch nicht indizieren dürfen.
Apple und Samsung haben schon Vorkehrungen getroffen und verbieten den Einsatz öffentlich verfügbarer Sprachmodelle für firmeninterne Tätigkeiten. Es ist zu erwarten, dass andere Firmen nachziehen und entsprechend ihre Richtlinien überarbeiten werden.