Kurz: Implementace mantinely v modelové službě pomocí zásad služby

Important

Tato funkce je v beta verzi. Správci účtu mohou spravovat přístup k této funkci na stránce Previews v konzoli účtu. Viz Manage Azure Databricks preview.

Tento kurz vás provede implementací mantinely v modelové službě dvěma doplňkovými způsoby. V Azure Databricks implementujete ochranné mantinely se zásadami služeb. Modelová služba může předcházet modelu hostovaným Azure Databricks nebo externímu poskytovateli, jako je OpenAI, Anthropic nebo Google, a řídíte oba stejným způsobem:

  • Integrované zásady služby (ochranná omezení): spravované kontroly poskytované službou Azure Databricks a zaměřené na běžná rizika, jako jsou PII, škodlivý obsah, pokusy o jailbreak a halucinace. Připojíte ho tak, že ho vyberete v uživatelském rozhraní bez kódu, který chcete napsat.
  • Vlastní zásady služeb: Funkce SQL, které píšete pro pravidla specifická pro vaši organizaci, jako je název tajného kódu projektu nebo zakázaný vzor odpovědi.

Informace o konceptech zásad služby, integrovaných ochranných omezeních a úplnou referenční příručku pro vytváření najdete v tématech Zásady služby pro zabezpečitelné prostředky AI, Vytvoření a připojení zásady služby a Referenční příručka k funkcím zásad služby.

Obě možnosti připojíte stejným způsobem na kartě Zásady modelové služby v uživatelském rozhraní brány Unity AI Gateway a můžete je kombinovat. Azure Databricks vyhodnocuje každý ze dvou bodů: ON CALL (před vyvoláním modelu) a ON RESULT (po odpovědi modelu). V uživatelském rozhraní vyberete fázi při přiřazení zásady. Vlastní zásada může také omezit svou působnost pouze na jednu fázi pomocí větvení podle event:type.

Scénář: Váš tým zpřístupňuje LLM prostřednictvím služby modelu (main.default.team_chat), kterou volají aplikace a agenti. Chcete blokovat identifikovatelné osobní údaje (PII) se spravovaným mantinelem, blokovat všechny výzvy, které zmíní důvěrný projekt, a blokovat odpovědi, které obsahují nezabezpečený odkaz, a to vše beze změny kódu aplikace.

Na konci tohoto kurzu máte:

  • Integrovaná ochrana PII ve službě.
  • Vlastní zásada pro požadavky, která v ON CALL blokuje důvěrné kódové označení.
  • Vlastní zásada odpovědi, která blokuje nezabezpečené odkazy ve službě ON RESULT.
  • Všechny tři připojené a ověřené z dětského hřiště modelové služby.

Předpoklady

  • Pracovní prostor s podporou Unity Catalog. Viz Začínáme s katalogem Unity.
  • Pro váš účet je povolená verze Preview služby Unity AI Gateway. Viz Manage Azure Databricks preview.
  • Modelová služba pro správu a EXECUTE v ní, abyste ji mohli otestovat. Chcete-li ji vytvořit, viz Vytvoření a správa služeb modelu. Tento tutoriál používá main.default.team_chat.
  • MANAGE pro připojení zásad ve službě Model Service.
  • CREATE FUNCTION ve schématu, ve kterém vytvoříte vlastní funkce zásad (main.governance v tomto kurzu).
  • Pro předdefinované mantinely: model vyhodnocovače, který spouští kontrolu mantinely (soudce LLM), je předem vybrán, takže není potřeba žádné nastavení. Pokud v části Upřesnit možnosti vyberete jiný vyhodnocovací, budete ho potřebovat CAN_QUERY .

Krok 1: Použijte integrované ochranné omezení

Integrovaná ochranná opatření jsou spravované kontroly typu LLM-judge. V nabídce Guardrail type vyberete jednu možnost; služba modelu vyhodnocovatele, která kontrolu spouští (LLM posuzovatel), je pro vás předem vybrána. Dostupné mantinely jsou:

  • Blokování PII (system.ai.block_pii): Odmítne obsah obsahující PII.
  • Nebezpečný obsah (system.ai.block_unsafe_content): Zakazuje nebezpečný nebo škodlivý obsah.
  • Jailbreak (system.ai.block_jailbreak): zakazuje pokusy o injektáž výzvy a jailbreak (jenom žádosti).
  • Halucinace (system.ai.block_hallucination): Zakazuje halucinované odpovědi (pouze odpovědi).

