Udostępnij za pośrednictwem


Konfiguracja bramy AI na punktach końcowych obsługi modelu

Z tego artykułu dowiesz się, jak skonfigurować Mosaic AI Gateway na końcowym punkcie obsługującym model.

Wymagania

Konfigurowanie bramy sztucznej inteligencji przy użyciu interfejsu użytkownika

W sekcji AI Gateway na stronie tworzenia punktu końcowego można indywidualnie skonfigurować jego funkcje. Zobacz Obsługiwane funkcje, aby dowiedzieć się, które funkcje są dostępne na zewnętrznych punktach końcowych obsługujących model oraz na punktach końcowych z aprowizowaną przepustowością.

Konfigurowanie funkcji bramy sztucznej inteligencji

Poniższa tabela zawiera podsumowanie sposobu konfigurowania Gateway AI podczas tworzenia punktu końcowego za pomocą interfejsu obsługi. Jeśli wolisz zrobić to programowo, zobacz przykład notebooka.

Funkcja Jak włączyć Szczegóły
Śledzenie użycia Wybierz pozycję Włącz śledzenie użycia, aby włączyć śledzenie i monitorowanie metryk użycia danych.
  • Musisz mieć włączony Unity Catalog.
  • Administratorzy kont muszą włączyć schemat tabeli systemu obsługującego przed użyciem tabel systemowych: system.serving.endpoint_usage, który przechwytuje liczbę tokenów dla każdego żądania do punktu końcowego i system.serving.served_entities, który przechowuje metadane dla każdego modelu podstawowego.
  • Zobacz Schematy tabeli śledzenia użycia
  • Tylko administratorzy kont mają uprawnienia do wyświetlania lub wykonywania zapytań dotyczących tabeli served_entities lub tabeli endpoint_usage, mimo że użytkownik zarządzający punktem końcowym musi włączyć śledzenie użycia. Zobacz Udzielanie dostępu do tabel systemowych
  • Liczba tokenów wejściowych i wyjściowych jest szacowana jako (text_length+1)/4, jeśli liczba tokenów nie jest zwracana przez model.
Rejestrowanie danych ładunkowych Wybierz pozycję Włącz tabele wnioskowania, aby automatycznie rejestrować żądania i odpowiedzi z punktu końcowego do tabel Delta zarządzanych przez Unity Catalog.
  • Musisz mieć włączony Unity Catalog i dostęp CREATE_TABLE do określonego schematu w katalogu.
  • Tabele wnioskowania obsługiwane przez bramę AI mają inny schemat niż tabele wnioskowania stworzone do obsługi punktów końcowych, które obsługują modele niestandardowe. Zobacz schemat tabeli wnioskowania obsługiwanej przez Bramę AI .
  • Dane rejestrowania ładunku wypełniają te tabele mniej niż godzinę po wykonaniu zapytania o punkt końcowy.
  • Ładunki większe niż 1 MB nie są rejestrowane.
  • Ładunek odpowiedzi agreguje odpowiedź wszystkich zwróconych fragmentów.
  • Przesyłanie strumieniowe jest obsługiwane. W scenariuszach przesyłania strumieniowego treść odpowiedzi agreguje odpowiedź odebranych fragmentów.
Zabezpieczenia sztucznej inteligencji Zobacz Konfigurowanie barier AI Guardrails w interfejsie użytkownika.
  • Zabezpieczenia uniemożliwiają modelowi interakcję z niebezpieczną i szkodliwą zawartością wykrytą w danych wejściowych i wyjściowych modelu.
  • Mechanizmy kontroli wyjściowej nie są obsługiwane dla modeli osadzających ani dla przesyłania strumieniowego.
Limity szybkości Wybierz ograniczenia szybkości, aby egzekwować limity liczby żądań zarządzające ruchem dla danego użytkownika i punktu końcowego.
  • Limity szybkości są definiowane w zapytaniach na minutę (QPM).
  • Wartość domyślna to Brak limitu zarówno dla użytkownika, jak i punktu końcowego.
