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 azt ismerteti, hogyan konfigurálhatja a külső és a privát erőforrásokhoz való hozzáférést a végpontokat kiszolgáló modellből. A Modellkiszolgáló támogatja az egyszerű szöveges környezeti változókat és a titkos kódokon alapuló környezeti változókat a Databricks titkos kulcsok használatával.
Követelmények
Titkos kódokon alapuló környezeti változók esetén:
- A végpont létrehozójának olvasási hozzáféréssel kell rendelkeznie a konfigurációkban hivatkozott Databricks-titkos kódokhoz.
- A hitelesítő adatokat, például az API-kulcsot vagy más jogkivonatokat Databricks-titkos kódként kell tárolnia.
Egyszerű szöveges környezeti változók hozzáadása
Egyszerű szöveges környezeti változókkal olyan változókat állíthat be, amelyeknek nem kell rejtve lenniük. Végpont létrehozásakor vagy frissítésekor változókat állíthat be a kiszolgáló felhasználói felületén, a REST API-ban vagy az SDK-ban.
Felhasználói felület kiszolgálása
A Kiszolgáló felhasználói felületén hozzáadhat egy környezeti változót a Speciális konfigurációkban:
REST API
Az alábbi példa bemutatja, hogyan lehet végpontot létrehozni a POST /api/2.0/serving-endpoints REST API és a environment_vars mező segítségével a környezeti változó konfigurálásához.
{
"name": "endpoint-name",
"config": {
"served_entities": [
{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars": {
"TEXT_ENV_VAR_NAME": "plain-text-env-value"
}
}
]
}
}
WorkspaceClient SDK
Az alábbi példa bemutatja, hogyan lehet létrehozni egy szolgáltatáspontot a WorkspaceClient SDK és a environment_vars mező segítségével a környezeti változó konfigurálásához.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType
w = WorkspaceClient()
endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
name=endpoint_name,
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name = model_name,
entity_version = "2",
workload_type = ServingModelWorkloadType("CPU"),
workload_size = "Small",
scale_to_zero_enabled = False,
environment_vars = {
"MY_ENV_VAR": "value_to_be_injected",
"ADS_TOKEN": "abcdefg-1234"
}
)
]
)
)
MLflow Deployments SDK
Az alábbiakban egy példa egy kiszolgálási végpont létrehozására a Mlflow Deployments SDK és a environment_vars mező használatával a környezeti változó konfigurálására.
from mlflow.deployments import get_deploy_client
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",
"workload_size": "Small",
"scale_to_zero_enabled": True,
"environment_vars": {
"MY_ENV_VAR": "value_to_be_injected",
"ADS_TOKEN": "abcdefg-1234"
}
}
]
}
)
Naplófunkciók adatkeretek keresése a táblák következtetéséhez
Ha engedélyezve vannak a következtetési táblák a végponton, naplózhatja automatikus funkciókeresési adatkeretét, az adott következtetési táblába ENABLE_FEATURE_TRACING. Ehhez az MLflow 2.14.0-s vagy újabb verziója szükséges.
Állítsa be ENABLE_FEATURE_TRACING környezeti változóként a kiszolgáló felhasználói felületén, a REST API-ban vagy az SDK-ban egy végpont létrehozásakor vagy frissítésekor.
Felhasználói felület kiszolgálása
- Speciális konfigurációkterületen válassza a ** + Környezeti változók hozzáadása** lehetőséget.
- Írja be a(z)
ENABLE_FEATURE_TRACING-t környezetnévként. - A jobbra lévő mezőbe írja be a
true.
REST API
Az alábbiakban egy példa szerepel a POST /api/2.0/serving-endpoints REST API és a environment_vars mező használatára a ENABLE_FEATURE_TRACING környezeti változó konfigurálására szolgáló végpont létrehozásához.
{
"name": "endpoint-name",
"config": {
"served_entities": [
{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars": {
"ENABLE_FEATURE_TRACING": "true"
}
}
]
}
}
WorkspaceClient SDK
Az alábbiakban egy példa látható a kiszolgáló végpont létrehozására a WorkspaceClient SDK és a environment_vars mező használatával a ENABLE_FEATURE_TRACING környezeti változó konfigurálásához.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType
w = WorkspaceClient()
endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
name=endpoint_name,
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name = model_name,
entity_version = "2",
workload_type = ServingModelWorkloadType("CPU"),
workload_size = "Small",
scale_to_zero_enabled = False,
environment_vars = {
"ENABLE_FEATURE_TRACING": "true"
}
)
]
)
)
MLflow Deployments SDK
Az alábbiakban egy példa a kiszolgálási végpont létrehozására az Mlflow Deployments SDK és a environment_vars mező használatával a ENABLE_FEATURE_TRACING környezeti változó konfigurálásához.
from mlflow.deployments import get_deploy_client
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",
"workload_size": "Small",
"scale_to_zero_enabled": True,
"environment_vars": {
"ENABLE_FEATURE_TRACING": "true"
}
}
]
}
)
Titkos kódokon alapuló környezeti változók hozzáadása
Biztonságosan tárolhatja a hitelesítő adatokat a Databricks titkos kulcsainak használatával, és hivatkozhat ezekre a titkos kulcsokra a titkos kódokon alapuló környezeti változókat használó modellben. Ez lehetővé teszi a hitelesítő adatok lekérését a végpontokat kiszolgáló modellből a szolgáltatás ideje alatt.
Például hitelesítő adatokat adhat át az OpenAI és más külső modellvégpontok meghívásához, vagy a külső adattárolási helyekhez való hozzáféréshez közvetlenül a modellkiszolálásból.
A Databricks javasolja ezt a funkciót az OpenAI és a LangChain MLflow modellváltozatok kiszolgálására. Más, hitelesítő adatokat igénylő SaaS-modellekre is alkalmazható, azzal a megértéssel, hogy a hozzáférési minta környezeti változókon, API-kulcsokon és jogkivonatokon alapul.
1. lépés: Titkos kulcs hatókörének létrehozása
A modell kiszolgálása során a titkos adatokat a Databricks titkokból egy adott hatókör és kulcs alapján kérjük le. Ezek a titkos környezeti változók neveihez lesznek hozzárendelve, amelyek a modellen belül használhatók.
Először hozzon létre egy titkos hatókört. Lásd: Titkos kódok hatóköreinek kezelése.
A parancssori felület parancsai a következők:
databricks secrets create-scope my_secret_scope
Ezután hozzáadhatja a titkát a kívánt titkos hatókörhöz és kulcshoz az alábbiak szerint:
databricks secrets put-secret my_secret_scope my_secret_key
A titkos információk és a környezeti változó neve ezután átadható a végpont konfigurációjának a végpont létrehozásakor vagy egy meglévő végpont konfigurációjának frissítéseként.
2. lépés: Titkos kulcs hatóköreinek hozzáadása a végpontkonfigurációhoz
A titkos kulcs hatókörét hozzáadhatja egy környezeti változóhoz, és átadhatja a változót a végpontnak a végpont létrehozása vagy konfigurációfrissítései során. Lásd: Végpontokat kiszolgáló egyéni modell létrehozása.
Felhasználói felület kiszolgálása
A Kiszolgáló felhasználói felületén hozzáadhat egy környezeti változót a Speciális konfigurációkban. A titkos kódokon alapuló környezeti változót a következő szintaxissal kell megadni: {{secrets/scope/key}}. Ellenkező esetben a környezeti változó egyszerű szöveges környezeti változónak minősül.
REST API
Az alábbi példa bemutatja, hogyan lehet létrehozni egy kiszolgáló végpontot a REST API használatával. A végpontlétrehozási és konfigurációs frissítéseket kiszolgáló modell során az API-kérésben szereplő egyes kiszolgált modellek titkos környezeti változós specifikációinak listáját is megadhatja environment_vars mező használatával.
Az alábbi példa a megadott kódban létrehozott titkos kódból származó értéket rendeli hozzá a környezeti változóhoz OPENAI_API_KEY.
{
"name": "endpoint-name",
"config": {
"served_entities": [
{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars": {
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
}
]
}
}
Egy kiszolgálóvégpontot is frissíthet, ahogyan az alábbi PUT /api/2.0/serving-endpoints/{name}/config REST API-példában is látható:
{
"served_entities": [
{
"entity_name": "model-name",
"entity_version": "2",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars": {
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
}
]
}
WorkspaceClient SDK
Az alábbiakban egy példa a kiszolgáló végpont létrehozására a WorkspaceClient SDK használatával. A végpontlétrehozási és konfigurációs frissítéseket kiszolgáló modell során az API-kérésben szereplő egyes kiszolgált modellek titkos környezeti változós specifikációinak listáját is megadhatja environment_vars mező használatával.
Az alábbi példa a megadott kódban létrehozott titkos kódból származó értéket rendeli hozzá a környezeti változóhoz OPENAI_API_KEY.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType
w = WorkspaceClient()
endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
name=endpoint_name,
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name = model_name,
entity_version = "2",
workload_type = ServingModelWorkloadType("CPU"),
workload_size = "Small",
scale_to_zero_enabled = False,
environment_vars = {
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
)
]
)
)
MLflow Deployments SDK
Az alábbiakban egy példa az Mlflow Deployments SDK használatával történő kiszolgáló végpont létrehozására. A végpontlétrehozási és konfigurációs frissítéseket kiszolgáló modell során az API-kérésben szereplő egyes kiszolgált modellek titkos környezeti változós specifikációinak listáját is megadhatja environment_vars mező használatával.
Az alábbi példa a megadott kódban létrehozott titkos kódból származó értéket rendeli hozzá a környezeti változóhoz OPENAI_API_KEY.
from mlflow.deployments import get_deploy_client
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",
"workload_size": "Small",
"scale_to_zero_enabled": True,
"environment_vars": {
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
}
]
}
)
A végpont létrehozása vagy frissítése után a kiszolgáló modell automatikusan lekéri a titkos kulcsot a Databricks titkos kulcs hatóköréből, és feltölti a modell következtetési kódjának környezeti változóját.
Jegyzetfüzet példa
Az alábbi jegyzetfüzetből megtudhatja, hogyan konfigurálhat OpenAI API-kulcsot egy LangChain-lekéréses minőségbiztosítási lánchoz a végpontokat titkos környezeti változókkal kiszolgáló modell mögött.