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, Databricks Model Sunma kullanılarak özel modellere hizmet veren model sunma uç noktalarının nasıl oluşturulacağı açıklanmaktadır.
Model Sunma, uç nokta oluşturmaya hizmet vermek için aşağıdaki seçenekleri sağlar:
- Sunucu Kullanıcı Arabirimi
- REST API
- MLflow Dağıtımları SDK'sı
Üretken yapay zeka modellerine hizmet veren uç noktalar oluşturmak için bkz.uç noktaları sunan temel model oluşturma
Gereksinimler
- Çalışma alanınız desteklenen bir bölgede olmalıdır.
- Modelinizde özel veya bir yansıtma sunucusundan alınmış kitaplıklar kullanıyorsanız, model uç noktasını oluşturmadan önce Özel Python kitaplıklarını Model Sunma ile kullanma yönergelerine bakın.
- MLflow Dağıtımları SDK'sını kullanarak uç noktalar oluşturmak için MLflow Dağıtım istemcisini yüklemeniz gerekir. Yüklemek için şunu çalıştırın:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Erişim denetimi
Uç nokta yönetimi için model sunum uç noktalarına yönelik erişim denetimi seçeneklerini anlamak için bkz. Model sunum uç noktanızdaki izinleri yönetme.
Model sunma kimlik bilgilerini depolamak için ortam değişkenleri de ekleyebilirsiniz. Bkz . Model sunum uç noktalarındaki kaynaklara erişimi yapılandırma
Uç nokta oluşturma
Kullanıcı arabirimi sunma
Sunum Kullanıcı Arabirimi ile model sunma için bir uç nokta oluşturabilirsiniz.
Kenar çubuğunda Hizmet'e tıklayarak Hizmet UI'sini görüntüleyin.
Sunum uç noktası oluştur'a tıklayın.
Çalışma Alanı model kayıt defterine kaydedilmiş modeller veya Unity Kataloğu'ndaki modeller için:
Ad alanında uç noktanız için bir ad girin.
Sunulan varlıklar bölümünde
- Sunulan varlığı seçin formunu açmak için Varlık alanına tıklayın.
- Hizmet vermek istediğiniz model türünü seçin. Form, seçiminize göre dinamik olarak güncelleştirilir.
- Hangi modele ve model sürümüne hizmet vermek istediğinizi seçin.
- Hizmet sunulan modelinize yönlendirecek trafik yüzdesini seçin.
- Kullanılacak boyut hesaplamasını seçin. İş yükleriniz için CPU veya GPU işlemleri kullanabilirsiniz. Kullanılabilir GPU işlemleri hakkında daha fazla bilgi için bkz. GPU iş yükü türleri .
- Kullanılacak boyut hesaplamasını seçin. İş yükleriniz için CPU veya GPU işlemleri kullanabilirsiniz. Kullanılabilir GPU işlemleri hakkında daha fazla bilgi için bkz. GPU iş yükü türleri .
-
İşlem Ölçeği Genişletme'nin altında, bu sunulan modelin aynı anda işleyebileceği istek sayısına karşılık gelen işlem ölçeği genişletme boyutunu seçin. Bu sayı yaklaşık olarak QPS x model çalışma süresine eşit olmalıdır.
- Kullanılabilir boyutlar 0-4 istekler için Küçük , Orta 8-16 istekleri ve 16-64 istekler için Büyük'tür .
- Uç noktanın kullanımda değilken sıfıra ölçeklendirilmesi gerekip gerekmediğini belirtin. Kapasite sıfıra ölçeklendirildiğinde garanti edilmediğinden üretim uç noktaları için sıfıra ölçeklendirme önerilmez.
- Gelişmiş yapılandırma'nın altında, uç noktanızdan kaynaklara bağlanmak için ortam değişkenleri ekleyebilir veya özellik arama DataFrame'inizi uç noktanın çıkarım tablosuna kaydedebilirsiniz. Özellik arama DataFrame'ini günlüklemek için MLflow 2.14.0 veya üzeri gereklidir.
AI Gateway bölümünde, uç noktanızda hangi idare özelliklerini etkinleştirebileceğinizi seçebilirsiniz. Bkz Mozaik AI Ağ Geçidi tanıtımı.
Rota iyileştirme bölümünde uç noktanız için yol iyileştirmeyi etkinleştirebilirsiniz. Bkz. Hizmet uç noktaları üzerinde yol iyileştirme.
Oluştur'a tıklayın. Sunum uç noktaları sayfası, Sunum uç noktası durumu Hazır Değil olarak gösterilir.
REST API
REST API kullanarak uç noktalar oluşturabilirsiniz. Uç nokta yapılandırma parametreleri için bkz. POST /api/2.0/serving-endpoints .
Aşağıdaki örnek, Unity Kataloğu model kayıt defterine kayıtlı ads1
modelinin ilk sürümüne hizmet veren bir uç nokta oluşturur. Unity Kataloğu'ndan bir model belirtmek için, üst katalog ve catalog.schema.example-model
gibi şema da dahil olmak üzere tam model adını sağlayın.
POST /api/2.0/serving-endpoints
{
"name": "uc-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
},
{
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "4",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config":
{
"routes": [
{
"served_model_name": "my-ads-model-3",
"traffic_percentage": 100
},
{
"served_model_name": "my-ads-model-4",
"traffic_percentage": 20
}
]
}
},
"tags": [
{
"key": "team",
"value": "data science"
}
]
}
Aşağıda örnek bir yanıt verilmiştir. Uç noktanın durumu config_update
ve sunulan model NOT_UPDATING
durumundadır.
{
"name": "uc-model-endpoint",
"creator": "user@email.com",
"creation_timestamp": 1700089637000,
"last_updated_timestamp": 1700089760000,
"state": {
"ready": "READY",
"config_update": "NOT_UPDATING"
},
"config": {
"served_entities": [
{
"name": "ads-entity",
"entity_name": "catalog.schema.my-ads-model-3",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": true,
"workload_type": "CPU",
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "user@email.com",
"creation_timestamp": 1700089760000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "catalog.schema.my-ads-model-3",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "data science"
}
],
"id": "e3bd3e471d6045d6b75f384279e4b6ab",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
MLflow Dağıtımları SDK'sı
MLflow Dağıtımları oluşturma, güncelleştirme ve silme görevleri için bir API sağlar. Bu görevlerin API'leri, uç noktaların sunulması için REST API ile aynı parametreleri kabul eder. Uç nokta yapılandırma parametreleri için bkz. POST /api/2.0/serving-endpoints .
Aşağıdaki örnek, Unity Kataloğu modeli kayıt defterinde kayıtlı my-ads-model
modelinin üçüncü sürümüne hizmet veren bir uç nokta oluşturur. Ana katalog ve şema, örneğin catalog.schema.example-model
gibi, dahil olmak üzere tam model adını sağlamanız gerekir.
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
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model-3",
"traffic_percentage": 100
}
]
}
}
)
Aşağıdakileri de yapabilirsiniz:
- Uç noktanızı birden çok modele hizmet vermek üzere yapılandırın.
- Uç noktanızı yol iyileştirme için yapılandırın.
- Uç noktaları sunan modelinize gelen istekleri ve giden yanıtları otomatik olarak yakalamak için çıkarım tablolarını etkinleştirin.
- Uç noktanızda çıkarım tabloları etkinleştirildiyse özellik arama DataFrame'inizi çıkarım tablosuna kaydedebilirsiniz.
GPU iş yükü türleri
GPU dağıtımı aşağıdaki paket sürümleriyle uyumludur:
- Pytorch 1.13.0 - 2.0.1
- TensorFlow 2.5.0 - 2.13.0
- MLflow 2.4.0 ve üzeri
Modellerinizi GPU'ları kullanarak dağıtmak için, uç nokta oluşturma sırasında ya da API kullanarak bir uç nokta yapılandırma güncellemesi yaparken uç nokta yapılandırmanıza workload_type
alanını ekleyin. Sunum Kullanıcı Arabirimi ile GPU iş yükleri için uç noktanızı yapılandırmak için İşlem Türü açılan listesinden istediğiniz GPU türünü seçin.
{
"served_entities": [{
"entity_name": "catalog.schema.ads1",
"entity_version": "2",
"workload_type": "GPU_LARGE",
"workload_size": "Small",
"scale_to_zero_enabled": false,
}]
}
Aşağıdaki tabloda desteklenen kullanılabilir GPU iş yükü türleri özetlenmektedir.
GPU iş yükü türü | GPU örneği | GPU belleği |
---|---|---|
GPU_SMALL |
1xT4 | 16 GB |
GPU_LARGE |
1xA100 | 80 GB |
GPU_LARGE_2 |
2xA100 | 160 GB |
Özel model uç noktasını değiştirme
Özel model uç noktasını etkinleştirdikten sonra işlem yapılandırmasını istediğiniz gibi güncelleştirebilirsiniz. Modeliniz için ek kaynaklara ihtiyacınız varsa bu yapılandırma özellikle yararlıdır. İş yükü boyutu ve işlem yapılandırması, modelinize hizmet etmek için hangi kaynakların ayrıldığında önemli bir rol oynar.
Yeni yapılandırma hazır olana kadar eski yapılandırma, tahmin trafiği sunmaya devam eder. Devam eden bir güncelleştirme olsa da başka bir güncelleştirme yapılamaz. Ancak devam eden bir güncelleştirmeyi Sunma kullanıcı arabiriminden iptal edebilirsiniz.
Kullanıcı arabirimi sunma
Model uç noktasını etkinleştirdikten sonra uç noktanızın işlem yapılandırmasını değiştirmek için Uç noktayı düzenle'yi seçin.
Aşağıdakileri yapabilirsiniz:
- Birkaç iş yükü boyutu arasından seçim yapın; otomatik ölçeklendirme iş yükü boyutu içinde otomatik olarak yapılandırılır.
- Uç noktanızın kullanımda değilken ölçeğinin sıfıra düşürülmesi gerekip gerekmediğini belirtin.
- Sunulan modelinize yönlendirmek için trafiğin yüzdesini değiştirin.
Devam eden bir yapılandırma güncelleştirmesini, uç noktanın ayrıntılar sayfasının sağ üst kısmındaki Güncelleştirmeyi iptal et'i seçerek iptal edebilirsiniz. Bu işlev yalnızca Sunum Kullanıcı Arabirimi'nde kullanılabilir.
REST API
Rest API'yi kullanan bir uç nokta yapılandırma güncelleştirme örneği aşağıda verilmiştir. Bkz. PUT /api/2.0/serving-endpoints/{name}/config.
PUT /api/2.0/serving-endpoints/{name}/config
{
"name": "unity-catalog-model-endpoint",
"config":
{
"served_entities": [
{
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "5",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config":
{
"routes": [
{
"served_model_name": "my-ads-model-5",
"traffic_percentage": 100
}
]
}
}
}
MLflow Dağıtımları SDK'sı
MLflow Dağıtımları SDK'sı REST API ile aynı parametreleri kullanır. İstek ve yanıt şeması ayrıntıları için put /api/2.0/serving-endpoints/{name}/config
Aşağıdaki kod örneği Unity Kataloğu model kayıt defterinden bir model kullanır:
import mlflow
from mlflow.deployments import get_deploy_client
mlflow.set_registry_uri("databricks-uc")
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name=f"{endpointname}",
config={
"served_entities": [
{
"entity_name": f"{catalog}.{schema}.{model_name}",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": True
}
],
"traffic_config": {
"routes": [
{
"served_model_name": f"{model_name}-1",
"traffic_percentage": 100
}
]
}
}
)
Model uç noktasını puanlama
Modelinizi puanlamak için model sunum uç noktasına istek gönderin.
Ek kaynaklar
- Model sunma uç noktalarını yönetme.
- Mozaik Yapay Zeka Model Hizmetindeki Dış Modeller.
- Eğer Python kullanmayı tercih ediyorsanız, Databricks gerçek zamanlı sunum Python SDK'sını kullanabilirsiniz.
Defter örnekleri
Aşağıdaki not defterleri, model sunma uç noktaları ile çalışmaya başlamak için kullanabileceğiniz farklı Databricks kayıtlı modelleri içerir. Ek örnekler için bkz . Öğretici: Özel model dağıtma ve sorgulama.
Model örnekleri , Not defterini içeri aktarma yönergelerini izleyerek çalışma alanına aktarılabilir. Örneklerden birini seçip oluşturduktan sonra modeli Unity Kataloğu'na kaydedin ve model sunma için kullanıcı arabirimi iş akışı adımlarını izleyin.