Softwareentwicklung mit KI-Schnittstellen (API)
Raimund
18. Februar 2025 15:18
1. Potential der Softwareentwicklung mit KI-Schnittstellen
Wenn in den nachfolgenden Blogs von KI die Rede ist, sind darunter immer LLM (Large Language Modelle) zu verstehen, die auf der Grundlage des Transformermodells erstellt und trainiert wurden. Das Transformermodell ist dabei eine von Google entwickelte Deep-Learning-Architektur, die einen „Aufmerksamkeitsmechanismus“ integriert. Dabei werden sowohl reine textbasierte Transformermodelle als auch multimodale Transformermodelle genutzt, die beispielsweise zur Bildgenerierung eingesetzt werden können. Nachfolgend wird bei der Anwendung von KI immer von „LLM“ gesprochen.
Raimund
18. Februar 2025 15:19
Dieser Blog hat nicht die Aufgabe, die komplexe Funktionsweise dieser LLM zu erklären, sondern widmet sich der Nutzung der LLM durch die Kombination herkömmlicher Programmiertechniken und einer vorhandenen Schnittstellenstruktur (API; Application Program Interface) zum Datenaustausch mit der LLM.
Die LLM-Modelle werden quasi als „Black Box“ angesehen und der Fokus liegt auf der Vorstellung des Potentials von Anwendungssoftware in der Nutzung der LLM.
Raimund
18. Februar 2025 15:20
Die meisten Menschen dürften bisher über reine Chatbots mit LLM in Berührung gekommen sein. Dabei wird ein Text, eine Frage oder ein ausführlicherer Inhalt (der auch Sprache oder Bildinformationen beinhalten kann) eingegeben und der Chatbot antwortet als Text- oder Bildausgabe auf diese Eingaben. Dies kann mit aktuelleren Bots auch mit einer online Internetrecherche kombiniert werden.
Raimund
18. Februar 2025 15:20
Das Potential der LLM für den Anwender ist aber deutlich höher, wenn das LLM mit herkömmlichen modernen Programmiertechniken zur Datenspeicherung, -verwaltung, -aufbereitung und Weiterverarbeitung kombiniert wird.
Der Anwender arbeitet dabei innerhalb einer vorhandenen klassischen Anwendungsumgebung und ruft anonymisiert das LLM innerhalb fest gesetzter Grenzen und Möglichkeiten auf. Die Ergebnisse des LLM sind genauer auf die Anwendung abgestimmt und der sich daraus ergebende Nutzen greifbarer. Durch Zusatzfunktionen können die so erzielten Daten schnell weiterverarbeitet werden, um einen gezielten dauerhaften Nutzen für den Anwender zu erzielen.
Auf diese Weise wird der Nutzen der LLM von reinen Chatbots zu spezifischen IT-Anwendungen mit gezielten Zusatzfunktionen deutlich gesteigert. Das Potential hierzu ist immens und die Grenzen dazu lassen sich nur erahnen.
Raimund
18. Februar 2025 15:22
Dieser Blog hat die Aufgabe, dieses Potential der Anwendungsentwicklung mit KI-Schnittstellen an Hand von Beispielen vorzustellen, Anregungen zu geben und Mut zu machen, sich intensiv mit dem Thema auseinanderzusetzen.
Raimund
18. Februar 2025 15:22
Die nachfolgenden Beispiele arbeiten mit den Modellen ChatGPT und DALL-E von OpenAI. Die Nutzung dieser Modelle ist aber nur exemplarisch und kann leicht auf andere LLM umgewandelt werden, sofern diese eine standardisierte Schnittstelle (API) zur Verfügung stellen.
Bei dem Zugriff auf die LLM mittels einer API-Schnittstelle handelt es sich um eine kostenpflichtige Nutzung über einen (!) API-Token.
Dieser eine Token wird für alle Anwendungen und für alle User aufgerufen, so dass OpenAI zwar die Eingabe-Prompts und auch Bildinformationen erhält. Diese Informationen können aber nicht auf den einzelnen User und nur sehr indirekt auf die eigentliche Anwendung zugeordnet werden. Auf diese Weise werden die Daten anonymisiert an OpenAI übertragen.
Es sei aber an dieser Stelle auch erwähnt, dass man als Entwickler keinen Einfluss darauf hat, was OpenAI (oder ein anderer Anbieter) mit diesen Daten wirklich sonst so macht. Insbesondere sollte sich jeder darüber im Klaren sein, dass alle übertragenen Daten in irgendeiner Form als neue Trainingsdaten verwendet werden, um zukünftige LLM herzustellen.
Raimund
18. Februar 2025 15:27
2. Interpretation von Fotos und Bildinformationen (OCR-Erkennung)
Die KI-Foto-App ist ein sehr einfaches und doch erstaunlich pfiffiges Beispiel für die Fähigkeit von LLM, Inhalte von Fotos zu erkennen und zu interpretieren.
Raimund
18. Februar 2025 15:28
In der App werden Foto-Alben definiert, zu dem ein einfacher System-Prompt erfasst wird. Der System-Prompt dient dazu, dem LLM grundsätzlich mitzuteilen, worum es bei der Anfrage und dem Inhalt des Fotos gehen soll.
Raimund
18. Februar 2025 15:29
Ein weiterer User-Prompt beinhaltet eine konkrete Frage, die mit dem Foto an das LLM übertragen wird. Diese konkrete Frage ist am Anfang meist sehr allgemein, wie „Was erkennst Du auf dem Foto?“. Man kann aber den User-Prompt weiter spezifizieren, um in einen Dialog mit dem LLM zu treten, wenn man konkretere Informationen zu den Inhalten erhalten möchte oder man das Ergebnis des LLM hinterfragen möchte.
Raimund
18. Februar 2025 15:29
Die Fotos werden ohne jegliches vorherige Training an das LLM übertragen und in hoher Trefferquote erkannt und eine Interpretation als Textinformation rückübertragen.
Raimund
18. Februar 2025 15:30
Die Vorteile in die Einbettung der LLM in die KI-Foto-App bestehen darin, dass die Fotos dauerhaft in Alben gespeichert sind und man sich die Ergebnisse jederzeit wieder anschauen kann oder den Dialog mit der LLM fortsetzen kann.
Die Fotos können schnell und unkompliziert an die KI übertragen werden und der System-Prompt zu einem Album muss nur einmal definiert werden.
Raimund
18. Februar 2025 15:30
Ein anderer Weg wird in der KI-Rezepte-App eingeschlagen. Die App demonstriert die hohe Qualität der OCR-Erkennung (Optical Character Recognition) der LLM-Modelle. Dabei werden Fotos von Kochrezepten an das LLM übermittelt, um den darin enthaltenen Text und ggf. Bildinformationen nicht nur zu erkennen, sondern auch so zu interpretieren, dass er nach einer festen Struktur (siehe Abschnitt 3) zusammengefasst und in einer Datenbank abgelegt werden kann.
Raimund
18. Februar 2025 15:31
Es ist verblüffend wie gut der Text nicht nur erkannt, sondern ohne jegliches Training sofort korrekt interpretiert wird und den Datenfeldern der Datentabellen korrekt zugeordnet wird.
Raimund
18. Februar 2025 15:32
Die grundlegenden Möglichkeiten auf diese Weise relativ unstrukturierten Text (sei er durch OCR-Erkennung oder auf andere Weise gewonnen) in feste Datenbankstrukturen umzuwandeln, sind ein Paradebeispiel für die Kombination der klassischen Anwendungsentwicklung und der Nutzung von LLM. Im nachfolgenden Abschnitt wird darauf intensiver eingegangen.
Raimund
18. Februar 2025 15:34
3. Umwandlung von unstrukturierter Information in feste Datenstrukturen
In diesem Abschnitt geht es grundsätzlich um die Umwandlung eher unstrukturierter Textinformationen, wie z.B. Textinformationen aus einer Buchseite oder einer Web-Site (oder generell Sprache), die für einen Menschen sehr gut zu verstehen sind, in strengstrukturierte Datenströme, die von einem Computer gut zu verarbeiten sind.
Raimund
18. Februar 2025 15:34
Text- und/oder Sprachinformationen sind aus Sicht der Datenverarbeitung relativ unstrukturierte Informationen. Um diese Informationen in Anwendungsprogrammen weiterzuverarbeiten, müssen diese interpretiert und in Form von Ausprägungen von Datenbankfeldern umgewandelt und gespeichert werden.
Raimund
18. Februar 2025 15:35
Die KI-Rezepte-App ist ein Paradebeispiel für diesen Umwandlungsprozess und erklärt anschaulich was damit konkret gemeint sein kann und welche Vorteile sich daraus für den Anwender ergeben.
Dazu wird über einen strukturierten Prompt die Struktur einer Datenbank zu Kochrezepten mit Angaben zu Rezept-Bezeichnung, Rezept-Foto, Kochanleitung, einer Tabelle mit der Zutatenliste für eine bestimmte Menge an Personen mit den Spalten Menge, Mengeneinheit, Zutat vorgegeben.
Weiterhin werden zusätzliche Kategorien in dem strukturierten Prompt definiert (z.B. als Zahlenwerte) und vorgegeben, nach denen das Rezept einzusortieren ist (wie zum Beispiel Rezept-Kategorie, Jahreszeit, Ernährungsform)
Raimund
18. Februar 2025 15:36
Das LLM kann dabei nicht nur die Inhalte der Fotos erkennen (OCR-Erkennung), sondern die Daten auch komplett neu gemäß dem strukturierten Prompt umwandeln, in Bezug auf die neuen Kategorien einsortieren und datentechnisch so aufbereiten, dass sie direkt in die Datenbank abgelegt werden können.
Auch für diese Tätigkeit ist keinerlei zusätzliches Training notwendig, da alle Vorgaben einfach bei jedem Aufruf über den strukturierten Prompt mitgegeben und vom LLM interpretiert werden.
Raimund
18. Februar 2025 15:37
Das LLM zeigt an dieser Stelle seine eigentliche Kompetenz: Auch wenn das Sprachmodell grundsätzlich nicht weiß, worum es in dem Text eigentlich geht (ChatGPT hat keine Ahnung vom Kochen), kann es den Text dennoch selbstständig und ohne Training so gut strukturieren, dass der Text in sehr hoher Qualität in Datenbankstrukturen umgewandelt und um zusätzliche Informationen ergänzt werden kann.
Raimund
18. Februar 2025 15:37
Kurz gesagt:
Die eigentliche Kompetenz eines LLM besteht in der Kommunikation/Übersetzung zwischen Mensch (mit Sprach/Textinformation) und Computer (mit strukturierten Daten)
Raimund
18. Februar 2025 15:38
Die Vorteile der umgewandelten strukturierten Daten liegen für den Anwender auf der Hand. Die Rezepte sind dauerhaft für ihn gespeichert. Er kann über Filter und Volltextsuchen nicht nur auf seine, sondern auch auf Rezepte anderer User zugreifen. Es gibt Zusatz- und Weiterverarbeitungen wie Bewertungen, Einkaufslisten, Umrechnungsmöglichkeiten, Editierfunktionen.
Raimund
18. Februar 2025 15:40
4. Umgang mit sensiblen Daten
Das Potential in der Interpretation von unstrukturierten Text-, Sprach- und Bildinformationen hin zu für einen Computer leicht zu verarbeitenden strukturierten Datenströmen ist immens und kaum abzuschätzen.
Wie gehen die aktuellen LLM dabei mit sensiblen Daten um? Für einen Computer sind Daten immer nur Daten. Unter sensiblen Daten versteht der Mensch hingegen Daten, die besonders geschützt und auch deren Interpretation (z.B. durch ein LLM) restriktiv gehandhabt werden müssen.
Raimund
18. Februar 2025 15:41
Ein Beispiel dazu demonstriert die KI-Hautkrebsvorsorge-App im Umgang mit sensiblen Anwendungen und Daten, z.B. im Gesundheitssektor.
Dabei kann der Anwender Fotos zu Muttermalen an das LLM senden und nach einer für Laien geeigneten ABCDE-Regel interpretieren lassen, ob ein Hautkrebsrisiko besteht oder nicht.
Raimund
18. Februar 2025 15:42
Die Sensibilität besteht dabei weniger in der Bildinformationen des Muttermals selbst, da diese Informationen ohne Bezug zur Person also anonymisiert an die LLM übertragen werden.
Eine hohe Sensibilität besteht hingegen darin, welchen Effekt die Antwort der LLM beim Anwender erzeugen kann. Der Mensch neigt zum Anthropomorphismus. Darunter wird die Neigung verstanden, menschliche Eigenschaften nicht menschlichen Dingen oder Tieren zuzuordnen.
Raimund
18. Februar 2025 15:43
Diese Neigung kann besonders leicht auch bei einem LLM erzielt werden, wenn das System auf eine medizinische Frage eine konkrete medizinische Antwort gibt. Viel zu schnell neigt der Mensch dazu, dann die LLM mit einem Arzt zu verwechseln bzw. der LLM die Eigenschaften eines Mediziners zuzuordnen.
Die Hersteller von LLM sind sich teilweise dessen bewusst und haben beispielsweise entsprechende Filter eingebaut, die Anfragen verhindern, die eine direkte medizinische Anfrage erlauben. Dieser Vorfiltrierung ist in diesem Zusammenhang sinnvoll und wird laufend fortentwickelt.
Raimund
18. Februar 2025 15:43
Der System-Prompt zur KI-Hautkrebsvorsorge-App musste seit seiner Entwicklung mehrfach korrigiert und angepasst werden, da die Hersteller von LLM-Modellen zu Recht den Eindruck vermeiden wollen, dass das LLM die Aussagekraft eines Mediziners haben kann. Bei fast jeder Antwort des LLM zum Hautkrebsrisiko ist der Hinweis enthalten, dass man im Zweifel einen Dermatologen aufsuchen sollte.
Raimund
18. Februar 2025 15:45
5. Generierung neuer Daten/Informationen
Eine wesentliche Funktion von LLM ist die Generierung von neuen Daten und Informationen auf der Basis seiner mittels Trainingsdaten erzielten Parameter und entsprechenden Eingabeinformationen.
Raimund
18. Februar 2025 15:45
Die KI-Rezepte-App demonstriert, wie z.B. auf Basis von Fotos zu fertigen Gerichten oder von Zutaten kombiniert mit Stichworten oder Anweisungen durch die LLM neue Kochrezepte generiert und in die bereits beschriebene Datenstruktur abgelegt werden können.
Die LLM sucht dabei nicht aus dem Internet ein passendes Rezept und überträgt diese Daten. Vielmehr erzeugt das LLM auf der Basis seiner Eingabeinformationen und dem trainierten Modell ein neues Rezept.
Natürlich hat das LLM keine echte Kenntnis über das Kochen, sondern vielmehr erzeugt das LLM über Wahrscheinlichkeiten sinnvolle Worte, die zusammen ein sinnvolles Rezept ergeben.
Raimund
18. Februar 2025 15:46
Dabei zeigt sich aber eine gewisse Weichheit und Simplifizierung in den Ergebnissen. So wird man keine ausgefallenen Rezepte mit speziellen Kochtechniken erwarten können. Vielmehr wird ein Rezept unter Nennung aller wesentlicher Zutaten generiert, die in einfacher Basisform zubereitet und dann miteinander zusammengestellt werden.
Raimund
18. Februar 2025 15:47
Die KI-Rezepte-App zeigt dies auch bei der Nutzung des Bildgenerators DALL-E, wenn zu einem neuen Rezept auch ein entsprechendes Bild des fertigen Gerichtes erzeugt werden soll.
Es entstehen dabei keine ausgefeilten Teller mit besonderer Gestaltung des Tellerinhalts. Vielmehr entsteht mehr oder weniger ein Symbolbild, in dem die genutzten wesentlichen Zutaten korrekt dargestellt und mit Anreicherungen um den Teller aufgewertet werden.
Raimund
18. Februar 2025 15:48
Dennoch werden grundlegende Kochtechniken korrekt erzeugt und die generierten Kochrezept-Texte funktionieren grundsätzlich. Im Detaillierungsgrad sind allerdings Grenzen zu erkennen, so dass beispielsweise „von garen, backen, kochen“ korrekt die Rede ist, aber man Details, auf wieviel Grad der Backofen einzustellen ist oder wie die genaue Garzeit in Minuten ist, meist vergebens sucht.
Raimund
18. Februar 2025 15:52
6. Nachbereitung von generierten Bildern (z.B. Downsizing)
Im vorherigen Abschnitt wurde die Generierung von Bildern mittels DALL-E vorgestellt. Dabei sollte man meinen, dass es immer besser ist, wenn ein derartiger Bildgenerator detailreicher, feiner und umfangreicher in Bezug auf Auflösung und/oder Farben ist.
Raimund
18. Februar 2025 15:53
Die KI-Stricken-App hingegen demonstriert, dass je nach Anwendungsgebiet mehr und größer nicht immer sinnvoller sein muss. Die App zeigt an diesem Beispiel, dass die automatisierte Nachbearbeitung der generierten Bilder mit herkömmlicher Programmiertechnik zur Bildbearbeitung in diesem Fall erst zu sinnvollen Ergebnissen führt.
Raimund
18. Februar 2025 15:53
Die API zur DALLE-E lässt für seine generierten Ergebnisse nur bestimmte Bildformate zu, wobei das kleinste Format im Modell „DALL-E 3.0“ bei 1024*1024 Pixeln liegt.
In Bezug auf ein Strickmuster ist dies für eine Privatperson, die händisch ein Muster stricken möchte, viel zu fein und aufwendig. Niemand wird freiwillig ein Strickmuster mit 1.024 * 1.024 Maschen stricken.
In diesem Anwendungsfall liegt der Erfolgsfaktor im Zusammenspiel zwischen dem LLM und herkömmlicher Programmiertechnik darin, das Bild automatisiert so nachzubereiten, dass es als Strickmuster sinnvoll verwendet werden kann. Dazu ist wesentlich, dass das Bild auf ein viel gröberes Raster (z.B. 96 * 64 Maschen) heruntergebrochen wird.
Raimund
18. Februar 2025 15:54
Weiterhin zeigt sich eine typische Schwäche bei aller LLM (egal ob Text oder Bild basierend):
Sie können nicht zählen.
Raimund
18. Februar 2025 15:54
Gibt man DALL-E vor, dass es genau (!) drei Farben oder genau (!) drei RGB-Werte nutzen soll, so erhält man zwar nur drei Grundfarben, aber dennoch zahlreiche Farbabstufungen.
Nun wird ein Strickliebhaber nicht beliebig viele verschiedene Wollsorten mit allen Farbabstufungen zur Verfügung haben.
Das Strickmuster macht nur dann konkret einen Sinn, wenn es mit einer genauen Anzahl von Farben auskommt. Erst die automatisierte nachträgliche Bearbeitung des generierten Bildes auf die gewünschte Anzahl der Grundfarben ergibt in diesem Anwendungsfall für den Anwender einen Mehrwert.
Raimund
18. Februar 2025 15:54
Dieses Anwendungsbeispiel zeigt wie man allgemein die generative Kraft (durchaus mit einem kreativen Prozess vergleichbar) der LLM nutzen kann, aber dies erst durch die Kombination mit herkömmlicher Nachbearbeitung (Bildbearbeitung) für den Anwender wirklich einen Sinn ergibt.