Dzielenie ruchu W sekcji Obsługiwane jednostki określ procent ruchu, który ma być kierowany do określonych modeli.
Aby programowo skonfigurować podział ruchu w punkcie końcowym, zobacz Obsługa wielu modeli zewnętrznych w punkcie końcowym.
  • Aby skierować cały ruch do określonego modelu, ustaw parametr na 100%.
  • Jeśli chcesz określić model tylko rezerwowy, dodaj ten model do punktu końcowego i ustaw jego wartość procentową ruchu na 0%.
  • Aby równoważyć obciążenie ruchu między modelami i skonfigurować opcje awaryjne, można oczekiwać następującego zachowania:
  • Żądania są losowo dzielone między jednostki na podstawie przypisanych wartości procentowych ruchu.
  • Jeśli żądanie trafi na pierwszą jednostkę i zakończy się niepowodzeniem, przechodzi do następnej jednostki zgodnie z kolejnością, w jakiej jednostki były wymienione podczas tworzenia punktu końcowego lub najnowszej aktualizacji punktu końcowego.
  • Podział ruchu nie ma wpływu na kolejność prób powrotu.
Alternatywy Wybierz pozycję Włącz mechanizmy awaryjne w sekcji Brama dla sztucznej inteligencji, aby wysłać żądanie do innych obsługiwanych modeli na punkcie końcowym jako mechanizm awaryjny.
  • Jeśli początkowe żądanie kierowane do określonej jednostki zwraca błąd 429 lub 5XX, żądanie powraca do następnej jednostki wymienionej w punkcie końcowym.
  • Kolejność przekierowywania żądań do zapasowych obsługujących jednostek zależy od kolejności modeli wymienionych podczas tworzenia punktu końcowego lub ostatniej aktualizacji punktu końcowego. Procent ruchu nie ma wpływu na kolejność prób powrotu wysyłanych do obsługiwanych jednostek.
  • Obsługa funkcji rezerwowych jest zapewniona tylko w przypadku modeli zewnętrznych .
  • Zanim będzie można włączyć opcje awaryjne dla modeli zewnętrznych, należy przypisać wartości procentowe ruchu do innych modeli wdrożonych w punkcie końcowym.
  • Każdy model zewnętrzny przypisany do funkcji ruchu 0% działa wyłącznie jako model zapasowy.
  • Można mieć maksymalnie dwa rezerwowe.
  • Każda jednostka jest przetwarzana raz w kolejności sekwencyjnej, dopóki żądanie się nie powiedzie. Jeśli wszystkie wymienione entites zostały wypróbowane bez powodzenia żądanie zakończy się niepowodzeniem.
  • Pierwsza pomyślna lub ostatnia nieudana próba żądania i odpowiedź są rejestrowane zarówno w tabelach śledzenia użycia, jak i rejestrowania ładunku.

Na poniższym diagramie przedstawiono przykład, gdzie,

  • Trzy obsługiwane jednostki są obsługiwane w punkcie końcowym obsługującym model.
  • Żądanie jest pierwotnie kierowane do obsługiwanej jednostki 3.
  • Jeśli żądanie zwróci odpowiedź 200, żądanie zakończyło się pomyślnie w Obsłużona jednostka 3, a żądanie i jego odpowiedź są rejestrowane w tabelach śledzenia użycia i rejestrowania ładunków punktu końcowego.
  • Jeśli żądanie zwróci błąd 429 lub 5xx dla jednostki obsługiwanej 3, żądanie przechodzi do następnej obsługiwanej jednostki w punkcie końcowym, jednostki obsługiwanej 1.
    • Jeśli żądanie zwróci błąd 429 lub 5xx dla Obsługiwanej jednostki 1, żądanie przejdzie do następnej obsługiwanej jednostki na punkcie końcowym, Obsługiwanej jednostki 2.
    • Jeśli żądanie zwraca błąd 429 lub 5xx dla Obsługiwana jednostka 2, żądanie kończy się niepowodzeniem, ponieważ jest to maksymalna liczba jednostek zapasowych. Żądanie nie powiodło się i błąd odpowiedzi są rejestrowane w tabelach śledzenia użycia i rejestrowania ładunków.

