Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak vytvořit model obsluhující koncové body, které obsluhují vlastní modely pomocí služby Databricks Model Serving.
Obsluha modelu poskytuje následující možnosti pro obsluhu vytváření koncových bodů:
- Uživatelské rozhraní obsluhy
- REST API
- Sada SDK pro nasazení MLflow
Informace o vytváření koncových bodů, které obsluhují modely generující AI, najdete v tématu Vytvoření základního modelu obsluhujícího koncové body.
Požadavky
- Váš pracovní prostor musí být v podporované oblasti.
- Pokud ve svém modelu používáte vlastní knihovny nebo knihovny ze serveru privátního zrcadlení, přečtěte si téma Použití vlastních knihoven Pythonu s obsluhou modelů před vytvořením koncového bodu modelu.
- Pokud chcete vytvářet koncové body pomocí sady SDK pro nasazení MLflow, musíte nainstalovat klienta nasazení MLflow. Pokud ho chcete nainstalovat, spusťte:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Řízení přístupu
Informace o možnostech řízení přístupu pro model obsluhující koncové body pro správu koncových bodů najdete v tématu Správa oprávnění pro koncový bod obsluhující model.
Identita, pod kterou běží služební koncový bod modelu, je svázaná s původním tvůrcem koncového bodu. Po vytvoření koncového bodu není možné přidruženou identitu změnit ani aktualizovat v koncovém bodu. Tato identita a její přidružená oprávnění se používají pro přístup k prostředkům katalogu Unity při nasazování. Pokud identita nemá příslušná oprávnění pro přístup k potřebným prostředkům katalogu Unity, musíte koncový bod odstranit a znovu ho vytvořit v rámci uživatele nebo instančního objektu, který má přístup k těmto prostředkům katalogu Unity.
Můžete také přidat proměnné prostředí pro uložení přihlašovacích údajů pro obsluhu modelu. Viz Konfigurace přístupu k prostředkům z koncových bodů obsluhujících model
Vytvoření koncového bodu
Obsluha uživatelského rozhraní
Můžete vytvořit koncový bod pro obsluhu modelu pomocí uživatelského rozhraní Serving.
Klikněte na Serving na bočním panelu pro zobrazení rozhraní Serving UI.
Klikněte na Vytvořit koncový bod obsluhy.
Pro modely zaregistrované v registru modelů pracovního prostoru nebo modely v katalogu Unity:
Do pole Název zadejte název vašeho koncového bodu.
- Názvy koncových bodů nemůžou používat předponu
databricks-. Tato předpona je vyhrazená pro předkonfigurované koncové body Databricks.
- Názvy koncových bodů nemůžou používat předponu
V části Obsluhované entity
- Klikněte do pole Entita a otevřete formulář Vybrat obsluhovanou entitu.
- Vyberte my models – Unity Catalog nebo My models – Registr modelů na základě toho, kde je váš model zaregistrovaný. Formulář se dynamicky aktualizuje na základě vašeho výběru.
- Ne všechny modely jsou vlastní modely. Modely můžou být základní modely nebo funkce pro obsluhu funkcí.
- Zvolte, který model a kterou verzi modelu chcete nasadit.
- Vyberte procento provozu, které chcete směrovat do vašeho obsluhovaného modelu.
- Vyberte, jakou velikost výpočetních prostředků chcete použít. Pro své úlohy můžete použít výpočetní výkon procesoru nebo GPU. Další informace o dostupných výpočetních prostředcích GPU najdete v typech úloh GPU.
- V části Škálování výpočetních prostředků vyberte velikost škálování, která odpovídá počtu požadavků, které tento model může zpracovat současně. Toto číslo by se mělo přibližně rovnat době běhu modelu QPS x. Informace o nastavení výpočetních prostředků definovaných zákazníkem najdete v tématu Omezení obsluhy modelu.
- Dostupné velikosti jsou malé pro 0 až 4 požadavky, středně velké 8 až 16 požadavků a velké pro požadavky 16 až 64.
- Určete, jestli se má koncový bod při nepoužívání škálovat na nulu. Škálování na nulu se nedoporučuje pro produkční koncové body, protože při škálování na nulu není zaručená kapacita. Když se koncový bod škáluje na nulu, je k dispozici další latence, která se označuje také jako studený start, když se koncový bod škáluje zpět tak, aby obsloužil požadavky.
- V části Pokročilá konfigurace můžete:
- Přejmenujte obsluhovanou entitu a přizpůsobte si, jak se zobrazuje v koncovém bodu.
- Přidejte proměnné prostředí pro připojení k prostředkům ze svého koncového bodu nebo zaznamenejte vyhledávací datový rámec funkce do tabulky odvozování koncového bodu. Protokolování datového rámce pro vyhledávání funkcí vyžaduje MLflow 2.14.0 nebo vyšší.
- (Volitelné) Pokud chcete do koncového bodu přidat další obsluhované entity, klikněte na Přidat obslouženou entitu a opakujte výše uvedené kroky konfigurace. Můžete obsluhovat více modelů nebo verzí modelu z jednoho koncového bodu a řídit rozdělení provozu mezi nimi. Další informace najdete v tématu Obsluha více modelů .
V části Optimalizace trasy můžete pro koncový bod povolit optimalizaci tras. Optimalizace tras se doporučuje pro koncové body s vysokými požadavky na QPS a propustnost. Viz Optimalizace trasy pro obsluhu koncových bodů.
V části Brána AI můžete vybrat, které funkce zásad správného řízení se mají ve vašem koncovém bodu povolit. Viz úvod Mosaic AI Gateway.
Klikněte na Vytvořit. Stránka Obslužné koncové body se zobrazí se stavem obsluhy koncového bodu, který je zobrazený jako Není připraveno.
REST API
Koncové body můžete vytvářet pomocí rozhraní REST API. Další informace o parametrech konfigurace koncového bodu naleznete v části POST /api/2.0/serving-endpoints.
Následující příklad vytvoří koncový bod, který slouží třetí verzi modelu my-ads-model, který je zaregistrovaný v registru modelu Katalogu Unity. Pokud chcete zadat model z katalogu Unity, zadejte úplný název modelu včetně nadřazeného katalogu a schématu, například catalog.schema.example-model. Tento příklad používá vlastní definovanou souběžnost s min_provisioned_concurrency a max_provisioned_concurrency. Hodnoty souběžnosti musí být násobky 4.
POST /api/2.0/serving-endpoints
{
"name": "uc-model-endpoint",
"config":
{
"served_entities": [
{
"name": "ads-entity",
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"min_provisioned_concurrency": 4,
"max_provisioned_concurrency": 12,
"scale_to_zero_enabled": false
}
]
}
}
Následuje příklad odpovědi. Stav koncového bodu config_update je NOT_UPDATING a servírovaný model je ve READY stavu.
{
"name": "uc-model-endpoint",
"creator": "user@email.com",
"creation_timestamp": 1700089637000,
"last_updated_timestamp": 1700089760000,
"state": {
"ready": "READY",
"config_update": "NOT_UPDATING"
},
"config": {
"served_entities": [
{
"name": "ads-entity",
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"min_provisioned_concurrency": 4,
"max_provisioned_concurrency": 12,
"scale_to_zero_enabled": false,
"workload_type": "CPU",
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "user@email.com",
"creation_timestamp": 1700089760000
}
],
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "data science"
}
],
"id": "e3bd3e471d6045d6b75f384279e4b6ab",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
Sada SDK pro nasazení MLflow
Nasazení MLflow poskytuje rozhraní API pro vytváření, aktualizaci a mazání úloh. Rozhraní API pro tyto úlohy přijímají stejné parametry jako rozhraní REST API pro obsluhu koncových bodů. Další informace o parametrech konfigurace koncového bodu naleznete v části POST /api/2.0/serving-endpoints.
Následující příklad vytvoří koncový bod, který slouží třetí verzi modelu my-ads-model, který je zaregistrovaný v registru modelu Katalogu Unity. Je nutné zadat úplný název modelu včetně nadřazeného katalogu a schématu, například catalog.schema.example-model. Tento příklad používá vlastní definovanou souběžnost s min_provisioned_concurrency a max_provisioned_concurrency. Hodnoty souběžnosti musí být násobky 4.
import mlflow
from mlflow.deployments import get_deploy_client
mlflow.set_registry_uri("databricks-uc")
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="unity-catalog-model-endpoint",
config={
"served_entities": [
{
"name": "ads-entity",
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"min_provisioned_concurrency": 4,
"max_provisioned_concurrency": 12,
"scale_to_zero_enabled": False
}
]
}
)
Klient pracovního prostoru
Následující příklad ukazuje, jak vytvořit koncový bod pomocí klientské sady SDK pracovního prostoru Databricks.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput
w = WorkspaceClient()
w.serving_endpoints.create(
name="uc-model-endpoint",
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
name="ads-entity",
entity_name="catalog.schema.my-ads-model",
entity_version="3",
workload_size="Small",
scale_to_zero_enabled=False
)
]
)
)
Můžete také:
- Povolte odvozování tabulek , aby automaticky zaznamenávaly příchozí požadavky a odchozí odpovědi do modelu obsluhující koncové body.
- Pokud máte na koncovém bodu povolené tabulky odvozování, můžete do tabulky odvozování založit datový rámec vyhledávání funkcí .
Typy úloh GPU
Nasazení GPU je kompatibilní s následujícími verzemi balíčků:
- PyTorch 1.13.0 - 2.0.1
- TensorFlow 2.5.0 – 2.13.0
- MLflow 2.4.0 a vyšší
Následující příklady ukazují, jak vytvářet koncové body GPU pomocí různých metod.
Obsluha uživatelského rozhraní
Pokud chcete nakonfigurovat koncový bod pro úlohy GPU pomocí uživatelského rozhraní obsluhy , vyberte požadovaný typ GPU z rozevíracího seznamu Typ výpočetního prostředí při vytváření koncového bodu. Postupujte stejně jako v části Vytvoření koncového bodu, ale místo procesoru vyberte typ úlohy GPU.
REST API
Pokud chcete nasadit modely pomocí GPU, zahrňte pole v konfiguraci koncového bodu workload_type.
POST /api/2.0/serving-endpoints
{
"name": "gpu-model-endpoint",
"config": {
"served_entities": [{
"entity_name": "catalog.schema.my-gpu-model",
"entity_version": "1",
"workload_type": "GPU_SMALL",
"workload_size": "Small",
"scale_to_zero_enabled": false
}]
}
}
Sada SDK pro nasazení MLflow
Následující příklad ukazuje, jak vytvořit koncový bod GPU pomocí sady SDK pro nasazení MLflow.
import mlflow
from mlflow.deployments import get_deploy_client
mlflow.set_registry_uri("databricks-uc")
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="gpu-model-endpoint",
config={
"served_entities": [{
"entity_name": "catalog.schema.my-gpu-model",
"entity_version": "1",
"workload_type": "GPU_SMALL",
"workload_size": "Small",
"scale_to_zero_enabled": False
}]
}
)
Klient pracovního prostoru
Následující příklad ukazuje, jak vytvořit koncový bod GPU pomocí klientské sady SDK pracovního prostoru Databricks.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput
w = WorkspaceClient()
w.serving_endpoints.create(
name="gpu-model-endpoint",
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name="catalog.schema.my-gpu-model",
entity_version="1",
workload_type="GPU_SMALL",
workload_size="Small",
scale_to_zero_enabled=False
)
]
)
)
Následující tabulka shrnuje podporované typy úloh GPU.
| Typ úlohy GPU | GPU instanci | Paměť GPU |
|---|---|---|
GPU_SMALL |
1xT4 | 16 GB |
GPU_LARGE |
1xA100 | 80 GB |
GPU_LARGE_2 |
2x A100 | 160 GB |
Úprava vlastního koncového bodu modelu
Po povolení vlastního koncového bodu modelu můžete podle potřeby aktualizovat konfiguraci výpočetních prostředků. Tato konfigurace je užitečná zejména v případě, že potřebujete další prostředky pro váš model. Velikost úloh a konfigurace výpočetních prostředků hrají klíčovou roli v tom, jaké prostředky se přidělují pro poskytování modelu.
Poznámka:
Aktualizace konfigurace koncového bodu můžou selhat. Pokud dojde k selhání, stávající aktivní konfigurace zůstane efektivní, jako kdyby k aktualizaci nedošlo.
Zkontrolujte stav koncového bodu a ověřte, že se aktualizace úspěšně nainstalovala.
Dokud nebude nová konfigurace připravená, stará konfigurace bude dál obsluhovat predikční provoz. Zatímco probíhá aktualizace, nelze provést jinou aktualizaci. Probíhající aktualizaci ale můžete zrušit z uživatelského rozhraní obsluhy.
Obsluha uživatelského rozhraní
Po povolení koncového bodu modelu vyberte Upravit koncový bod a upravte výpočetní konfiguraci koncového bodu.
Většinu aspektů konfigurace koncového bodu můžete změnit s výjimkou názvu koncového bodu a určitých neměnných vlastností.
Probíhající aktualizaci konfigurace můžete zrušit výběrem možnosti Zrušit aktualizaci na stránce podrobností koncového bodu.
REST API
Následuje příklad aktualizace konfigurace koncového bodu pomocí rozhraní REST API. Viz PUT /api/2.0/serving-endpoints/{name}/config.
PUT /api/2.0/serving-endpoints/{name}/config
{
"name": "unity-catalog-model-endpoint",
"config":
{
"served_entities": [
{
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "5",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config":
{
"routes": [
{
"served_model_name": "my-ads-model-5",
"traffic_percentage": 100
}
]
}
}
}
Sada SDK pro nasazení MLflow
Sada SDK pro nasazení MLflow používá stejné parametry jako rozhraní REST API, viz PUT /api/2.0/serving-endpoints/{name}/config pro podrobnosti schématu požadavků a odpovědí.
Následující ukázka kódu používá model z registru modelů katalogu Unity:
import mlflow
from mlflow.deployments import get_deploy_client
mlflow.set_registry_uri("databricks-uc")
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name=f"{endpointname}",
config={
"served_entities": [
{
"entity_name": f"{catalog}.{schema}.{model_name}",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": True
}
],
"traffic_config": {
"routes": [
{
"served_model_name": f"{model_name}-1",
"traffic_percentage": 100
}
]
}
}
)
Vyhodnocení koncového bodu modelu
Pokud chcete model vyhodnotit, odešlete požadavky do koncového bodu obsluhy modelu.
Další materiály
- Správa koncových bodů pro obsluhu modelů
- Externí modely ve službě Mosaic AI Model Serving.
- Pokud dáváte přednost použití Pythonu, můžete použít Python SDK pro reálné časové spouštění Databricks.
Příklady poznámkových bloků
Následující poznámkové bloky zahrnují různé registrované modely Databricks, které můžete použít k rychlému spuštění s rozhraními pro obsluhu modelů. Další příklady najdete v tématu Kurz: Nasazení a dotazování vlastního modelu.
Příkladové modely je možné importovat do pracovního prostoru podle pokynů v Import poznámkového bloku. Jakmile vyberete a vytvoříte model z některého z příkladů, zaregistrujte ho v katalogu Unity a pak postupujte podle kroků pracovního postupu uživatelského rozhraní pro obsluhu modelu.