Připojte ke své modelové službě ochranu PII:

  1. V postranním panelu pracovního prostoru klikněte na AI Gateway.
  2. Na kartě Modely vyberte svou modelovou službu (main.default.team_chat).
  3. Otevřete kartu Zásady a potom klikněte na Nová zásada.
  4. Zadejte název, například block-pii.
  5. V části Použít na ponechte Všichni uživatelé účtu nebo omezte zásadu na konkrétní objekty zabezpečení.
  6. V typu Ochranné mantinely vyberte Blokování PII.
  7. Nastavit pořadí na 1. Priorita určuje pořadí vyhodnocení: nejnižší priorita se spustí jako první u požadavku a jako poslední u odpovědi.
  8. V části Fáze vyberte vstupní mantinely (před modelem) i výstupní mantinely (po modelu), aby se mantinely spouštěly na žádostech a odpovědích.
  9. Klikněte na Create policy (Vytvořit zásadu).

Mantinely používají předem vybranou službu modelu vyhodnocovače (soudce LLM, který spouští kontrolu). Chcete-li použít jiný model, před vytvořením zásady rozbalte možnost Rozšířené možnosti; pro vybraný model potřebujete CAN_QUERY.

Note

Po připojení zásady ke službě Model Service nebo po její změně před testováním krátce počkejte, než se změna projeví. Během beta verze může trvat několik minut, než se rozšíří.

Krok 2: Přidejte vlastní zásadu požadavků

Mantinely pokrývají běžná rizika. Pro pravidlo specifické pro vaši organizaci napište vlastní zásady. Vlastní politika je uživatelsky definovaná funkce SQL (UDF), která přijímá (event VARIANT) a vrací rozhodnutí; text zprávy čtěte z event:context.message, což je API-agnostická projekce poslední zprávy uživatele nebo asistenta.

Tato zásada odmítne všechny požadavky, které zmíní název důvěrného kódu projektu. Zaškrtávací políčko event:type::string = 'request' to omezuje pouze na 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 a lower jsou součástí podmnožiny jazyka SQL podporované v tělech zásad. Úplný seznam a pravidla pro zápis funkce zásad najdete v tématu Referenční informace o funkcích zásad služby.

Připojte funkci jako vlastní zásadu s vymezenou fází požadavku:

  1. Na kartě Zásady modelové služby klikněte na Nové zásady a zadejte název, například block-codename.
  2. V Typ guardrailu vyberte Vlastní.
  3. Klepněte na tlačítko Vlastní funkce, pak vyberte funkci a vyberte main.governance.block_confidential_codename.
  4. V části Fáze vyberte pouze vstupní mantinely (před modelem), protože se jedná o zásadu požadavku.
  5. Nastavte Rank na 10a potom klikněte na Vytvořit zásadu.

Krok 3: Přidání vlastní zásady odpovědi

Model může také vrátit obsah, který nechcete propustit dál. Tato zásada odmítne odpověď, která obsahuje nezabezpečený odkaz ( http:// adresu URL nebo javascript: identifikátor URI). Tato event:type::string = 'response' kontrola ji omezuje pouze na ON RESULT, takže ji uživatel, který tato schémata pouze zmíní ve výzvě, nespustí už při zadání:

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;

Připojte funkci jako vlastní zásadu s vymezenou fází odezvy:

  1. Na kartě Zásady klikněte na Nová zásada a zadejte název, například block-unsafe-links.
  2. V části Typ mantinelu vyberte možnost Vlastní a pak vyberte main.governance.block_unsafe_links u Vlastní funkce.
  3. V části Fáze vyberte pouze ochranná pravidla pro výstup (Po modelu), protože se jedná o pravidla pro odpovědi.
  4. Nastavte Rank na 20a potom klikněte na Vytvořit zásadu.

Krok 4: Ověření

Všechny tři zásady se teď zobrazují na kartě Zásady služby. Použijte dětské hřiště k potvrzení každého požáru:

  1. Na stránce služby modelu klikněte na Chat v dětském hřišti.
  2. Odešlete prompt obsahující PII, například My SSN is 123-45-6789, store it. Ochrana PII požadavek zablokuje a obdržíte strukturovanou chybu.
  3. Odeslat Tell me about Project Aurora. Zásady pro požadavky jej zablokují z tohoto důvodu: Požadavky týkající se důvěrných projektů nejsou povoleny.
  4. Odešlete prompt, který přiměje model vrátit odkaz http://. Zásada odpovědí ji zablokuje ve fázi ON RESULT z důvodu Odpověď obsahovala nezabezpečený odkaz a byla zablokována zásadami.
  5. Odešlete běžnou výzvu. Vrátí normální dokončení.

Pokud chcete službu otestovat z vlastních aplikací nebo skriptů, přečtěte si téma Služby modelu dotazů.

Vyčištění

Až budete hotovi, odeberte zásady na kartě Zásady : otevřete každou zásadu, kterou jste vytvořili, a odstraňte ji. Potom volitelně vypusťte vlastní funkce:

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

Další kroky