Managed GenAI in der Cloud: AWS Bedrock vs. Azure AI Studio
Einleitung
Seit der Veröffentlichung von ChatGPT durch OpenAI zeigt sich immer deutlicher, dass generative KI viele Geschäftsprozesse grundlegend verändern wird (1, 2). Täglich werden neue Modelle veröffentlicht, neue KI SaaS Firmen gegründet und neue theoretische Ansätze erprobt. Ein sich so rasant veränderndes Umfeld entspricht aber nicht unbedingt den Anforderungen der Geschäftswelt, wo es um effiziente und praktische Anwendungen geht. Um diesen Herausforderungen zu begegnen, bieten die führenden Cloud-Anbieter mittlerweile Plattformen an, die die Entwicklung von KI-gestützten Anwendungen vereinfachen und somit näher an die Bedürfnisse von Unternehmen heranführen. In diesem Blogbeitrag möchten wir zwei von diesen Managed GenAI Plattformen, AWS Bedrock und Azure AI Studio, vorstellen und vergleichen, um Ihnen einen Überblick über diese neue Entwicklung an der Schnittstelle zwischen KI und der Cloud zu geben.
Überblick über die Services
Aber was genau kann man sich unter so einer Plattform vorstellen? Im Kern handelt es sich um eine Sammlung von Basismodellen sowie anderen Technologien wie Wissensdatenbanken und Funktionen um KI-Anwendungen zu entwickeln, testen, und einsetzen zu können. Da die Services in der Cloud beheimatet sind, bieten sie eine skalierbare Infrastruktur und können über die Konsolen der jeweiligen Cloud-Anbieter oder deren Software-Development-Kits (SDKs) benutzt werden. Um zum Beispiel einen Chatbot zu bauen, könnte man mit ein paar Klicks ein Basismodell auswählen, eine Anweisung für eine spezifische Aufgabe, ein sogenanntes System-Prompt, schreiben, und den Bot direkt in einem Playground testen. Sobald die Ergebnisse zufriedenstellend sind, könnte dieser Bot mittels eines API-Endpunktes in eine App integriert werden.
Die häufigsten Anwendungsfälle für diese Managed GenAI Plattformen sind im Moment KI-Agenten (häufig auf der Basis von Retrieval-Augmented Generation (RAG) (3)), die in vielen Bereichen leistungsfähiger als “normale” Chatbots wie ChatGPT sind, da sie Zugriff auf relevante Hintergrundinformationen haben, oder spezifische Funktionen ausführen können. Im Folgenden werden wir die Bestandteile eines solchen KI-Agenten, die Basismodelle, Wissensdatenbanken, Funktionen und Guardrails in AWS Bedrock und Azure AI Studio vorstellen und vergleichen. Danach werden wir anhand von zwei Beispielarchitekturen zeigen, wie ein KI-Agent in der Praxis funktionieren würde.
Basismodelle (Foundation Models)
Basismodelle oder Foundation Models bilden die Grundlage der meisten modernen Anwendungen von generativer KI. Diese Modelle dienen einerseits als Schnittstelle zwischen Mensch und Maschine, die es uns erlaubt in menschlicher Sprache Anweisungen an das Programm zu senden. Andererseits fungieren sie auch als Gehirn, das die Koordination mit Werkzeugen wie Wissensdatenbanken und Funktionen plant und umsetzt, und am Ende eine kohärente Antwort, wieder in menschlicher Sprache, generiert. Wie Sie in der folgenden Grafik sehen, bieten beide Anbieter eine große Auswahl an Closed- und Open Source Modellen an. Hervorzuheben ist, dass beide Cloud Unternehmen eng mit einem führenden KI-Labor zusammenarbeiten und deren Modelle nahezu exklusiv anbieten. Bei Azure sind das die GPT-Modelle von OpenAI und bei AWS die Claude Modelle von AnthropicAI. Zusätzlich haben beide auch proprietäre Modelle entwickelt (AWS Titan und Microsoft Phi) und bieten auch weitere Modelle der Llama Reihe von Meta sowie Modelle von CohereAI an. Insgesamt gibt es bei beiden Anbietern eine große Auswahl an sprachbasierten, multi-modalen oder text-to-image Modellen in unterschiedlichen Größen, wobei Azure im Moment deutlich mehr Modelle unterstützt. Die Modellverfügbarkeit ist auch stark von der Region abhängig, und Modelle werden meistens zuerst in den USA angeboten, bevor sie in Europa genutzt werden können.
Die Kostenstruktur unterscheidet sich in Azure AI Studio von Modell zu Modell. Die meisten großen Modelle werden nutzungsbasiert abgerechnet, also bezahlt man einen bestimmten Betrag pro Token in der Ein- oder Ausgabe, wobei ein Wort, je nach Sprache, ungefähr einem bis zwei Tokens entspricht (4). Einige Modelle können häufig auch auf eigenen virtuellen Maschinen bereitgestellt werden, was zwar eine bessere Kontrolle über das Modell ermöglicht, aber in den meisten Anwendungsfällen mit einer geringen Anzahl an Nutzern deutlich teurer ist. In AWS Bedrock werden große Modelle auch nutzungsbasiert abgerechnet, es gibt allerdings die Möglichkeit über von vornherein provisionierte Kapazität Geld zu sparen. Zusätzlich können eigene Modelle importiert und auf eigenen Instanzen ausgeführt werden, was allerdings etwas aufwändiger und häufig teurer ist. Zusammenfassend sehen wir bei den Basismodellen Azure AI Studio vor allem durch die größere Modellverfügbarkeit im Vorteil. Allerdings verändert sich der Markt der Basismodelle sehr schnell. Vor allem der Einfluss von leistungsstarken Open-Source Modellen bleibt abzuwarten.
Wissensdatenbanken (Knowledge Bases)
Ein weiterer wesentlicher Bestandteil von KI-Agenten und RAG-Systemen sind Wissensdatenbanken, die genutzt werden, um dem Basismodell relevante Hintergrundinformationen zur Beantwortung einer Frage zu geben. Dies geschieht normalerweise durch eine Reihe an Schritten, bei denen die textbasierten Hintergrundinformationen zuerst in Abschnitte (Chunks) geteilt werden und diese dann mit Hilfe eines Embedding Modells in Vektoren umgewandelt und in einer Vektordatenbank gespeichert werden. Diese Datenbanken sind so konzipiert, dass auf Grundlage einer Suchanfrage vom Basismodell, die semantisch relevantesten Vektoren und somit Chunks abgerufen werden können. Diese Kontextinformationen ermöglichen es dem Basismodell sich bei der Beantwortung einer Frage auf spezifisches Wissen aus der Wissensdatenbank zu beziehen. Die wichtigsten Komponenten von Wissensdatenbanken in den Managed GenAI Plattformen sind somit genutzten Embedding Modelle und Vektordatenbanken.
AWS Bedrock bietet in Europa derzeit zwei verschiedene Embedding-Modelle an: AWS Titan Embeddings und Cohere Text Embed. Azure hingegen bietet Embedding-Modelle der Ada-Serie (002 und 003) von OpenAI an. Alle beschriebenen Modelle werden nutzungsbasiert abgerechnet, allerdings können auch die Textextraktion zum Beispiel aus Tabellen oder PowerPoint Folien oder das Chunking eigene Kosten verursachen. Insgesamt sind alle zur Verfügung stehenden Modelle leistungsfähig und vielseitig, jedoch repräsentieren sie nicht die gesamte Bandbreite der weltweit verwendeten Embedding-Modelle. Es bleibt abzuwarten, wann alternative Modelle, die zum Beispiel in verschiedenen Sprachen oder multimodal trainiert wurden, eingeführt werden.
Die Vektordatenbankangebote der beiden Plattformen unterscheiden sich primär in der Art der Abrechnung. AWS und Azure bieten standardmäßig ihre Serverless Datenbanken an (AWS OpenSearch Serverless und Azure AI Search). Diese sind zwar einfach aufzusetzen, werden aber stündlich abgerechnet, und können so schnell zu großen Kostentreibern werden. Alternativ können eigene Datenbankservices wie AWS Aurora oder Azure Cosmos DB genutzt werden, die zum Teil Kostenersparnisse ermöglichen, allerdings etwas komplizierter in der Konfiguration sind. AWS Bedrock ermöglicht im Gegensatz zu Azure AI Studio zusätzlich die Anbindung von Drittanbieter-Vektordatenbanken wie Pinecone und Redis. Diese sind häufig die günstigste Variante, da sie pro Anfrage (Einträge schreiben oder auslesen) abgerechnet werden. In beiden Plattformen können die Vektordatenbanken in der Abfrage mit Filtern versehen werden, um nur bestimmte Dokumente in Betracht zu ziehen, um zum Beispiel Zugriffskontrolle auf Dokumentenebene oder themenspezifische Abfragen zu ermöglichen. Unserer Meinung nach bietet AWS Bedrock vielseitigere Lösungen als Azure AI Studio im Bereich der Wissensdatenbanken an.
Funktionen (Actions)
Funktionsaufrufe, auch als Actions bekannt, sind in agentischen KI-Anwendungen von großer Bedeutung. Sie ermöglichen es dem Basismodell, über die reine Textgenerierung hinauszugehen und externe APIs oder vordefinierte Funktionen aufzurufen. Dies ist entscheidend, um komplexe Aufgaben zu bewältigen, wie zum Beispiel eine SQL-Datenbank zu befragen oder eine E-Mail zu senden. Funktionsaufrufe bieten somit die Möglichkeit, die Fähigkeiten des Models durch konkrete Aktionen zu erweitern. Auch die Interaktion mit einer Wissensdatenbank, wie im vorherigen Abschnitt beschrieben, ist genau genommen ein Beispiel für einen Funktionsaufruf, der standardmäßig in AWS Bedrock und Azure AI Studio integriert ist. In diesem Abschnitt beschäftigen wir uns damit, wie generische Funktionsaufrufe in den beiden KI-Plattformen implementiert werden können.
In AWS Bedrock werden nutzerdefinierte Funktionen über sogenannte Action Groups aufgerufen. In diesen Gruppen stellen wir dem Agenten Beschreibungen von bis zu zehn Funktionen in menschlicher Sprache bereit, zusammen mit den benötigten Eingabevariablen. Wenn der Agent eine Anfrage bearbeiten soll, nutzt das Basismodell während der Planung diese Definitionen, um zu entscheiden, ob eine bestimmte Funktion ausgeführt werden soll. Neben der Beschreibung muss die Funktion selbst explizit definiert werden. Dies erfolgt in AWS-Lambda, entweder mithilfe von Funktionsvorlagen, die bereits die richtigen Berechtigungen und die Logik zur Verarbeitung der Eingaben von AWS Bedrock enthalten, oder durch vollständig nutzerverwaltete Lambda-Funktionen. Diese Funktionen lassen sich direkt im AWS Bedrock Playground testen, was eine nahtlose Integration und schnelle Iterationen ermöglicht.
In Azure AI Studio können Funktionen unter dem Assistants Tab konfiguriert werden. Dort gibt es die Möglichkeit Funktionsschemas als JSON zu definieren. Diese Schemas ermöglichen es dem Agenten anzugeben, wann eine bestimmte Funktion ausgeführt werden soll und welche Eingabevariablen genutzt werden sollen. Allerdings gibt es noch keine native Integration mit Azure Functions, die es ermöglichen würde, Funktionen direkt im Playground auszuführen. Stattdessen müssen die Ergebnisse der Funktionsaufrufe manuell eingefügt werden, um die finale Antwort zu generieren. Da Azure AI Studio Assistants sich noch im Public Preview befindet, erwarten wir in Zukunft eine einfachere Integration. Ein Vorteil von Azure AI Studio ist die Verfügbarkeit mehrerer häufig verwendeter Tools, die dem Agenten leicht zur Verfügung gestellt werden können, wie z.B. ein Code-Interpreter. Dieser ermöglicht es dem Agenten, Code zu schreiben und auszuführen, um bei der Beantwortung von Anfragen, die zum Beispiel einfache Berechnungen erfordern, zu helfen. Insgesamt sehen wir im Bereich von Funktionsaufrufen AWS vorne, da die Integration von Funktionen nahtlos erfolgt und diese direkt im Playground getestet werden können.
Inhaltsfilter (Guardrails)
Inhaltsfilter sind entscheidend, um generative KI-Anwendungen sicher und verantwortungsvoll zu gestalten, indem sie die Generierung oder Verarbeitung unangemessener Inhalte verhindern und sensible Informationen schützen. Zusätzlich werden sie genutzt, um Chatbots vor böswilligen Interaktionen, wie zum Beispiel Prompt Injection Angriffen, bei denen vordefiniertes Verhalten durch manipulative Eingaben umgangen werden soll, zu schützen.
In AWS Bedrock bietet der Guardrails Tab umfassende Sicherheitsmechanismen, die über die integrierten Fähigkeiten vieler Basismodelle hinausgehen. Sie umfassen Inhaltsfilter, welche Inhalte wie Gewalt, Hassrede, sexuelle Inhalte und Beleidigungen blockieren. Themenfilter verhindern die Verarbeitung von Inhalten zu unerwünschten Themen. Dies kann zum Beispiel nützlich sein, um den Gebrauch eines Customer Service Bots für irrelevante Themengebiete zu verhindern. Wortfilter blockieren bestimmte Wörter oder Ausdrücke, einschließlich Profanität und benutzerdefinierter Begriffe. Zusätzlich gibt es Filter, die persönlich identifizierbare Informationen (PII) und andere sensible Daten maskieren oder blockieren. Auch der Schutz vor Prompt-Angriffen ist in Bedrock integriert, um sogenannte Prompt Injection und Jailbreak-Angriffe zu verhindern. Ein sehr neues Feature in AWS Bedrock ist schließlich auch ein Halluzinations-Safeguard, der verhindert, dass das Basismodell falsche Informationen liefert.
Azure AI Studio bietet ebenfalls leistungsfähige Inhaltsfilter an. Diese umfassen thematische Filter, die ähnlich wie bei AWS schädliche Inhalte blockieren, sowie eine Blacklist, die es ermöglicht, eine Liste von Wörtern oder regulären Ausdrücken zu definieren, die blockiert werden sollen. Der Schutz vor Prompt-Angriffen verhindert auch hier Manipulationsversuche. Content Filter in Azure AI Studio befinden sich derzeit noch im Public Preview, so dass weitere Verbesserungen und einfachere Integrationen in naher Zukunft erwartet werden können.
Beide Cloud Anbieter stellen fortschrittliche Sicherheitsmechanismen zu Verfügung, die weit über die Fähigkeiten von einzelnen Basismodellen hinausgehen. Allerdings sehen wir einen Vorteil für AWS Bedrock, wenn es um detaillierte Konfigurationsmöglichkeiten und umfassendere Sicherheitsmechanismen geht, die speziell für den Schutz von PII und die Verhinderung von Halluzinationen entwickelt wurden.
Orchestrierung und Evaluierung
Jetzt, da wir die Kernbestandteile von KI-Anwendungen mit Agenten verstanden haben, können wir auf den eigentlichen Mechanismus der Antwortgenerierung von Agenten, die Orchestrierung, eingehen. Hierbei geht es darum, zu verstehen, wie ein Agent von einer Nutzerfrage zu einer Antwort gelangt. Dies ist zwar primär für Agenten relevant, aber beide Cloud-Unternehmen bieten auch Features an, um mehrschrittige KI-Workflows aufzubauen, die nach ähnlichen Prinzipien funktionieren.
AWS integriert die Orchestrierung standardmäßig in ihr Agents-Feature. Jeder Agent verfügt über einen Orchestrierungsfluss, der in vier Schritte unterteilt werden kann: Zunächst wird geprüft, ob die Frage im Einklang mit dem System-Prompt steht und beantwortet werden kann. Anschließend wird geplant, welche der verfügbaren Werkzeuge (Wissensdatenbanken und Funktionen) in welcher Reihenfolge verwendet werden sollen. In der Durchführung werden die verschiedenen Werkzeuge genutzt und Folgefragen formuliert. Abschließend erfolgt die Antwortgenerierung, bei der die Ergebnisse zu einer benutzerfreundlichen Antwort zusammengefasst werden. Die verwendeten Prompts sind vordefiniert, können aber auch im Advanced Prompts Tab auf den individuellen Anwendungsfall angepasst werden. Die Antworten auf die einzelnen Prompts können im Playground und bei API-Aufrufen inspiziert werden um besser Nachzuvollziehen, wie der Agent zu einer Antwort gelangt. In Azure Ai Studio Assistants existiert ein ähnlicher Arbeitsablauf an Prompts, allerdings haben wir keine Möglichkeit diese Prompts auszulesen oder anzupassen.
Zusätzlich können mit AWS Prompt Flows und Azure Prompt Flows Workflows erstellt werden, die zum Beispiel spezifische Prompts an ein Basismodell mit nutzerdefinierter Logik in Python oder regulären Ausdrücken kombinieren. Diese Features können zum Beispiel für Klassifizierungsanwendungen oder kompliziertere Abläufe benutzt werden.
Insgesamt sind die Lösungen in Bezug auf Orchestrierung sehr fortschrittlich, wobei AWS mit der Anpassbarkeit der Orchestrierungsprompts in Agenten mehr Anpassungsmöglichkeiten bietet. In puncto Evaluierung haben unserer Meinung nach beide Unternehmen Verbesserungsspielraum, aber es ist sicherlich nur eine Frage der Zeit, bis weitere Evaluierungsmechanismen zur Verfügung stehen werden.
Architektur
Jetzt sind wir voll ausgestattet, um die Beispielarchitektur eines KI-Agenten mit AWS Bedrock und Azure AI Studio zu verstehen. Beginnen wir mit den Daten, die der Wissensdatenbank zur Verfügung gestellt werden. Bei AWS liegen diese in einem separaten S3-Bucket und bei Azure in einem Storage Account. Es gibt noch speziellere Anschlussmöglichkeiten für Quellen wie zum Beispiel SharePoint-Seiten, aber ein Bucket/Storage Account ist die generischste Lösung, an die wir mit Pipelines eine Reihe an unterschiedlichen Quellen anschließen können. Bei AWS werden diese Daten mittels einer Knowledge Base eingezogen, gechunkt und Embeddings zum Beispiel mit Hilfe des Cohere Embed Modells generiert und in einer Drittanbieter-Vektordatenbank, in unserem Fall Pinecone, gespeichert. Die benötigten Services hierfür (Embedding Model und Vektordatenbank) können direkt aus der AWS Bedrock Konsole aufgesetzt werden. Bei Azure hingegen arbeiten Instanzen von Document Intelligence, Azure Open AI Embedding Modellen und AI Search zusammen, um den Datenfluss vom Chunking, über das Embedding, zur Speicherung in einer Vektordatenbank zu gewährleisten. Wir können auch Funktionen definieren (Action Groups in AWS Bedrock Agents und Tools in Azure AI Studio Assistants) und hinterlegen zusätzlich zum Schema bei AWS auch eine Lambda-Funktion. Als Orchestrierungs- und Antwortmodell können wir unterschiedliche Modelle bei AWS und Azure aufsetzen, um die Kernfunktion des Agenten zu übernehmen. Wenn Nutzer nun Fragen an den Bot stellen, werden in beiden Fällen die Fragen und die Antworten des Agenten durch die Guardrails geleitet, um Sicherheit zu gewährleisten. Wir empfinden es als einfacher, komplette Lösungen in AWS Bedrock aufzusetzen, da alle Services, bis auf den S3-Bucket, innerhalb Bedrocks konfiguriert werden können. In Azure hingegen müssen Services wie die Document Intelligence Instanz und der Search Service separat aufgesetzt und nach Azure AI Studio importiert werden.
Fazit
Sowohl AWS Bedrock als auch Azure AI Studio sind leistungsfähige Plattformen, die es ermöglichen, KI-gestützte Anwendungen und speziell Agenten schnell und systematisch zu entwickeln und skalierbar einzusetzen. Azure bietet einen hervorragenden Zugang zu Basismodellen mit ausgefeilten Guardrails und integriert sich nahtlos in die Azure-Cloud und andere Microsoft-Umgebungen. AWS Bedrock hingegen zeichnet sich durch eine besser entwickelte Integration von Funktionen und Wissensdatenbanken für Agenten aus und bietet individuell konfigurierbare Orchestrierung und fortschrittliche Guardrails. Insgesamt sind beide Services auf dem neuesten Stand der Technik und eignen sich hervorragend zur Entwicklung von Enterprise-KI-Produkten. Beide Plattformen entwickeln sich schnell weiter, was eine genaue Beobachtung beider Anbieter weiterhin spannend macht.
Quellen
[1] https://www.mckinsey.com/capabilities/quantumblack/our-insights/generative-ai-is-here-how-tools-like-chatgpt-could-change-your-business
[2] https://www.kellton.com/kellton-tech-blog/redefining-the-game-generative-ai-and-chatgpt-unlock-new-possibilities-across-industries
[3] https://cloud.google.com/use-cases/retrieval-augmented-generation
[4] https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them