Végpontokat kiszolgáló egyéni modell létrehozása
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-alapmodelleket kiszolgáló végpontok létrehozásáról a végpontokat kiszolgáló alapmodell létrehozása című témakörben olvashat.
Követelmények
- A munkaterületnek támogatott régióban kell lennie.
- Ha egyéni kódtárakat vagy tárakat használ egy privát tükörkiszolgálóról a modellel, a modellvégpont létrehozása előtt tekintse meg az egyéni Python-kódtárak használata a Modellszolgáltatás szolgáltatással című témakört.
- 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 végpontok végpontjait kiszolgáló modell hozzáférés-vezérlési beállításainak megismeréséhez tekintse meg a modellvégpont engedélyeinek kezelése című témakört.
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
Kiszolgáló felhasználói felület
Létrehozhat végpontot a kiszolgáló felhasználói felülettel kiszolgáló modellhez.
Kattintson az oldalsávOn a Kiszolgálás gombra a kiszolgáló felhasználói felületének 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 Kiszolgált entitások szakaszban
- Kattintson az Entitás mezőbe a Kiszolgált entitás kiválasztása űrlap megnyitásához.
- Válassza ki a kiszolgálni kívánt modell típusát. Az űrlap a kijelölés alapján dinamikusan frissül.
- 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 a használni kívánt méretet. 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ás csoportban válassza ki a számítási felskálázás méretét, amely megfelel azon kérelmek 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 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.
Kattintson a Létrehozás gombra. A Végpontok kiszolgálása lap úgy jelenik meg , hogy a kiszolgálóvégpont állapota nem áll készen.
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 modellnek a ads1
modellregisztrációs adatbázisban regisztrált első verzióját szolgálja ki. Ha meg szeretne adni egy modellt a Unity Katalógusbó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
.
POST /api/2.0/serving-endpoints
{
"name": "workspace-model-endpoint",
"config":{
"served_entities": [
{
"name": "ads-entity"
"entity_name": "my-ads-model",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": true
},
{
"entity_name": "my-ads-model",
"entity_version": "4",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config":{
"routes": [
{
"served_model_name": "my-ads-model-3",
"traffic_percentage": 100
},
{
"served_model_name": "my-ads-model-4",
"traffic_percentage": 20
}
]
}
},
"tags": [
{
"key": "team",
"value": "data science"
}
]
}
Az alábbiakban egy példaválasz látható. A végpont config_update
állapota, NOT_UPDATING
a kiszolgált modell pedig állapotban READY
van.
{
"name": "workspace-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": "my-ads-model-3",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": true,
"workload_type": "CPU",
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "user@email.com",
"creation_timestamp": 1700089760000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model-3",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "data science"
}
],
"id": "e3bd3e471d6045d6b75f384279e4b6ab",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
Mlflow deployments sdk
Az MLflow-környezetek api-t biztosítanak 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.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="workspace-model-endpoint",
config={
"served_entities": [
{
"name": "ads-entity"
"entity_name": "my-ads-model",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model-3",
"traffic_percentage": 100
}
]
}
}
)
További lehetőségek:
- Konfigurálja a végpontot több modell kiszolgálására.
- Konfigurálja a végpontot külső erőforrások eléréséhez a Databricks Titkos kulcsok használatával.
- A következtetési táblák lehetővé teszik a végpontokat kiszolgáló modell bejövő kéréseinek és kimenő válaszainak automatikus rögzítését.
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
A modellek GPU-k használatával történő üzembe helyezéséhez használja a workload_type
végpontkonfigurációban szereplő mezőt a végpont létrehozásakor vagy az API-val végzett végpontkonfigurációs frissítésként. Ha a gpu-számítási feladatok végpontját a kiszolgáló 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.
{
"served_entities": [{
"name": "ads1",
"entity_version": "2",
"workload_type": "GPU_LARGE",
"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.
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.
Kiszolgáló felhasználói felület
Miután engedélyezte a modellvégpontot, válassza a Végpont szerkesztése lehetőséget a végpont számítási konfigurációjának módosításához.
A következőket teheti:
- Válasszon néhány számítási feladat közül, és az automatikus skálázás automatikusan konfigurálva van a számítási feladat méretében.
- Adja meg, hogy a végpont nullára legyen-e skálázva, ha nincs használatban.
- Módosítsa a forgalom százalékát a kiszolgált modellre való átirányításhoz.
A folyamatban lévő konfigurációs frissítés megszakításához válassza a Mégse frissítést a végpont részletes lapjának jobb felső sarkában. Ez a funkció csak a kiszolgáló felhasználói felületén érhető el.
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": "workspace-model-endpoint",
"config":{
"served_entities": [
{
"name": "ads-entity"
"entity_name": "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 pontozása
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 a Lekérdezés alapmodelljei című témakört.
További erőforrások
- Végpontokat kiszolgáló modell kezelése.
- Az egyéni modellek végpontjait kiszolgáló lekérdezés.
- Lekérdezési alapmodellek.
- Külső modellek a Databricks-modellkiszolgálóban.
- Következtetéstáblák a modellek monitorozásához és hibakereséséhez.
- 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, amelyekkel a végpontokat kiszolgáló modellekkel ismerkedhet meg és futtatható.
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álasztott és létrehozott egy modellt az egyik példából, regisztrálja az MLflow modellregisztrációs adatbázisában, majd kövesse a felhasználói felület munkafolyamatának lépéseit a modell kiszolgálásához.
Scikit-learn modell betanítása és regisztrálása a notebookot kiszolgáló modellhez
HuggingFace-modell betanítása és regisztrálása a modellmegjelenítési jegyzetfüzethez
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: