Megosztás a következőn keresztül:


Több modell kiszolgálása modellkiszolgáló végpontra

Ez a cikk azt ismerteti, hogyan szolgálhat ki több modellt egy Azure Databricks-modellkiszolgálót használó CPU-kiszolgáló végponton.

Ha több generatív AI-modellt szeretne kiszolgálni, például a külső modellek által biztosított modelleket, tekintse meg a több külső modell végponthoz való kiszolgálását.

Követelmények

Lásd a végpontlétrehozási modellt kiszolgáló modell követelményeit .

A végpontokat kiszolgáló modell hozzáférés-vezérlési beállításainak és a végpontkezelés ajánlott eljárásainak megismeréséhez tekintse meg a végpontok ACL-jeinek kiszolgálását ismertető cikket.

Végpont létrehozása és a kezdeti forgalom felosztásának beállítása

A Databricks Machine Learning-kiszolgáló API-val vagy a Databricks Machine Learning felhasználói felületével létrehozhat modell-kiszolgáló végpontokat. A végpontok a Modellregisztrációs adatbázisban regisztrált regisztrált Python MLflow-modelleket is kiszolgálhatják.

Az alábbi API-példa egyetlen végpontot hoz létre két modellel, és beállítja a végpont forgalmának felosztását ezek között a modellek között. A kiszolgált modell az current1. verziót üzemelteti model-A , és a végpontforgalom 90%-át kapja meg, míg a másik kiszolgált modell challengeraz 1 model-B . verziót üzemelteti, és a végpont forgalmának 10%-át kapja meg.

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"
            }
         ]
      }
   }
}

A kiszolgált modellek közötti forgalom felosztásának frissítése

A kiszolgált modellek közötti forgalom felosztását is frissítheti. Az alábbi API-példa beállítja a kiszolgált modellt, currenthogy lekérje a végpont forgalmának 50%-át, challengera másik modellt pedig a forgalom fennmaradó 50%-ának lekéréséhez.

Ezt a frissítést a Databricks Machine Learning felhasználói felületén található Szolgáltatás lapról is elvégezheti a Konfiguráció szerkesztése gomb használatával.

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"
         }
      ]
   }
}

Végpont mögötti egyes modellek lekérdezése

Bizonyos esetekben érdemes lehet egyes modelleket lekérdezni a végpont mögött.

Ezt a következővel teheti meg:

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

Itt lekérdezi az adott kiszolgált modellt. A kérés formátuma megegyezik a végpont lekérdezésével. Az egyes kiszolgált modell lekérdezése során a rendszer figyelmen kívül hagyja a forgalmi beállításokat.

A végponti példa kontextusában multi-model , ha az összes kérést elküldi /serving-endpoints/multi-model/served-models/challenger/invocationsa rendszer, akkor az összes kérést a challenger kiszolgált modell kézbesíti.