Skip to main content
swissICT Booster  |  M&F Academy  |  M&F Events   |  +41 44 747 44 44  | 
7 Minuten Lesezeit (1455 Worte)

Wie generative AI die Software-Entwicklung verändert

Spätestens als im November 2022 ChatGPT frei zugänglich gemacht wurde, erreichte das Wettrennen der Generativen-AI-Technologie die Öffentlichkeit. Innerhalb von nur fünf Tagen hatten sich bereits eine Million Nutzer registriert und bis im Januar 2023 hatte sich diese Zahl auf 100 Millionen erhöht. ChatGPT ist nur ein Beispiel für die Art generativer KI, die auf Grund von natürlicher Sprache Text, Bilder oder andere Medien erstellen kann. Die Qualität von ChatGPT war jedoch so beeindruckend verbessert worden, dass fast täglich neue Anwendungsbeispiele zu entdecken waren. Das Geschäftsfeld ist im starken Wandel. Daher ist es von entscheidender Bedeutung auf dem Laufenden zu bleiben. Aus diesem Grund hat M&F Engineering ein Webinar zu diesem Thema veranstaltet. Im Rahmen dieses Webinars präsentierten zwei Referenten ihre Erfahrungen und praktischen Anwendungsbeispiele:

Reto Bättig, CEO von M&F Engineering AG, zeigte, wie sein Unternehmen AI in der Administration einsetzt und welche weiteren Einsatzmöglichkeiten es bei M&F gibt.

Rainer Stropek, CEO und Mitgründer von Software Architects, Cloud-Architekt und leidenschaftlicher Softwareentwickler, demonstrierte live den Einsatz von Copilot und ChatGPT in der Softwareentwicklung. In einem zweiten Teil erläutert er, wie AI-Modelle in eigene Anwendungen integriert werden und welche Aspekte dabei zu beachten sind.

Das Webinar wurde aufgezeichnet. Die wichtigsten Punkte sind unterhalb des Videos zusammengefasst.

 

Generative AI bei der M&F

Reto ist begeistert von generativer AI. Er ist nicht nur ein Enthusiast, sondern nutzt die AI auch in seiner täglichen Arbeit und weiss genau, wo sie ihm dabei helfen kann. Die KI, um die es heute geht, ist darauf trainiert, die Bedeutung natürlicher Sprache zu verstehen. Diese KI-Modelle haben in der Regel Millionen oder sogar Milliarden von Parametern, mit denen sie optimiert sind, und werden als Large Language Models (LLMs) bezeichnet. Mit diesem Sprachverständnis gibt es verschiedene KIs, die Reto bei seiner Arbeit unterstützen. Ein Beispiel ist DALL-E, der aus einer Texteingabe passende Bilder generieren kann. Diese Bilder nutzt er auch in seiner Präsentation. Noch häufiger verwendet Reto jedoch ChatGPT, eine KI mit der er ein Dialog führen und Anweisungen geben kann. ChatGPT spart ihm Zeit indem sie Titel generiert, Texte verbessert, Texte kürzt und übersetzt.

In der M&F Engineering AG wird AI bereits in verschiedenen Tools eingesetzt. Zum Beispiel für die automatische Erkennung und Verbuchung von Rechnungen, die Zeiterfassung per Spracheingabe und die Erstellung und Überprüfung von Verträgen. Die Generative AI ist ein Tool, dass bei richtiger Anwendung Zeit sparen kann - und das bereits heute. Die Einsatzmöglichkeiten sind vielfältig: Kunden können von günstigerer Individualsoftware profitieren, Service-Mitarbeiter erhalten Unterstützung und es können Ideen umgesetzt werden, die bisher nur in den Köpfen existieren.

Die Integration von Künstlicher Intelligenz hat also bereits begonnen. Wenn Reto heute noch den Browser wechseln muss, um Texte kürzen zu lassen, so wird er das in Zukunft direkt in Microsoft Office tun können, sobald der von Microsoft angekündigte Microsoft 365 Copilot veröffentlicht wird.

