Freigeben über


Mehrinstanzenfähigkeit und Azure OpenAI in Gießereimodellen

Azure OpenAI in Foundry Models bietet Ihnen Zugriff auf die leistungsstarken Sprachmodelle von OpenAI. In diesem Artikel werden die wichtigsten Features von Azure OpenAI beschrieben, die für mehrinstanzenfähige Lösungen von Vorteil sind. Sehen Sie sich die empfohlenen Ressourcen an, um Ihren Ansatz zu planen und Azure OpenAI zu verwenden.

Isolationsmodelle

Wenn Sie über ein mehrinstanzenfähiges System verfügen, das Azure OpenAI verwendet, müssen Sie die Isolationsebene bestimmen, die Ihre Mandanten benötigen. Sie sollten Ihr Isolationsmodell basierend auf den folgenden Faktoren entwerfen:

  • Die Anzahl der Mieter, die Sie zu haben planen
  • Gibt an, ob Ihre Mandanten Complianceanforderungen haben, die eine Netzwerk- oder Infrastrukturisolation erfordern
  • Gibt an, ob für Ihre Mandanten Modelle erforderlich sind, die mit ihren eigenen Daten optimiert werden.
  • Unabhängig davon, ob Ihre Mieter unterschiedliche Modellversionen oder Modelllebenszyklen benötigen

In der folgenden Tabelle sind die Bereitstellungsansätze zusammengefasst, die Sie beim Verwenden von Azure OpenAI in einem mehrinstanzenbasierten System ausführen können:

Überlegungen Dedizierter Azure OpenAI-Dienst Gemeinsamer Azure OpenAI-Dienst, dedizierte Modellbereitstellung für jeden Mandanten Shared Azure OpenAI-Dienst, Bereitstellung gemeinsam genutzter Modelle Vom Mandanten bereitgestellter Azure OpenAI-Dienst
Datenisolation High Mittel Niedrig High
Leistungsisolation High High Niedrig bis mittel, abhängig von der Token-pro-Minute-Verwendung (TPM) für jeden Mandanten. High
Bereitstellungskomplexität Niedrig bis mittel, abhängig von der Anzahl der Mieter. Medium: Sie müssen Bereitstellungsnamen und Kontingente verwalten. Niedrig Nicht zutreffend, vom Kunden verwaltet.
Komplexität des Betriebs Niedrig Mittel High Niedrig: für den Anbieter. Mittel bis hoch: für den Mandanten.
Beispielszenario Implementierungen mit einem einzelnen Mandanten, die eine Netzwerkisolation von anderen Mandanten erfordern. Mandanten mit spezifischen Modelllebenszyklus-Anforderungen oder Feinabstimmungsanforderungen. Große mehrinstanzenfähige Lösungen, die eine gemeinsame Anwendungsebene aufweisen. Mieter mit spezifischen Compliance- oder Feinabstimmungsanforderungen.

Dedizierter Azure OpenAI-Dienst

Wenn Sie Dienstanbieter sind, sollten Sie eine Azure OpenAI-Instanz für jeden Mandanten in Ihrem Azure-Abonnement bereitstellen. Dieser Ansatz bietet Datenisolation für jeden Mandanten. Sie müssen eine zunehmende Anzahl von Azure OpenAI-Ressourcen bereitstellen und verwalten, während Sie die Anzahl der Mandanten erhöhen.

Verwenden Sie diesen Ansatz, wenn Sie über separate Anwendungsbereitstellungen für jeden Mandanten verfügen oder Einschränkungen umgehen müssen, z. B. das Kontingent oder die Anforderung pro Minute. Weitere Informationen finden Sie unter Kontingente und Grenzwerte in Azure OpenAI.

Das folgende Diagramm veranschaulicht das Modell für Azure OpenAI für jeden Mandanten im Abonnement des Anbieters.

Diagramm, das das Modell für Azure OpenAI für jeden Mandanten im Abonnement des Anbieters zeigt.

Freigegebener Azure OpenAI-Dienst

Sie können eine Instanz von Azure OpenAI für mehrere Mandanten freigeben. Die Azure OpenAI-Ressource wird in Ihrem Azure-Abonnement (d.h. in dem des Dienstanbieters) bereitgestellt. Sie sind für die Verwaltung verantwortlich. Diese Lösung ist am einfachsten zu Implementieren, bietet aber die geringste Daten- und Leistungsisolation.

