ChatGPT, Bard und andere prominente Large Language Models (LLMs) haben im letzten Jahr unsere Newsfeeds dominiert. Und das zu Recht. Diese spannenden Technologien geben uns einen Einblick in die Zukunft, die Macht und die Möglichkeiten der KI.
Während sich ein Großteil der öffentlichen Aufregung um die Erstellung von Texten, Bildern und Videos drehte, können diese Werkzeuge auch für viele andere Disziplinen wie die Software-Automatisierung verwendet werden.
Dieser Artikel gibt einen tiefen Einblick, wie Prompt Engineering uns bei der Software-Automatisierung helfen kann. Unsere erste Anlaufstelle sollte jedoch eine Untersuchung der Schnelligkeitstechnik selbst sein.
Was ist Sofortengineering?
Große Sprachmodelle wie ChatGPT erzeugen Ausgaben auf der Grundlage der Aufforderungen oder Sätze, die wir ihnen vorgeben. Die Ergebnisse sind jedoch sehr unterschiedlich, je nachdem, welche Worte oder Anweisungen wir verwenden. Wenn wir vage und ungenaue Anweisungen eingeben, kann es sein, dass die Ausgabe nicht das Ziel trifft.
Prompt-Engineering bezieht sich auf die durchdachte Gestaltung von Eingaben, die dazu beitragen, diesen spannenden KI-Systemen präzisere, genauere und letztlich nutzbare Inhalte zu entlocken.
Large Language Model (LLM)-Systeme nutzen die Verarbeitung natürlicher Sprache (NLP), um die von uns gemachten Angaben zu interpretieren. Die Maschinen wandeln diese Fragen oder Anweisungen (d. h. Aufforderungen) in Code um und lassen sie durch ihre riesigen Datenbestände laufen, um Inhalte in dem von uns angegebenen Format (d. h. Text, Bilder, Code) zu produzieren.
ChatGPT wurde trainiert auf über
570 GB an Daten
. Das Schulungsmaterial besteht aus Büchern, Artikeln, Webtexten usw. Mit anderen Worten: Diese Datensätze enthalten eine unvorstellbare Menge an Wissen.
Wir verstehen zwar den Prozess, aber vieles von dem, was unter der Haube dieser Systeme passiert, geschieht außerhalb unserer Sichtweite. Sicher, wir kontrollieren die Ein- und Ausgänge und trainieren das System, aber wie genau diese Algorithmen funktionieren und die Entscheidungen treffen, ist immer noch ein Rätsel. Sam Bowman, Professor für künstliche Intelligenz an der New York University, drückt es so aus, „Wir haben es gebaut, wir haben es trainiert, aber wir wissen nicht, was es tut.
Promptes Engineering hilft uns, dieses Chaos zu bewältigen, indem wir Outputs verwenden, die vorhersehbare und brauchbare Ergebnisse liefern. Sie bieten uns einen Weg, um die riesigen Wissensmengen, die in diesen Anwendungen stecken, zu erschließen.
Diese Disziplin entwickelt sich zu einer neuen Karriere
Überall entstehen Kurse, weil die Unternehmen herausfinden, wie sie sich diese leistungsstarke Technologie zunutze machen können.
Wie kann promptes Engineering helfen
mit Software-Automatisierung?
Software-Automatisierung und LLMs haben viel gemeinsam. Beide bieten einen Ausblick auf eine Zukunft, in der Maschinen die menschliche Kreativität ergänzen, um schnellere und produktivere Arbeitsplätze zu schaffen.
Es gibt mehrere interessante Bereiche, in denen diese beiden Technologien konvergieren können. Hier sind drei Möglichkeiten, wie wir Prompt Engineering in der Software-Automatisierung einsetzen können.
#1. Generierung von Code
Das Schreiben von Code ist eine der vielversprechendsten Anwendungen von Large Language Models. AI LLMs stecken noch in den Kinderschuhen. In den nächsten Jahren dürfte sich diese Technologie verbessern, da mehr Ressourcen sowohl für die Datenverarbeitung als auch für die Ausbildung bereitgestellt werden.
Langfristig könnten diese Fortschritte dazu führen, dass die KI ganze Programme mit begrenztem oder ganz ohne menschliches Zutun schreibt. Im Moment haben LLMs jedoch noch einige Einschränkungen. Die Qualität des Ergebnisses der LLM-Codierung hängt hauptsächlich von der Qualität der Eingabe ab. Müll rein, Müll raus, wie man so schön sagt.
Natürlich ist es nicht nur eine wirksame Souffleurtechnik, die ein Hindernis darstellt. Wie vorgeschlagen in ChatGPT und große Sprachmodelle im akademischen Bereich: Chancen und Herausforderungen (Meyer, 2023), „Derzeit ist ChatGPT eher erfolgreich beim akkuraten Schreiben kleinerer Codeblöcke, während seine Zuverlässigkeit beim Schreiben größerer/komplexer Programme (z. B. eines Softwarepakets) fraglich ist.“
In einem kürzlich in der Zeitschrift Nature erschienenen Artikel warnten einige Informatiker außerdem, dass wir die Codegenerierung mit LLMs mit einer gewissen Vorsicht angehen sollten. Ein weiteres zeitgenössisches Papier,
Große Sprachmodelle und einfache, dumme Bugs
(Jesse, 2023) demonstriert, wie ein populäres LLM, Codex, das vom Anbieter Copilot verwendet wird, „bekannte, wortwörtliche STuBs mit bis zu zweimal höherer Wahrscheinlichkeit produziert als bekannten, wortwörtlich korrekten Code“.
Obwohl diese Probleme nicht ignoriert werden können, gibt es immer noch viel berechtigte Begeisterung darüber, wie diese Programme zur Demokratisierung der Softwareentwicklung beitragen können, indem sie technische und nicht-technische Teams gleichermaßen unterstützen.
Das vielleicht Beeindruckendste ist, dass Tools wie ChatGPT sehr schnell funktionalen Code erzeugen können. Mit der richtigen Eingabeaufforderung können Ingenieure die Zeit für die Programmierung bestimmter Codetypen verkürzen und so einen schnelleren Lebenszyklus der Softwareentwicklung gewährleisten.
Ende 2022 hat die beliebte Programmierplattform
Stack Overflow verboten, KI-generierte
Antworten in seinem Forum. Sie verwiesen auf die hohe Fehlerquote und die Ungenauigkeiten, die mit der Anwendung verbunden sind. Die Technologie befindet sich jedoch noch im Anfangsstadium; außerdem ist die Unzufriedenheit mit den von der KI erzeugten Ergebnissen ebenso sehr auf eine unzureichende Schnelligkeit der Technik zurückzuführen wie auf die Technologie selbst.
Trotz der Vorbehalte gegen die Technologie hat eine
jüngste Arbeit von McKinsey
unterstreicht den Einfluss, den das Prompt-Engineering bereits auf die Welt der Programmierung hat. Das Beratungsunternehmen Der Stand der KI im Jahr 2023: Das Jahr des Durchbruchs der generativen KI teilten zwei interessante Trends. Erstens: 7 % der Unternehmen, die in KI investiert haben, stellen sofort Ingenieure ein. Zweitens haben Unternehmen, die KI einsetzen, die Zahl der KI-bezogenen Softwareentwicklungsaufgaben von 38 % auf 28 % reduziert.
Eine Möglichkeit, diese Trends zu interpretieren, besteht darin, dass die Unternehmen mit diesem Aufbau zufrieden sind und bereit sind, die Software-Automatisierung an ihre Maschinen zu übergeben. Während diese Zahlen die bestehenden Ingenieure erschrecken könnten, deutet die McKinsey-Umfrage darauf hin, dass „nur 8 Prozent sagen, dass die Größe ihrer Belegschaft um mehr als ein Fünftel abnehmen wird“. Insgesamt werden sich Ingenieure wahrscheinlich neu qualifizieren müssen, um von dem Trend zur KI-gestützten Software-Automatisierung zu profitieren.
Eine offensichtliche Anwendung für KI-generierte Software-Automatisierung ist die Erstellung von Automatisierungsrobotern. Auch wenn Prompt-Engineering dank seiner Konzentration auf die Konversation eine angeblich benutzerfreundliche Schnittstelle ist, bleibt abzuwarten, ob es die bestehenden Lösungen ersetzen kann.
In vielerlei Hinsicht hat eine Software wie ZAPTEST den Markt für Software-Automatisierung bereits demokratisiert. Jetzt gibt es No-Code-Tools, mit denen auch nicht-technische Teams hochwertige RPA-Bots erstellen können. Software wie ChatGPT kann zwar Bots erstellen, aber die Implementierung und Wartung könnte sich für alle, die keine Software-Ingenieure sind, als schwierig erweisen – und selbst für diejenigen, die es sind.
Die Aufzeichnung von Interaktionen zwischen Mensch und Computer über die grafische Benutzeroberfläche und die Umwandlung dieser Bewegungen in Code ist wesentlich benutzerfreundlicher als die Verwendung von Eingabeaufforderungen. In Verbindung mit dem Potenzial von LLM, instabilen und fehlerbehafteten Code zu produzieren, kann man mit Fug und Recht behaupten, dass RPA-Software in absehbarer Zukunft nicht mehr weiterentwickelt werden wird.
#2. Umwandlung unstrukturierter Daten
Unstrukturierte Daten sind nicht gerade die Stärke der Robotic Process Automation. Die Technik ist nicht dafür ausgelegt, E-Mails, Bilder, Audiodateien und mehr zu verarbeiten. RPA-Tools benötigen vordefinierte Datenmodelle mit organisierten Strukturen.
Ein großer Teil der unstrukturierten Daten besteht aus natürlichsprachigem Text. Es werden umfangreiche Sprachmodelle erstellt, um diese Informationen zu „verstehen“ und ihnen eine semantische Bedeutung zu entlocken. Dies ist eine große Chance für Teams, die diese Texte interpretieren und in ein für RPA-Tools geeignetes Format umwandeln wollen.
Viele Teams nutzen schon seit Jahren die Verarbeitung natürlicher Sprache (NLP), um sich bei der Stimmungsanalyse zu helfen. Dieser Prozess, der auch als Opinion Mining bezeichnet wird, hilft Unternehmen, die Gefühle und Einstellungen der Verbraucher gegenüber Marken im Blick zu behalten. In den meisten Fällen werden diese Tools verwendet, um positive, negative und neutrale Stimmungen in Texten zu erkennen. Die Technologie ist jedoch auch in der Lage, Emotionen weitaus genauer zu erkennen.
Es gibt zwar mehrere Tools auf dem Markt, die diese Funktionalität bieten, aber das von LLM bietet einen Weg zu einer vielseitigeren Nutzung, die über das Verständnis der Meinung der Menschen über ein Produkt oder eine Dienstleistung hinausgeht. So hat beispielsweise die Datenanalyse in den letzten Jahren stark an Popularität gewonnen. Big Data verschafft Unternehmen einen Vorteil, indem es ihnen ermöglicht, Einblicke und Erkenntnisse zu gewinnen, die ihnen bei der datengesteuerten Entscheidungsfindung helfen.
Robotic Process Automation-Tools können bei der Datenerfassung helfen. Wie wir bereits erwähnt haben, haben sie jedoch Schwierigkeiten mit bestimmten Arten von Informationen. In Verbindung mit KI-Tools, die große Sprachmodelle verwenden, kann RPA jedoch große Datenmengen erfassen und daraus die Informationen generieren, die für Business Intelligence (BI)-Tools erforderlich sind.
Einer der aufregendsten Aspekte der generativen KI ist ihre Fähigkeit, Dateneingaben sinnvoll zu nutzen. Mit dem richtigen Prompt Engineering können Teams diese Daten in ein Format umwandeln, das für ihre RPA-Tools geeignet ist.
RPA kann dazu beitragen, Big-Data-Workflows effizienter zu gestalten. Zunächst können Sie es sowohl für die Dateneingabe als auch für die Datenextraktion verwenden. Die vielleicht wertvollsten und faszinierendsten Anwendungsfälle sind jedoch die Verwendung von RPA-Tools für die Umwandlung, Bereinigung und das Laden von Daten oder die Gewährleistung einer schnellen, effizienten und genauen Datenmigration.
Ein weiterer wichtiger Punkt ist die Datenverwaltung. Die Automatisierung von Datenanfragen hilft Unternehmen, die Vorschriften einzuhalten, und sorgt dafür, dass die Daten nicht in die Hände von Mitarbeitern fallen.
#3. Test-Automatisierung
Die Testautomatisierung hat sich in Softwareentwicklungskreisen durchgesetzt, weil sie eine schnellere Möglichkeit zur Überprüfung von Software bietet. Testen und Qualitätssicherung sind traditionell teure und zeitaufwändige Prozesse; Testautomatisierung bietet eine Lösung für diese beiden Herausforderungen.
Eine der ersten Maßnahmen, die das Prompt Engineering ergreifen kann, ist die Verbesserung der Qualität der Testfälle. Mit den richtigen Aufforderungen können diese Maschinen Testfälle analysieren und Probleme und Abhilfemaßnahmen identifizieren. Dieser Prozess kann den Umfang der Testfälle erweitern und zu umfassenderen Tests führen.
Sie können zum Beispiel ein großes Sprachmodell mit Code füttern, ähnlich wie Sie es mit einem menschlichen Prüfer tun würden. Diese Maschinen können den Code schnell durchlaufen und Fehler, Bugs und sogar Leistungsprobleme aufspüren. Vielleicht noch interessanter ist, dass LLMs auch die Möglichkeit bieten, Testfallcode aus einfachen Schnipseln zu vervollständigen, was die Erstellung von Testfällen beschleunigt.
Prompt Engineering zielt darauf ab, viele der Probleme anzugehen, die das Aufkommen des Agile/DevOps-Ansatzes in der Softwareentwicklung vorangetrieben haben. Ingenieure wünschen sich effiziente, leicht wiederholbare Tests, mit denen sich Probleme erkennen lassen, bevor die Anwendungen bereitgestellt werden. Die Idee dahinter ist, dass sich Softwareentwickler durch die gewonnene Zeit auf kreativere und wertorientiertere Aufgaben konzentrieren können.
Wie in einem klassischen Papier dargelegt,
Technische Schuld in der Testautomatisierung
(K. Wiklund, 2012), können Software-Entwicklungsteams Probleme bekommen, wenn sie zu viel Zeit für das manuelle Testen und Verifizieren ihrer Software aufwenden. Die anfänglichen Kosten für Testautomatisierungslösungen, mangelnde Automatisierungserfahrung und sogar eine Vorliebe für ältere Methoden können zu diesen Verzögerungen beitragen.
Einer der interessantesten Aspekte der agilen Softwareentwicklung ist die
Verhaltensgesteuerte Entwicklung (BDD).
Das Konzept bezieht sich auf die Entwicklung von Software unter Berücksichtigung des erwarteten Benutzerverhaltens. Während die Umsetzung dieses Ansatzes eindeutig Zeit sparen kann, haben viele Teams Schwierigkeiten, diese Automatisierung in die Tat umzusetzen. LLMs können jedoch eine Lösung bieten.
Zu den häufigsten Symptomen für technische Schulden gehören eine schlechte Dokumentation und ein Mangel an robusten Tests. Dies sind Probleme, zu deren Lösung die LLM von heute beitragen können. Andere bemerkenswerte Symptome, wie z. B. das Refactoring, sind jedoch zu komplex für die derzeitige generative KI und führen möglicherweise nicht zu Zeiteinsparungen.
Abschließende Überlegungen
Generative KI-Anwendungen haben ein immenses Potenzial. Die benutzerfreundliche, dialogorientierte Oberfläche kann jedoch in die Irre führen. Viele Menschen glauben, dass es einfach ist, mit diesen Maschinen hochwertige Ergebnisse zu erzielen. Allerdings ist eine exzellente Souffleurtechnik komplizierter als Sie vielleicht erwarten.
Effektives Prompt-Engineering erfordert eine Menge Versuch und Irrtum. Es erfordert auch viel Voraussicht seitens des Ingenieurs, um sicherzustellen, dass die Antworten nützlich sind. Und schließlich ist es wichtig, die Arbeit zu überprüfen und nachzuprüfen, da die Gefahr von Fehlern bekanntlich groß ist.
Auch wenn die Zahl der Arbeitsplätze im Bereich Sofortelektronik steigt, sind nicht alle davon überzeugt. In der Harvard Business Review führt Oguz A. Acar ein faszinierendes Argument an „Künftige Generationen von KI-Systemen werden immer intuitiver und geschickter darin, natürliche Sprache zu verstehen, wodurch sich die Notwendigkeit sorgfältig ausgearbeiteter Eingabeaufforderungen verringert.“
Was auch immer die Zukunft bringen wird, die generative KI wird mit von der Partie sein. Auch wenn das Prompt-Engineering vielversprechend ist, ist es schwer zu sagen, welche Rolle es genau spielen wird.
Interessanterweise gibt es bereits zahlreiche Anwendungsfälle und Erfolgsgeschichten, die zeigen, dass Software-Testautomatisierungssoftware geeignet ist, die Softwareentwicklung zu beschleunigen, ohne Kompromisse bei der Genauigkeit oder der umfassenden Überprüfung von Anwendungen einzugehen.
Tools wie ZAPTEST ermöglichen es Entwicklern bereits, Probleme wie unzureichende Zeit und Ressourcen, technische Schulden, Dokumentation, umfassende Tests und RPA anzugehen. Darüber hinaus sind diese Tools benutzerfreundlicher als Prompt-Engineering, so dass sie sich auch für nichttechnische Teams gut eignen. Wie immer liegt das wahre Potenzial an der Schnittstelle dieser spannenden Automatisierungstechnologien.