Dela via


Konfigurera AI Gateway på modellserverslutpunkter

I den här artikeln får du lära dig hur du konfigurerar Mosaic AI Gateway på en modell som betjänar slutpunkten.

Requirements

Konfigurera AI Gateway med hjälp av användargränssnittet

I avsnittet AI Gateway på sidan för att skapa slutpunkter kan du konfigurera AI Gateway-funktioner individuellt. Se Funktioner som stöds för vilka funktioner som är tillgängliga på externa modeller som betjänar slutpunkter och etablerade dataflödesslutpunkter.

Konfigurera AI Gateway-funktioner

I följande tabell sammanfattas hur du konfigurerar AI-gatewayen när slutpunkten skapas med hjälp av serveringsgränssnittet. Om du föredrar att göra detta programmatiskt kan du läsa notebook-exemplet.

Feature Så här aktiverar du Details
Användningsspårning Välj Aktivera användningsspårning för att aktivera spårning och övervakning av dataanvändningsmått.
    • Du måste ha Unity Catalog aktiverat.
    • Kontoadministratörer måste aktivera schemat för serversystemtabellen innan systemtabellerna används:
      • system.serving.endpoint_usage, som samlar in tokenantal för varje begäran till slutpunkten.
      • system.serving.served_entities, som lagrar metadata för varje grundmodell.
      • Se Tabellscheman för användningsspårning
    • Endast kontoadministratörer har behörighet att visa eller köra frågor mot tabellen served_entities eller endpoint_usage, även om användaren som hanterar slutpunkten måste aktivera användningsspårning. Se Bevilja åtkomst till systemtabeller.
    • Antalet indata- och utdatatoken beräknas som (text_length+1)/4 om tokenantalet inte returneras av modellen.
Nyttolastloggning Välj Aktivera slutsatsdragningstabeller för att automatiskt logga begäranden och svar från slutpunkten till Delta-tabeller som hanteras av Unity Catalog.
AI-skyddsräcken Se Konfigurera AI Guardrails i användargränssnittet.
    • Skyddsräcken förhindrar att modellen interagerar med osäkert och skadligt innehåll som identifieras i modellindata och utdata.
    • Utdataskydd stöds inte för inbäddningsmodeller eller för strömning.
Hastighetsbegränsningar Välj Frekvensgränser för att hantera och ange antalet frågor per minut (QPM) eller token per minut (TPM) som slutpunkten kan stödja.
  • Hastighetsbegränsningar gäller endast för användare som har behörighet att ställa frågor till API-änden. Du kan definiera frågebaserade och tokenbaserade hastighetsgränser på olika nivåer:
    • Använd fältet Slutpunkt för att ange det högsta antal QPM- eller TPM-värden som hela slutpunkten kan hantera. Den här gränsen gäller för all trafik, oavsett användare.
    • Använd fältet Användare (standard) för att ange en standardfrekvensgräns per användare som gäller för alla användare av slutpunkten, såvida inte en mer specifik anpassad hastighetsgräns har definierats.
    • Du kan ange anpassade hastighetsgränser för:
      • Enskilda användare eller tjänstens huvudnamn. Dessa prioriteras framför anpassade hastighetsgränser för användargrupper.
      • Användargrupper. Den här gränsen är en delad hastighetsgräns för alla medlemmar i gruppen.
    • TPM-hastighetsgränser kan inte tillämpas på serverslutpunkter som hanterar anpassade modeller eller agenter.
    • Som standard finns det inga hastighetsgränser som konfigurerats för användare eller slutpunkten.
    • Högst 20 hastighetsgränser och upp till 5 gruppspecifika hastighetsgränser kan anges på en slutpunkt.
    • Gränsen för slutpunktsfrekvens är ett globalt maximum. Om den här gränsen överskrids blockeras alla begäranden till slutpunkten, oavsett användarspecifika eller gruppspecifika hastighetsgränser.
    • Om en slutpunkt, användare eller tjänstens huvudnamn har både en frågebaserad hastighetsgräns och tokenbaserad hastighetsgräns angiven tillämpas den mer restriktiva hastighetsgränsen.
    • Anpassade hastighetsgränser åsidosätter användarens standardhastighetsgräns.
      • Om en användare tillhör både en användarspecifik gräns och en gruppspecifik gräns tillämpas den användarspecifika gränsen.
      • Om en användare tillhör flera användargrupper med olika QPM- eller TPM-hastighetsgränser är användaren begränsad om de överskrider alla QPM-hastighetsgränser eller alla TPM-hastighetsgränser för sina användargrupper.
Trafikdelning I avsnittet Serverade entiteter anger du procentandelen trafik som du vill dirigeras till specifika modeller.
Information om hur du konfigurerar trafikdelning på slutpunkten programmatiskt finns i Hantera flera externa modeller till en slutpunkt.
    • Om du vill dirigera all trafik till en specifik modell anger du den till 100%.
    • Om du vill ange en reservmodell lägger du till modellen i slutpunkten och anger dess procentandel av trafiken till 0%.
    • Om du vill belastningsutjämna trafik mellan modeller och konfigurera alternativ kan du förvänta dig följande beteende:
      • Begäranden delas slumpmässigt mellan entiteterna baserat på de tilldelade trafikprocenterna.
      • Om begäran träffar den första entiteten och misslyckas återgår den till nästa entitet i den ordning som de hanterade entiteterna listades när slutpunkten skapades eller den senaste slutpunktsuppdateringen.
      • Trafikdelningen påverkar inte ordningen för återställningsförsök.
Fallbacks Välj Aktivera reservlösningar i AI Gateway-sektionen för att skicka din begäran till andra modeller vid slutpunkten som reservlösningar.
    • Om den första begäran som dirigeras till en viss entitet returnerar ett 429- eller 5XX-fel återgår begäran till nästa entitet som anges på slutpunkten.
    • Ordningen i vilken begäranden omdirigeras till reservbetjänade entiteter baseras på den ordning som modellerna listas i vid skapandet av slutpunkten eller vid den senaste uppdateringen av slutpunkten. Trafikprocenten påverkar inte ordningen för återställningsförsök som skickas till betjänade entiteter.
    • Återgångar stöds endast för externa modeller.
    • Du måste fördela trafikprocent till andra modeller som tillhandahålls på slutpunkten innan du kan aktivera reservlösningar till externa modeller.
    • Alla externa modeller som tilldelats 0% trafik fungerar uteslutande som reservmodell.
    • Du kan ha högst två reservlösningar.
    • Varje entitet provas en gång i sekventiell ordning tills begäran lyckas. Om alla listade entiteter har provats utan framgång misslyckas begäran.
    • Det första lyckade eller senaste misslyckade begärandeförsöket och svaret loggas i både loggningstabellerna för användningsspårning och nyttolast.

Följande diagram visar ett exempel på reservlösningar där,

  • Tre betjänade entiteter hanteras på en modell som betjänar slutpunkten.
  • Begäran dirigeras ursprungligen till Den serverade entiteten 3.
  • Om begäran returnerar ett 200-svar, lyckades den på Betjänad entitet 3, och begäran samt dess svar loggas till tabellerna för användningsspårning och nyttolastloggning i slutpunkten.
  • Om begäran returnerar ett 429- eller 5xx-fel på den betjänade entiteten 3 återgår begäran till nästa betjänade entitet på slutpunkten, Hanterad entitet 1.
    • Om begäran returnerar ett 429- eller 5xx-fel på den betjänade entiteten 1 återgår begäran till nästa betjänade entitet på slutpunkten, Hanterad entitet 2.
    • Om begäran returnerar ett 429- eller 5xx-fel på den betjänade entiteten 2 misslyckas begäran eftersom detta är det maximala antalet återställningsentiteter. Den misslyckade begäran och svarsfelet loggas till loggningstabellerna för användningsspårning och nyttolast.

Exempel på reservdiagram

Konfigurera AI Guardrails i användargränssnittet

Important

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Följande tabell visar hur du konfigurerar de skyddsräcken som stöds av .

Guardrail Så här aktiverar du
Safety Välj Säkerhet för att aktivera skydd för att förhindra att din modell interagerar med osäkert och skadligt innehåll.
Identifiering av personligt identifierbar information (PII) Välj blockera eller maskera PII-data, till exempel namn, adresser, kreditkortsnummer om sådan information identifieras i slutpunktsbegäranden och svar. Annars väljer du Ingen för att ingen PII-identifiering ska ske.

Konfigurera AI Guardrail-funktioner

Tabellscheman för användningsspårning

I följande avsnitt sammanfattas scheman för användningsspårningstabeller för system.serving.served_entities- och system.serving.endpoint_usage-systemtabeller.

system.serving.served_entities tabellschema för användningsspårning

Den system.serving.served_entities systemtabellen för användningsspårning har följande schema:

Kolumnnamn Description Type
served_entity_id Det unika ID:t för den betjänade entiteten. STRING
account_id Kundkonto-ID för Delta Sharing. STRING
workspace_id Kundens arbetsyte-ID för tjänstens slutpunkt. STRING
created_by Skaparens ID. För pay-per-token-slutpunkter är detta System-User STRING
endpoint_name Namnet på tjänsteslutpunkten. STRING
endpoint_id Det unika ID:t för tjänsteslutpunkten. STRING
served_entity_name Namnet på den betjänade entiteten. STRING
entity_type Typ av entitet som hanteras. Kan vara FEATURE_SPEC, EXTERNAL_MODEL, FOUNDATION_MODEL, eller CUSTOM_MODEL STRING
entity_name Det underliggande namnet på entiteten. Annorlunda från served_entity_name, som är ett namn angivet av användaren. Till exempel är entity_name namnet på Unity Catalog-modellen. STRING
entity_version Versionen av den betjänade entiteten. STRING
endpoint_config_version Versionen av slutpunktskonfigurationen. INT
task Aktivitetstypen. Kan vara llm/v1/chat, llm/v1/completionseller llm/v1/embeddings. STRING
external_model_config Konfigurationer för externa modeller. Till exempel: {Provider: OpenAI} STRUCT
foundation_model_config Konfigurationer för grundmodeller. Till exempel{min_provisioned_throughput: 2200, max_provisioned_throughput: 4400} STRUCT
custom_model_config Konfigurationer för anpassade modeller. Till exempel{ min_concurrency: 0, max_concurrency: 4, compute_type: CPU } STRUCT
feature_spec_config Konfigurationer för funktionsspecifikationer. Till exempel: { min_concurrency: 0, max_concurrency: 4, compute_type: CPU } STRUCT
change_time Tidsstämpel för ändring för den betjänade entiteten. TIMESTAMP
endpoint_delete_time Tidsstämpel för borttagning av entitet. Slutpunkten är containern för den betjänade entiteten. När slutpunkten har tagits bort tas även den hanterade entiteten bort. TIMESTAMP

system.serving.endpoint_usage tabellschema för användningsspårning

Den system.serving.endpoint_usage systemtabellen för användningsspårning har följande schema:

Kolumnnamn Description Type
account_id Kundkontots ID. STRING
workspace_id Kundens arbetsyte-ID för tjänande slutpunkt. STRING
client_request_id Användaren angav begärandeidentifierare som kan anges i den modell som betjänar begärandetexten. För anpassade modellslutpunkter stöds detta inte för begäranden som är större än 4MiB. STRING
databricks_request_id En Azure Databricks-genererad begärandeidentifierare som är kopplad till alla modelltjänstbegäranden. STRING
requester ID:t för användaren eller tjänstens huvudidentitet vars behörigheter används för anropsförfrågan till tjänsteslutpunkten. STRING
status_code HTTP-statuskoden som returnerades från modellen. INTEGER
request_time Tidsstämpeln där begäran tas emot. TIMESTAMP
input_token_count Tokenantalet för indata. Detta blir 0 för anpassade modellbegäranden. LONG
output_token_count Tokenantalet för utdata. Detta blir 0 för anpassade modellbegäranden. LONG
input_character_count Teckenantalet för indatasträngen eller prompten. Detta blir 0 för anpassade modellbegäranden. LONG
output_character_count Teckenantalet för utdatasträngen för svaret. Detta blir 0 för anpassade modellbegäranden. LONG
usage_context Den mapp som användaren angav innehåller identifierare för slutanvändaren eller kundprogrammet som anropar slutpunkten. Mer information finns i Definiera användning med usage_context. För anpassade modellslutpunkter stöds detta inte för begäranden som är större än 4MiB. MAP
request_streaming Om begäran är i strömmande läge. BOOLEAN
served_entity_id Det unika ID:t som används för att kopplas till system.serving.served_entities-dimensionstabellen för att hämta information om slutpunkten och den tillhandahållna entiteten. STRING