Das Freigeben einer Azure OpenAI-Ressource bietet keine Sicherheitssegmentierung für jede Modellbereitstellung. Ein Mieter kann möglicherweise ein Modell verwenden, zu dessen Nutzung er nicht berechtigt ist. Vermeiden Sie daher die Freigabe einer Azure OpenAI-Instanz, wenn Sie fein abgestimmte Modelle verwenden. Sie können vertrauliche Informationen verfügbar machen und nicht autorisierten Zugriff auf mandantenspezifische Daten oder Ressourcen zulassen.

Das Freigeben einer Instanz von Azure OpenAI zwischen mehreren Mandanten kann auch zu einem Noisy Neighbor-Problem führen. Dies kann wiederum zu einer höheren Latenz für einige Mandanten führen. Außerdem müssen Sie den Anwendungscode mehrinstanzenfähig gestalten. Wenn Sie Ihre Kunden beispielsweise für den Ressourcenverbrauch einer freigegebenen Azure OpenAI-Instanz belasten möchten, implementieren Sie die Logik, um die Gesamtzahl der Token für jeden Mandanten in Ihrer Anwendung nachzuverfolgen.

Sie können auch mehrere freigegebene Azure OpenAI-Instanzen bereitstellen. Wenn Sie beispielsweise dem Muster für Bereitstellungsstempel folgen, stellen Sie eine freigegebene Azure OpenAI-Instanz für jeden Stempel bereit. Wenn Sie eine Lösung in mehreren Regionen bereitstellen, sollten Sie Azure OpenAI in jeder Region bereitstellen für:

  • Vermeiden Sie regionsübergreifende Netzwerk-Latenz.
  • Erfüllen von Anforderungen an Datenresidenz.
  • Ermöglichen der Nutzung regionaler Azure OpenAI-Instanzen innerhalb anderer Dienste, die eine Bereitstellung in derselben Region erfordern

Wenn Sie über eine freigegebene Azure OpenAI-Instanz verfügen, ist es wichtig, die Grenzwerte zu berücksichtigen und Ihr Kontingent zu verwalten.

Die folgende Abbildung veranschaulicht das freigegebene Azure OpenAI-Modell.

Diagramm, das das freigegebene Azure OpenAI-Modell zeigt.

Wenn Sie einen freigegebenen Azure OpenAI-Dienst bereitstellen, können Sie entscheiden, ob die Modellbereitstellungen innerhalb des Diensts auch freigegeben oder bestimmten Kunden zugeordnet sind.

Geteilte Modellbereitstellung unter Mandanten

Die gemeinsame Nutzung einer Modellbereitstellung zwischen Mandanten vereinfacht Ihren betrieblichen Aufwand, da Sie weniger Bereitstellungen verwalten und weniger Modellversionen nachverfolgen müssen. Planen Sie, eine gemeinsam genutzte Modellbereitstellung zu verwenden, falls möglich, und erstellen Sie nur eigene Modellbereitstellungen, wenn Sie die von ihnen bereitgestellten Funktionen benötigen.

Dedizierte Modellbereitstellung für jeden Mandanten

Sie können eine Modellbereitstellung für jeden Mandanten oder für Mandanten erstellen, die spezielle Anforderungen haben, die Sie nicht mithilfe einer Bereitstellung eines gemeinsamen Modells erfüllen können. Häufige Gründe für die Verwendung dedizierter Modellbereitstellungen für einen Mandanten sind:

  • Kontingent- und Kostenverwaltung. Dedizierte Modellbereitstellungen erleichtern die mandantenspezifische TPM-Zuordnung, indem die Anzahl der token nachverfolgt wird, die jedes Modell verwendet. Mit dieser Zahl können Sie Kosten genau zuordnen und die Nutzung jedes Mandanten verwalten. Wenn Sie bereitgestellte Durchsatzeinheiten (PTUs) verwenden, können Sie die PTUs bestimmten Kunden zuweisen und andere Abrechnungsmodelle für andere Kunden verwenden.

  • Inhaltsfilterrichtlinien. Manchmal erfordert ein bestimmter Mandant möglicherweise eine eindeutige Inhaltsfilterrichtlinie, z. B. eine mandantenspezifische Sperrliste mit unzulässigen Wörtern. Sie definieren die Richtlinie zur Inhaltsfilterung im Rahmen einer Modellbereitstellung.

  • Modelltypen und -versionen. Möglicherweise müssen Sie unterschiedliche Modelle oder Modellversionen für verschiedene Mandanten verwenden. Ein Mandant erfordert möglicherweise auch einen eigenen Modelllebenszyklusverwaltungsprozess.

  • Mandantenspezifische Feinabstimmung. Wenn Sie für jeden Mandanten unterschiedliche fein abgestimmte Modelle erstellen, müssen Sie eine separate Modellbereitstellung für jedes fein abgestimmte Modell erstellen.

    Denken Sie daran, dass für die meisten Anwendungsfälle keine Feinabstimmung erforderlich ist. In der Regel ist es besser, Ihr Modell mithilfe von Azure OpenAI On Your Data oder einem anderen RAG-Ansatz (Retrieval Augmented Generation) zu bodenieren.

  • Datenresidenz. Dieser Ansatz unterstützt unterschiedliche Anforderungen an die Datenresidenz. Sie können z. B. eine regionale Modellbereitstellung für einen Mandanten bereitstellen, der strenge Anforderungen an die Datenhaltung hat, und eine globale Modellbereitstellung für andere Mandanten verwenden.

