Tipo di metrica di scala personalizzata per configurare il ridimensionamento automatico

Utilizzare l'opzione Tipo di metrica personalizzata per configurare il ridimensionamento automatico.

Utilizzare l'opzione metrica di ridimensionamento personalizzata per utilizzare una qualsiasi delle metriche di distribuzione del modello emesse dalla risorsa di distribuzione del modello per creare una query MQL, che può quindi essere utilizzata per configurare il ridimensionamento automatico. Questo approccio consente di creare query più sofisticate, ad esempio unendo più query utilizzando AND e OR, utilizzando diverse funzioni di aggregazione e incorporando una finestra di valutazione preferita. Utilizzando questa opzione, si ottiene un maggiore controllo sulle condizioni di scala, consentendo una configurazione più personalizzata e precisa.

Durante la formulazione di una query MQL, includere {resourceId = "MODEL_DEPLOYMENT_OCID"} nella query come mostrato negli esempi forniti. Durante l'elaborazione della richiesta, il servizio sostituisce la parola chiave segnaposto MODEL_DEPLOYMENT_OCID con l'OCID risorsa effettivo. Ciò consente al servizio di recuperare il set esatto di metriche associate alla risorsa.

Test delle query MQL delle metriche personalizzate

Per eseguire il test e completare le query, attenersi alla procedura riportata di seguito.

  1. Per visualizzare le metriche, attenersi alla procedura descritta in Visualizzazione delle metriche di distribuzione del modello.
  2. Selezionare il grafico delle metriche per la metrica che si desidera utilizzare.
  3. Selezionare Opzioni.
  4. Passare a Visualizza query in Explorer MQL.
  5. Selezionare Modifica query.
  6. Selezionare Modalità avanzata.
  7. Nell'editor di codice query, aggiornare e sottoporre a test la query per le operazioni di scale-out e scale-in.
    Utilizza queste query testate per creare distribuzioni di modelli con funzionalità di ridimensionamento automatico.

Query di esempio

Di seguito sono riportate alcune query di esempio per le metriche che è possibile utilizzare per abilitare il ridimensionamento automatico.
Nota

