Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Databricks Özellik Sunma, Databricks platformundaki verileri Azure Databricks dışında dağıtılan modeller veya uygulamalar için kullanılabilir hale getirir. Özellik Sunma uç noktaları, gerçek zamanlı trafiğe göre ayarlayacak şekilde otomatik olarak ölçeklendirilir ve özellikleri sunmak için yüksek kullanılabilirlik ve düşük gecikme süresine sahip bir hizmet sağlar. Bu sayfada Özellik Sunma'nın nasıl ayarlanacağı ve kullanılacağı açıklanmaktadır. Adım adım öğretici için bkz . Örnek: Uç noktaya hizmet veren bir özelliği dağıtma ve sorgulama.
Databricks'in özellikleri kullanılarak oluşturulmuş bir modele hizmet vermek için Mozaik AI Model Sunma'yı kullandığınızda model, çıkarım istekleri için özellikleri otomatik olarak arar ve dönüştürür. Databricks Özellik Sunma'yı kullanarak, artırılmış üretim (RAG) uygulamaları için yapılandırılmış verileri sunabilir ve Databricks dışında sunulan modeller veya Unity Catalog'daki verilere dayalı özellikler gerektiren diğer uygulamalar için gerekli özellikleri sağlayabilirsiniz.
Özellik Sunma neden kullanılır?
Databricks Özellik Sunumu, önceden oluşturulmuş ve talep üzerine veri özellikleri sunmak için tek bir arabirim sağlar. Ayrıca aşağıdaki avantajları da içerir:
- Basitlik. Databricks altyapıyı işler. Databricks, tek bir API çağrısıyla üretime hazır bir sunum ortamı oluşturur.
- Yüksek kullanılabilirlik ve ölçeklenebilirlik. Özellik Sunma uç noktaları, sunum isteklerinin hacmine göre ayarlamak için ölçeği otomatik olarak artırıp küçültür.
- Güvenlik. Uç noktalar güvenli bir ağ alanında dağıtılır ve uç nokta silindiğinde veya sıfıra ölçeklendirildiğinde sonlandırılan özel işlem bileşenleri kullanılır.
Gereksinimler
- Databricks Runtime 14.2 ML veya üzeri.
- Python API'sini kullanmak için Özellik Sunma, Databricks
databricks-feature-engineeringRuntime 14.2 ML'de yerleşik olarak bulunan 0.1.2 veya üzeri bir sürümü gerektirir. Önceki Databricks Runtime ML sürümleri için,%pip install databricks-feature-engineering>=0.1.2kullanarak, gerekli sürümü el ile yükleyin. Databricks not defteri kullanıyorsanız, şu komutu yeni bir hücrede çalıştırarak Python çekirdeğini yeniden başlatmanız gerekir:dbutils.library.restartPython(). - Databricks SDK'sını kullanmak için Özellik Sunmak, 0.18.0 veya daha yüksek bir sürüm gerektirir
databricks-sdk. Gerekli sürümü el ile yüklemek için kullanın%pip install databricks-sdk>=0.18.0. Databricks not defteri kullanıyorsanız, şu komutu yeni bir hücrede çalıştırarak Python çekirdeğini yeniden başlatmanız gerekir:dbutils.library.restartPython().
Databricks Özellik Hizmeti, uç noktaları oluşturmak, güncellemek, sorgulamak ve silmek için bir kullanıcı arabirimi ve çeşitli programlı seçenekler sağlar. Bu makale, aşağıdaki seçeneklerin her biri için yönergeler içerir:
- Databricks kullanıcı arabirimi
- REST API
- Python API'si
- Databricks SDK
REST API veya MLflow Dağıtımları SDK'sını kullanmak için databricks API belirtecine sahip olmanız gerekir.
Önemli
Databricks, üretim senaryoları için en iyi güvenlik uygulaması olarak üretim sırasında kimlik doğrulaması için makineden makineye OAuth belirteçleri kullanmanızı önerir.
Databricks, test ve geliştirme için çalışma alanı kullanıcıları yerine hizmet sorumlularına ait bir kişisel erişim belirteci kullanılmasını önerir. Hizmet sorumlularına yönelik belirteçler oluşturmak için bkz. Hizmet sorumlusu için belirteçleri yönetme.
Özellik Sunma için Kimlik Doğrulaması
Kimlik doğrulaması hakkında bilgi için bkz. Azure Databricks kaynaklarına erişimi yetkilendirme.
FeatureSpec oluşturun
FeatureSpec, kullanıcı tanımlı bir özellik ve işlev kümesidir. Özellikleri ve işlevleri FeatureSpec içindekilerle birleştirebilirsiniz.
FeatureSpecs Unity Kataloğu'nda depolanır ve bunlar tarafından yönetilir ve Katalog Gezgini'nde görünür.
içinde FeatureSpec belirtilen tabloların bir çevrimiçi özellik mağazasında veya üçüncü taraf çevrimiçi mağazada yayımlanması gerekir. Bkz. Databricks Online Özellik Mağazaları.
databricks-feature-engineering paketini kullanarak bir FeatureSpec oluşturmanız gerekir.
İlk olarak işlevi tanımlayın:
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
)
Ardından işlevini bir FeatureSpeciçinde kullanabilirsiniz:
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,
)
Varsayılan değerleri belirtme
Özelliklerin varsayılan değerlerini belirtmek için default_values içindeki FeatureLookup parametresini kullanın. Aşağıdaki örneğe bakın:
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"
},
),
]
Özellik sütunları parametresi kullanılarak rename_outputs yeniden adlandırılıyorsa, default_values yeniden adlandırılan özellik adlarını kullanmalıdır.
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
}
)
Uç nokta oluşturma
uç FeatureSpec noktayı tanımlar. Daha fazla bilgi için bkz. Uç noktaları sunan özel model oluşturma, Python API belgeleri veya Databricks SDK belgeleri .
Not
Gecikme süresine duyarlı olan veya saniye başına yüksek sorgu gerektiren iş yükleri için Model Sunma, uç noktaları sunan özel modelde rota iyileştirmesi sunar. Bkz. Uç noktaları sunmada yol iyileştirme.
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'si
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
}
]
}'
Uç noktayı görmek için Databricks kullanıcı arabiriminin sol kenar çubuğunda Hizmet Verme'ye tıklayın. Durum Hazır olduğunda uç nokta sorgulara yanıt vermeye hazırdır. Mozaik Yapay Zeka Modeli Sunma hakkında daha fazla bilgi edinmek için bkz. Mozaik Yapay Zeka Modeli Sunma.
Genişletilmiş DataFrame'i çıkarım tablosuna kaydetme
Şubat 2025 itibarıyla oluşturulan uç noktalar için, model sunum uç noktasını, aranan özellik değerlerini ve işlev dönüş değerlerini içeren genişletilmiş DataFrame'i günlüğe kaydedecek şekilde yapılandırabilirsiniz. DataFrame, sunulan modelin çıkarım tablosuna kaydedilir.
Bu yapılandırmayı ayarlama yönergeleri için bkz Log özelliği arama DataFrame'lerini çıkarım tablolarına.
Çıkarım tabloları hakkında bilgi için bkz. Modelleri izleme ve hata ayıklama için çıkarım tabloları.
Bir uç noktayı al
Bir uç noktanın meta verilerini ve durumunu almak için Databricks SDK'sını veya Python API'sini kullanabilirsiniz.
Databricks SDK - Python
from databricks.sdk import WorkspaceClient
workspace = WorkspaceClient()
endpoint = workspace.serving_endpoints.get(name="customer-features")
# print(endpoint)
Python API'si
endpoint = fe.get_feature_serving_endpoint(name="customer-features")
# print(endpoint)
Uç noktanın şemasını alma
Bir uç noktanın şemasını almak için Databricks SDK'sını veya REST API'sini kullanabilirsiniz. Uç nokta şeması hakkında daha fazla bilgi için bkz. Uç nokta şeması sunan bir model alma.
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"
Uç noktayı sorgulama
Bir uç noktayı sorgulamak için REST API'yi, MLflow Dağıtımları SDK'sını veya Sunum Kullanıcı Arabirimi'ni kullanabilirsiniz.
Aşağıdaki kod, MLflow Dağıtımları SDK'sını kullanırken kimlik bilgilerinin nasıl ayarlandığını ve istemcinin nasıl oluşturulacağını gösterir.
# Set up credentials
export DATABRICKS_HOST=...
export DATABRICKS_TOKEN=...
# Set up the client
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Not
En iyi güvenlik uygulaması olarak otomatik araçlar, sistemler, betikler ve uygulamalarla kimlik doğrulaması yaptığınızda Databricks, çalışma alanı kullanıcıları yerine hizmet sorumlularına ait kişisel erişim belirteçlerini kullanmanızı önerir. Hizmet sorumlularına yönelik belirteçler oluşturmak için bkz. Hizmet sorumlusu için belirteçleri yönetme.
API'leri kullanarak uç noktayı sorgulama
Bu bölüm, REST API veya MLflow Dağıtımları SDK'sını kullanarak bir uç noktayı sorgulama örnekleri içerir.
MLflow Dağıtımları SDK'sı
Önemli
Aşağıdaki örnek, MLflow Dağıtımları SDK'sından predict()API'yi kullanır. Bu API Deneyseldir ve API tanımı değişebilir.
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}
]}'
Kullanıcı arabirimini kullanarak uç noktayı sorgulama
Bir sunum uç noktasını doğrudan Sunum Kullanıcı Arabirimi'nden sorgulayabilirsiniz. Kullanıcı arabirimi, uç noktayı sorgulamak için kullanabileceğiniz oluşturulmuş kod örnekleri içerir.
Azure Databricks çalışma alanının sol kenar çubuğunda Hizmete tıklayın.
Sorgulamak istediğiniz uç noktaya tıklayın.
Ekranın sağ üst kısmında Sorgu uç noktası'na tıklayın.
İstek kutusuna istek gövdesini JSON biçiminde yazın.
İstek gönder'e tıklayın.
// Example of a request body.
{
"dataframe_records": [
{ "user_id": 1, "ytd_spend": 598 },
{ "user_id": 2, "ytd_spend": 280 }
]
}
Sorgu uç noktası iletişim kutusu curl, Python ve SQL'de oluşturulan örnek kodu içerir. Örnek kodu görüntülemek ve kopyalamak için sekmelere tıklayın.
Kodu kopyalamak için metin kutusunun sağ üst kısmındaki kopyala simgesine tıklayın.
Uç noktayı güncelleştirme
REST API, Databricks SDK veya Sunum Kullanıcı Arabirimini kullanarak bir uç noktayı güncelleştirebilirsiniz.
API'leri kullanarak uç noktayı güncelleştirme
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
}
]'
Kullanıcı arabirimini kullanarak uç noktayı güncelleştirme
Hizmet Kullanıcı Arayüzünü kullanmak için şu adımları takip edin:
- Azure Databricks çalışma alanının sol kenar çubuğunda Hizmete tıklayın.
- Tabloda, güncelleştirmek istediğiniz uç noktanın adına tıklayın. Uç nokta ekranı görüntülenir.
- Ekranın sağ üst kısmında Uç noktayı düzenle'ye tıklayın.
- Sunum uç noktasını düzenle iletişim kutusunda, uç nokta ayarlarını gerektiği gibi düzenleyin.
- Değişikliklerinizi kaydetmek için Güncelleştir'e tıklayın.
Uç noktayı silme
Uyarı
Bu eylem geri alınamaz.
REST API, Databricks SDK, Python API veya Sunum Kullanıcı Arabirimini kullanarak bir uç noktayı silebilirsiniz.
API'leri kullanarak uç noktayı silme
Databricks SDK - Python
from databricks.sdk import WorkspaceClient
workspace = WorkspaceClient()
workspace.serving_endpoints.delete(name="customer-features")
Python API'si
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>
Kullanıcı arabirimini kullanarak uç noktayı silme
Sunum Kullanıcı Arabirimini kullanarak bir uç noktayı silmek için şu adımları izleyin:
- Azure Databricks çalışma alanının sol kenar çubuğunda Hizmete tıklayın.
- Tabloda, silmek istediğiniz uç noktanın adına tıklayın. Uç nokta ekranı görüntülenir.
- Ekranın sağ üst kısmında kebap menüsü
tıklayın ve Sil'i seçin.
Uç noktanın durumunu izleme
Özellik Sunma uç noktaları için kullanılabilen günlükler ve ölçümler hakkında bilgi için bkz. Model kalitesini ve uç nokta durumunu izleme.
Erişim denetimi
Bir Model Sunma uç noktasındaki izinler hakkında bilgi için bkz. Model sunma uç noktasındaki izinleri yönetme.
Örnek not defteri
Bu not defteri Databricks Çevrimiçi Özellik Deposu kullanarak Özellik Sunma uç noktası oluşturmak için Databricks SDK'sının nasıl kullanılacağını gösterir.