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.
Bu makalede, Sunum Kullanıcı Arabirimi ve REST API'sini kullanarak model sunum uç noktalarının nasıl yönetileceğini açıklar. Bkz REST API referansında Hizmet uç noktaları.
Model sunma uç noktaları oluşturmak için aşağıdakilerden birini kullanın:
- Uç noktaları sunan özel model oluşturma.
- uç noktaları sunan temel model oluşturma.
Model uç noktasının durumunu alma
Hizmet Verme Arabirimini veya REST API, Databricks Çalışma Alanı İstemcisi ya da MLflow Dağıtım SDK'sını kullanarak, programlı olarak bir uç noktanın durumunu kontrol edebilirsiniz.
Uç nokta durumları , , ReadyReady (Update failed), Not ready (Updating)veya Not ready (Update failed)olabilirNot ready (Stopped). Hazır olma, bir uç noktanın sorgulanıp sorgulanamayacağını belirtir. Güncelleme başarısız oldu, bu da uç noktada yapılan en son değişikliğin başarısız olduğunu gösteriyor. Durduruldu, uç noktanın durdurulduğu anlamına gelir.
Kullanıcı Arayüzü (UI)
Uç noktasının ayrıntılar sayfasının üst kısmındaki Serving uç noktası durumu göstergesi:
REST API
GET /api/2.0/serving-endpoints/{name}
Aşağıdaki örnek yanıtta state.ready , alan "HAZIR" şeklindedir ve bu da uç noktanın trafiği almaya hazır olduğu anlamına gelir.
state.update_state alanı NOT_UPDATING ve güncelleştirme başarıyla tamamlandığından pending_config artık döndürülmüyor.
{
"name": "unity-model-endpoint",
"creator": "customer@example.com",
"creation_timestamp": 1666829055000,
"last_updated_timestamp": 1666829055000,
"state": {
"ready": "READY",
"update_state": "NOT_UPDATING"
},
"config": {
"served_entities": [
{
"name": "my-ads-model",
"entity_name": "myCatalog.mySchema.my-ads-model",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": false,
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "customer@example.com",
"creation_timestamp": 1666829055000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"permission_level": "CAN_MANAGE"
}
Databricks Çalışma Alanı İstemcisi
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
endpoint = w.serving_endpoints.get(name="my-endpoint")
print(f"Endpoint state: {endpoint.state.ready}")
print(f"Update state: {endpoint.state.config_update}")
MLflow Dağıtımları SDK'sı
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.get_endpoint(endpoint="my-endpoint")
print(f"Endpoint state: {endpoint['state']}")
print(f"Endpoint config: {endpoint['config']}")
Uç noktaya hizmet veren bir modeli durdurma
Uç nokta sunan bir modeli geçici olarak durdurabilir ve daha sonra başlatabilirsiniz. Uç nokta durdurulduğunda:
- Sağlanan kaynaklar devre dışı bırakılır.
- Uç nokta, yeniden başlatılana kadar sorguları yanıtlayamaz.
- Yalnızca özel modellere hizmet veren ve devam eden güncelleştirmeleri olmayan uç noktalar durdurulabilir.
- Durdurulan uç noktalar kaynak kotasına göre sayılmaz.
- Durdurulan uç noktaya gönderilen sorgular 400 hatası döndürür.
Uç noktayı durdur
Kullanıcı Arayüzü (UI)
Sağ üst köşedeki Durdur'a tıklayın.
REST API
POST /api/2.0/serving-endpoints/{name}/config:stop
Uç noktayı başlat
Uç noktanın başlatılması, mevcut durdurulan yapılandırmayla aynı özelliklere sahip yeni bir yapılandırma sürümü oluşturur.
Uç noktaya hizmet veren durdurulmuş bir modeli başlatmaya hazır olduğunuzda:
Kullanıcı Arayüzü (UI)
Sağ üst köşedeki Başlat'a tıklayın.
REST API
POST /api/2.0/serving-endpoints/{name}/config:start
Model sunma uç noktasını silme
Uç nokta silindiğinde kullanım devre dışı bırakılır ve uç noktayla ilişkili tüm veriler silinir. Silme işlemini geri alamazsınız.
Kullanıcı Arayüzü (UI)
Üstteki kebap menüsüne tıklayın ve Silöğesini seçin.
REST API
DELETE /api/2.0/serving-endpoints/{name}
MLflow Dağıtımları SDK'sı
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
client.delete_endpoint(endpoint="chat")
Uç noktaya hizmet veren modelde hata ayıklama
Sorunları gidermek üzere uç noktalarla ilgili hata ayıklamak için iki tür günlük mevcuttur.
- Model sunucusu kapsayıcısı derleme günlükleri: Kapsayıcı oluşturulurken uç nokta başlatma sırasında oluşturulur. Bu günlükler modeli indirme, bağımlılıkları yükleme ve çalışma zamanı ortamını yapılandırma gibi kurulum aşamasını yakalar. Bir uç noktanın neden başlatılamadığını veya dağıtım sırasında takıldığını ayıklamak için bu günlükleri kullanın.
- Model sunucusu günlükleri: Uç nokta etkin bir şekilde tahminler sunarken çalışma zamanı sırasında oluşturulur. Bu günlükler, gelen istekleri, model çıkarım işlemlerini, çalışma zamanı hatalarını ve uygulama düzeyinde günlüğe kaydetme işlemlerini model kodunuzdan yakalar. Tahminlerle ilgili sorunlarda hata ayıklamak veya sorgu hatalarını araştırmak için bu günlükleri kullanın.
Her iki günlük türüne de Günlükler sekmesindeki Uç Noktalar kullanıcı arabiriminden erişilebilir.
Kapsayıcı derleme günlüklerini alma
Sunulan bir modelin derleme günlükleri için aşağıdaki isteği kullanabilirsiniz. Daha fazla bilgi için Model Sunumu için Hata Ayıklama Kılavuzu konusuna bakın.
GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/build-logs
{
"config_version": 1 // optional
}
Model sunucu günlüklerini alma
Bir hizmet modelinin model sunucusu günlükleri için aşağıdaki isteği kullanabilirsiniz:
GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/logs
{
"config_version": 1 // optional
}
Uç noktaya hizmet veren bir model üzerindeki izinleri yönetme
İzinleri değiştirmek için hizmet sunma uç noktasında en azından CAN MANAGE iznine sahip olmanız gerekir. İzin düzeyleri hakkında daha fazla bilgi için Uç noktaların ACL'lerini sunma bölümüne bakın.
Sunum uç noktası üzerindeki izinlerin listesini alın.
Kullanıcı Arayüzü (UI)
Kullanıcı arabiriminin sağ üst kısmındaki İzinler düğmesine tıklayın.
Databricks Komut Satırı Arayüzü (CLI)
databricks permissions get serving-endpoints <endpoint-id>
jsmith@example.com numaralı kullanıcıya hizmet etme uç noktasında CAN QUERY izni verin.
databricks permissions update serving-endpoints <endpoint-id> --json '{
"access_control_list": [
{
"user_name": "jsmith@example.com",
"permission_level": "CAN_QUERY"
}
]
}'
İzinler API'sini kullanarak uç nokta izinlerinin sunulmasını da değiştirebilirsiniz.
Uç noktaya hizmet veren bir model için sunucusuz kullanım ilkesi ekleme
Önemli
Bu özellik genel önizleme aşamasındadır ve dış modellerine hizmet eden uç noktalar için kullanılamaz.
Sunucusuz kullanım ilkeleri, kuruluşunuzun ayrıntılı faturalama atfı için sunucusuz kullanıma özel etiketler uygulamasına olanak sağlar. Çalışma alanınız sunucusuz kullanımı ilişkilendirmek için sunucusuz kullanım ilkeleri kullanıyorsa, uç noktaları sunan modelinize sunucusuz kullanım ilkesi ekleyebilirsiniz. Bkz . Sunucusuz kullanım ilkeleriyle öznitelik kullanımı.
Model sunum uç noktası oluşturma sırasında, Hizmet Sunma kullanıcı arabirimindeki Bütçe ilkesi menüsünden uç noktanızın sunucusuz kullanım ilkesini seçebilirsiniz. Size atanmış bir sunucusuz kullanım ilkeniz varsa, Bütçe ilkesi menüsünden bir ilke seçmeseniz bile, oluşturduğunuz tüm uç noktalara sunucusuz kullanım ilkesi atanır.
Mevcut bir uç nokta için izinleriniz MANAGE varsa, kullanıcı arabirimindeki Uç nokta ayrıntıları sayfasından sunucusuz kullanım ilkesini düzenleyebilir ve bu uç noktaya ekleyebilirsiniz.
Not
Size sunucusuz kullanım ilkesi atanmışsa, mevcut uç noktalarınız ilkenizle otomatik olarak etiketlenmez. Sunucusuz kullanım ilkesi eklemek istiyorsanız mevcut uç noktaları el ile güncelleştirmeniz gerekir.
Uç nokta şeması sunan bir model alma
Önemli
Uç nokta sorgu şemalarını sunma desteği Genel Önizleme aşamasındadır. Bu işlev Model Sunma bölgelerinde kullanılabilir.
Sunum uç noktası sorgu şeması, JSON biçiminde standart OpenAPI belirtimi kullanılarak sunulan uç noktanın resmi bir açıklamasıdır. Uç nokta yolu, istek ve yanıt gövdesi biçimi gibi uç noktayı sorgulama ayrıntıları ve her alan için veri türü dahil olmak üzere uç nokta hakkında bilgi içerir. Bu bilgiler, yeniden üretilebilirlik senaryolarında veya uç nokta hakkında bilgiye ihtiyacınız olduğunda yararlı olabilir, ancak özgün uç nokta oluşturucusu veya sahibi değilsiniz.
Model hizmet uç nokta şemasını almak için, sunulan modelin günlüğe kaydedilmiş bir model imzasına sahip olması ve uç noktanın READY durumunda olması gerekir.
Aşağıdaki örnekler, REST API kullanarak uç nokta şeması sunan modelin program aracılığıyla nasıl alınduğunu gösterir. Özellik sunma uç noktası şemaları için bkz. Özellik Sunma uç noktaları.
API tarafından döndürülen şema, OpenAPI belirtimini izleyen bir JSON nesnesi biçimindedir.
ACCESS_TOKEN="<endpoint-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"
Şema yanıtı ayrıntıları
Yanıt, genellikle , openapiinfo ve serversgibi pathsalanlar da dahil olmak üzere JSON biçiminde bir OpenAPI belirtimidir. Şema yanıtı bir JSON nesnesi olduğundan, bunu ortak programlama dillerini kullanarak ayrıştırabilir ve üçüncü taraf araçları kullanarak belirtimden istemci kodu oluşturabilirsiniz.
OpenAPI belirtimini Swagger Editor gibi üçüncü taraf araçları kullanarak da görselleştirebilirsiniz.
Yanıtın ana alanları şunlardır:
- alanında
info.title, sunum uç noktasının adı gösterilir. - Alanı
serversher zaman bir nesne içerir; genellikleurluç noktanın temel URL'si olan alan. - Yanıttaki
pathsnesne, bir uç nokta için desteklenen tüm yolları içerir. Nesnedeki anahtarlar yol URL'leridir. Herpathbiri birden çok giriş biçimi destekleyebilir. Bu girişler alandaoneOflistelenir.
Aşağıda örnek bir uç nokta şeması yanıtı verilmiştir:
{
"openapi": "3.1.0",
"info": {
"title": "example-endpoint",
"version": "2"
},
"servers": [{ "url": "https://example.databricks.com/serving-endpoints/example-endpoint" }],
"paths": {
"/served-models/vanilla_simple_model-2/invocations": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"type": "object",
"properties": {
"dataframe_split": {
"type": "object",
"properties": {
"columns": {
"description": "required fields: int_col",
"type": "array",
"items": {
"type": "string",
"enum": ["int_col", "float_col", "string_col"]
}
},
"data": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "integer",
"format": "int64"
},
{
"type": "number",
"format": "double"
},
{
"type": "string"
}
]
}
}
}
},
"params": {
"type": "object",
"properties": {
"sentiment": {
"type": "number",
"format": "double",
"default": "0.5"
}
}
}
},
"examples": [
{
"columns": ["int_col", "float_col", "string_col"],
"data": [
[3, 10.4, "abc"],
[2, 20.4, "xyz"]
]
}
]
},
{
"type": "object",
"properties": {
"dataframe_records": {
"type": "array",
"items": {
"required": ["int_col", "float_col", "string_col"],
"type": "object",
"properties": {
"int_col": {
"type": "integer",
"format": "int64"
},
"float_col": {
"type": "number",
"format": "double"
},
"string_col": {
"type": "string"
},
"becx_col": {
"type": "object",
"format": "unknown"
}
}
}
},
"params": {
"type": "object",
"properties": {
"sentiment": {
"type": "number",
"format": "double",
"default": "0.5"
}
}
}
}
}
]
}
}
}
},
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"predictions": {
"type": "array",
"items": {
"type": "number",
"format": "double"
}
}
}
}
}
}
}
}
}
}
}
}