Jede Modellbereitstellung verfügt über eine eindeutige URL, aber es ist wichtig zu beachten, dass die zugrunde liegenden Modelle für andere Azure-Kunden freigegeben werden. Die Modelle teilen auch die Azure-Infrastruktur.

Azure OpenAI erzwingt keine Zugriffssteuerung für jede Modellbereitstellung. Daher muss Ihre Anwendung steuern, welcher Mandant welche Modellbereitstellung erreichen kann.

Vom Mandanten bereitgestellte Azure OpenAI-Ressource

In einigen Szenarien können Ihre Mandanten die Azure OpenAI-Instanz in ihren eigenen Azure-Abonnements erstellen und Ihrer Anwendung Zugriff darauf gewähren. Dieser Ansatz kann in den folgenden Szenarien geeignet sein:

  • Mandanten verfügen über bestimmte Kontingente und Berechtigungen von Microsoft, einschließlich Zugriff auf verschiedene Modelle, vordefinierte Inhaltsfilterrichtlinien und bereitgestellter Durchsatz.

  • Mandanten verfügen über ein fein abgestimmtes Modell, das sie aus Ihrer Lösung verwenden müssen.

  • Mandanten benötigen eine Komponente in ihrer Umgebung, um Daten über ihre vom Kunden verwaltete Azure OpenAI-Instanz zur Verarbeitung zu verarbeiten und zu senden.

Um auf die Azure OpenAI-Instanz im Abonnement Ihres Mandanten zugreifen zu können, muss der Mandant Ihrer Anwendung Zugriff gewähren. Ihre Anwendung muss sich über die Microsoft Entra-Instanz authentifizieren. Eine Möglichkeit besteht darin, eine mehrinstanzenfähige Microsoft Entra-Anwendung zu veröffentlichen. Der folgende Workflow beschreibt diesen Ansatz:

  1. Der Mandant registriert die mehrinstanzenfähige Microsoft Entra-Anwendung im eigenen Microsoft Entra-Mandanten.

  2. Der Mandant gewährt der mehrinstanzenfähigen Microsoft Entra-Anwendung die entsprechende Zugriffsebene für die Azure OpenAI-Ressource. Beispielsweise kann der Mandant die Anwendung der Azure AI-Dienstbenutzerrolle mithilfe der rollenbasierten Zugriffssteuerung zuweisen.

  3. Der Mandant stellt die Ressourcen-ID der Azure OpenAI-Ressource bereit, die er erstellt.

  4. Ihr Anwendungscode kann einen Dienstprinzipal verwenden, der der mehrinstanzenfähigen Microsoft Entra-Anwendung in Ihrer eigenen Microsoft Entra-Instanz zugeordnet ist, um auf die Azure OpenAI-Instanz der einzelnen Mandanten zuzugreifen.

Alternativ können Sie jeden Mandanten bitten, ein Dienstprinzipal für Ihren Dienst zu erstellen und Ihnen dessen Anmeldeinformationen mitzuteilen. Bei diesem Ansatz müssen Sie Anmeldeinformationen für jeden Mandanten sicher speichern und verwalten, was eine potenzielle Sicherheitshaftung darstellt.

Wenn Ihre Mandanten Netzwerkzugriffssteuerungen für ihre Azure OpenAI-Instanz konfigurieren, stellen Sie sicher, dass Sie darauf zugreifen können.

Das folgende Diagramm veranschaulicht das Modell für Azure OpenAI für jeden Mandanten im Abonnement des Mandanten.

Diagramm, das das Modell für Azure OpenAI für jeden Mandanten im Abonnement des Mandanten zeigt.

Features von Azure OpenAI, die Mehrinstanzenfähigkeit unterstützen

Azure OpenAI bietet die folgenden Features, die Mehrinstanzenfähigkeit unterstützen.

Antwort-API

Die Antwort-API ist eine zustandsbehaftete API, die Unterhaltungsverwaltung, Toolaufrufe, Dateisuche, Verarbeitung von Hintergrundaufgaben und strukturierte Ausgaben in einer einzigen Schnittstelle vereint.

Wenn Sie die Response-API verwenden, kann es schwierig sein, Daten zwischen Mandanten zu isolieren. Mandanten-IDs können nicht an alle Werkzeuge und Funktionen angeknüpft werden.

Wenn Sie sich jedoch für die Verwendung der Antwort-API für eine mehrinstanzenfähige Lösung entscheiden, sollten Sie die Mandantenisolation in allen gespeicherten Daten und Vorgängen berücksichtigen, die Sie steuern. Die API speichert den Unterhaltungsverlauf mithilfe von Antwort-IDs, die nachfolgende Anforderungen mit dem vorherigen Kontext verknüpfen. Sie sollten sicherstellen, dass Antwort-IDs mit mandantenspezifischen Schlüsseln in Ihrer Anwendung gespeichert werden. Dieser Ansatz stellt sicher, dass eine Anforderung nur auf Antwort-IDs verweisen kann, die demselben Mandanten zugeordnet sind.

Die Antwort-API unterstützt Funktionsaufrufe und integrierte Tools. Bei Funktionsaufrufen, bei denen der Anwendungscode den Funktionsaufruf verarbeitet, sollten Sie sicherstellen, dass alle Funktionsaufrufe, die Sie tätigen, multitenant-fähig sind. Ein Ansatz besteht darin, die Mandanten-ID im Aufruf der downstream-API oder -Funktion einzuschließen. Für integrierte Tools, z. B. Code Interpreter, und alle Remote-MCP-Serveraufrufe führt die Modellinfrastruktur diese Vorgänge aus. Sie können den Mandantenkontext nicht zuverlässig in diese integrierten Toolaufrufe einfügen, daher sollten Sie dedizierte Container oder separate Toolkonfigurationen für jeden Mandanten verwenden, wenn Sie diese Features verwenden.

Wenn Sie Dateisuche- oder RAG-Funktionen (Retrieval Augmented Generation) verwenden, sollten Sie sicherstellen, dass Dateispeicher und Vektorindizes auf den entsprechenden Mandanten ausgerichtet sind. Wenn Sie freigegebene Indizes verwenden, wenden Sie Mandantenfilter auf alle Abfragen an. Wenn Sie Indizes pro Mandant bereitstellen, ordnen Sie jede Anforderung dem richtigen Index basierend auf dem Mandantenbezeichner zu. Weitere Informationen finden Sie unter Entwerfen einer sicheren Multitenant-RAG-Inferencing-Lösung.

Die Antwort-API unterstützt einen Hintergrundmodus für lange ausgeführte Vorgänge. Sie sollten Aufgabenbezeichner mit dem Mandantenkontext speichern und den Mandanten überprüfen, wenn Sie Ergebnisse abfragen. Stellen Sie sicher, dass Aufgabenwarteschlangen und Ergebnisspeicher verhindern, dass ein Mandant auf die Hintergrundaufgaben oder Ausgaben eines anderen Mandanten zugreift.

Assistenten-API

Die Assistenten-API fügt Ihrem Azure OpenAI-Dienst Funktionen hinzu, die es für die Erstellung von KI-Assistenten geeignet macht. Sie umfasst die Möglichkeit, Tools und APIs aufzurufen und Dateien zu durchsuchen, um die vom Modell generierten Antworten zu ermitteln. Er ermöglicht es dem Dienst, permanente Unterhaltungsthreads zu verwalten. Die API kann auch Code in einer Sandkastenumgebung generieren und ausführen. Um diese Funktionen zu unterstützen, muss die Assistenten-API einige Daten speichern.

Wenn Sie die Assistenten-API in einer Mehrinstanzenlösung verwenden, können Sie Assistenten erstellen, die einem einzelnen Mandanten zugeordnet sind, oder Sie können einen Assistenten für mehrere Mandanten freigeben. Es ist wichtig, die Mandantenisolation in allen gespeicherten Daten zu berücksichtigen, insbesondere für geteilte Assistenten. Sie sollten beispielsweise sicherstellen, dass Unterhaltungsthreads für jeden Mandanten separat gespeichert werden.

