Hantera flera modeller till en modellserverslutpunkt
Den här artikeln beskriver hur du hanterar flera modeller till en PROCESSOR-serveringsslutpunkt som använder Azure Databricks-modellservering.
Information om hur du hanterar flera generativa AI-modeller, som de som tillhandahålls av externa modeller, finns i Hantera flera externa modeller till en slutpunkt.
Krav
Se Krav för att skapa en modell som betjänar slutpunkten.
Information om alternativ för åtkomstkontroll för modeller som betjänar slutpunkter och vägledning för bästa praxis för slutpunktshantering finns i Servering av slutpunkts-ACL:er.
Skapa en slutpunkt och ange den inledande trafikdelningen
Du kan skapa modellserverslutpunkter med Databricks Mašinsko učenje som betjänar API:et eller Databricks-Mašinsko učenje användargränssnittet. En slutpunkt kan hantera alla registrerade Python MLflow-modeller som registrerats i modellregistret.
I följande API-exempel skapas en enda slutpunkt med två modeller och slutpunktstrafiken delas upp mellan dessa modeller. Den betjänade modellen, current
, är värd för version 1 av model-A
och får 90 % av slutpunktstrafiken, medan den andra betjänade modellen, , challenger
är värd för version 1 av model-B
och får 10 % av slutpunktstrafiken.
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"
}
]
}
}
}
Uppdatera trafikdelningen mellan betjänade modeller
Du kan också uppdatera trafikdelningen mellan betjänade modeller. I följande API-exempel anges den betjänade modellen, current
, för att få 50 % av slutpunktstrafiken och den andra modellen, challenger
, för att få de återstående 50 % av trafiken.
Du kan också göra den här uppdateringen från fliken Servering i Användargränssnittet för Databricks Mašinsko učenje med hjälp av knappen Redigera konfiguration.
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"
}
]
}
}
Fråga efter enskilda modeller bakom en slutpunkt
I vissa scenarier kanske du vill fråga efter enskilda modeller bakom slutpunkten.
Du kan göra det med hjälp av:
POST /serving-endpoints/{endpoint-name}/served-models/{served-model-name}/invocations
Här efterfrågas den specifika betjänade modellen. Begärandeformatet är detsamma som att köra frågor mot slutpunkten. När du kör frågor mot den enskilda betjänade modellen ignoreras trafikinställningarna.
Om alla begäranden skickas till /serving-endpoints/multi-model/served-models/challenger/invocations
i slutpunktsexemplet multi-model
hanteras alla begäranden av den challenger
hanterade modellen.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för