Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan hozhatók létre olyan modellkiszolgáló végpontok, amelyek egyéni modelleket szolgálnak ki a Databricks modellkiszolgáló használatával.
A modellkiszolgáló a következő lehetőségeket kínálja a végpontlétrehozás kiszolgálásához:
- A kiszolgáló felhasználói felülete
- REST API
- MLflow Deployments SDK
A generatív AI-modelleket kiszolgáló végpontok létrehozásához tekintse meg Végpontokat kiszolgáló alapmodell létrehozásacímű témakört.
Követelmények
- A munkaterületnek támogatott régióban kell lennie.
- Ha egyéni könyvtárakat vagy könyvtárakat használ egy privát tükörkiszolgálóról a modellel, tekintse meg a "Egyéni Python könyvtárak használata a Modellek kiszolgálásával" című részt, mielőtt létrehozná a modell végpontot.
- Ahhoz, hogy végpontokat hozzon létre az MLflow Deployments SDK használatával, telepítenie kell az MLflow Deployment-ügyfelet. A telepítéshez futtassa a következőt:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Hozzáférés-vezérlés
A modellkiszolgálási végpontok hozzáférés-vezérlési beállításainak megismeréséhez a végpontok kezeléséhez tekintse meg a modellvégpont engedélyeinek kezelése című témakört.
Az identitás, amely alatt a végpontot kiszolgáló modell fut, a végpont eredeti létrehozójának nevéhez van kötve. A végpont létrehozása után a társított identitás nem módosítható vagy frissíthető a végponton. Ez az identitás és a hozzá tartozó engedélyek a Unity Catalog-erőforrások üzembe helyezéshez való elérésére szolgálnak. Ha az identitás nem rendelkezik a megfelelő engedélyekkel a szükséges Unity Catalog-erőforrások eléréséhez, törölnie kell a végpontot, és újra létre kell hoznia egy olyan felhasználó vagy szolgáltatásnév alatt, amely hozzáférhet a Unity Catalog erőforrásaihoz.
Környezeti változókat is hozzáadhat a modellkiszolgáló hitelesítő adatainak tárolásához. Lásd: Erőforrásokhoz való hozzáférés konfigurálása végpontokat kiszolgáló modellből
Végpont létrehozása
Felhasználói felület kiszolgálása
Létrehozhat egy végpontot a modell kiszolgálásához a Kiszolgálás felhasználói felület segítségével.
Kattintson az oldalsávon a Kiszolgálás elemre a Kiszolgálás felület megjelenítéséhez.
Kattintson a Kiszolgálóvégpont létrehozása elemre.
A Munkaterület-modellregisztrációs adatbázisban vagy a Unity Katalógusban regisztrált modellek esetén:
A Név mezőben adja meg a végpont nevét.
- A végpontnevek nem használhatják az
databricks-előtagot. Ez az előtag a Databricks előre konfigurált végpontjai számára van fenntartva.
- A végpontnevek nem használhatják az
A Kiszolgált entitások szakaszban
- Kattintson a Entitás mezőbe a Kiszolgált entitás kiválasztása űrlap megnyitásához.
- Válassza ki a Saját modellek – Unity Katalógus vagy Saját modellek – Modellregisztrációs adatbázist a modell regisztrálásának helye alapján. Az űrlap a kijelölés alapján dinamikusan frissül.
- Nem minden modell egyéni modell. A modellek lehetnek alapmodellek vagy funkciók a funkciók kiszolgálásához.
- Válassza ki a kiszolgálni kívánt modellt és modellverziót.
- Válassza ki a kiszolgált modellhez irányítandó forgalom százalékos arányát.
- Válassza ki, hogy milyen méretű számítási teljesítményt kíván használni. A számítási feladatokhoz processzor- vagy GPU-számításokat is használhat. Az elérhető GPU-számításokkal kapcsolatos további információkért tekintse meg a GPU számítási feladatainak típusait .
- A Számítási felskálázásiterületen válassza ki a számítási felskálázás méretét, amely megfelel azon kérések számának, amelyeket a kiszolgált modell egyszerre tud feldolgozni. Ennek a számnak nagyjából egyenlőnek kell lennie a QPS x modell futási idejének. Az ügyfél által definiált számítási beállításokért tekintse meg a modellmegjelenítési korlátokat.
- Az elérhető méretek kicsik 0-4, közepes 8-16, 16-64 kérés esetén pedig nagy méretűek.
- Adja meg, hogy a végpont nullára legyen-e skálázva, ha nincs használatban. A kapacitás nem garantált, ha nullára van skálázva, így az éles végpontok esetében nem ajánlott nullára skálázni. Amikor egy végpont nullára skálázódik, további késés, más néven hidegindítás tapasztalható, amikor a végpont visszaskálázódik a kérések kiszolgálására.
- A Speciális konfiguráció területen az alábbiakat végezheti el:
- Nevezze át a kiszolgált entitást a végpont megjelenésének testreszabásához.
- Környezeti változókat adhat hozzá a végpont erőforrásaihoz való csatlakozáshoz , vagy naplózza a DataFrame funkciókeresést a végpont következtetési táblájába. A DataFrame funkciókeresés naplózásához az MLflow 2.14.0-s vagy újabb verziója szükséges.
- (Nem kötelező) Ha további kiszolgált entitásokat szeretne hozzáadni a végponthoz, kattintson a Kiszolgált entitás hozzáadása elemre, és ismételje meg a fenti konfigurációs lépéseket. Egyetlen végpontról több modellt vagy modellverziót is kiszolgálhat, és szabályozhatja a köztük lévő forgalom felosztását. További információért tekintse meg a több modell kiszolgálását ismertető témakört.
Az Útvonaloptimalizálás szakaszban engedélyezheti a végpont útvonaloptimalizálását. Az útvonal-optimalizálást magas QPS- és átviteli sebességgel rendelkező végpontok esetében javasoljuk. Lásd : Útvonaloptimalizálás a végpontok kiszolgálására.
Az AI-átjáró szakaszban kiválaszthatja, hogy mely szabályozási funkciókat szeretné engedélyezni a végponton. Lásd: Unity AI Gateway.
Kattintson a Létrehozás. A Kiszolgáló végpontok lap úgy jelenik meg, hogy a kiszolgáló végpont állapota Nincs kész.
REST API
Végpontokat a REST API használatával hozhat létre. A végpontkonfigurációs paraméterekről lásd POST /api/2.0/serving-endpoints.
Az alábbi példa egy végpontot hoz létre, amely a Unity Catalog-modellregisztrációs adatbázisban regisztrált my-ads-model modell harmadik verzióját szolgálja ki. Ha meg szeretne adni egy modellt a Unity Catalogból, adja meg a modell teljes nevét, beleértve a szülőkatalógust és a sémát, például catalog.schema.example-model. Ez a példa egyedileg meghatározott egyidejűséget használ a min_provisioned_concurrency és max_provisioned_concurrency. Az egyidejűségi értékeknek 4 többszörösének kell lenniük.
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
}
]
}
}
Az alábbiakban egy példaválasz látható. A végpont állapota config_update és a kiszolgált modell NOT_UPDATING állapotban van.
{
"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
}
MLflow Deployments SDK
MLflow deployments api-t biztosít a létrehozási, frissítési és törlési feladatokhoz. A feladatok API-jai ugyanazokat a paramétereket fogadják el, mint a végpontok kiszolgálására szolgáló REST API-k. A végpontkonfigurációs paraméterekről lásd POST /api/2.0/serving-endpoints.
Az alábbi példa egy végpontot hoz létre, amely a Unity Catalog-modellregisztrációs adatbázisban regisztrált my-ads-model modell harmadik verzióját szolgálja ki. Meg kell adnia a teljes modellnevet, beleértve a szülőkatalógust és a sémát, például catalog.schema.example-model. Ez a példa egyedileg meghatározott egyidejűséget használ a min_provisioned_concurrency és max_provisioned_concurrency. Az egyidejűségi értékeknek 4 többszörösének kell lenniük.
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
}
]
}
)
Munkahelyi kliens
Az alábbi példa bemutatja, hogyan hozhat létre végpontot a Databricks-munkaterület ügyféloldali SDK-jával.
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
)
]
)
)
További lehetőségek:
- Következtetéstáblák engedélyezése a végpontokat kiszolgáló modell bejövő kéréseinek és kimenő válaszainak automatikus rögzítéséhez.
- Ha a végponton engedélyezve vannak a következtetési táblák, naplózhatja a DataFrame funkciókeresését a következtetési táblába.
GPU-számítási feladatok típusai
A GPU üzembe helyezése a következő csomagverziókkal kompatibilis:
- PyTorch 1.13.0 – 2.0.1
- TensorFlow 2.5.0 – 2.13.0
- MLflow 2.4.0 vagy újabb
Az alábbi példák bemutatják, hogyan hozhat létre GPU-végpontokat különböző módszerekkel.
Felhasználói felület kiszolgálása
Ha a gpu-számítási feladatok végpontját a kiszolgálói felhasználói felülettel szeretné konfigurálni, válassza ki a kívánt GPU-típust a számítási típus legördülő listából a végpont létrehozásakor. Kövesse ugyanazokat a lépéseket a Végpont létrehozása szakaszban, de cpu helyett válasszon GPU-számítási feladattípust.
REST API
Ha GPU-k használatával szeretné üzembe helyezni a modelleket, vegye fel a mezőt a workload_type végpontkonfigurációba.
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
}]
}
}
MLflow Deployments SDK
Az alábbi példa bemutatja, hogyan hozhat létre GPU-végpontot az MLflow Deployments SDK használatával.
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
}]
}
)
Munkahelyi kliens
Az alábbi példa bemutatja, hogyan hozhat létre GPU-végpontot a Databricks-munkaterület ügyféloldali SDK-jával.
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
)
]
)
)
Az alábbi táblázat a támogatott GPU-számítási feladatok típusait foglalja össze.
| GPU-számítási feladat típusa | GPU-példány | GPU-memória |
|---|---|---|
GPU_SMALL |
1xT4 | 16 GB |
GPU_LARGE |
1xA100 | 80 GB |
GPU_LARGE_2 |
2xA100 | 160 GB |
Egyéni modellvégpont módosítása
Az egyéni modellvégpont engedélyezése után igény szerint frissítheti a számítási konfigurációt. Ez a konfiguráció különösen hasznos, ha további erőforrásokra van szüksége a modellhez. A számítási feladatok mérete és a számítási konfiguráció kulcsfontosságú szerepet játszik abban, hogy milyen erőforrások vannak lefoglalva a modell kiszolgálásához.
Megjegyzés:
A végpontkonfiguráció frissítése sikertelen lehet. Hibák esetén a meglévő aktív konfiguráció úgy működik, mintha a frissítés nem történt volna meg.
Ellenőrizze, hogy a frissítés sikeresen alkalmazva lett-e a végpont állapotának áttekintésével.
Amíg az új konfiguráció nem áll készen, a régi konfiguráció továbbra is az előrejelzési forgalmat szolgálja ki. Amíg folyamatban van egy frissítés, egy másik frissítés nem végezhető el. A folyamatban lévő frissítéseket azonban megszakíthatja a kiszolgáló felhasználói felületén.
Felhasználói felület kiszolgálása
A modellvégpont engedélyezése után válassza Végpont szerkesztése lehetőséget a végpont számítási konfigurációjának módosításához.
A végpontkonfiguráció legtöbb aspektusát módosíthatja, kivéve a végpont nevét és bizonyos nem módosítható tulajdonságokat.
A folyamatban lévő konfigurációs frissítés megszakításához kattintson az Frissítés megszakítása gombra a végpont részletek lapján.
REST API
Az alábbiakban egy végpontkonfigurációs frissítési példát mutatunk be a REST API használatával. Lásd: 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
}
]
}
}
}
MLflow Deployments SDK
Az MLflow Deployments SDK ugyanazokat a paramétereket használja, mint a REST API, lásd PUT /api/2.0/serving-endpoints/{name}/config a kérés- és válaszséma részleteiért.
A következő kódminta a Unity Catalog-modellregisztrációs adatbázisból származó modellt használja:
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
}
]
}
}
)
Modellvégpont kiértékelése
A modell pontozásához küldjön kéréseket a végpontot kiszolgáló modellnek.
- Lásd: Az egyéni modellek végpontjait kiszolgáló lekérdezés.
- Lásd: Alapmodellek használata.
További erőforrások
- Végpontokat kiszolgáló modell kezelése.
- Külső modellek a Mozaik AI-modell szolgáltatásban.
- Ha inkább a Pythont szeretné használni, használhatja a Databricks valós idejű szolgáltatását a Python SDK-val.
Jegyzetfüzet-példák
Az alábbi jegyzetfüzetek különböző Databricks-regisztrált modelleket tartalmaznak, amelyek segítenek elindulni a modellkiszolgáló végpontokkal. További példákért lásd oktatóanyagot: Egyéni modell üzembe helyezése és lekérdezése.
A modell példái a jegyzetfüzet importálása című témakörben ismertetett útmutatást követve importálhatók a munkaterületre. Miután kiválasztotta és létrehozta a modellt az egyik példából, regisztrálja a Unity Catalog-ban, majd kövesse a felhasználói felület munkafolyamatának lépéseit a modellkiszolgáláshoz.