Copilot als Assistent

Während der Microsoft 365 Copilot noch in die Office-Produkte integriert wird, gibt es für Software-Engineers bereits GitHub Copilot. Der GitHub Copilot unterstützt Entwickler:innen durch Codevorschlägen aufgrund von vorhandenen Code und Kommentaren. Der Copilot basiert auf OpenAI Codex, einer modifizierten Version von GPT-3. Weit verbreitet ist er noch nicht. Von den Seminarteilnehmenden benutzen ihn sechs Prozent täglich, und weitere 18 Prozent haben ihn ausprobiert, verwenden ihn aber nicht regelmässig.

Regelmässig im Einsatz ist der Copilot bei Rainer Stropek. In einer Live-Coding-Session zeigt er, was der Textgenerator kann. Innerhalb einer halben Stunde programmiert er ein Tic-Tac-Toe-Spiel und ein Sensor-Datengenerator, um die Funktionen des Copilot zu demonstrieren.

Schon nach dem Definieren des Namespaces «TicTacToe» und beim Schreiben der Linie «public class Game()« schlägt der Copilot eine Implementation der Klasse vor. Doch Rainer weiss, was er will oder eben nicht will, und schlägt Properties und Fields vor, die er für richtig hält. Der Copilot passt sich ihm an. Rainer betont, dass der Programmierer die Richtung vorgibt, der Copilot folgt. Dennoch ist er mehr als nur eine automatische Vervollständigung. Er ähnelt eher einem Junior-Entwickler oder Assistenten, der aufgrund von Textvorgaben Code erstellt.  Kommentare können verwendet werden, um Methoden zu beschreiben und Vorschläge zu erhalten.

Von Tic-Tac-Toe-Games sind im Internet viele Beispiele für das Training des Copilots verfügbar. Somit ist dies eine Paradedisziplin für Github Copilot. Rainer zeigt, wie auch anspruchsvollere Methoden erstellt werden. Er benutzt dafür den Playground des GPT-4, das neuste Modell von OpenAI. Er beschreibt die gewünschte Funktion und erhält eine erste Version. Als Experte lässt er im Dialog einige Dinge ändern, bis er nach einigen Iterationen mit dem Ergebnis zufrieden ist.

Wer eine Weile mit Copilot und ChatGPT gearbeitet hat, wird feststellen, wie wichtig es ist, Anforderungen präzise zu formulieren. Das ist bereits ein wesentlicher Bestandteil von Software-Engineering, aber mit dem Aufkommen der Sprachmodelle sind die spezifischen Eigenarten der Modelle zu berücksichtigen, damit diese das tun, was man will. Auf Englisch wird dies Prompt Engineering genannt und ist mittlerweile auch ein eigener Jobtitel. Viele dieser Tricks sind auf http://learnprompting.org zusammengefasst.

Large Language Models in produktiven Umgebungen

Prompt Design wird umso wichtiger, wenn das LLM in der Produktion eingesetzt wird anstatt nur in der Entwicklung. Während wir mit Copilot das Ergebnis immer manuell überprüfen können, sieht der Endnutzer von Anwendungen mit AI den Fehler selbst.

Im Vortrag über den produktiven Einsatz von Sprachmodellen hat Rainer drei Beispiele gezeigt.

Generieren von Trainingsdaten für Fine-tuned-models

Die LLM können dazu verwendet werden, um Testdaten oder Trainingsdaten zu generieren. Dies nicht nur in Textform sondern auch strukturiert in einem JSON. Im folgenden Beispiel werden Daten generiert, um ein Language-Modell für die Klassifizierung von Service-Anfragen nach Dringlichkeit zu optimieren.

Um die Daten zu generieren, wird der AI folgender Prompt übergeben:

Generate 3 text messages in English, German, and Spanish in which fictional users ask to reset their password. The messages should sound like the users have sent them to another support department. Some should sound neutral, some really urgent. The request must contain the user name. Answer with a JSON array containing objects in the following format:

{ “prompt”: “<insert generated message here>”, “completion”: “ { \\”request\\”: \\”reset-pwd\\”, \\”user-account\\”: \\”<insert generated user name here>\\”, \\”urgency\\”: \\”<neutral or urgent>\\” “ }

 

Chatbot mit Antworten in JSON-Format

Das zweite Anwendungsbeispiel ist ein Autoverkäufer-Bot, der Filterkriterien bereitstellt, um dem Kunden das passende Auto vorzuschlagen. Der Bot soll dabei Fragen stellen, die für den Kunden möglichst natürlich klingen. Um die erfragten Kriterien auszulesen, wird die KI angewiesen, ein JSON zu erzeugen.

Als Prompt für die KI geben wir folgendes vor:

You have to put together filter criteria for a database of used cars. The filter criteria are:

- Mileage: Low, medium, high

- Age: Demonstration car, young, medium, old

- Fuel: Regular, Diesel, Electric, Hybrid

- Size: Tiny, Compact, Mid-size, Large, SUV, Mini van

“Undefined» is also an option for each criteria.

Ask the user questions. Don’t aks directly for the criteria. Ask for factors from which you can derive criteria (e.g. how many kids, current car etc.). After each question, answer with a JSON data structure containing the filter criteria. After the JSON, aks follow-up questions to narrow the search. Never suggest concrete cars, only put together filter criteria.

 

 

Fragen mit Quellenangaben beantworten

Ein wesentlicher Kritikpunkt an ChatGPT ist, dass bei Wissensfragen keine Quellenangabe gemacht wird. Noch schlimmer: Sind wenig Daten vorhanden oder sind die Daten sogar widersprüchlich, «halluziniert» ChatGPT und gibt falsche Antworten, die oft sehr plausibel klingen.

Um diesem Problem entgegenzuwirken, wird bei einer API-Anfrage das entsprechende Wissen mitgeliefert. Wenn die Antwort nicht mit dem gelieferten Artikel beantwortet werden kann, wird die AI angewiesen mit "I don't know" zu Antworten. Ein Prompt könnte folgendermassen aussehen:

You are an AI assistant that helps people find information.

Facts: {knowledge}

Given the above facts, {question}?

If the facts do not contain this information, say ”I don’t know”.

Die Variabeln “knowledge” und “question” werden vor der Abfrage eingefügt. Zur Auswahl der verwandten Texte wird ebenfalls eine API verwendet. Dabei kommt das Ada-Modell von OpenAI zum Einsatz, das ein Embedding für jeden Text liefert. Ein Embedding ist ein Vektor, der den Inhalt und die Bedeutung des Textes abbildet und gleichzeitig dessen Dimensionalität reduziert.

Um dies umzusetzen, wird die Wissensdatenbank artikelweise in einer Vektordatenbank abgebildet. Die zu beantwortende Frage wird ebenfalls als Vektor dargestellt. Durch die Suche nach den Vektoren, die der Frage am ähnlichsten sind, werden relevante Artikel gefunden und zusammen mit der Frage an die Completion-API gesendet.

Für Kunden ist es besonders interessant zu wissen, dass die API-Endpoints auch über Azure abrufbar sind. Dies bietet zahlreiche Vorteile, wie die Möglichkeit, bereits bestehende Geschäftsbeziehungen zu nutzen. Der Kunde kann damit den Ort des Datencenters wählen und mit einem SLA eine hohe Verfügbarkeit, Performance und Datenschutz garantieren.

 

Wird sind gespannt, wie sich die AI Technologie und deren Einsatz im Softwareengineering weiterentwickelt. Für Diskussionen und Projektideen rund um Generative AI sind wir offen und unterstützen Sie gerne dabei. Kommen Sie auf uns zu!

4
Die Stimme am Telefon verabschiedet sich
Mirek erzählt, weshalb für ihn das Trainee-Program...

Ähnliche Beiträge

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Montag, 29. April 2024

Sicherheitscode (Captcha)