In anticipation of Lars Röwekamp's session "Generative AI Meets Software Architecture" and workshop "From Zero to Production: Build Your Own GenAI Solution.", Lukas Zühl and Richard Wallintin (both WPS – Workplace Solutions) asked him some relevant questions.
In which processes and tasks do you think the use of current (generative) AI systems is inappropriate? Where are the limits to your excitement?
(Generative) AI brings with it a great opportunity but also a great responsibility. Caution is therefore always called for when the well-being of the individual – e.g. lending, social scoring – or of society – e.g. social media bubbles - is jeopardised by the application of AI.
Is there a fundamental difference in designing the architecture for a GenAI-based system compared to “normal” software systems?
Normal applications usually act deterministically. GenAI solutions, on the other hand, work with a certain “creativity”. This has to be taken into account in the application design and architecture.
Appropriate quality assurance actions, such as the integration of guardrails that match the model or reference record checking, must be implemented. In addition, the results of a GenAI solution should be subjected to an additional plausibility check to filter out hallucinations.
What key risks pop up when developing AI-powered applications? Can they all be addressed today?
The biggest risks of an AI-based application are the lack of causality – we are only dealing with correlation – and the insufficient transparency of the basis for an AI prediction.
Depending on the application and criticality, it may therefore make sense to switch to a weaker but more transparent model in order to create better user acceptance.
How relevant is the actual understanding of (large) neural networks and machine learning to building applications on top of them?
In a naive view, one could assume that an AI model can be offered as an inference service in the form of a black box and therefore no detailed knowledge of the model itself is necessary. In reality, however, it is important to understand that an AI model is always based on correlation and not on causality.
An application based on AI must take this fact into account and, depending on the business criticality, offer the end user a corresponding level of transparency for the AI's decision and, in case of doubt, offer alternative paths - without AI.
Is building (= training) custom models a feasible option for many organizations? If we do decide to train our own model(s), how does that impact our architecture, processes, and team setup?
Training an AI model is time-consuming and expensive. Furthermore, a great deal of expertise is required. This is especially true for GenAI models, where training from scratch is not realistic for most companies. Whenever possible and reasonable, you should therefore start with a foundation model and simply finetune it in your own direction.
Regardless of this, it is generally true that sufficient expertise must be available for training a model. Expertise is also needed to determine during operation that the model's behavior no longer meets expectations (drift) and that the moment has come to re-train the model. This type of monitoring and follow-up action - including an MLOps pipeline for automatic training - should be an integral part of your own AI landscape.
“Energy Efficiency” is considered a standard goal of software architecture. (E.g. part of the iSAQB Foundation Curriculum for Software Architects) Does that play well with using GenAI models?
AI solutions in general and GenAI solutions in particular are extremely resource-intensive. Therefore, a GenAI architecture should always take this aspect into account from the beginning. Can a smaller model be used as an alternative? To what extent does multi-level caching help to avoid unnecessary inference? Can cloud-based resources be used in countries that rely heavily on renewable energy? These are just a few of the questions that need to be asked.
The first and most important step towards the right direction is to create awareness of this topic in your own project environment and not to simply ignore it.
Sponsoring a conference is a terrific way to support and connect with our global community of software architects.