Mi az a Databricks szolgáltatás?
A Databricks szolgáltatáskiszolgáló a Databricks platformon lévő adatokat elérhetővé teszi az Azure Databricksen kívül üzembe helyezett modellek vagy alkalmazások számára. A szolgáltatáskiszolgáló végpontok automatikusan skálázhatók, hogy a valós idejű forgalomhoz igazodjanak, és magas rendelkezésre állású, alacsony késésű szolgáltatást nyújtsanak a szolgáltatások kiszolgálásához. Ez a lap bemutatja, hogyan állíthatja be és használhatja a szolgáltatáskiszolgálót. Részletes oktatóanyagért tekintse meg a végpontot kiszolgáló szolgáltatás üzembe helyezését és lekérdezését ismertető oktatóanyagot.
Amikor a Databricks szolgáltatásaival létrehozott modell kiszolgálására használja a Mozaik AI-modellkiszolgálót, a modell automatikusan megkeresi és átalakítja a következtetési kérelmek funkcióit. A Databricks szolgáltatáskiszolgálóval strukturált adatokat szolgáltathat a kiterjesztett generációs (RAG) alkalmazások lekéréséhez, valamint más alkalmazásokhoz szükséges funkciókhoz, például a Databricksen kívül kiszolgált modellekhez vagy bármely más olyan alkalmazáshoz, amely a Unity Catalog adatain alapuló funkciókat igényel.
Miért érdemes a szolgáltatáskiszolgálót használni?
A Databricks szolgáltatáskiszolgáló egyetlen felületet biztosít, amely előre materializált és igény szerinti funkciókat szolgál ki. A következő előnyöket is tartalmazza:
- Egyszerűség. A Databricks kezeli az infrastruktúrát. Egyetlen API-hívással a Databricks éles üzemre kész kiszolgálókörnyezetet hoz létre.
- Magas rendelkezésre állás és méretezhetőség. A szolgáltatásvégpontok automatikusan fel- és leskálázhatók, hogy igazodjanak a kérések mennyiségéhez.
- Biztonság. A végpontok biztonságos hálózathatáron vannak üzembe helyezve, és dedikált számítást használnak, amely a végpont törlésekor vagy nullára skálázásakor leáll.
Követelmények
- Databricks Runtime 14.2 ML vagy újabb.
- A Python API használatához a szolgáltatás-kiszolgáláshoz a 0.1.2-es vagy újabb verzió szükséges
databricks-feature-engineering
, amely a Databricks Runtime 14.2 ML-be van beépítve. Korábbi Databricks Runtime ML-verziók esetén manuálisan telepítse a szükséges verziót a következővel%pip install databricks-feature-engineering>=0.1.2
: . Ha Databricks-jegyzetfüzetet használ, újra kell indítania a Python-kernelt úgy, hogy ezt a parancsot egy új cellában futtatja:dbutils.library.restartPython()
. - A Databricks SDK használatához a szolgáltatás-kiszolgáláshoz a 0.18.0-s vagy újabb verzió szükséges
databricks-sdk
. A szükséges verzió manuális telepítéséhez használja%pip install databricks-sdk>=0.18.0
a következőt: . Ha Databricks-jegyzetfüzetet használ, újra kell indítania a Python-kernelt úgy, hogy ezt a parancsot egy új cellában futtatja:dbutils.library.restartPython()
.
A Databricks szolgáltatás-szolgáltatás egy felhasználói felületet és számos programozott lehetőséget biztosít végpontok létrehozására, frissítésére, lekérdezésére és törlésére. Ez a cikk az alábbi lehetőségek mindegyikére vonatkozó utasításokat tartalmaz:
- Databricks felhasználói felület
- REST API
- Python API
- Databricks SDK
A REST API vagy az MLflow Deployments SDK használatához Databricks API-jogkivonattal kell rendelkeznie.
Fontos
A Databricks ajánlott biztonsági gyakorlatként az éles környezetekben a gépről gépre történő OAuth-jogkivonatok használatát javasolja a hitelesítéshez az éles környezetben.
Teszteléshez és fejlesztéshez a Databricks a munkaterület felhasználói helyett a szolgáltatásnevekhez tartozó személyes hozzáférési jogkivonat használatát javasolja. A szolgáltatásnevek jogkivonatainak létrehozásáról a szolgáltatásnév jogkivonatainak kezelése című témakörben olvashat.
Hitelesítés a szolgáltatás-szolgáltatáshoz
A hitelesítéssel kapcsolatos információkért tekintse meg az Azure Databricks automation hitelesítését – áttekintés.
Hozzon létre egy FeatureSpec
Az A FeatureSpec
a funkciók és függvények felhasználó által definiált készlete. A funkciók és függvények kombinálhatók a FeatureSpec
. FeatureSpecs
a Unity Catalog tárolja és kezeli, és megjelenik a Katalóguskezelőben.
A megadott FeatureSpec
táblákat közzé kell tenni egy online táblában vagy egy külső online áruházban. Lásd: Online táblák használata valós idejű szolgáltatásmegjelenítéshez vagy külső online áruházakhoz.
A csomag használatával databricks-feature-engineering
létre kell hoznia egy FeatureSpec
.
from databricks.feature_engineering import (
FeatureFunction,
FeatureLookup,
FeatureEngineeringClient,
)
fe = FeatureEngineeringClient()
features = [
# Lookup column `average_yearly_spend` and `country` from a table in UC by the input `user_id`.
FeatureLookup(
table_name="main.default.customer_profile",
lookup_key="user_id",
features=["average_yearly_spend", "country"]
),
# Calculate a new feature called `spending_gap` - the difference between `ytd_spend` and `average_yearly_spend`.
FeatureFunction(
udf_name="main.default.difference",
output_name="spending_gap",
# Bind the function parameter with input from other features or from request.
# The function calculates a - b.
input_bindings={"a": "ytd_spend", "b": "average_yearly_spend"},
),
]
# Create a `FeatureSpec` with the features defined above.
# The `FeatureSpec` can be accessed in Unity Catalog as a function.
fe.create_feature_spec(
name="main.default.customer_features",
features=features,
)
Végpont létrehozása
Ez FeatureSpec
határozza meg a végpontot. További információ: Végpontokat kiszolgáló egyéni modell létrehozása, a Python API dokumentációja vagy a Databricks SDK dokumentációja .
Feljegyzés
Az olyan számítási feladatok esetében, amelyek késés szempontjából érzékenyek, vagy másodpercenként nagy lekérdezéseket igényelnek, a modellkiszolgáló útvonaloptimalizálást kínál az egyéni modellvégpontokon, lásd: Útvonaloptimalizálás konfigurálása a végpontok kiszolgálása esetén.
REST API
curl -X POST -u token:$DATABRICKS_API_TOKEN ${WORKSPACE_URL}/api/2.0/serving-endpoints \
-H 'Content-Type: application/json' \
-d '"name": "customer-features",
"config": {
"served_entities": [
{
"entity_name": "main.default.customer_features",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
]
}'
Databricks SDK – Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput
workspace = WorkspaceClient()
# Create endpoint
workspace.serving_endpoints.create(
name="my-serving-endpoint",
config = EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name="main.default.customer_features",
scale_to_zero_enabled=True,
workload_size="Small"
)
]
)
)
Python API
from databricks.feature_engineering.entities.feature_serving_endpoint import (
ServedEntity,
EndpointCoreConfig,
)
fe.create_feature_serving_endpoint(
name="customer-features",
config=EndpointCoreConfig(
served_entities=ServedEntity(
feature_spec_name="main.default.customer_features",
workload_size="Small",
scale_to_zero_enabled=True,
instance_profile_arn=None,
)
)
)
A végpont megtekintéséhez kattintson a Databricks felhasználói felületének bal oldali oldalsávjában található Kiszolgáló gombra. Ha az állapot kész, a végpont készen áll a lekérdezésekre való válaszadásra. A Mozaik AI-modell szolgáltatásáról további információt a Mozaik AI-modell-kiszolgáló című témakörben talál.
Végpont lekérése
A Databricks SDK-val vagy a Python API-val lekérheti egy végpont metaadatait és állapotát.
Databricks SDK – Python
endpoint = workspace.serving_endpoints.get(name="customer-features")
# print(endpoint)
Python API
endpoint = fe.get_feature_serving_endpoint(name="customer-features")
# print(endpoint)
Végpont sémájának lekérése
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el.
A REST API-val lekérheti egy végpont sémáját. A végpontsémával kapcsolatos további információkért tekintse meg a végpontsémát kiszolgáló modell lekérése című témakört.
ACCESS_TOKEN=<token>
ENDPOINT_NAME=<endpoint name>
curl "https://example.databricks.com/api/2.0/serving-endpoints/$ENDPOINT_NAME/openapi" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json"
Végpont lekérdezése
A végpont lekérdezéséhez használhatja a REST API-t, az MLflow Deployments SDK-t vagy a kiszolgáló felhasználói felületet.
Az alábbi kód bemutatja, hogyan állíthat be hitelesítő adatokat, és hogyan hozhatja létre az ügyfelet az MLflow Deployments SDK használatakor.
# Set up credentials
export DATABRICKS_HOST=...
export DATABRICKS_TOKEN=...
# Set up the client
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Feljegyzés
Ajánlott biztonsági eljárásként, ha automatizált eszközökkel, rendszerekkel, szkriptekkel és alkalmazásokkal hitelesít, a Databricks azt javasolja, hogy munkaterület-felhasználók helyett a szolgáltatásnevekhez tartozó személyes hozzáférési jogkivonatokat használja. A szolgáltatásnevek jogkivonatainak létrehozásáról a szolgáltatásnév jogkivonatainak kezelése című témakörben olvashat.
Végpont lekérdezése API-k használatával
Ez a szakasz példákat tartalmaz egy végpont REST API vagy az MLflow Deployments SDK használatával történő lekérdezésére.
REST API
curl -X POST -u token:$DATABRICKS_API_TOKEN $ENDPOINT_INVOCATION_URL \
-H 'Content-Type: application/json' \
-d '{"dataframe_records": [
{"user_id": 1, "ytd_spend": 598},
{"user_id": 2, "ytd_spend": 280}
]}'
MLflow Deployments SDK
Fontos
Az alábbi példa az predict()
MLflow Deployments SDK API-t használja. Ez az API kísérleti , és az API-definíció változhat.
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
response = client.predict(
endpoint="test-feature-endpoint",
inputs={
"dataframe_records": [
{"user_id": 1, "ytd_spend": 598},
{"user_id": 2, "ytd_spend": 280},
]
},
)
Végpont lekérdezése a felhasználói felületen
A kiszolgálóvégpontot közvetlenül a kiszolgáló felhasználói felületéről kérdezheti le. A felhasználói felület olyan generált kód példákat tartalmaz, amelyekkel lekérdezheti a végpontot.
Az Azure Databricks-munkaterület bal oldali oldalsávjában kattintson a Kiszolgáló gombra.
Kattintson a lekérdezni kívánt végpontra.
A képernyő jobb felső sarkában kattintson a Lekérdezés végpontra.
A Kérelem mezőbe írja be a kérelem törzsét JSON formátumban.
Kattintson a Kérés küldése gombra.
// Example of a request body.
{
"dataframe_records": [
{"user_id": 1, "ytd_spend": 598},
{"user_id": 2, "ytd_spend": 280}
]
}
A Lekérdezésvégpont párbeszédpanelen létrehozott példakód található a Curlben, a Pythonban és az SQL-ben. Kattintson a fülekre a példakód megtekintéséhez és másolásához.
A kód másolásához kattintson a szövegdoboz jobb felső sarkában található másolás ikonra.
Végpont frissítése
A végpontot a REST API, a Databricks SDK vagy a Kiszolgáló felhasználói felület használatával frissítheti.
Végpont frissítése API-k használatával
REST API
curl -X PUT -u token:$DATABRICKS_API_TOKEN ${WORKSPACE_URL}/api/2.0/serving-endpoints/<endpoint_name>/config \
-H 'Content-Type: application/json' \
-d '"served_entities": [
{
"name": "customer-features",
"entity_name": "main.default.customer_features_new",
"workload_size": "Small",
"scale_to_zero_enabled": True
}
]'
Databricks SDK – Python
workspace.serving_endpoints.update_config(
name="my-serving-endpoint",
served_entities=[
ServedEntityInput(
entity_name="main.default.customer_features",
scale_to_zero_enabled=True,
workload_size="Small"
)
]
)
Végpont frissítése a felhasználói felületen
A kiszolgáló felhasználói felületének használatához kövesse az alábbi lépéseket:
- Az Azure Databricks-munkaterület bal oldali oldalsávjában kattintson a Kiszolgáló gombra.
- A táblázatban kattintson a frissíteni kívánt végpont nevére. Megjelenik a végpont képernyője.
- A képernyő jobb felső sarkában kattintson a Végpont szerkesztése elemre.
- A Kiszolgálóvégpont szerkesztése párbeszédpanelen szükség szerint szerkessze a végpont beállításait.
- A módosítások mentéséhez kattintson a Frissítés gombra.
Végpont törlése
Figyelmeztetés
Ez a művelet visszavonhatatlan.
A végpontokat a REST API, a Databricks SDK, a Python API vagy a kiszolgáló felhasználói felület használatával törölheti.
Végpont törlése API-k használatával
REST API
curl -X DELETE -u token:$DATABRICKS_API_TOKEN ${WORKSPACE_URL}/api/2.0/serving-endpoints/<endpoint_name>
Databricks SDK – Python
workspace.serving_endpoints.delete(name="customer-features")
Python API
fe.delete_feature_serving_endpoint(name="customer-features")
Végpont törlése a felhasználói felületen
Az alábbi lépéseket követve törölhet egy végpontot a kiszolgáló felhasználói felületén:
- Az Azure Databricks-munkaterület bal oldali oldalsávjában kattintson a Kiszolgáló gombra.
- A táblázatban kattintson a törölni kívánt végpont nevére. Megjelenik a végpont képernyője.
- A képernyő jobb felső sarkában kattintson a kebab menüre
, és válassza a Törlés lehetőséget.
Végpont állapotának figyelése
A szolgáltatáskiszolgáló végpontok számára elérhető naplókkal és metrikákkal kapcsolatos információkért tekintse meg a modell minőségének és a végpont állapotának figyelése című témakört.
Hozzáférés-vezérlés
A szolgáltatáskiszolgáló végpontokra vonatkozó engedélyekről további információt a modellvégpont engedélyeinek kezelése című témakörben talál.
Példajegyzetfüzet
Ez a jegyzetfüzet bemutatja, hogyan hozhat létre szolgáltatáskiszolgáló végpontot a Databricks Online-táblák használatával a Databricks SDK használatával.
Szolgáltatásmegjelenítési példajegyzetfüzet online táblákkal
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: