Tutorial: Implementieren Sie Leitplanken für einen Modelldienst mit Servicerichtlinien

Important

Dieses Feature befindet sich in der Betaversion. Kontoadministratoren können den Zugriff auf dieses Feature über die Seite " Vorschauen " der Kontokonsole verwalten. Siehe Manage Azure Databricks Previews.

Dieses Tutorial zeigt, wie Leitplanken für einen Modelldienst auf zwei sich ergänzende Weisen implementiert werden. Auf Azure Databricks implementieren Sie Schutzschienen mit Servicerichtlinien. Ein Modellservice kann für ein von Azure Databricks gehostetes Modell oder einen externen Anbieter wie OpenAI, Anthropic oder Google vorgeschaltet sein, und Sie verwalten beide auf die gleiche Weise:

  • Integrierte Dienstrichtlinien (Guardrails): verwaltete, Azure Databricks bereitgestellte Prüfungen auf allgemeine Risiken wie PII, unsichere Inhalte, Jailbreak-Versuche und Halluzinationen. Sie fügen eine an, indem Sie sie in der Benutzeroberfläche auswählen, ohne Code zu schreiben.
  • Benutzerdefinierte Dienstrichtlinien: SQL-Funktionen, die Sie für Regeln schreiben, die für Ihre Organisation spezifisch sind, z. B. einen vertraulichen Projektcodenamen oder ein gesperrtes Antwortmuster.

Informationen zu Dienstrichtlinienkonzepten, den integrierten Schutzmaßnahmen und der vollständigen Erstellungsreferenz finden Sie unter Dienstrichtlinien für sicherungsfähige KI-Elemente, Erstellen und Anfügen einer Dienstrichtlinie und Dienstrichtlinienfunktionsreferenz.

Sie fügen beides auf die gleiche Weise an, über die Registerkarte "Richtlinien " eines Modelldiensts auf der Unity AI Gateway-Benutzeroberfläche, und Sie können sie kombinieren. Azure Databricks wertet jeweils an zwei Punkten aus: ON CALL (bevor es das Modell aufruft) und ON RESULT (nachdem das Modell reagiert). In der Benutzeroberfläche wählen Sie die Phase aus, wenn Sie die Richtlinie anfügen. Eine benutzerdefinierte Richtlinie kann sich auch auf eine Phase beschränken, indem sie anhand von event:type verzweigt.

Szenario: Ihr Team macht eine LLM über einen Modelldienst (main.default.team_chat) verfügbar, den Apps und Agents anrufen. Sie möchten persönliche identifizierbare Informationen (PII) mit einer verwalteten Schutzleiste blockieren, alle Eingabeaufforderungen blockieren, die ein vertrauliches Projekt erwähnen, und Antworten blockieren, die einen unsicheren Link enthalten, ohne den Anwendungscode zu ändern.

Am Ende dieses Lernprogramms haben Sie Folgendes:

  • Eine integrierte PII-Schutzmaßnahme für den Dienst.
  • Eine benutzerdefinierte Anforderungsrichtlinie, die einen vertraulichen Codenamen bei ON CALL blockiert.
  • Eine benutzerdefinierte Antwortrichtlinie, die unsichere Links bei ON RESULT blockiert.
  • Alle drei wurden angefügt und über den Playground des Modelldiensts überprüft.

Voraussetzungen

  • Ein Arbeitsbereich, der für den Unity-Katalog aktiviert ist. Weitere Informationen finden Sie unter "Erste Schritte mit Unity-Katalog".
  • Die Unity AI Gateway-Vorschau wurde für Ihr Konto aktiviert. Siehe Manage Azure Databricks Previews.
  • Ein zu steuernder Modelldienst und EXECUTE dafür, damit Sie testen können. Informationen zum Erstellen eines Modells finden Sie unter Erstellen und Verwalten von Modelldiensten. In diesem Tutorial wird main.default.team_chat verwendet.
  • MANAGE für den Modelldienst, um Richtlinien anzufügen.
  • CREATE FUNCTION für das Schema, in dem Sie die benutzerdefinierten Richtlinienfunktionen erstellen (main.governance in diesem Tutorial).
  • Für die integrierte Schutzschiene: Das Evaluator-Modell, das die Prüfung der Schutzschiene ausführt (der LLM-Richter) ist vorausgewählt, sodass keine Einrichtung erforderlich ist. Wenn Sie unter Erweiterte Optionen einen anderen Auswerter auswählen, müssen Sie auf CAN_QUERY klicken.

Schritt 1: Anwenden einer integrierten Schutzschiene

Integrierte Schutzmaßnahmen sind verwaltete LLM-Judge-Überprüfungen. Sie wählen im Menü Guardrail type einen Typ aus; der Dienst des Evaluatormodells, der die Prüfung ausführt (der LLM-Judge), ist für Sie vorausgewählt. Die verfügbaren Schutzschienen sind:

  • PII-Blockierung (system.ai.block_pii): verweigert Inhalte, die PII enthalten.
  • Unsicherer Inhalt (system.ai.block_unsafe_content): verweigert unsichere oder schädliche Inhalte.
  • Jailbreak (system.ai.block_jailbreak): verweigert Prompt-Injection- und Jailbreak-Versuche (nur Anfragen).
  • Halluzination (system.ai.block_hallucination): Verweigert halluzinierte Antworten (nur Antworten).

Fügen Sie die PII-Schutzmaßnahme an Ihren Modelldienst an:

  1. Klicken Sie in der Arbeitsbereichs-Randleiste auf AI-Gateway.
  2. Wählen Sie auf der Registerkarte "Modelle " Ihren Modelldienst (main.default.team_chat).
  3. Öffnen Sie die Registerkarte "Richtlinien ", und klicken Sie dann auf "Neue Richtlinie".
  4. Geben Sie einen Namen ein, z. B. block-pii.
  5. Behalten Sie unter Angewendet auf die Option Alle Kontobenutzer bei, oder beschränken Sie die Richtlinie auf bestimmte Prinzipale.
  6. Wählen Sie im Guardrail-Typdie Option PII-Blockierung aus.
  7. Legen Sie den Rang auf 1. Der Rang legt die Auswertungsreihenfolge fest: Der niedrigste Rang wird zuerst für die Anforderung und zuletzt für die Antwort ausgeführt.
  8. Wählen Sie unter "Phase" sowohl Eingabeschutzschienen (Vor dem Modell) als auch Ausgabeschutzschienen (Nach dem Modell) aus, sodass die Schutzschiene auf Anforderungen und Antworten ausgeführt wird.
  9. Klicken Sie auf Create policy.

Die Schutzmaßnahme verwendet einen vorausgewählten Auswertungsmodelldienst (den LLM-Judge, der die Überprüfung ausführt). Um ein anderes Modell zu verwenden, erweitern Sie vor dem Erstellen der Richtlinie Erweiterte Optionen; Sie benötigen CAN_QUERY für das Modell, das Sie auswählen.

Note

Nachdem Sie eine Richtlinie an einen Modelldienst angefügt oder geändert haben, lassen Sie vor dem Testen eine kurze Zeit zu, bis die Änderung wirksam wird. Während der Beta kann die Verbreitung einige Minuten dauern.

Schritt 2: Hinzufügen einer benutzerdefinierten Anforderungsrichtlinie

Schutzläufe decken häufige Risiken ab. Schreiben Sie für eine für Ihre Organisation spezifische Regel eine benutzerdefinierte Richtlinie. Eine benutzerdefinierte Richtlinie ist eine SQL-UDF, die (event VARIANT) akzeptiert und eine Entscheidung zurückgibt. Lesen Sie den Nachrichtentext aus event:context.message, einer API-unabhängigen Projektion der letzten Benutzer- oder Assistentennachricht.

Diese Richtlinie verweigert jede Anforderung, die einen vertraulichen Projektcodenamen erwähnt. Die event:type::string = 'request'-Prüfung begrenzt es auf ON CALL:

CREATE OR REPLACE FUNCTION main.governance.block_confidential_codename(
  event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
  CASE
    WHEN event:type::string = 'request'
      AND contains(lower(event:context.message::string), 'project aurora')
    THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'Requests about confidential projects are not permitted.'))
    ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
  END;

contains und lower sind Teil der SQL-Teilmenge, die in Richtliniengremien unterstützt wird. Die vollständige Liste und die Regeln zum Schreiben einer Richtlinienfunktion finden Sie unter Dienstrichtlinienfunktionsreferenz.

