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.
A Databricks szolgáltatáskiszolgáló a Databricks platformon lévő adatokat elérhetővé teszi a Azure Databricks kívül telepített 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 lásd : Példa: Végpontot kiszolgáló szolgáltatás üzembe helyezése és lekérdezése.
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
databricks-feature-engineering0.1.2-es vagy újabb verzió szükséges, 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 egy új cellában futtatja a következő parancsot: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 a%pip install databricks-sdk>=0.18.0kódot. Ha Databricks-jegyzetfüzetet használ, újra kell indítania a Python kernelt úgy, hogy egy új cellában futtatja a következő parancsot: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.
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. Az alábbiakat olvassa el a szolgáltatásnév jogkivonatainak létrehozásáról: A szolgáltatásnév jogkivonatainak kezelése.
Hitelesítés a funkciókiszolgáláshoz
A hitelesítéssel kapcsolatos információkért lásd: A Azure Databricks erőforrásokhoz való hozzáférés engedélyezése.
Hozzon létre egy FeatureSpec
A FeatureSpec a funkciók és függvények felhasználó által meghatározott 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 szolgáltatástárolóban vagy egy külső online áruházban. Lásd a Databricks Online szolgáltatástárolóit.
A databricks-feature-engineering csomagot kell használnia FeatureSpec létrehozásához.
Először határozza meg a függvényt:
from unitycatalog.ai.core.databricks import DatabricksFunctionClient
client = DatabricksFunctionClient()
CATALOG = "main"
SCHEMA = "default"
def difference(num_1: float, num_2: float) -> float:
"""
A function that accepts two floating point numbers, subtracts the second one
from the first, and returns the result as a float.
Args:
num_1 (float): The first number.
num_2 (float): The second number.
Returns:
float: The resulting difference of the two input numbers.
"""
return num_1 - num_2
client.create_python_function(
func=difference,
catalog=CATALOG,
schema=SCHEMA,
replace=True
)
Ezután használhatja a függvényt a következőben: 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",
feature_names=["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 num_1 - num_2.
input_bindings={"num_1": "ytd_spend", "num_2": "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,
)
Alapértelmezett értékek megadása
A funkciók alapértelmezett értékeinek megadásához használja a default_values paramétert a FeatureLookup-ben. Lásd a következő példát:
feature_lookups = [
FeatureLookup(
table_name="ml.recommender_system.customer_features",
feature_names=[
"membership_tier",
"age",
"page_views_count_30days",
],
lookup_key="customer_id",
default_values={
"age": 18,
"membership_tier": "bronze"
},
),
]
Ha a szolgáltatásoszlopokat a rename_outputs paraméterrel nevezik át, default_values az átnevezett szolgáltatásneveket kell használnia.
FeatureLookup(
table_name = 'main.default.table',
feature_names = ['materialized_feature_value'],
lookup_key = 'id',
rename_outputs={"materialized_feature_value": "feature_value"},
default_values={
"feature_value": 0
}
)
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 Model Serving útvonaloptimalizálást kínál az egyéni modellvégpontokon, lásd: Útvonaloptimalizálás a végpontok kiszolgálása esetén.
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,
)
)
)
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
}
]
}'
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.
A bővített DataFrame mentése a következtetési táblában
A 2025 februárjától létrehozott végpontok esetében a végpontot kiszolgáló modell úgy konfigurálható, hogy naplózza a kibővített DataFrame-et, amely tartalmazza a keresett funkció értékeit és a függvény visszatérési értékeit. A DataFrame el van mentve a kiszolgált modell következtetési táblájába.
A konfiguráció beállításával kapcsolatos utasításokért tekintse meg Naplófunkciók adatkeretek keresését a táblákkövetkeztetéséhez.
A következtetési táblákról további információt Modellek figyelésére és hibakeresésére vonatkozó következtetési táblákcí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
from databricks.sdk import WorkspaceClient
workspace = WorkspaceClient()
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
A Databricks SDK-val vagy a REST API-val lekérheti egy végpont sémáját. A végpontséma további információi: Végpontséma-kiszolgáló modell lekérése.
Databricks SDK – Python
from databricks.sdk import WorkspaceClient
workspace = WorkspaceClient()
# Create endpoint
endpoint = workspace.serving_endpoints.get_open_api(name="customer-features")
REST API
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. Az alábbiakat olvassa el a szolgáltatásnév jogkivonatainak létrehozásáról: A szolgáltatásnév jogkivonatainak kezelése.
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.
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},
]
},
)
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}
]}'
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.
A Azure Databricks munkaterület bal oldali oldalsávjában kattintson a Serving elemre.
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ési végpont párbeszédpanel a curlben, a Python és az SQL-ben létrehozott példakódot tartalmazza. 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
Fontos
A szolgáltatáskiszolgáló végpont konfigurációjának módosításához (például a számítási feladatok méretének FeatureSpec módosításához) mindig használja az ebben a szakaszban ismertetett frissítési API-kat. Ne törölje és hozza létre újra a végpontot a módosítások alkalmazásához. Az élő végpont törlése azonnali leállást okoz, és megszakítja a lekérdezést használó összes alkalmazást.
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
Databricks SDK – Python
from databricks.sdk import WorkspaceClient
workspace = WorkspaceClient()
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"
)
]
)
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
}
]'
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:
- A Azure Databricks munkaterület bal oldali oldalsávjában kattintson a Serving elemre.
- 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.
- Kattintson Frissítés elemre a módosítások mentéséhez.
végpont 
Végpont törlése
Figyelmeztetés
Ez a művelet visszavonhatatlan. A funkcionális egységet kiszolgáló végpont törlése azonnali állásidőt okoz bármelyik azt lekérdező alkalmazás számára. Ha módosítani szeretné a végpont konfigurációját, használja a Végpont frissítése parancsot a végpont törlése és újraküldése helyett.
A végpontokat a REST API, a Databricks SDK, a Python API vagy a kiszolgálói felhasználói felület használatával törölheti.
Végpont törlése API-k használatával
Databricks SDK – Python
from databricks.sdk import WorkspaceClient
workspace = WorkspaceClient()
workspace.serving_endpoints.delete(name="customer-features")
Python API
fe.delete_feature_serving_endpoint(name="customer-features")
REST API
curl -X DELETE -u token:$DATABRICKS_API_TOKEN ${WORKSPACE_URL}/api/2.0/serving-endpoints/<endpoint_name>
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:
- A Azure Databricks munkaterület bal oldali oldalsávjában kattintson a Serving elemre.
- 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
é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 végpontot kiszolgáló modell 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 Szolgáltatástár használatával a Databricks SDK használatával.