Durch die Kombination der Fähigkeiten von Azure und OpenAI können Entwickler leistungsstarke KI-Anwendungen erstellen. Nach einer kurzen Einführung in diesem Artikel wollen wir im Folgeteil primär demonstrieren, wie Entwickler und Entwicklerinnen ihre Modelle per REST-API und über die unterstützten SDKs abfragen.
Eine klassische Textklassifizierung im Prompt.
(Bild: Drilling / Microsoft)
Microsoft hat Azure OpenAI (AOAI) initial nur mit eingeschränktem Zugriff veröffentlicht, um eine verantwortungsvolle Nutzung des Diensts zu gewährleisten. Interessierte müssen daher für den gewünschten Tenant und die gewünschten Subscriptions explizit einen Azure-OpenAI-Zugriff beantragen. Dieser muss von Microsoft erst genehmigt werden, bevor Developer ihre erste AOAI-Ressource erstellen können. Dies dauert erfahrungsgemäß allerdings weniger als 24 Stunden.
OpenAI-Ressource
Wurde der OpenAI-Zugriff genehmigt, ist es möglich, im Azure-Portal nach „Azure OpenAI“ zu suchen. User landen dann im Portal „Azure AI services“ im Menüabschnitt „Azure AI servivcs bei „Azure OpenAI“ und können dann mit einem Klick auf „Azure OpenAI erstellen“ einen solchen erstellen. Es folgen die üblichen Angaben wie das Azure-Abonnement (sofern für OpenAI aktiviert), Ressourcengruppe, Region und Name.
Das Erstellen einer Azure-OpenAI-Resource.
(Bild: Drilling / Microsoft)
Außerdem gilt es, einen passenden Tarif wie z. B. „Standard S0“ zu wählen. Tarifinformationen zum OpenAI-Service finden sich auf der Preisseite. Bei den Sprachmodellen ist GPT-3.5-Turbo erwartungsgemäß günstiger als GPT-4. Die Abrechnung erfolgt über die Azure-Subscription. Außerdem läuft Azure Open AI im Gegensatz zum OpenAI-Service in einem sicheren Kontext. Informationen zum Umgang von Azure OpenAI mit Daten, sowie zu Datenschutz und Sicherheit, liefert die Microsoft-Learn-Plattform.
Die Dienste und Möglichkeiten in Azure OpenAI.
(Bild: Drilling / Microsoft)
Je nach Bedarf wird im Abschnitt „Netzwerk“ ausgewählt, ob ein Zugriff auf die OpenAI-Ressource z. B. aus dem Internet möglich sein soll. Für dieses Beitrag erlauben wir den öffentlichen Zugriff und erstellen die Ressource. Alternativ ließe sich eine AOAI-Ressource auch mit Hilfe der Azure-CLI erstellen. Nach der Erstellung navigieren wir zur Übersichtsseite der OpenAI-Ressource.
Wurde die Ressource erstellt, stehen für die betreffende App bereits ein Endpunkt sowie ein zugehöriger Schlüssel zur Verfügung. Wir entscheiden uns nun exemplarisch für das Bereitstellen eines Modells im Portal. Es gibt verschiedene Modellfamilien für unterschiedliche Aufgaben und jede Familie verfügt über unterschiedliche Funktionen für das jeweilige Modell. Derzeit gibt es folgende drei Standard-Familien:
Text oder Generative Pre-trained Transformer (GPT): Das sind die klassischen Modelle für das Generieren und/oder Verstehen natürliche Sprache und/oder Code. Diese GPT-Modelle eignen sich am besten für allgemeine Aufgaben, Unterhaltungen und verschiedene Chat-Formate.
Code: Die Code-Modelle setzen zwar auf den GPT-Modellen auf, werden aber mit Millionen von Codezeilen trainiert. Diese Modelle sind in der Lage, Code zu generieren und zu verstehen. Das umfasst auch die Interpretation von Kommentaren oder natürlicher Sprache.
Einbettungen: Diese Modelle sind in der Lage, Einbettungen zu verstehen und zu nutzen, bei denen es sich um ein spezielles Format von Daten handelt, das von ML-Modellen und -Algorithmen genutzt werden kann.
Übrigens wird die Modellfamilie und -funktion immer im Namen des Basismodells angegeben, etwa bei „text-davinci-003.“ Weitere Details zu den Modellen, Fähigkeitsgraden und Namenskonventionen lassen sich ebenfalls der Azure OpenAI finden Sie ebenfalls in der AOIA-Dokumentation.
Das vorrangige Ziel für diesen Beitrag ist das programmatische Abfragen bzw. Interagieren mit einem Modell via REST und SDKs. Deshalb begnügen wir uns hier mir der Bereitstellung eines Standard-Modells im Azure OpenAI Studio.
Beim Bereitstellen eines Modells erhalten wir wie erwähnt einen Ressourcen-Endpunkt und einen Schlüssel, um festzulegen, welches Bereitstellungsmodell die Anforderung adressiert. So können sie verschiedene Modelle innerhalb derselben Ressource bereitstellen und abhängig vom Use Case Anforderungen an das entsprechende Modell senden.
Ein neues Deployment im Azure OpenAI-Studio erstellen.
(Bild: Drilling / Microsoft)
Man könnte also beispielsweise auf der Übersichtsseite von Azure OpenAI bei „Explore and deploy“ auf den blauen Button „Go to Azure OpenAI Studio“ klicken. Alternativ könnte man auch im Hauptmenü im Abschnitt „Ressourcenverwaltung“ zu „Bereitstellungen verwalten“ navigieren. Dadurch wird im Azure OpenAI Studio der Abschnitt „Verwaltung“ (unterhalb des „Playground“ bei „Bereitstellungen“) aufgerufen. Hier kann man mit „+Neue Bereitstellung erstellen“ ein neues Deployment veranlassen.
Prompt Engineering
Ein neues Modell bereitstellen.
(Bild: Drilling / Microsoft)
Beim Bereitstellen eines neuen Modells im AzureAI-Studio wählen wir zunächst ein Modell (was eine „Modellversion“ nach sich zieht – wobei „0301 (Standard) in unseren Standard-Tarif passt) und weisen der Bereitstellung einen Namen zu. Das Deployment taucht anschließend in der Liste der bestehenden Deployments auf:
Alle Deployments in der Bereitstellungsliste.
(Bild: Drilling / Microsoft)
Es wirkt sich übrigens erheblich auf die Reaktion des KI-Modells aus, wie genau eine Eingabeaufforderung verfasst wurde. Eine simple Anfrage wie „Was ist ChatGPT 3.5 Turbo“ führt in der Regel zu einer ähnlich allgemeinen Antwort, wie beim Abfragen einer beliebigen Suchmaschine. Enthält die Abfrage (Prompt) hingegen weitere Details, liefert ChatGPT auch eine spezifischere Antwort.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Eine klassische Textklassifizierung im Prompt.
(Bild: Drilling / Microsoft)
Dies können wir im Chat Playground ausprobieren. Wir wäre es mit einer Text-Klassifizierung? In der Abbildung haben wir dem Chat-Modell eine Schlagzeile mitgegeben, die den im Verlauf der Microsoft Ignite angekündigten Wechsel des OpenAI-Chefs Sam Altman zu Microsoft betrifft, der wie wir wissen inzwischen bereits widerrufen wurde. Wir baten das Modell um eine Einschätzung, ob die Nachricht der Kategorie Wirtschaft, Politik, Technik usw. zuzuordnen ist.
Modell-Parameter
Ähnliche Szenarien finden sich im Playground von Azure OpenAI Studio in der Dropdownliste „Beispiele“. Ferner ist es möglich, im Abschnitt Konfiguration durch Anpassen von „Parametern“ die Art und Weise zu beeinflussen, wie das Chat-Modell reagiert. Die Wichtigsten sind:
Der Parameter „temperature“ steuert die „Zufälligkeit“. Durch das Verringen der Temperatur erzeugt das Modell mehr wiederholte und deterministische Antworten, während ein Erhöhen der Temperatur eher unerwartete bzw. kreativere Antworten generiert. Allerdings dürfe die Parameter „Temperatur“ und „Top P“ (s. u) keinesfalls gleichzeitig verändert werden.
Der Parameter „max_tokens (Maximale Token)“ legt einen Grenzwert für die Anzahl der Token pro Modell-Antwort fest. Die API erlaubt maximal 4.000 Token, die zwischen der Eingabeaufforderung (einschließlich Systemmeldung, Beispielen, Nachrichtenverlauf und Benutzerabfrage) und der Antwort des Modells ausgetauscht werden. Bei einem gängigen englischen Text besteht ein Token im Durchschnitt aus etwa vier Zeichen.
Mit dem Parameter „stop (Sequenzen beenden)“ wird festgelegt, dass die Antworten an einer gewünschten Stelle enden, beispielsweise am Ende eines Satzes oder einer Liste. Man kann bis zu vier Sequenzen angeben, bei denen das Modell das Generieren weiterer Token in einer Antwort beendet.
„top_p (Höchste Wahrscheinlichkeiten)“ steuert ähnlich wie der Parameter „Temperatur“ die Zufälligkeit, allerdings kommt hierbei ein anderes Verfahren zum Einsatz. Ein Absenken von „Top P“ schränkt die Token-Auswahl des Modells auf eher wahrscheinliche Token ein. Ein Erhöhen von „Top P“ erlaubt dem Modell, aus Token mit hoher und niedriger Wahrscheinlichkeit auszuwählen.
Der Parameter „frequency_penalty (Häufigkeitsstrafe)“ verringert die Wahrscheinlichkeit, dass ein Token proportional wiederholt wird, in Abhängigkeit davon, wie oft es bislang im Text vorkam. Damit verkleinert sich die Wahrscheinlichkeit, dass der exakt gleiche Text in einer Antwort wiederholt vorkommt.
Die „presence_penalty (Anwesenheitsstrafe)“ dagegen verkleinert die Wahrscheinlichkeit, dass ein Token nochmal ausgespielt wird, welches bereits im Text vorkam. Damit erhöht sich die Wahrscheinlichkeit, dass das Modell neue Themen in seine Antwort einführt.
Der Parameter „Text vor der Antwort“ fügt Text nach der Eingabe des Benutzers und vor der Antwort des Modells ein. Das Modell kann sich damit auf eine Antwort vorbereiten.
Mit dem Parameter „Text nach der Antwort“ fügen sie Text nach der generierten Antwort des Modells ein. Das regt weitere Benutzereingaben an, wenn z. B. eine Unterhaltung modelliert werden soll.
Im zweiten Teil dieser Reihe schauen wir uns an, wie die Integration mit REST-APIs und SDKs funktioniert.