Kurs
Azure OpenAI: Ein Schritt-für-Schritt-Leitfaden für den Einstieg
Azure OpenAI ermöglicht den Zugriff auf OpenAI-Modelle wie GPT-4 über die Azure-Cloud-Services-Plattform.
In diesem Tutorial stelle ich Azure OpenAI vor und zeige, wie du damit loslegen kannst. Wir lernen, wie man ein Konto einrichtet, ein KI-Modell einsetzt und verschiedene einfache Aufgaben mit der API durchführt.
Was ist Azure OpenAI?
Azure bietet eine ganze Reihe von Webdiensten, von SQL-Datenbanken bis hin zu Data Warehousing- und Analyselösungen wie Azure Synapse. Viele Nutzer dieser Dienste müssen die Modelle von OpenAI in ihre Arbeitsabläufe integrieren.
Die traditionelle Methode, um auf die Modelle von OpenAI zuzugreifen, ist die OpenAI API. Azure OpenAI ist Microsofts Angebot der OpenAI-Modelle über die Azure-Plattform. Es ermöglicht Azure-Nutzern, die Dienste von OpenAI (Verarbeitung natürlicher Sprache, Codegenerierung, Bilderzeugung und vieles mehr) in ihre Azure-basierte Infrastruktur zu integrieren.
So müssen die Entwickler keine neue Webservice-Plattform erlernen und in ihre Arbeitsabläufe integrieren. Da sie auf der Azure-Plattform basiert, lässt sie sich leicht skalieren und bewältigt große Arbeitslasten. Entwickler und Unternehmen, die die Azure-Plattform nutzen, können die gleiche vertraute Oberfläche verwenden, um KI-basierte Dienste bereitzustellen, zu verwalten, zu überwachen und zu budgetieren. Auch die Verwaltung von Compliance- und Zahlungsabläufen wird dadurch erleichtert.
KI-Anwendungen entwickeln
Azure OpenAI einrichten
In diesem Abschnitt zeige ich dir, wie du Azure OpenAI einrichtest. Ich nehme an, du hast bereits Erfahrung mit Azure.
Beachte, dass sich Benutzeroberflächen häufig ändern. Daher können sich das Layout und der Text verschiedener Abschnitte und Titel in den Anleitungen und Screenshots im Laufe der Zeit oder von Region zu Region ändern.
Schritt 1: Ein Azure-Konto erstellen
Gehe auf die Azure OpenAI Homepageund wähle oben rechtsAnmelden. Melde dich mit deinem Microsoft-Konto an. Wenn du noch kein Microsoft-Konto hast, wähle auf der Anmeldeseite die Option zum Erstellen eines neuen Kontos und erstelle ein Microsoft-Konto.
Dann erstellst du ein Azure-Konto, indem du die folgenden Schritte befolgst:
- Melde dich mit deinem Microsoft-Konto im Azure-Portalan. Wähle die Option " Mit einer kostenlosen Azure-Testversion beginnen".
Das Microsoft Azure Portal.
- Auf der nächsten Seite wählst du die Option zum Erstellen eines Azure Gratis-Konto mit 200 $ Gratis-Guthaben zu erstellen.
Wähle einen Azure-Kontotyp.
- Fülle deine persönlichen Daten in das Formular ein.
Erstelle ein kostenloses Azure-Konto.
- Überprüfe deine Identität mit einer Kredit- oder Debitkarte. Beachte, dass eine vorübergehende Haltegebühr (in der Regel ein paar Cent oder der Gegenwert) von deinem Konto abgebucht werden kann.
Überprüfe dein Azure-Konto (Screenshot vom Autor)
- Nachdem du deine Zahlungsinformationen überprüft hast, wähle Go to Azure Portal. Es leitet dich zum Quickstart Center weiter.
- Beachte, dass die kostenlosen $200 Credits nicht für Azure OpenAI Services verwendet werden können. Auf Azure OpenAI-Modelle kann nur mit einem bezahlten Konto zugegriffen werden. Um dein Konto auf ein umlagefinanziertes Abonnement umzustellen, gehe zurück zum Azure-Portal und wähle Upgrade in der oberen Leiste .
Aktualisiere dein Azure-Konto.
- Fülle die Details auf der Upgrade-Seite aus und wähle Upgrade auf Bezahlung zum Mitnehmen.
Nach einem Upgrade auf ein kostenpflichtiges Konto kannst du auf OpenAI-Modelle zugreifen.
Schritt 2: Zugriff auf Azure OpenAI im Azure-Portal
- Gehe zurück zum Azure-Portal, das eine Vielzahl von Diensten anzeigt, z. B. KI-Dienste, virtuelle Maschinen, Speicherkonten und mehr.
Azure-Portal mit den verfügbaren Diensten.
- Wähle Azure AI Services und gehe zur Startseite für AI Services. Azure bietet verschiedene KI-basierte Dienste an, z. B. Gesichtserkennung, Anomalieerkennung, Sprache, Computer Vision, OpenAI und mehr.
Azure KI-Dienste.
- Im Azure OpenAI-Konto wählen Sie die Registerkarte Ansicht Option.
- Dies führt zur SeiteAzure OpenAI , die die Liste der OpenAI-Instanzen deines Kontos anzeigt. Wähle Azure OpenAI erstellen, um eine neue Instanz zu erstellen. Du kannst auch Erstellen auf der vorherigen Seite auswählen.
- Gib die Details unten ein:
- Unter Abonnementwählst du den Namen deines bezahlten Abonnements aus.
- Unter Ressourcengruppewählen Sie Neu erstellen:
- Gib einen Namen für die neue Ressourcengruppe ein.
Erstelle eine neue Azure OpenAI Instanz.
-
-
- Wähle unter Region die nächstgelegene Region aus.
- Unter Namegibst du einen eindeutigen Namen ein.
- Unter der Ebene der Preisgestaltungwählst du Standard S0.
- Wähle Weiter, um fortzufahren.
-
- Wähle im Abschnitt " Netzwerk" die Option "Alle Netzwerke, einschließlich des Internets, können auf diese Ressource zugreifen." Fahre dann mit dem nächsten Schritt fort.
- Im AbschnittTags gibst du Name-Wert-Paare ein, um diese Instanz zu kategorisieren. Das hilft bei der konsolidierten Abrechnung. Dieser Schritt ist optional.
- Im nächsten Abschnitt wählst du Überprüfen + Absenden, überprüfst die Werte und wählst Erstellen. Dadurch wird eine neue OpenAI-Instanz eingerichtet.
- Nach einer kurzen Weile erscheint die Meldung "Your deployment is complete." Wähle auf dieser Seite Gehe zur Ressource.
- Auf der Ressourcenseite wählst du den Namen der Ressource unter dem Ressourcen Registerkarte.
Schritt 3: Richte den API-Zugang ein
Die Ressourcenseite zeigt die Details der Instanz an.
Die RegisterkarteDevelop zeigt die API-Schlüssel und API-Endpunkt-URLs für diese Instanz. Die Schlüssel wurden automatisch für dich erstellt.
- Kopiere die Schlüssel und den Endpunkt in eine Textdatei.
Du bekommst zwei API-Schlüssel. So kannst du den zweiten Schlüssel verwenden, falls der erste kompromittiert wird. Du kannst auch den zweiten Schlüssel benutzen, während du den ersten regenerierst. So kannst du die Schlüssel in regelmäßigen Abständen austauschen, ohne dass es zu Ausfallzeiten kommt.
Azure OpenAI Instanz API Schlüssel
- Im Monitor überprüfst du die Nutzungsmetriken dieser Instanz.
- In der Starten wähle die Registerkarte Azure AI Foundry erkunden Portal um den KI-Spielplatz auf einer neuen Seite zu öffnen.
Azure OpenAI Chat Spielplatz.
- Wählen Sie den Chat Spielplatz aus dem linken Menü aus.
- Unter Einsatzwählen Sie Neue Dep. erstellen.
- Wähle Aus Basismodellen im Pop-up-Fenster für die neue Bereitstellung
- Daraufhin erscheint ein Popup, in dem du das Modell auswählen kannst.
- Gib in der Suchleiste "gpt-3" ein.
- Wähle gpt-35-turbo aus der Liste aus . Dies ist ein wirtschaftliches Modell, das für Chat-Abschlüsse optimiert ist. Wenn du eine funktionierende Konfiguration hast, kannst du bei Bedarf auf ein fortschrittlicheres (und teureres) Modell umsteigen.
- Wähle Bestätige.
- Im Modell bereitstellen Popup, wähle Anpassen.
- Reduziere die Token pro Minute Rate Limit auf einen niedrigen Wert (zum Beispiel 12 Anfragen pro Minute) für manuelle Tests. Erhöhe diesen Wert später, wenn du das Modell in Produktion gibst.
- Deaktiviere dynamische Quoten. Du brauchst sie erst, wenn der Einsatz stark frequentiert wird.
- Wähle Einsetzen.
Setze ein neues Modell auf dem Chat-Spielplatz ein.
Das war's! Im nächsten Abschnitt werden wir sehen, wie wir auf diese Bereitstellung des OpenAI gpt-35-turbo
Modells zugreifen können.
API-Schlüssel neu generieren
Es ist ratsam, die API-Zugangsschlüssel regelmäßig zu erneuern. So wird sichergestellt, dass das Konto nicht kompromittiert wird, wenn alte Schlüssel versehentlich weitergegeben werden. Die folgenden Schritte beschreiben, wie du Schlüssel neu generieren kannst:
- Wähle unter Ressourcenverwaltung im linken Menü Schlüssel und Endpunkt.
- Erstelle jeden Schlüssel einzeln neu.
Azure OpenAI Instanz API Schlüssel.
Azure OpenAI in Anwendungen verwenden
Nachdem wir Azure OpenAI eingerichtet und ein Modell bereitgestellt haben, sehen wir, wie wir programmatisch darauf zugreifen können.
Schritt 1: Einrichten deiner Entwicklungsumgebung
Ich zeige dir, wie du dich mit Python mit Azure OpenAI verbinden kannst. Installiere die benötigten Bibliotheken:
$ pip install openai
Wenn du ein Notebook verwendest, führe den folgenden Befehl aus. Hinweis: Ich verwende ein DataLab-Notebook.
!pip install openai
Importiere die benötigten Pakete in der Python-Shell oder im Notebook:
import os
from openai import AzureOpenAI
Das Modul AzureOpenAI
ermöglicht den Zugriff auf OpenAI-Dienste in Azure. Dies unterscheidet sich von dem OpenAI
Modul, das für den Zugriff auf die eigenständige OpenAI API verwendet wird .
Bevor du Azure OpenAI nutzt, musst du den API-Schlüssel und den Endpunkt in deiner Umgebung festlegen. Im vorherigen Abschnitt wurde gezeigt, wie man diese Werte findet. Im Prinzip kannst du diese in der Programmierumgebung einstellen, aber ich empfehle, das nicht zu tun. Gib niemals API-Schlüssel im Programm bekannt.
API-Schlüssel über das Terminal festlegen
Um Python lokal auszuführen, setzt du die Umgebungsvariable in der Shell-Konfigurationsdatei. Ich zeige dir, wie du es für die Bash-Shell einrichtest.
- Bearbeite die Datei
.bashrc
in einem Texteditor . - Füge am Ende der Datei diese beiden Zeilen hinzu:
export AZURE_OPENAI_API_KEY=MY_API_KEY'
export AZURE_OPENAI_ENDPOINT=MY_ENDPOINT'
- Speichere und schließe die Datei.
- Lade die Änderungen im Terminal mit dem Befehl
source ~/.bashrc
neu. - Bei anderen Schalen, wie
sh
oderzsh
, kann der Prozess etwas anders aussehen . - Öffne die Python-Shell in der gleichen Terminalsitzung (oder öffne sie erneut).
Importiere den API-Schlüssel und die Endpunktwerte in das Python-Terminal:
azure_openai_api_key = os.getenv["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.getenv["AZURE_OPENAI_ENDPOINT"]
API-Schlüssel mithilfe von Online-Notebooks festlegen (DataLab)
DataLab ermöglicht es dir, direkt Umgebungsvariablen für ein Notebook zu setzen.
- Wähle in der oberen Menüleiste "Umgebung" und dann "Umgebungsvariablen" aus dem Dropdown-Menü.
- Wähle die Option zum Hinzufügen von Umgebungsvariablen.
- Füge zwei Variablen,
AZURE_OPENAI_API_KEY
undAZURE_OPENAI_ENDPOINT
, und ihre jeweiligen Werte hinzu. - Gib diesem Satz von Umgebungswerten einen Namen und speichere die Änderungen.
Extrahiere diese Werte im Notizbuch wie unten gezeigt:
azure_openai_api_key = os.environ["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"]
Schritt 2: Mache deinen ersten API-Aufruf an Azure OpenAI
Mit der Funktion AzureOpenAI()
kannst du nun ein client
Objekt erstellen, das Anfragen annimmt. Diese Funktion verwendet die folgenden Parameter:
api_version
: Die Version der Azure OpenAI API. Die neueste Version findest du in der Azure-Dokumentation unter.api_key
: den Azure OpenAI API-Schlüssel. Das kannst du aus den Umgebungsvariablen ablesen, die du zuvor festgelegt hast. Stelle dies hier nicht manuell ein.azure_endpoint
: die URL des Azure OpenAI API-Endpunkts (erhalte diesen Wert aus der Umgebung).
client = AzureOpenAI(
api_version="2024-06-01",
api_key=azure_openai_api_key,
azure_endpoint=azure_openai_endpoint
)
Verwende dieses client
Objekt für Aufgaben wie den Chatabschluss mit der Funktion .chat.completions.create()
. Diese Funktion akzeptiert die folgenden Parameter:
model
: Der Modellname. In älteren Versionen der OpenAI API war dies der Parameterengine
. Beachte, dass der Parametermodel
mit dem Modell übereinstimmen muss, das während der Bereitstellung angegeben wurde (auf dem Azure AI Foundry Portal). Wenn du versuchst, ein anderes Modell als das eingesetzte zu verwenden, kommt es zu einer Fehlermeldung (siehe unten):
NotFoundError: Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}
messages
: Dieser Parameter legt die Konversation zwischen dem Benutzer und dem Modell fest. Sie besteht aus einer Reihe von Nachrichtenobjekten. Jedes Nachrichtenobjekt hat ein Schlüssel-Wert-Paar, das mitrole
(entwedersystem
,user
oderassistant
) undcontent
(der Text der Nachricht) bezeichnet wird. Diese Nachrichtenobjekte liefern den Kontext für die Interaktion und leiten die Antworten des Modells.
Im Folgenden gebe ich Beispiele für Schlüssel-Wert-Paare (role
, content
) für verschiedene Werte von role
:
user
: die vom Endbenutzer eingegebene Eingabeaufforderung.
Beispiel: {“role”: “user”, “content”: “explain the difference between rational and irrational numbers”}
system
: die Beschreibung der Rolle, die OpenAI bei der Interaktion spielen soll.
Beispiel: {“role”: “system”, “content”: “you are a helpful teacher to guide elementary mathematics students”}
assistant
: die erwartete Antwort von OpenAI.
Beispiel: {“role”: “assistant”, “content”: “the difference between rational and irrational numbers is … an example explanation …”}
Die Rolle assistant
ist nur dann notwendig, wenn Trainingsdaten zur Feinabstimmung des Modells bereitgestellt werden. Wenn du die client
für Aufgaben wie das Ausfüllen von Chats nutzt, reichen die Rollen user
und system
aus. Für viele einfache Aufgaben ist nur die Rolle user
ausreichend .
max_tokens
Dieser Parameter bestimmt die maximale Anzahl von Token, die für die Verarbeitung (sowohl der Eingabe als auch der Ausgabe) des API-Aufrufs verwendet werden können. Die von dir verwendeten Token werden dir direkt in Rechnung gestellt. Der Standardwert ist 16. Dieser Wert ist für einfache Anwendungsfälle ausreichend; daher kann dieser Parameter weggelassen werden.
simple_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{
"role": "user",
"content": "Explain the difference between OpenAI and Azure OpenAI in 20 words",
},
],
)
Drucke die Ausgabe der Chat-Abschlussaufgabe:
print(simple_completion.to_json())
Die Ausgabe ist ein JSON-Objekt mit verschiedenen Schlüssel-Werte-Paaren. Sie enthält die Ausgabe des Modells, wie im folgenden Beispiel gezeigt. Beachte, dass assistant
die Standardrolle ist, die dem Modell zugewiesen wurde .
"message": {
"content": "OpenAI is a research organization focused on advancing AI, while Azure OpenAI is a collaboration between Microsoft and OpenAI.",
"role": "assistant"
},
Schritt 3: Verwendung von OpenAI-Modellen für verschiedene Aufgaben
Um mit Azure OpenAI auf ein Modell zuzugreifen, musst du es zunächst bereitstellen. Im vorherigen Abschnitt hast du das Modell gpt-35-turbo
eingesetzt. Um ein anderes Modell zu verwenden:
- Gehe zurück zu Azure AI Foundry und setze ein anderes Modell ein, wie im vorherigen Abschnitt erklärt. Wähle aus verschiedenen Modellen wie GPT-3.5, GPT-4o, o1 und o1-mini, o3 und o3-mini, und mehr .
- Schreibe die obigen Aufforderungen (in der Funktion
chat.completions.create()
) mit dem Namen des neuen Modells um.
In älteren Versionen von OpenAI war es üblich, verschiedene Modelle für unterschiedliche Aufgaben zu verwenden. Es gab spezielle Modelle für die Codegenerierung, NLP und mehr. Moderne Modelle wie GPT-3.5 und GPT-4 können alle textbasierten generativen Aufgaben erfüllen. Daher wurden viele der älteren aufgabenspezifischen Modelle (wie davinci
Modelle für die Codegenerierung) abgeschafft .
Wir untersuchen nun, wie die API für verschiedene einfache Aufgaben wie die Beantwortung von Fragen und die Textzusammenfassung genutzt werden kann. In den folgenden Beispielaufgaben verwenden wir das gleiche Modell - GPT-3.5. Du kannst auch eines der GPT-4 Modelle wählen.
Da es sich um textbasierte Aufgaben handelt, deklarieren wir zunächst einen Textblock, den wir bearbeiten wollen. Ich habe willkürlich einen Bericht über ein Paar Stiefel von einer E-Commerce-Website kopiert. Weise den Text dieser Rezension einer Variablen text
zu. Achte darauf, dass du alle einfachen oder doppelten Anführungszeichen innerhalb des Textes ausbrichst.
text = 'Comfort and Quality wise the boots are absolutely excellent. A 10 miles hike along the city Streets and the alps nearby felt like a smooth sail. The most plus it was quite well ventilated cause of the heavy duty Gore-tex material. After 12 hours when I removed it, there was just very little bit of perspiration (My foot sweats a lot) and absolutely no foul smell. Speaking of the Gore-Tex I would say, I sported this on a heavy rainy day after buying it in India, I was fearing the boot, though not very much like normal boots, would still be drenching with water, instead it was very little soaked. And some 5-6 hours later it was completely dry (Kept inside a closed room in the night). The only disadvantage I think is, that it fits my foot perfectly according to the size I chose, and there is no slight pain from 7 AM till 8 PM due to the shoe weight (of course its 1.2 KG, even though it doesn\'t feel like)'
Text-Zusammenfassung
Um den obigen Text zusammenzufassen:
- Verwende das zuvor erstellte
client
Objekt . - Übergib die entsprechenden Rollen im Parameter
messages
, wie im folgenden Beispiel gezeigt :
summary_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{
"role": "system",
"content": "You are a helpful assistant for summarizing text"
},
{
"role": "user",
"content": f"Summarize this text in 10 words: {text}",
},
],
)
Beachte, wie wir den Text als Variable in der Eingabeaufforderung im obigen Snippet übergeben.
print(summary_completion.to_json())
Die Ausgabe enthält die Zusammenfassung des langen Textes durch den Assistenten, wie in diesem Auszug gezeigt:
"message": {
"content": "Excellent comfort and quality, well-ventilated, quick-drying, lightweight boots, minimal perspiration, no foul smell.",
"role": "assistant"
},
Frage beantworten
Um Fragen zu beantworten (basierend auf dem obigen Eingabetext), ändern wir die Eingabeaufforderung, um die Frage als String-Variable zu übergeben. Wie zuvor enthält die Eingabeaufforderung auch den Text als Variable. Das Modell beantwortet die Frage anhand des vorgegebenen Textes.
question = 'Are these shoes heavy?'
qna_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for answering questions"
},
{
"role": "user",
"content": f"Answer this question: {question} in 10 words based on this text: {text}",
},
],
)
Konvertiere die Ausgabe in JSON und drucke sie aus:
print(qna_completion.to_json())
Die Ausgabe enthält die Antwort des Assistenten auf die Frage:
"message": {
"content": "Lightweight. Not heavy. Comfortable for long hikes. Well-ventilated Gore-tex material.",
"role": "assistant"
},
Werde Azure AZ-900 zertifiziert
Anwendungsfälle für Azure OpenAI
Schauen wir uns nun die verschiedenen Anwendungsfälle für den Azure OpenAI Service an.
Natürliche Sprachverarbeitung (NLP)
Da es sich im Kern um ein Sprachmodell handelt, eignen sich OpenAIs Allzweckmodelle wie GPT-3 und GPT-4 hervorragend für NLP-Aufgaben, wie z. B.:
- Textzusammenfassung: Gib der API einen großen Text als Eingabe und bitte sie, ihn nach deinen Bedürfnissen zusammenzufassen. Im vorherigen Beispiel haben wir die lange Kundenbewertung in einer 10-Wörter-Zusammenfassung zusammengefasst.
- Textklassifizierung: Bei einem Dokument (oder einer Reihe von Dokumenten) und einer Reihe von vordefinierten Labels kann OpenAI das/die Dokument(e) dem am besten geeigneten Label zuordnen.
- Stimmungsanalyse: Die API kann einen eingegebenen Text analysieren, um seine Stimmung zu ermitteln. Sie kann zum Beispiel eine Kundenbewertung als positiv, negativ oder neutral einstufen.
Im folgenden Beispiel führen wir eine Stimmungsanalyse durch, um den (zuvor definierten) Kundenrezensionstext zu klassifizieren.
sentiment_classification = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for classifying customer reviews into one of the following categories: very positive, positive, neutral, negative, very negative"
},
{
"role": "user",
"content": f"Classify this review: {text}",
},
],
#max_tokens=16
)
print(sentiment_classification.to_json())
Die Ausgabe enthält ein Snippet, das dem folgenden Auszug ähnelt. Sie enthält die Einstufung der Überprüfung durch den Assistenten:
"message": {
"content": "This review can be classified as very positive.",
"role": "assistant"
},
Code-Erstellung
OpenAI-Modelle können Code in verschiedenen Programmiersprachen erzeugen. Frühere Versionen von OpenAI hatten spezielle code-spezifische Modelle, wie Codex und code-davinci
, die für die Codegenerierung fein abgestimmt waren .
Neuere Versionen von OpenAI, wie z.B. GPT-3.5 und GPT-4, erzeugen jedochCode ohne Feinabstimmung. Die Basismodelle werden auf kodierungsbasierten Datensätzen trainiert. Codex, code-davinci und viele andere alte Modelle sind daher veraltet und stehen für neue Einsätze nicht mehr zur Verfügung.
OpenAI-Modelle können beim Schreiben von Code in verschiedenen gängigen Programmiersprachen helfen. Interagiere mit dem Modell in natürlicher Sprache, um Anweisungen für Programmieraufgaben zu geben wie:
- Erstelle den Code: Bei einer Textaufforderung oder einem Kommentar kann das Modell einen Codeschnipsel erzeugen. Der Programmierer kann verschiedene solcher Schnipsel zu einem richtig funktionierenden Programm kombinieren. Das hilft dabei, sich wiederholende Aufgaben wie das Schreiben von Standardcode zu automatisieren.
- Debuggen: Das Modell kann Fehler und Warnmeldungen analysieren, um das Problem in natürlicher Sprache zu erklären und Vorschläge zur Behebung des Problems zu machen.
- Optimiere: OpenAI-Modelle können dabei helfen, Code in sauberere Strukturen umzuwandeln und effizientere Algorithmen für gängige Aufgaben wie das Sortieren zu verwenden.
- Erkläre: OpenAI-Modelle können auch die Codeschnipsel erklären, die sie erzeugen. Diese Erklärungen helfen dabei, den generierten Code an die Bedürfnisse des Entwicklers anzupassen. Sie können auch neuen Programmierern helfen, Programmierkonzepte zu verstehen.
Betrachte ein einfaches Beispiel für das Schreiben einer Python-Funktion zum Öffnen und Lesen einer Datei. Diese Aufgabe ist so häufig, dass sie leicht automatisiert werden kann. Wir bitten OpenAI, den Code zu erstellen und zu erklären. Verwende das zuvor erstellte client
Objekt .
code_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for generating programming code"
},
{
"role": "user",
"content": "Write and explain a Python function to open and read a file",
},
],
)
Drucke die Ausgabe:
print(code_completion.to_json())
Beachte, dass das JSON-Objekt die Ausgabe des Assistenten enthält, die dem unten stehenden Beispielauszug ähnelt:
"content": "Below is a Python function that opens a file, reads its contents, and returns the content as a string:\n\n```python\ndef read_file(file_path):\n try:\n with open(file_path, 'r') as file:\n …
Bilderzeugung mit DALL-E
Die vorherigen Beispiele waren alle textbasiert. Sie nutzten OpenAI als großes Sprachmodell (LLM), das typischerweise mit der Transformer-Architektur aufgebaut wird. Zusätzlich zu den LLMs enthält OpenAI auch diffusorbasierte Modelle wie DALL-E, die Bilder nach einer Eingabeaufforderung erzeugen.
Um DALL-E zu benutzen, gibst du eine textbasierte Aufforderung mit einer detaillierten Beschreibung des Bildes ein, das du sehen möchtest. Anhand dieser Beschreibung erstellt DALL-E ein hochwertiges Bild. Das ist nützlich für Aufgaben wie das Erstellen von Illustrationen, das Entwerfen von Produktkonzepten, das Skizzieren für Marketingkampagnen und vieles mehr.
DALL-E ist derzeit nicht in allen geografischen Regionen verfügbar. Wenn es in deiner Region verfügbar ist, erstelle einen neuen Einsatz (wie oben in dieser Anleitung beschrieben), aber benutze das Modell DALL-E-3 statt GPT-3. Greife auf das DALL-E-Modell mit demselben client
Objekt zu, das zuvor beschrieben wurde. Verwende die Methode client.images.generate()
, um ein Bild zu erzeugen :
- Lege den Namen des Modells als
dalle3
fest, indem du den Parametermodel
verwendest. - Beschreibe das gewünschte Bild mit dem Parameter
prompt
. - Du kannst auch einen Wert für
n
angeben, der die Anzahl der zu erzeugenden Bilder angibt .
result = client.images.generate(
model="dalle3",
prompt="An owl wearing a Christmas hat",
n=1
)
Extrahiere das JSON-Antwortobjekt aus der Antwort des Modells:
import json
json_response = json.loads(result.model_dump_json())
Deklariere das Bildverzeichnis. Beachte, dass das Verzeichnis images
unter dem aktuellen Arbeitsverzeichnis (von dem aus du die Python-Shell gestartet hast) existieren muss.
image_dir = os.path.join(os.curdir, 'images')
Gib den Bildpfad unter diesem Verzeichnis an:
image_path = os.path.join(image_dir, 'generated_image.png')
Extrahiere die URL des erzeugten Bildes aus dem JSON-Antwortobjekt, lade das Bild (als Stream) herunter und schreibe es in die Bilddatei:
image_url = json_response["data"][0]["url"]
generated_image = requests.get(image_url).content
with open(image_path, "wb") as image_file:
image_file.write(generated_image)
Zeige das Bild an:
from PIL import Image
image = Image.open(image_path)
image.show()
Best Practices für die Nutzung von Azure OpenAI
Die Nutzung des Azure OpenAI Service ist einfach, aber wie bei jeder Technologie gibt es einige Best Practices, die du befolgen solltest, um das Beste aus ihm herauszuholen. In diesem Abschnitt gehen wir sie durch.
Überwachung und Verwaltung der API-Nutzung
Azure OpenAI ist einer der teureren Dienste von Azure. Auch die kostenlosen Credits, die für neue Konten verfügbar sind, können nicht für die OpenAI-API verwendet werden. Deshalb ist es wichtig, den Lernpfad zu verfolgen, auch für neue Nutzer/innen. Unkontrollierte API-Nutzung kann zu unerwartet hohen Rechnungen führen.
Die OpenAI-Gebühren basieren auf der Nutzung und dem Verbrauch der Token. Tokens sind Texteinheiten, die vom Modell verarbeitet werden - sowohl für die Eingabe als auch für die Ausgabe. Die Verarbeitung eines großen Textdokuments verbraucht mehr Token als die Erstellung einer längeren Antwort. Je mehr Token du benutzt, desto mehr zahlst du. Sei also sparsam mit den Informationen, die du dem Modell gibst oder von ihm generieren lässt.
Verwende den Parameter max_tokens
, um die Anzahl der Token zu begrenzen, die in dieser Anfrage verbraucht werden. Bei Produktionsmodellen solltest du experimentieren, um herauszufinden, wie viele Token deine Anfragen oder Nutzer typischerweise benötigen, und die Nutzung entsprechend begrenzen. Erhöhe das Limit von Fall zu Fall.
Um die grundlegenden Metriken zu überwachen:
- Von den Azure AI Services | Azure OpenAI Homepage die zu überwachende Ressource aus.
- Wählen Sie auf der Ressourcenseite die Option Überwachen um verschiedene Metriken anzuzeigen, z. B. die Anzahl der HTTP-Anfragen und die Anzahl der verarbeiteten Token pro Modell und pro Einsatz.
Azure OpenAI Metrics Dashboard.
Du kannst dir auch detailliertere Metriken ansehen:
- Von der Überwachung im linken Menü wählst du die Option Metriken.
Azure OpenAI detaillierte Metriken.
- Im Bereich auswählen wählst du die OpenAI-Instanz aus (markiere das Kontrollkästchen)
- Wähle Anwenden.
Über die Metriken Seite:
- Wähle das Zeitfenster oben rechts aus.
- Wähle in der Menüleiste am oberen Rand des (zunächst leeren) Diagramms die entsprechende Metrik aus dem Dropdown-Menü. Wähle aus verschiedenen Metriken wie z.B.:
- Azure OpenAI Anfragen,
- Statistiken über die Token-Nutzung (aktive Token, generierte Token, etc.)
- Leistung von API-Aufrufen (Zeit bis zum ersten Byte usw.) und mehr.
Azure OpenAI Monitoring Beispiel.
Und schließlich solltest du immer Budgetgrenzen für API-Konten einrichten und die Einstellungen so konfigurieren, dass du E-Mail-Benachrichtigungen erhältst, wenn du eine Budgetgrenze überschreitest.
Feinabstimmung der Modelle
Die Basismodelle von OpenAI werden auf riesigen Datensätzen trainiert, die viele verschiedene Bereiche abdecken. Im Großen und Ganzen gibt es drei verschiedene Möglichkeiten, die gewünschten Ergebnisse von LLM-Modellen zu erhalten:
- Promptes Engineering: Für die meisten Anwendungsfälle reicht es aus, der Eingabeaufforderung spezifische Anweisungen hinzuzufügen. Das nennt man Sofortengineering.
- Ein paar Schüsse lernen: In Fällen, in denen das Prompt-Engineering unzureichend ist, hatein paar Beispiele zu dem Prompt hinzugefügt, um dem Modell zu helfen, die gewünschten Antworten des Benutzers zu verstehen. Dies wird als "few-shot learning" bezeichnet, bei dem das Modell auf der Grundlage einer kleinen Anzahl von Beispielen lernt.
- Feinabstimmung: Manchmal möchtest du dich mit dem Model über einen sehr nischenorientierten Bereich unterhalten, zum Beispiel über ein Handbuch für die Reparatur von Spezialgeräten. Bei der Erstellung von Texten zu diesem Thema werden domänenspezifischer Jargon und Sprachmuster verwendet, die wahrscheinlich nicht in den öffentlichen Datensätzen (auf denen die Basismodelle trainiert wurden) enthalten sind.
Du kannst ein Basismodell verfeinern, wenn das Lernen mit wenigen Schüssen und die prompte Entwicklung nicht helfen, die richtigen Antworten zu bekommen.
Bei der Feinabstimmung wird ein zuvor trainiertes Basismodell auf einem speziellen Datensatz neu trainiert. In der Praxis werden nur ein paar Schichten des Basismodells (nicht das gesamte Modell) auf die neuen Daten umtrainiert. Das Azure-Tutorial zur Feinabstimmung erklärt die Schritte zur Feinabstimmung eines beliebten OpenAI-Modells.
Bedenke, dass du für die erfolgreiche Feinabstimmung eines Basismodells große Mengen relevanter, hochwertiger Daten mit Tausenden von Trainingsbeispielen benötigst. Außerdem ist die Feinabstimmung immer mit hohen Vorlaufkosten verbunden, um das Modell zu trainieren. Außerdem muss das feinabgestimmte Modell vor dem Einsatz auf deine Kosten gehostet werden.
Sichern deiner API-Schlüssel
Öffentlich zugängliche API-Schlüssel können missbraucht werden, um auf sensible Informationen zuzugreifen, unsichere und/oder illegale Aufgaben auszuführen oder unbefugte Anfragen zu stellen, was zu einer hohen Rechnung für den Kontoinhaber führt. Daher ist es wichtig, API-Schlüssel sicher zu verwalten, anstatt sie im Quellcode zu kodieren. Hierfür gibt es verschiedene Ansätze:
- Für Cloud-Dienste kannst du Schlüsselverwaltungstools wie AWS Secrets Manager und Azure Key Vault verwenden.
- Verwende
.env
Dateien, um Schlüssel im Key-Value-Format zu speichern. Füge diese Datei zur Liste.gitignore
hinzu, um sicherzustellen, dass sie nicht in das Code-Repository übertragen wird . - Für Dienste, die auf Jupyter-Notebooks basieren, kannst du die Option verwenden, Schlüssel als Teil der Umgebung zu speichern. Diese Methode wurde bereits in diesem Tutorial beschrieben.
Ich empfehle, die Berechtigungen einzuschränken, für welche Aufgaben die Schlüssel verwendet werden können. Es ist auch hilfreich, die Schlüssel regelmäßig zu erneuern, damit alte Schlüssel nicht missbraucht werden können, falls sie durchgesickert sind.
Fazit
In diesem Tutorial haben wir besprochen, wie du mit einem Azure-Konto beginnst, OpenAI-Dienste einrichtest, eine neue OpenAI-Instanz erstellst und ein Modell bereitstellst. Dann sahen wir Beispiele für die Verwendung von OpenAI-Modellen für praktische Aufgaben. Wir haben auch besprochen, wie du die Nutzung und Leistung von Azure OpenAI-Ressourcen überwachen kannst.
Wenn du ein tieferes Verständnis von Microsoft Azure erlangen möchtest, besuche den Lernpfad des DataCamps Azure Fundamentals. Um mehr über die Kernkonzepte von OpenAI zu erfahren, besuche den Lernpfad des DataCamps OpenAI Fundamentals.
Verdiene eine Top-KI-Zertifizierung
FAQs
Wie unterscheidet sich Azure OpenAI von OpenAI?
Azure OpenAI ermöglicht Azure-Nutzern den Zugriff auf OpenAI-Modelle innerhalb der Azure-Plattform. So können Azure-Nutzer vermeiden, dass sie eine weitere Softwareplattform konfigurieren und verwalten müssen. Außerdem wird die Integration mit anderen Azure-basierten Diensten erleichtert.
Erlaubt Azure OpenAI eine Feinabstimmung der Modelle?
Ja, du kannst Trainings- und Validierungsdatensätze liefern, die auf deinen speziellen Anwendungsfall zugeschnitten sind, und sie zur Feinabstimmung eines Basismodells verwenden.
Beachte jedoch, dass die Leistung des fein abgestimmten Modells stark von der Qualität der Trainingsdaten abhängt. Daten von schlechter Qualität oder irrelevante Daten führen zu einer schlechteren Leistung im Vergleich zum Basismodell.
Welche Methoden kann ich verwenden, um auf Azure OpenAI zuzugreifen?
Du kannst auf zwei Arten auf die Azure OpenAI-Dienste zugreifen: über die Azure-Webanwendung oder über die API. Die Web-App funktioniert wie das ChatGPT-Webinterface. Über die API kannst du programmatisch mit den Modellen interagieren. Die API ermöglicht die Integration von KI-Tools in andere Anwendungen.
Welche Sprachen kann ich mit der Azure OpenAI API verwenden?
Azure OpenAI unterstützt verschiedene Sprachen wie C#, Go, Java, JavaScript, Python und REST (HTTP-Anfragen). Python ist aufgrund seiner Beliebtheit in den Bereichen Data Science und KI/ML eine der am häufigsten verwendeten Sprachen. Noch wichtiger ist, dass das Python-Ökosystem viele Werkzeuge für die Arbeit mit großen Datensätzen enthält.
Für die Integration in serverseitige Anwendungen solltest du dieselbe Sprache wie für den Rest deiner Anwendung verwenden.
Auf welche Modelle kann ich mit Azure OpenAI zugreifen?
Azure OpenAI bietet Zugang zu Modellen wie GPT-4, GPT-4o, GPT-3.5, DALL-E (Text zu Bild), Whisper (Sprache zu Text) und vielen anderen. Eine Liste der derzeit verfügbaren Modelle findest du in der Azure-Dokumentation.
Arun ist ein ehemaliger Startup-Gründer, der Spaß daran hat, neue Dinge zu entwickeln. Derzeit erforscht er die technischen und mathematischen Grundlagen der Künstlichen Intelligenz. Er liebt es, sein Wissen mit anderen zu teilen, also schreibt er darüber.
Neben dem DataCamp kannst du seine Veröffentlichungen auf Medium, Airbyte und Vultr lesen.
Lerne in den folgenden Kursen mehr über Azure!
Kurs
Understanding Microsoft Azure Architecture and Services
Lernpfad
Microsoft Azure Fundamentals (AZ-900)
Der Blog
Die 32 besten AWS-Interview-Fragen und Antworten für 2024
Der Blog
Top 30 Generative KI Interview Fragen und Antworten für 2024

Hesam Sheikh Hassani
15 Min.

Der Blog
Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn
Der Blog
Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Nisha Arya Ahmed
20 Min.
Der Blog
Q2 2023 DataCamp Donates Digest
Der Blog