Hängen Sie die Funktion als benutzerdefinierte Richtlinie an, mit Geltungsbereich für die Anfragephase:

  1. Klicken Sie auf die Registerkarte „Richtlinien“ des Modelldiensts, auf „Neue Richtlinie“, und geben Sie einen Namen ein, z. B. block-codename.
  2. Wählen Sie im Guardrail-Typ"Benutzerdefiniert" aus.
  3. Klicken Sie auf "Benutzerdefinierte Funktion", und wählen Sie dann "Funktion auswählenmain.governance.block_confidential_codename" aus.
  4. Wählen Sie unter "Phase" nur Eingabeschutzschienen (vor dem Modell) aus, da es sich um eine Anforderungsrichtlinie handelt.
  5. Setzen Sie Rank auf 10, und klicken Sie dann auf Create policy.

Schritt 3: Hinzufügen einer benutzerdefinierten Antwortrichtlinie

Ein Modell kann auch Inhalte zurückgeben, die Sie nicht durchlaufen möchten. Diese Richtlinie verweigert eine Antwort, die einen unsicheren Link (eine http:// URL oder einen javascript: URI) enthält. Die Überprüfung event:type::string = 'response' beschränkt sie auf ON RESULT, sodass ein Benutzer, der diese Schemata lediglich in einem Prompt erwähnt, sie beim Eingang nicht auslöst:

CREATE OR REPLACE FUNCTION main.governance.block_unsafe_links(
  event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
  CASE
    WHEN event:type::string = 'response'
      AND (contains(lower(event:context.message::string), 'http://')
        OR contains(lower(event:context.message::string), 'javascript:'))
    THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'Response contained an insecure link and was blocked by policy.'))
    ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
  END;

Hängen Sie die Funktion als benutzerdefinierte Richtlinie mit Geltungsbereich für die Antwortphase an:

  1. Auf der Registerkarte Richtlinien klicken Sie auf Neue Richtlinie und geben einen Namen ein, beispielsweise block-unsafe-links.
  2. Wählen Sie im Guardrail-Typ "Benutzerdefiniert" und dann unter main.governance.block_unsafe_links aus.
  3. Wählen Sie unter Phase nur Ausgabe-Schutzmaßnahmen (nach dem Modell) aus, da es sich um eine Antwortrichtlinie handelt.
  4. Setzen Sie Rank auf 20, und klicken Sie dann auf Create policy.

Schritt 4: Überprüfen

Alle drei Richtlinien werden nun auf der Registerkarte Richtlinien des Diensts angezeigt. Verwenden Sie den Playground, um zu bestätigen, dass jede ausgelöst wird:

  1. Klicken Sie auf der Modelldienstseite auf "Chat im Playground".
  2. Senden Sie einen Prompt, der PII enthält, z. B. My SSN is 123-45-6789, store it.. Die PII-Schutzmaßnahme blockiert die Anforderung, und Sie erhalten einen strukturierten Fehler.
  3. Senden Tell me about Project Aurora. Die Anfragenrichtlinie blockiert dies aus folgendem Grund: Anfragen zu vertraulichen Projekten sind nicht zulässig.
  4. Senden Sie eine Eingabeaufforderung, mit der das Modell einen http:// Link zurückgibt. Die Antwortrichtlinie blockiert dies bei ON RESULT aus dem Grund Die Antwort enthielt einen unsicheren Link und wurde durch die Richtlinie blockiert.
  5. Senden Sie einen gewöhnlichen Prompt. Es wird ein normaler Abschluss zurückgegeben.

Wenn Sie den Dienst stattdessen aus Ihren eigenen Apps oder Skripten testen möchten, finden Sie weitere Informationen unter Modellservices abfragen.

Aufräumen

Wenn Sie fertig sind, entfernen Sie die Richtlinien auf der Registerkarte "Richtlinien ": Öffnen Sie jede von Ihnen erstellte Richtlinie, und löschen Sie sie. Legen Sie dann optional die benutzerdefinierten Funktionen ab:

DROP FUNCTION IF EXISTS main.governance.block_confidential_codename;
DROP FUNCTION IF EXISTS main.governance.block_unsafe_links;

Nächste Schritte