Die Assistenten-API unterstützt Funktionsaufrufe, die Ihre Anwendungsanweisungen dazu sendet, welche Funktionen aufgerufen werden sollen und welche Argumente einbezogen werden sollen. Stellen Sie sicher, dass alle Funktionsaufrufe, die Sie tätigen, mehrinstanzenfähig sind. Ein Ansatz besteht darin, die Mandanten-ID im Aufruf des downstream-Systems einzuschließen. Überprüfen Sie die Mandanten-ID in Ihrer Anwendung, und verlassen Sie sich nicht auf das Sprachmodell, um die Mandanten-ID für Sie zu verteilen.

Azure OpenAI für Ihre Daten

Das Azure OpenAI On Your Data-Feature ermöglicht es dem großen Sprachmodell, Wissensquellen wie Indizes und Datenbanken direkt abzufragen, als Teil der Generierung einer Antwort aus dem Sprachmodell.

Wenn Sie eine Anforderung stellen, können Sie die Datenquellen angeben, die abgefragt werden sollen. Stellen Sie in einer mehrinstanzenfähigen Lösung sicher, dass Ihre Datenquellen mandantenfähig sind und Sie Mandantenfilter für Ihre Anforderungen angeben können. Übertragen Sie die Mandanten-ID ordnungsgemäß an die Datenquelle. Angenommen, Sie fragen die Azure KI-Suche ab. Wenn Sie Daten für mehrere Mandanten in einem einzigen Index haben, geben Sie einen Filter an, um die abgerufenen Ergebnisse auf die ID des aktuellen Mandanten zu beschränken. Wenn Sie auch einen Index für jeden Mandanten erstellen, stellen Sie sicher, dass Sie den richtigen Index für den aktuellen Mandanten angeben.

Batchbereitstellungen

Sie können einige Modelle in Azure OpenAI mithilfe einer Batchbereitstellung bereitstellen. Batchbereitstellungen ermöglichen die asynchrone Verarbeitung gruppierter Anforderungen mithilfe eines separaten Batchkontingents. Anfragen, die an eine Batchbereitstellung gesendet werden, haben eine angestrebte 24-Stunden-Bearbeitungszeit und kosten weniger als Standardbereitstellungen. Im Gegensatz zu Standardbereitstellungen beschränken Batchkontingente die Anzahl der eingereihten Token statt des TPM.

Dieser Bereitstellungstyp eignet sich ideal für Szenarien, in denen sofortige Antworten nicht erforderlich sind und große Mengen von Anforderungen die Echtzeitverarbeitung nicht unterbrechen können.

Beispielsweise kann ein System, das die Benutzerfeedbackstimmung analysiert, eine Batchbereitstellung verwenden, um zu vermeiden, dass das Standardbereitstellungskontingent gedrosselt wird, das es für Echtzeitinteraktionen in anderen Anwendungen benötigt. Dieser Ansatz reduziert auch die Verarbeitungskosten.

In einer mehrinstanzenfähigen Lösung können Batchbereitstellungen entweder unter allen Mandanten geteilt oder separat für jeden Mandanten erstellt werden.

  • Separate Batchbereitstellungen für jeden Mandanten:

    Durch Zuweisen von Tokenkontingenten zu jeder mandantenspezifischen Batchbereitstellung verhindern Sie, dass ein einzelner Mandant Ressourcen monopolisiert. Dieser Ansatz ermöglicht auch die Nachverfolgung der Tokennutzung pro Mandant, was für die Kostenzuordnung nützlich ist.

  • Gemeinsam genutzte Batch-Bereitstellung:

    Eine gemeinsame Bereitstellung im Batchmodus kann Anforderungen von mehreren Mandanten in kombinierten oder separaten Batchaufträgen verarbeiten. Wenn Sie Anforderungen von mehreren Mandanten in einem einzigen Batchauftrag kombinieren, stellen Sie sicher, dass Sie Antworten ordnungsgemäß dem entsprechenden Mandanten zuordnen können.

    Batchaufträge werden auf Auftragsebene verwaltet, daher ist es ratsam, sie nach Mandant zu trennen. Mit diesem Ansatz können Sie Aufträge für jeden Mandanten abbrechen oder löschen. Einzelne Anforderungen innerhalb eines Batches können nicht abgebrochen oder gelöscht werden.

Durch die sorgfältige Verwaltung von Batchbereitstellungen können Sie Kosteneffizienz und Ressourcenzuweisung ausgleichen und gleichzeitig die Mandantenisolation und operative Flexibilität beibehalten.

Beitragende

Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.

Hauptautor:

Andere Mitwirkende:

Um nicht-öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.