KI ist gerade in aller Munde. In all meinen Social Media Feeds geht es um neue Dinge, die man mit ChatGPT-Plugins machen kann, oder um ein neues Foto, das mit generativer KI erstellt wurde. Um ehrlich zu sein, ist das ziemlich cool, und ich bin nicht böse darüber.
Die Tech-Community scheint sich voll und ganz auf diesen KI-Goldrausch eingelassen zu haben. Jeden Tag kommen neue Software, Funktionen und Verbesserungen auf den Markt, so dass wir uns schnell in einer „Sink-oder-Schwimm“-Phase befinden. Nehmen wir all die neuen Errungenschaften an und beobachten, wie sich die Entwicklung verändert? Ignorieren wir sie und hoffen, dass sie wieder verschwinden? Wie wäre es mit etwas in der Mitte?
Wenn wir uns die obige Glockenkurve für die Einführung von KI ansehen, würde ich schätzen, dass wir uns noch am Anfang der Early-Adopter-Phase befinden. Viele Leute machen online viel Lärm darum, aber nur wenige von uns nutzen sie tatsächlich in der Produktion.
Dennoch wird die Zeit kommen, in der KI in allen Bereichen alltäglich sein wird. Wir werden sie nicht speziell bemerken, sondern davon ausgehen, dass sie da ist und die Software angenehmer macht.
Aber nicht für mich. Ich habe mich voll und ganz darauf eingelassen, und es hat die Art und Weise, wie ich Software plane, entwerfe und implementiere, übernommen. Zugegeben, ich bin kein Unternehmensarchitekt mehr, aber ich betreibe meine Website Ready, Set, Cloud selbst, und dahinter steckt eine Menge Software und Services, die alles automatisieren.
Ich wollte mit Ihnen teilen, wie ich an die Anwendungsentwicklung herangehe, jetzt, wo mir eine unglaublich leistungsfähige KI zur Verfügung steht.
Ein kurzes Vorwort
Bevor ich fortfahre, müssen wir über einen Trugschluss sprechen, den ich zu oft bei technischen und gestalterischen Entscheidungen erlebt habe (und der sie letztendlich von der Innovation wegführt).
So etwas wie perfekte Software gibt es nicht. Je eher Sie sich mit „nahe genug“ zufrieden geben, desto eher werden Sie und Ihre Kunden zufrieden sein.
Gehen Sie bei der Entwicklung nicht davon aus, dass Sie die perfekte Software entwickeln werden. Selbst wenn Sie sie „perfekt“ entworfen haben, werden Sie bei der Implementierung mehrere Iterationen durchlaufen, die sie schließlich völlig verändern.
Es ist unmöglich, alle zufrieden zu stellen. Die Menschen brauchen keine „perfekte Software“. Sie brauchen etwas, mit dem sich das Problem lösen lässt.
In diesem Sinne weiß ich, dass KI nicht perfekt ist. Sie hat Schluckauf. Ab und zu wird sie mir vielleicht einen Strich durch die Rechnung machen. Aber das ist in Ordnung. Wenn ich ein Problem auf eine neue, innovative Art und Weise lösen kann, die in 80 % der Fälle richtig ist, habe ich mich für den Erfolg positioniert.
Nachdem wir das nun hinter uns gebracht haben, lassen Sie uns über einige neue Möglichkeiten sprechen, die sich uns mit der schnell wachsenden Verfügbarkeit von KI bieten.
Neue Möglichkeiten
ChatGPT und andere generative KI-Dienste verfügen über beeindruckende pseudo-menschliche Fähigkeiten. Fragen, für die Sie normalerweise einen Menschen fragen müssten, können in der Regel von KI beantwortet werden. Wenn Sie bereit sind, die von diesen Diensten gegebenen Antworten zu akzeptieren (und das ist ein großes WENN), öffnen Sie die Tür zu vielen weiteren Möglichkeiten, für die vorher menschliche Interaktion erforderlich gewesen wäre.
Datenumwandlungen
Ich wollte Social-Media-Beiträge für meine Blogs erstellen, wenn ich sie veröffentliche. Ich mache das immer manuell, aber wenn ich die Möglichkeit dazu hätte, würde ich es auf jeden Fall einem virtuellen Assistenten überlassen. Ich habe die Daten meines Blogbeitrags, aber was mir fehlt, sind die Schlüsselwörter, die Struktur und die Formatierung, die meine Zielgruppe mag. Ich habe eine ungefähre Vorstellung, da ich das schon eine Weile mache, aber ich bin nie perfekt.
Das heißt, ChatGPT kann das. Es weiß, wie man Informationen aus meinem Beitrag extrapoliert und sie speziell für eine Zielgruppe umwandelt. Es verfügt über phänomenale Informationen über Marktsegmente, und alles, was ich tun muss, um meine Daten für ein bestimmtes Publikum umzuwandeln, ist einfach zu fragen.
„Erstelle einen Tweet über meinen Inhalt, der sich an serverlose Entwickler in den Vereinigten Staaten richtet.
Wenn ich eine andere Zielgruppe ansprechen möchte, kann ich eine andere Variante anfordern, z. B. „Erstelle einen LinkedIn-Beitrag auf Spanisch zu meinem Blogbeitrag, der sich an .NET-Ingenieure in Spanien richtet.“
Die Antwort kann einfach in die Twitter-API eingegeben und auf den Weg geschickt werden.
Datengenerierung
Dies ist wahrscheinlich das Offensichtliche, das wir bereits kennen. Geben Sie ChatGPT eine Eingabeaufforderung und lassen Sie es Daten, eine E‑Mail oder eine PDF-Datei generieren. Aber es gibt so viele Anwendungsfälle, dass es sich lohnt, das Offensichtliche zu erwähnen.
Ich habe darüber gebloggt, wie ich eine Fitness-App entwickelt habe, die jeden Tag Workouts für mich generiert. Ich habe eine Lambda-Funktion, die nach dem Zufallsprinzip entscheidet, welche Muskelgruppe und welches Fitnessgerät ich an diesem Tag benutzen möchte, und die eine Eingabeaufforderung erstellt, die an ChatGPT weitergegeben wird. ChatGPT erstellt dann das gesamte Training, die Aufwärmphase und die Abkühlphase, die ich in einer Datenbank speichern kann.
Vor der Einführung der generativen KI wäre diese Implementierung ein Albtraum gewesen. Ich hätte eine Art Datenbank mit Übungen und Möglichkeiten, sie für verschiedene Trainingstypen zu modifizieren, benötigt. Dann hätte ich mir eine Logik ausdenken müssen, mit der ich die Übungen modifizieren könnte, um sie pseudo-zufällig zu strukturieren und zu trainieren. Es wäre ein mehrwöchiger Aufbau gewesen, der nur mäßige Ergebnisse gebracht hätte.
Stattdessen habe ich 3 Stunden damit verbracht, einen Step Function-Workflow zu erstellen, der ChatGPT abfragt und die ganze schwere Arbeit für mich erledigt (Wortspiel beabsichtigt). Ich habe wochenlang Zeit gespart, indem ich mich auf KI verlassen habe, anstatt selbst etwas zu entwickeln.
Es geht nicht nur um Workouts, sondern auch um die Generierung von Geschichten, die Erstellung ganzer Mock-Datensätze aus einem vorgegebenen Schema oder die Entwicklung von Rezepten mit den Lebensmitteln, die Sie in Ihrer Küche haben.
Aber jetzt kann ich mit der richtigen Eingabeaufforderung automatisch sinnvolle Daten für mich generieren lassen. Ich gehe von „Software Engineering“ zu „Prompt Engineering“ über. Sie brauchen nicht mehr diese riesigen Datenbanken mit Elementen, um eine benutzerdefinierte Geschäftslogik zu erstellen. Bitten Sie einfach einen LLM, das zu verwenden, was er weiß.
Den richtigen Zeitpunkt finden
Es ist äußerst schwierig, den richtigen Zeitpunkt für die Veröffentlichung von Inhalten, die Reaktion auf ein Ereignis oder das Senden einer Benachrichtigung zu finden. Die idealen Zeitpunkte variieren im Allgemeinen von Fall zu Fall und lassen sich nur selten in einer allgemeinen Konfiguration zusammenfassen. Ein gutes Beispiel wäre die Benachrichtigung von Bereitschaftstechnikern, wenn eine Anomalie entdeckt wird. Sie sollten nicht bei jeder Auffälligkeit benachrichtigt werden, da dies zu Ermüdungserscheinungen führen kann.
Wenn Sie routinemäßig einen Datensatz an die KI weitergeben, kann diese Anomalien erkennen und beobachten, ob sie sich beruhigen oder sogar begründen, warum die Anomalie überhaupt aufgetreten ist. Sie können der KI einige Richtlinien an die Hand geben, damit sie nur dann eine Warnung ausgibt, wenn etwas eine bestimmte Anzahl von Kriterien erfüllt. Dies erhöht letztlich die Effektivität Ihres Bereitschaftspersonals und senkt Ihre TCO rein auf Basis der Arbeitskraft.
Sie können auch JSON-Objekte an ChatGPT übergeben und im Gegenzug JSON anfordern. Lassen Sie uns ein anderes Beispiel durchgehen: Mitarbeiterbenachrichtigungen.
Da heutzutage viele Menschen von zu Hause aus arbeiten, ist es unmöglich, eine Nachricht zu einem Zeitpunkt zu versenden, der für alle passt. Sie könnten also ChatGPT verwenden, um Aktivitätstrends einer Person zu identifizieren, um eine statistisch hohe Wahrscheinlichkeit zu erhalten, sie online zu erreichen. Stellen Sie sich diesen Prüfungsverlauf vor:
[
{
"timestamp": "2023-05-26T14:52:21Z",
"event": "login"
},
{
"timestamp": "2023-05-27T16:40:09Z",
"event": "logout"
},
{
"timestamp": "2023-05-28T07:55:13Z",
"event": "login"
},
{
"timestamp": "2023-05-28T19:30:10Z",
"event": "logout"
}
// more audit events
]
Sie können ChatGPT mit dem Prüfungsverlauf füttern und ihm dann eine Eingabeaufforderung mitgeben:
Geben Sie ein json-Objekt mit einer „sendAtTime“-Eigenschaft im ISO-8601-Format zurück, das die höchste Wahrscheinlichkeit hat, die Person zu erreichen, wenn sie das nächste Mal online ist.
Dies führt zu einer Antwort von:
{
"sendAtTime": "2023-05-29T15:20:55Z"
}
Und Sie mussten kein komplettes Benachrichtigungssystem entwickeln! Man gibt einen Prüfungsverlauf ein und bittet die generative KI, anhand von Trends herauszufinden, wann sie das nächste Mal online sein wird. Es ist einfach so schnell, Dinge zu entwickeln, die früher Wochen sorgfältiger Zeit, Planung und Mühe erforderten. Jetzt können Sie einen Step Function-Workflow erstellen, der den Audit-Verlauf lädt, eine Lambda-Funktion zur Abfrage von ChatGPT aufruft und dann einen einmaligen EventBridge-Zeitplan einrichtet.
Wie dies die Entwicklung verändert
Mit all den Beispielen, die wir zuvor betrachtet haben, haben sich ganz neue Anwendungsfälle aufgetan. Ich konzentriere mich nicht mehr darauf, banale Systeme zu bauen, die CRUD-Operationen verfolgen. Wir haben Hunderte von Beispielen, die das tun.
Stattdessen nähere ich mich der Software jetzt mit Blick auf künstliche Argumentation. Was kann ich ChatGPT fragen, das mir den meisten Code aus den Händen nimmt? Ich habe schon ein paar Mal zu Protokoll gegeben, dass Code eine Belastung ist. Bei jeder Gelegenheit, die sich mir bietet, um Code zu entfernen, tue ich das. Früher war dies bei der direkten Verbindung von API Gateway mit verschiedenen AWS-Services der Fall. Ich würde Lambda-Funktionscode entfernen, indem ich ihn ganz überspringe.
Aber jetzt brauche ich vielleicht nicht einmal einen Endpunkt, um das zu tun, was ich will. Die Dinge können einfach… passieren.
Ich gehe bei der Entwicklung davon aus, dass ich mich frage, was ich automatisieren kann, wo ich Erkenntnisse sammeln kann und wann ich handeln sollte, wenn Daten erstellt werden. Nehmen wir meinen Blog als Beispiel.
Alle meine Beiträge sind als Markdown-Dateien in GitHub gespeichert. Wenn ich einen neuen Artikel in den Hauptzweig verschiebe, finden eine ganze Reihe von Aktivitäten statt:
- Cross-Posting der Inhalte auf anderen Blogging-Plattformen
- Zusammenfassen und Erfassen von Analysen zu den Artikeldetails
- Synthetisieren einer Text-to-Speech-Aufnahme und Speichern dieser Aufnahme im Artikel
- Erstellen von Analysen zum Autor (Schreibfertigkeit, Tonfall, Fachwissen, Themen)
- Identifizieren Sie die Ziel- und Tangentialzielgruppen auf der Grundlage des Inhalts
- Verfassen von Beiträgen für soziale Medien, die sich an die identifizierten Zielgruppen richten und den Inhalt des Artikels zusammenfassen
- Planen Sie die Veröffentlichung von Beiträgen in sozialen Medien zu den für die Zielgruppen optimalen Zeiten
Nun, einiges davon gibt es noch nicht – aber das wird es dank generativer KI. Wenn man sich einige der Aktionen ansieht, die passieren, wird ChatGPT im Grunde zu einem automatisierten Marketingteam. Die Identifizierung der Personen, die ein Beitrag am meisten ansprechen würde, das Wissen, wie man sie erreicht, und das Senden von maßgeschneiderten Nachrichten, wenn sie online sind, sind alles Marketingaufgaben – und zwar schwierige!
Aber dank meiner neuen Herangehensweise an die Softwareentwicklung ist das alles möglich. Ich beschäftige mich nicht mehr mit der Frage, wie ich ein System bauen kann, das X, Y oder Z kann, sondern ich finde heraus, was ich brauche, um die KI zu bitten, dies für mich zu tun.
Das ist wirklich ein Wendepunkt und alles in allem eine spottbillige Option, wenn es um den ROI geht. Ja, die Antworten sind nicht immer perfekt, aber damit habe ich kein Problem. Wenn ich ehrlich bin, ist es nie perfekt, wenn ich eine Lösung von Hand baue. Aber ich habe meine Zeit bis zur Fertigstellung um das 100-fache verkürzt, und das ist jeden Cent wert.
Viel Spaß beim Programmieren!
Quelle: medium.com
Erfahren Sie hier mehr über Lösungen im Bereich Data Engineering oder besuchen Sie eines unserer kostenlosen Webinare.