Queste query sono fornite come riferimento e possono essere personalizzate in base allo specifico caso d'uso. Tuttavia, queste query possono essere utilizzate anche senza modifiche.
Query di esempio per le metriche di distribuzione del modello
Metrica Esegui query Spiegazione
PredictRequestCount
Esegui scale out
PredictRequestCount[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().sum() > 100
Ridimensiona in
PredictRequestCount[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().sum() < 5
Se non vengono effettuate chiamate di previsione, non vengono emesse metriche. In tali casi, diventa necessario incorporare la funzione absent() nella query di allarme. Di seguito è riportata una query di esempio per gli scenari in cui vengono effettuate chiamate di previsione minime o nulle.
PredictRequestCount[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().absent() == 1 
|| 
PredictRequestCount[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().sum() < 2

Utilizza la metrica e le query fornite per il ridimensionamento in risposta alla previsione del volume delle richieste.

Se il conteggio totale delle richieste di previsione per la distribuzione del modello specifico supera 100 in una finestra di tempo di un minuto e questa condizione persiste per il tempo di durata in sospeso specificato, viene attivata un'operazione di scale-out.

Analogamente, se il conteggio cumulativo è inferiore a 5 o se non sono presenti richieste e questa situazione continua per il tempo di durata in sospeso, la condizione avvia un'operazione di scale in.

PredictLatency
Esegui scale out
PredictLatency[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.groupBy(result).percentile(.99) > 120
Ridimensiona in
PredictLatency[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.groupBy(result).percentile(.99) < 20

Applica questa metrica e le query per facilitare il ridimensionamento in base alle latenze delle richieste di previsione.

La query valuta il 99° percentile di PredictLatency per una distribuzione di un modello specifico in un periodo di 1 minuto. Se questo valore di latenza del 99° percentile supera i 120 millisecondi e persiste per il tempo di durata in sospeso, la condizione viene soddisfatta e viene attivata un'operazione di scale out.

Al contrario, se il 99° percentile è inferiore a 20 millisecondi per il tempo di durata in sospeso, viene avviata un'operazione di scale-in.

PredictResponse - Tasso di successo
Esegui scale out
(PredictResponse[1m]{resourceId = "MODEL_DEPLOYMENT_OCID",
 result = "Success"}.grouping().mean() * 100) 
/ PredictResponse[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().mean() < 95
Ridimensiona in
(PredictResponse[1m]{resourceId = "MODEL_DEPLOYMENT_OCID",
 result = "Success"}.grouping().mean() * 100) 
/ PredictResponse[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().mean() > 95

Utilizzare questa metrica e le query per implementare il ridimensionamento in base al tasso di successo della risposta prevista.

La query MQL valuta la percentuale di successo di PredictResponses rispetto a tutti i PredictResponses in un intervallo di 1 minuto per una distribuzione modello specifica.

Se questa percentuale è inferiore a 95 e persiste per il tempo di durata in sospeso, la condizione attiva un'operazione di scale-out. Al contrario, se la percentuale è maggiore di 95 per il tempo di durata in sospeso, la condizione avvia un'operazione di scale in.

Creazione di una distribuzione modello con scala automatica mediante una metrica personalizzata

Scopri come creare una distribuzione modello con un criterio di ridimensionamento automatico utilizzando una metrica personalizzata.

    1. Nella pagina Distribuzioni modello, selezionare Crea distribuzione modello. Se è necessaria assistenza per trovare l'elenco delle distribuzioni di modelli, vedere Elenca distribuzioni di modelli.
    2. Per configurare la distribuzione del modello, attenersi alla procedura descritta in Creazione di una distribuzione modello.
    3. In Configurazione scala automatica, selezionare Abilita scala automatica.
      Vengono visualizzati diversi elenchi e campi per consentire di configurare il ridimensionamento automatico.
    4. Selezionare Personalizzato dalla lista Tipo di metrica di ridimensionamento.
    5. Popolare la query delle metriche personalizzate di ridimensionamento e la query delle metriche personalizzate di ridimensionamento con le query MQL.
      Importante

      Includi
      {resourceId = "MODEL_DEPLOYMENT_OCID"}
      in ogni query. L'OCID risorsa effettivo viene utilizzato al posto di "MODEL_DEPLOYMENT_OCID" quando viene eseguita la query.
    6. Selezionare Crea.
  • Utilizzare il comando oci data-science model-deployment create e i parametri necessari per creare una distribuzione del modello.

    oci data-science model-deployment create --required-param-name variable-name ... [OPTIONS]
    Ad esempio, distribuire un modello:
    oci data-science model-deployment create \
    --compartment-id <MODEL_DEPLOYMENT_COMPARTMENT_OCID> \
    --model-deployment-configuration-details file://<MODEL_DEPLOYMENT_CONFIGURATION_FILE> \
    --project-id <PROJECT_OCID> \
    --display-name <MODEL_DEPLOYMENT_NAME>
    Utilizzare questo file di configurazione JSON di distribuzione modello:
    {
      "deploymentType": "SINGLE_MODEL",
      "modelConfigurationDetails": {
        "modelId": "ocid1.datasciencemodel.oc1.iad.amaaaaaav66vvnias2wuzfkwmkkmxficse3pty453vs3xtwlmwvsyrndlx2q",
        "instanceConfiguration": {
          "instanceShapeName": "VM.Standard.E4.Flex",
          "modelDeploymentInstanceShapeConfigDetails": {
            "ocpus": 1,
            "memoryInGBs": 16
          }
        },
        "scalingPolicy": {
          "policyType": "AUTOSCALING",
          "coolDownInSeconds": 650,
          "isEnabled": true,
          "autoScalingPolicies": [
            {
              "autoScalingPolicyType": "THRESHOLD",
              "initialInstanceCount": 1,
              "maximumInstanceCount": 2,
              "minimumInstanceCount": 1,
              "rules": [
                {
                  "metricExpressionRuleType": "CUSTOM_EXPRESSION",
                  "scaleInConfiguration": {
                    "scalingConfigurationType": "QUERY",
                    "pendingDuration": "PT5M",
                    "instanceCountAdjustment": 1,
                    "query": "MemoryUtilization[1m]{resourceId = 'MODEL_DEPLOYMENT_OCID'}.grouping().mean() < 10"
                  },
                  "scaleOutConfiguration": {
                    "scalingConfigurationType": "QUERY",
                    "pendingDuration": "PT3M",
                    "instanceCountAdjustment": 1,
                    "query": "MemoryUtilization[1m]{resourceId = 'MODEL_DEPLOYMENT_OCID'}.grouping().mean() > 65"
                  }
                }
              ]
            }
          ]
        },
        "bandwidthMbps": 10,
        "maximumBandwidthMbps": 20
      }
    }

    Per un elenco completo dei parametri e dei valori per i comandi CLI, consultare il manuale CLI Command Reference.

  • Utilizzare l'operazione CreateModelDeployment per creare una distribuzione modello utilizzando il tipo di metrica di scala personalizzata.