przykładowy diagram rezerwowy

Konfigurowanie barier AI Guardrails w interfejsie użytkownika

Poniższa tabela pokazuje, jak skonfigurować obsługiwane barierki zabezpieczające .

Poręcze Jak włączyć Szczegóły
Bezpieczeństwo Wybierz pozycję Safety , aby umożliwić ochronę, aby uniemożliwić modelowi interakcję z niebezpieczną i szkodliwą zawartością.
Wykrywanie danych osobowych Wybierz wykrywanie PII, aby wykrywać dane osobowe, takie jak imiona, adresy, numery kart kredytowych.
Prawidłowe tematy Tematy można wpisać bezpośrednio w tym polu. Jeśli masz wiele wpisów, pamiętaj, aby nacisnąć Enter po każdym temacie. Alternatywnie możesz przekazać plik .csv lub .txt . Można określić maksymalnie 50 prawidłowych tematów. Każdy temat nie może przekraczać 100 znaków
Nieprawidłowe słowa kluczowe Tematy można wpisać bezpośrednio w tym polu. Jeśli masz wiele wpisów, pamiętaj, aby nacisnąć Enter po każdym temacie. Alternatywnie możesz przekazać plik .csv lub .txt . Można określić maksymalnie 50 nieprawidłowych słów kluczowych. Każde słowo kluczowe nie może przekraczać 100 znaków.

Konfigurowanie funkcji AI Guardrail

Schematy tabel śledzenia użycia

W poniższych sekcjach podsumowano schematy tabeli śledzenia użycia dla tabel systemu system.serving.served_entities i system.serving.endpoint_usage.

schemat tabeli śledzenia użycia system.serving.served_entities

Tabela systemu śledzenia użycia system.serving.served_entities ma następujący schemat:

Nazwa kolumny opis Typ
served_entity_id Unikatowy identyfikator obsługiwanej jednostki. STRUNA
account_id Identyfikator konta klienta dla Delta Sharing. STRUNA
workspace_id Identyfikator obszaru roboczego klienta punktu końcowego obsługi. STRUNA
created_by Identyfikator twórcy. STRUNA
endpoint_name Nazwa obsługującego punktu końcowego. STRUNA
endpoint_id Unikatowy identyfikator punktu końcowego obsługi. STRUNA
served_entity_name Nazwa obsługiwanej jednostki. STRUNA
entity_type Typ obsługiwanej jednostki. Może to być FEATURE_SPEC, EXTERNAL_MODEL, FOUNDATION_MODELlub CUSTOM_MODEL STRUNA
entity_name Podstawowa nazwa jednostki. Różni się od served_entity_name, które jest nazwą podaną przez użytkownika. Na przykład entity_name jest nazwą modelu Unity Catalog. STRUNA
entity_version Wersja obsługiwanej jednostki. STRUNA
endpoint_config_version Wersja konfiguracji punktu końcowego. INT
task Typ zadania. Może to być llm/v1/chat, llm/v1/completionslub llm/v1/embeddings. STRUNA
external_model_config Konfiguracje modeli zewnętrznych. Na przykład {Provider: OpenAI} STRUKTURA
foundation_model_config Konfiguracje modeli podstawowych. Na przykład{min_provisioned_throughput: 2200, max_provisioned_throughput: 4400} STRUKTURA
custom_model_config Konfiguracje modeli niestandardowych. Na przykład{ min_concurrency: 0, max_concurrency: 4, compute_type: CPU } STRUCT
feature_spec_config Konfiguracje specyfikacji funkcji. Na przykład { min_concurrency: 0, max_concurrency: 4, compute_type: CPU } STRUKTURA
change_time Sygnatura czasowa zmiany dla obsługiwanej jednostki. TIMESTAMP
endpoint_delete_time Sygnatura czasowa usuwania jednostki. Punkt końcowy jest kontenerem dla obsługiwanej jednostki. Po usunięciu punktu końcowego obsługiwana jednostka zostanie również usunięta. TIMESTAMP

schemat tabeli monitorowania użycia system.serving.endpoint_usage

Tabela systemu śledzenia użycia system.serving.endpoint_usage ma następujący schemat:

Nazwa kolumny opis Typ
account_id Identyfikator konta klienta. STRUNA
workspace_id Identyfikator obszaru roboczego klienta obsługującego punkt końcowy. STRUNA
client_request_id Użytkownik podał identyfikator żądania, który można określić w treści żądania obsługującego model. STRUNA
databricks_request_id Identyfikator żądania wygenerowany przez Azure Databricks dołączony do wszystkich żądań obsługi modelu. STRUNA
requester Identyfikator użytkownika lub jednostki usługi, którego uprawnienia są wykorzystywane do żądania wywołania obsługiwanego punktu końcowego. STRUNA
status_code Kod stanu HTTP zwrócony z modelu. LICZBA CAŁKOWITA
request_time Moment otrzymania żądania. TIMESTAMP
input_token_count Liczba tokenów danych wejściowych. DŁUGI
output_token_count Liczba tokenów danych wyjściowych. DŁUGI
input_character_count Liczba znaków ciągu wejściowego lub monitu. DŁUGI
output_character_count Liczba znaków ciągu wyjściowego odpowiedzi. DŁUGI
usage_context Użytkownik podał mapę zawierającą identyfikatory użytkownika końcowego lub aplikacji klienta, która wykonuje wywołanie punktu końcowego. Zobacz Dalsze definiowanie użycia za pomocą usage_context. MAPA
request_streaming Czy żądanie jest w trybie strumienia. BOOLEAN
served_entity_id Unikatowy identyfikator używany do łączenia z tabelą wymiarów system.serving.served_entities dla wyszukiwania informacji o punkcie docelowym i obsługiwanej jednostce. STRUNA

Dalsze definiowanie użycia za pomocą polecenia usage_context

Podczas wykonywania zapytań dla modelu zewnętrznego z włączonym śledzeniem użycia można podać parametr usage_context o typie Map[String, String]. Mapowanie kontekstu użycia jest wyświetlane w tabeli śledzenia użycia w kolumnie usage_context. Rozmiar usage_context mapy nie może przekraczać 10 KiB.

Administratorzy kont mogą agregować różne wiersze na podstawie kontekstu użycia, aby uzyskać szczegółowe informacje i połączyć te informacje z informacjami w tabeli rejestrowania ładunków. Możesz na przykład dodać end_user_to_charge do usage_context w celu śledzenia przypisania kosztów dla użytkowników końcowych.

{
  "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"
    }
}

Aktualizacja funkcji AI Gateway na endpointach

Można zaktualizować funkcje bramy sztucznej inteligencji na punktach końcowych do serwowania modeli, które miały wcześniej włączone te funkcje, jak również na tych, które ich nie miały. Zastosowanie aktualizacji konfiguracji bramy sztucznej inteligencji trwa około 20–40 sekund, jednak ograniczanie szybkości aktualizacji może potrwać do 60 sekund.

Poniżej pokazano, jak zaktualizować funkcje bramy AI w punkcie końcowym obsługującym model przy użyciu interfejsu użytkownika Serving UI.

W sekcji Brama strony punktu końcowego można zobaczyć, które funkcje są włączone. Aby zaktualizować te funkcje, kliknij Edytuj bramkę AI.

Aktualizacja funkcji AI Gateway

Przykład notebooka

W poniższym zeszycie pokazano, jak programowo włączyć i używać funkcji bramy Databricks Mosaic AI Gateway do zarządzania i nadzorowania modeli pochodzących od dostawców. Aby uzyskać szczegółowe informacje o interfejsie API REST, zobacz PUT /api/2.0/serving-endpoints/{name}/ai-gateway.

Włącz funkcje usługi Databricks Mosaic AI Gateway

Weź notesnik

Dodatkowe zasoby