KI-Assistenten in der Softwareentwicklungspraxis
KI-Tools sind heute in der Softwareentwicklung weitverbreitet. Diese Tools helfen bei der Codegenerierung und Fehlersuche, haben jedoch auch Schwächen. Dazu gehört das Problem des «Reasoning», das zu unlogischem Text oder Code führt. Wie es adressiert werden kann und was das mit den Studiengängen Artificial Intelligence in Software-Engineering und Computational and Data Science zu tun hat, erfahren Sie hier.
Die Veröffentlichung von ChatGPT im Herbst 2022 hat massgeblich in der Softwareentwicklung eingeschlagen. Viele Entwickler und Studenten haben seitdem diese Tools als Teil der Software und Code Entwicklung genutzt. Hinzu gekommen sind vielfältige neue Tools wie Co-Pilot oder Cursor.ai, welche die Co-Pilot und Prompt Fähigkeiten der Large Language Models, in die Integrated Development Environments (IDE) integriert haben. Diese Tools nutzen die existierenden Vorteile einer IDE und kombinieren diese mit den Fähigkeiten der Large Language Models (LLM) Code zu generieren und bei der Fehlersuche zu helfen. Jedoch sind diese Tools nicht von Schwächen befreit wie die «Halluzination» von fehlerhaften Source Code oder dem mangelnden Verständnis von der Interaktion in komplexeren Softwarearchitekturen. Gängige LLM wie von OpenAI [1] oder Mistral [2] oder open source Angebote wie die Llama Modelle von Meta [3], verhalten sich alle recht ähnlich und haben ähnliche Schwachpunkte wie z.B. dem Problem das Text oder Code, der unlogisch ist, generiert werden kann. Dieses Problem des «Reasoning» (Nachdenken) ist eine der grossen Schwierigkeit im Einsatz als Co-Programmierer in der Softwareentwicklung.
Neue Methoden verbessern die heutigen KI-Assistenten nachhaltig
Eine der bedeutendsten Stossrichtung sind die Forschungen zum Thema «Reason and Act» [4], welche Schwächen im Reasoning adressieren. Das ReAct Pattern kombiniert die Fähigkeit der LLM einen Lösungsvorschlag zu erarbeiten mit der Möglichkeit ein externes Tool aufzurufen und deren Beobachtungen oder Ergebnisse wieder zu nutzen. Das Vorgehen ist im unteren Bild aufgezeigt.
Bild Quelle:[5]
Die ReAct Method wird im Softwareumfeld eingesetzt, um Code und Tests zu generieren, in Folge eines Prompts, der eine Softwarefunktion oder eine Erweiterung bzw. Veränderung von bestehen Code anspricht. Der erzeugte Code und Testdaten (z.B. Unit Test) werden dann mit einem Compiler als externen Tool verknüpft, der dann die Tests durchführt und das Ergebnis zurückgibt. Insbesondere bei Fehler, wird nun das LLM mit dem ursprünglichen Problem, dem erzeugten Code und Test und den Beobachtungen des Tools (Compiler) wieder gefüttert. Diese erzeugt nun die nächste Iteration des Codes und diese wird wieder durch den Agenten ausgeführt, bis der Code für die Test fehlerfrei funktioniert. Dies ersetzt nun die gleiche Tätigkeit eine Softwareentwicklers welcher Code schreibt oder generiert, diesen testet und dann wieder bei Fehler verbessert bis der Code funktioniert. Dieses Spiel zwischen Coding und Testen wird nun durch das ReAct Pattern übernommen und stellt somit die nächste Iteration der Automatisierung von der Softwareentwicklung dar.
KI verstehen und am Ball der Entwicklung bleiben
Die stürmische Entwicklung der LLM-Technik aber auch der Methoden und Patterns diese zu verbessern und die Software Tools, welche um diese neuen KI-System entstehen, benötigen Fachpersonen die nicht nur das Handwerk der Softwareentwicklung verstehen, sondern auch die Methoden und Verfahren der KI-Technologie. Aus diesem Grund hat die Fachhochschule Graubünden nun den neuen Studiengang Artificial Intelligence in Software-Engineering (AISE) aufgebaut, damit eine neue Generation von Entwicklern gleich auf beiden Themen bestausgebildet ist. – Parallel dazu lernen die Studierenden im Informatikstudiengang Computational and Data Science Anwendungen für Banken und Versicherungen, Medizin, Biologie oder auch die Ingenieurswissenschaften rund um die Künstliche Intelligenz zu entwickeln.
Artificial Intelligence in Software-Engineering (AISE): Zwei Studiengänge in einem und mit vielfältigen Anwendungsmöglichkeiten
Im Studium AISE erwerben Sie die Kompetenz, durch den Einsatz von künstlicher Intelligenz komplexe Softwaresysteme zu entwickeln. Sie lernen, kritisch zu denken und die Anforderungen an Softwaresysteme zu erfassen, in einer Software-Architektur zu manifestieren, umzusetzen und die Zielerreichung zu überprüfen. Sie vertiefen sich in zwei Fachbereichen und in deren einzigartigen Kombination.
Computational and Data Science (CDS): Künstliche Intelligenz in der Anwendung
Im Studium CDS erwerben Sie die Kompetenz, aus Daten einen betriebswirtschaftlichen, gesellschaftlichen oder wissenschaftlichen Mehrwert zu generieren. Sie lernen, kritisch zu denken und sich rasch in neue Anwendungsdomänen einzuarbeiten. Die Grundlage hierfür bildet eine umfassende Ausbildung in angewandter Informatik, künstlicher Intelligenz, Data Science und Computersimulation.
Quellen:
[1] openai.com
[2] mistral.ai
[3] https://ai.meta.com/blog/meta-llama-3-1/
[4] ReAct: Synergizing Reasoning and Acting in Language Models, https://arxiv.org/abs/2210.03629
Text: Florian Herzog
Die Fachhochschule Graubünden ist Hochschulpartnerin von ICT-Berufsbildung Schweiz.