Definiera användning ytterligare med usage_context

När du kör frågor mot en extern modell med användningsspårning aktiverat kan du ange parametern usage_context med typen Map[String, String]. Mappningen av användningskontexten visas i tabellen för användningsspårning i kolumnen usage_context. Kartstorleken usage_context får inte överstiga 10 KiB.

{
  "messages": [
    {
      "role": "user",
      "content": "What is Databricks?"
    }
  ],
  "max_tokens": 128,
  "usage_context":
    {
      "use_case": "external",
      "project": "project1",
      "priority": "high",
      "end_user_to_charge": "abcde12345",
      "a_b_test_group": "group_a"
    }
}

Om du använder OpenAI Python-klienten kan du specificera usage_context genom att inkludera den i parametern extra_body.

from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

response = client.chat.completions.create(
    model="databricks-claude-3-7-sonnet",
    messages=[{"role": "user", "content": "What is Databricks?"}],
    temperature=0,
    extra_body={"usage_context": {"project": "project1"}},
)
answer = response.choices[0].message.content
print("Answer:", answer)

Kontoadministratörer kan aggregera olika rader baserat på användningskontexten för att få insikter och kan koppla den här informationen till informationen i loggningstabellen för nyttolast. Till exempel kan du lägga till end_user_to_charge till usage_context för att spåra kostnadsattribution för slutanvändare.

Övervaka slutpunktsanvändning

Om du vill övervaka slutpunktsanvändningen kan du ansluta systemtabellerna och slutsatsdragningstabellerna för slutpunkten.

Sammanfoga systemtabeller

Det här exemplet gäller för externa, etablerade dataflöden, pay-per-token och anpassade modellslutpunkter.

Om du vill ansluta endpoint_usage- och served_entities-systemtabellerna använder du följande SQL:

SELECT * FROM system.serving.endpoint_usage as eu
JOIN system.serving.served_entities as se
ON eu.served_entity_id = se.served_entity_id
WHERE created_by = "\<user_email\>";

Uppdatera AI Gateway-funktioner på slutpunkter

Du kan uppdatera AI Gateway-funktioner på modellbetjänande slutpunkter som tidigare hade dem aktiverade och slutpunkter som inte hade dem. Det tar cirka 20–40 sekunder att tillämpa uppdateringar av AI Gateway-konfigurationer, men det kan ta upp till 60 sekunder att uppdatera hastighetsbegränsningen.

Följande visar hur du uppdaterar AI Gateway-funktioner på en modell som betjänar slutpunkten med hjälp av användargränssnittet för servering.

I avsnittet Gateway på slutpunktssidan kan du se vilka funktioner som är aktiverade. Om du vill uppdatera de här funktionerna klickar du på Redigera AI Gateway.

Uppdatera AI Gateway-funktioner

Notebook-exempel

Följande notebook-fil visar hur du programmatiskt aktiverar och använder Ai Gateway-funktioner för Databricks Mosaic för att hantera och styra modeller från leverantörer. Mer information om REST API finns i PUT /api/2.0/serving-endpoints/{name}/ai-gateway .

Aktivera Databricks Mosaic AI Gateway-funktioner för notebook-filen

Hämta anteckningsbok

Ytterligare resurser