Aracılığıyla paylaş


Model Sunma uç noktasına birden çok model sunma

Bu makalede, Azure Databricks Model Sunma'nın kullanıldığı bir hizmet uç noktasına birden çok model sunma açıklanmaktadır.

Gereksinimler

Bkz . Model Sunma uç noktası oluşturma gereksinimleri .

Uç noktaları sunan modele yönelik erişim denetimi seçeneklerini ve uç nokta yönetimine yönelik en iyi yöntem kılavuzlarını anlamak için bkz . Uç nokta ACL'lerini sunma.

Uç nokta oluşturma ve ilk trafik bölmeyi ayarlama

Databricks Machine Learning API'siyle Model Sunma uç noktaları oluşturabilirsiniz. Bir uç nokta, Model Kayıt Defteri'nde kayıtlı kayıtlı herhangi bir Python MLflow modeline hizmet verebilir.

Aşağıdaki API örneği, iki model içeren tek bir uç nokta oluşturur ve uç nokta trafiğini bu modeller arasında böler. Sunulan model olan , currentsürümü 1'i model-A barındırır ve uç nokta trafiğinin %90'ını alırken, diğer hizmet sunulan model, challenger1 sürümünü model-B barındırır ve uç nokta trafiğinin %10'unu alır.

POST /api/2.0/serving-endpoints

{
   "name":"multi-model"
   "config":{
      "served_entities":[
         {
            "name":"current",
            "entity_name":"model-A",
            "entity_version":"1",
            "workload_size":"Small",
            "scale_to_zero_enabled":true
         },
         {
            "name":"challenger",
            "entity_name":"model-B",
            "entity_version":"1",
            "workload_size":"Small",
            "scale_to_zero_enabled":true
         }
      ],
      "traffic_config":{
         "routes":[
            {
               "served_model_name":"current",
               "traffic_percentage":"90"
            },
            {
               "served_model_name":"challenger",
               "traffic_percentage":"10"
            }
         ]
      }
   }
}

Sunulan modeller arasındaki trafiğin bölünmesini güncelleştirme

Sunulan modeller arasındaki trafiğin bölünmesini de güncelleştirebilirsiniz. Aşağıdaki API örneği, sunulan modeli uç currentnokta trafiğinin %50'sini, diğer modeli challengerise trafiğin kalan %50'sini alacak şekilde ayarlar.

Bu güncelleştirmeyi, Yapılandırmayı düzenle düğmesini kullanarak Databricks Machine Learning kullanıcı arabirimindeki Sunum sekmesinden de yapabilirsiniz.

PUT /api/2.0/serving-endpoints/{name}/config

{
   "served_entities":[
      {
         "name":"current",
         "entity_name":"model-A",
         "entity_version":"1",
         "workload_size":"Small",
         "scale_to_zero_enabled":true
      },
      {
         "name":"challenger",
         "entity_name":"model-B",
         "entity_version":"1",
         "workload_size":"Small",
         "scale_to_zero_enabled":true
      }
   ],
   "traffic_config":{
      "routes":[
         {
            "served_model_name":"current",
            "traffic_percentage":"50"
         },
         {
            "served_model_name":"challenger",
            "traffic_percentage":"50"
         }
      ]
   }
}

Uç noktanın arkasındaki tek tek modelleri sorgulama

Bazı senaryolarda, uç noktanın arkasındaki modelleri tek tek sorgulamak isteyebilirsiniz.

Bunu yapmak için aşağıdakileri kullanabilirsiniz:

POST /serving-endpoints/{endpoint-name}/served-models/{served-model-name}/invocations

Burada belirli bir hizmet modeli sorgulanır. İstek biçimi, uç noktayı sorgulamayla aynıdır. Tek tek sunulan model sorgulandığında trafik ayarları yoksayılır.

Uç nokta örneği bağlamında multi-model , tüm istekler adresine /serving-endpoints/multi-model/served-models/challenger/invocationsgönderilirse, tüm istekler sunulan model tarafından challenger sunulur.

Not defteri: Birden çok modeli tek bir modelde paketleme

İşlem maliyetlerinden tasarruf etmek için birden çok modeli tek bir modelde de paketleyebilirsiniz.

Birden çok MLflow modelini tek bir MLflow modeli not defterinde paketleme

Not defterini alma