Uç noktaları sunan özel model oluşturma
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:
- Sunum Kullanıcı Arabirimi
- REST API
- MLflow Dağıtımları SDK'sı
Üretken yapay zeka temeli modellerine hizmet veren uç noktalar oluşturmak için bkz . Uç noktaları sunan temel model oluşturma.
Gereksinim -leri
- Çalışma alanınız desteklenen bir bölgede olmalıdır.
- Modelinizle özel bir yansıtma sunucusundan özel kitaplıklar veya kitaplıklar kullanıyorsanız, model uç noktasını oluşturmadan önce bkz . Model Sunma ile özel Python kitaplıklarını kullanma.
- 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.
Hizmet Verme kullanıcı arabirimini görüntülemek için kenar çubuğunda Sunma'ya tıklayın.
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 .
- İş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.
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, model kayıt defterinde kayıtlı olan modelin ilk sürümüne ads1
hizmet veren bir uç nokta oluşturur. Unity Kataloğu'ndan bir model belirtmek için, üst katalog ve şema gibi catalog.schema.example-model
tam model adını sağlayın.
POST /api/2.0/serving-endpoints
{
"name": "workspace-model-endpoint",
"config":{
"served_entities": [
{
"name": "ads-entity"
"entity_name": "my-ads-model",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": true
},
{
"entity_name": "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 config_update
durumu ve NOT_UPDATING
sunulan modelin durumudur READY
.
{
"name": "workspace-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": "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": "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 .
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="workspace-model-endpoint",
config={
"served_entities": [
{
"name": "ads-entity"
"entity_name": "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.
- Databricks Gizli Dizilerini kullanarak uç noktanızı dış kaynaklara erişecek şekilde 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.
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, alanı uç nokta oluşturma sırasında uç nokta yapılandırmanıza veya API'yi kullanan bir uç nokta yapılandırma güncelleştirmesi olarak ekleyinworkload_type
. 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": [{
"name": "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": "workspace-model-endpoint",
"config":{
"served_entities": [
{
"name": "ads-entity"
"entity_name": "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 bölümüne bakın.
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.
- Bkz. Özel modeller için uç noktaları sunan sorgu.
- Bkz. Sorgu temeli modelleri.
Ek kaynaklar
- Model sunma uç noktalarını yönetme.
- Özel modeller için uç noktaları sunan sorgu.
- Sorgu temeli modelleri.
- Databricks Model Sunma'daki dış modeller.
- Modelleri izlemek ve hata ayıklamak için çıkarım tabloları.
- Python kullanmayı tercih ediyorsanız Databricks'i gerçek zamanlı python SDK'sını kullanabilirsiniz.
Not defteri örnekleri
Aşağıdaki not defterleri, uç noktaları sunan modellerle çalışmaya başlamak için kullanabileceğiniz farklı Databricks kayıtlı modellerini içerir.
Model örnekleri, Not defterini içeri aktarma yönergelerini izleyerek çalışma alanına aktarılabilir. Örneklerden birini seçip oluşturduktan sonra modeli MLflow Model Kayıt Defteri'ne kaydedin ve model sunma için kullanıcı arabirimi iş akışı adımlarını izleyin.
Not defteri sunan model için scikit-learn modelini eğitin ve kaydedin
Not defteri sunan model için HuggingFace modelini eğitin ve kaydedin
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin